All code in Pike that uses random now uses the current random functions (though in some cases fixed at object creation). This allows for repeatable results if the random functions are replaced with a deterministic random generator, such as Random.Deterministic. Example: Random.Deterministic rnd = Random.Deterministic( seed ); add_constant( "random_string", rnd->random_string ); add_constant( "random", rnd->random );
o JOSE (JSON Object Signing and Encryption)
Some low-level API support has been added to the Crypto and Web
modules to support parts of RFC 7515 - 7520.
Incompatible changes --------------------
o Gz.crc32 now only
o glob() has changed. The main incompatibilities are that [ and \ are now special characters in the pattern, and if you check the return value against 1 instead of checking if it's true, and use an array as the first argument you will have to change your code. This is in order to extend the glob function to cover what 'standard' glob functions do:
o Concurrent.Future and Concurrent.Promise These are used to simplify handling of asynchronous results. o Crypto.Checksum This module collect non-cryptographic checksums. Support for crc32, adler32 and Castagnoli CRC (CRC32C).
NB: In the future these may be amended to support the Crypto.Hash API.
o Protocols.HTTP2 o Bittorrent.DHT o MsgPack New features ------------ o Gmp.mpf is now implemented using gmpf if the library is available.