Branch: Tag:

2016-11-02

2016-11-02 10:33:32 by Henrik Grubbström (Grubba) <grubba@grubba.org>

CHANGES: Updated with more changes since Pike 8.0.

42:    object. It has now been changed to also use `** (or, rather, pow()    is now implemented using predef::`**()).    + o New syntax for literal strings. +  + o #pragma disassemble +  +  The byte code output is now interleaved with the generated machine code +  on selected architectures. +  + o Complain about redundant backslash escapes. +  + o '__weak__' keyword added. +  + o Function local function declarations are now statements +  (and not expressions). This means that there is no longer +  any need to terminate them with a semicolon. +  + o Complain about shadowed variant functions. +  + o Machine code support for more architectures. +  +  There's now machine code support for arm32 and arm64. +  + o Fixed multiple integer over- and underflow bugs. +  +  + Incompatible changes + -------------------- +  + o Gz.crc32 and Nettle.crc32c now only return positive results. +  + 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: +  +  glob() now accepts quotes (\* to match a single *, as an example) +  and handles ranges ([abc] for a, b or c, [a-z0-9] for a single +  character between a and z or 0-9 +  +  You can also negate a range using ^ or ! ([^a-zA-Z] as an example). +  +  When the first argument (the pattern) to glob is an array, glob now +  returns which pattern in the array matched. +  + o hash() has been changed to use siphash. The old hash function is +  available under the name hash_8_0(). Note that this is not a +  cryptographic hash function. +  + o Stdio.UDP()->send() no longer throws errors on EMSGSIZE and EWOULDBLOCK. +  + o If a thread exits with by throwing, the thrown value is propagated to wait(). +  + o String.trim_all_whites() renamed String.trim(). +  +  + New modules + ----------- +  + o ADT.Scheduler + o ADT.TreeScheduler + o Apple.Keychain + o __builtin.Sql + o CompilerEnvironment()->lock() + o Crypto.ECC.Curve.Point + o Filesystem.Zip + o Function.bind() + o Standards.HPack (RFC 7541) + o Stdio.FakePipe + o Parser.Markdown +  + 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.EngineIO & Protocols.SocketIO + o Protocols.HTTP2 + o Bittorrent.DHT + o Standards.MsgPack + o Web.Auth & Web.Api +  +  + New features + ------------ +  + o predef::gc() +  +  gc() called with a weak mapping as argument now removes weak references +  that are only held by that mapping. +  + o predef::sprintf() +  +  sprintf() now replaces %m with strerror(errno()). +  + o ADT.Heap +  +  - An indirection object ADT.Heap.Element has been added to make it +  possible to optimize several heap operations. +  +  - Added low_pop(). +  + o Crypto & Nettle +  +  - Added Curve25519 and EdDSA25519. +  + o Filesystem.Monitor +  +  The filesystem monitoring system now uses accelleration via +  Inotify et al. +  + o Gmp +  +  - mpf is now implemented using gmpf if the library is available. +  +  - Improved support for GMP 5.0 and later. +  + o GTK2 +  +  Multiple runtime fixes. +  + 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. +  + o MasterObject +  +  - Protect against the same file being compiled concurrently +  in multiple threads. +  +  - cast_to_program() and cast_to_object() should now be thread safe. +  + o Parser.Pike +  +  Support new language features. +  + o Protocols.WebSocket +  +  Multiple API changes. +    o Random rewrite       The random functions have been rewritten to ensure security by
117:    add_constant( "random_string", rnd->random_string );    add_constant( "random", rnd->random );    - o JOSE (JSON Object Signing and Encryption) + o Sql    -  Some low-level API support has been added to the Crypto and Web -  modules to support parts of RFC 7515 - 7520. +  - Most Sql C-modules converted to cmod.    -  +  - Added next_result().    - Incompatible changes - -------------------- +  - ODBC & tds: Support more datatypes.    - o Gz.crc32 and Nettle.crc32c now only return positive results. +  - ODBC: Support big_typed_query().    - o glob() has changed. +  - pgsql: Lots of changes and fixes.    -  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. + o SSL    -  This is in order to extend the glob function to cover what -  'standard' glob functions do: +  - Support session tickets.    -  glob() now accepts quotes (\* to match a single *, as an example) -  and handles ranges ([abc] for a, b or c, [a-z0-9] for a single -  character between a and z or 0-9 +  - Support Negotiated FF-DHE.    -  You can also negate a range using ^ or ! ([^a-zA-Z] as an example). +  - Support client certificates.    -  When the first argument (the pattern) to glob is an array, glob now -  returns which pattern in the array matched. +  - Support ALPN.    - o hash() has been changed to use siphash. The old hash function is -  available under the name hash_8_0(). Note that this is not a -  cryptographic hash function. +  - Prefer AEAD suites to CBC suites.    - o Stdio.UDP()->send() no longer throws errors on EMSGSIZE and EWOULDBLOCK. +  - SSL.File supports set_buffer_mode().    -  + o Standards.PKCS    -  +  Support PKCS#8 private keys. +  + o String.Buffer & Stdio.Buffer +  +  Added _search(). +  + o The self testing framework now supports *.test-files. +  + o Unicode 8.0.0. +  +    Deprecated symbols and modules   ------------------------------      o Sql.mysql_result and Sql.mysqls_result have been deprecated.    Use Sql.Result instead.    -  + o call_function() has been deprecated. Use `()() instead.      Removed features and modules   ----------------------------
169:   o GTK1 library is deprecated, so glue code is removed.       - New modules - ----------- -  - o ADT.Scheduler - o ADT.TreeScheduler - o Filesystem.Zip - o Stdio.FakePipe - o Parser.Markdown -  - 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. -  - o The SSL module now supports session tickets. -  -  +    C-level API changes   -------------------   
222:    the random function from get_builtin_constants(). For deterministic    pseudo random, create a private Random.Deterministic object.    + o The preprocessor has been converted into a cmod, and been modified +  to use more standard Pike datatypes.    -  + o The preprocessor-specific hashtable implementation has been removed. +  + o The gdb_backtraces() function is now available also --without-debug. +  + o There's now support to block mapping hashtables from being shrunk +  on map_delete(). +  +  + Documentation + ------------- +  + o RFC references added. +  + o Character encoding issues fixed. +  + o Added @enum/@endenum markup. +  + o Support undocumented enums with documented constants. +  +    Building and installing   -----------------------