I’ve uploaded a binary package for MacOSX 10.9+.

Also, I’ve built pkgsrc binary packages for NetBSD, Darwin, 
Solaris/Illumos/SmartOS and Linux (EL6/EL7) for use with pkg_add. 

Binaries:

http://bill.welliver.org/dist/pike/pkgsrc/

pkgsrc make package: 

http://bill.welliver.org/dist/pike/pkgsrc/pike8.0.tar.gz

Once we have a final release, I’ll update the homebrew formula.

As always, comments and suggestions are welcome!

Bill


> On Aug 1, 2017, at 7:53 PM, Peter Bortas <[email protected]> wrote:
> 
> Pike 8.0.466 beta/release candidate:
> 
>    https://pike.lysator.liu.se/pub/pike/beta/8.0.466/Pike-v8.0.466.tar.gz
> 
> Other builds:
> 
>    
> https://pike.lysator.liu.se/pub/pike/beta/8.0.466/Pike-v8.0.466-Darwin-15.4.0-x86_64-macports
>    
> https://pike.lysator.liu.se/pub/pike/beta/8.0.466/Pike-v8.0.466-win32-oldlibs.msi
> 
> Last months release candidate never got promoted to release, so the
> changes is very similar.
> 
> Changes since Pike 8.0.438 (release 9)
> ----------------------------------------------------------------------
> 
> New Features
> ------------
> 
> o Concurrent
> 
>  The Concurrent module simplifies asynchronous code by synchronizing
>  events in different ways. As an example the connect() function shown
>  below will respond with a Concurrent.Future object that at some point
>  will represent either a connected socket or a failure.
> 
>    Concurrent.Future connect(string host, int port)
>    {
>      Stdio.File con = Stdio.File();
>      Concurrent.Promise p = Concurrent.Promise();
>      if( !con->async_connect(host, port, lambda(int success)
>        {
>          if(success)
>            p->success(con);
>          else
>            p->failure("Failed to connect to "+host+":"+port+"\n");
>        }))
>      {
>        p->failure("Failed to open socket.\n");
>      }
>      return p->future();
>    }
> 
>  The returned future can then be used in various ways.
> 
>    // On success, call make_request(con, query). On failure call
>    // werror(msg).
>    connect(host, port)
>      ->on_failure(werror)
>      ->on_success(make_request, query);
> 
>    // On success, call make_request(con, query1) followed by
>    // make_request(resp, query2), where resp is the return value from
>    // make_reqest.
>    connect(host, port)
>      ->then(make_request, werror, query1)
>      ->then(make_request, werror, query2);
> 
>    // Call bridge_ports(con1, con2) when both connections are
>    // established.
>    Concurrent.all(connect(host1, port1), connect(host2, port2))
>      ->then(bridge_ports, failure);
> 
>    // Call make_request(con) once either of the connections are
>    // established.
>    Concurrent.race(connect(host1, port1), connect(host2, port2))
>      ->then(make_requet, query);
> 
> o Debug.Inspect
> 
>  Allows for interactive debugging and live data structure inspection
>  in both single- and multi-threaded programs.
> 
>  Example:
>  In the program you'd like to inspect, insert the following one-liner:
>      Debug.Inspect("/tmp/test.pike");
> 
>  Then start the program and keep it running.
>  Next you create a /tmp/test.pike with the following content:
>      void create() {
>        werror("Only once per modification of test.pike\n");
>      }
> 
>      int main() {
>        werror("This will run every iteration\n");
>        werror("By returning 1 here, we disable the stacktrace dumps\n");
>        return 0;
>      }
> 
> 
>      void destroy() {
>        werror("destroy() runs just as often as create()\n");
>      }
> 
>  Whenever you edit /tmp/test.pike, it will automatically reload
>  the file.
> 
> Bug fixes
> ---------
> 
> o ADT.Heap
> 
>  Fixed heap corruption when the same object is pushed more than
>  once. It will now be considered as calling adjust().
> 
> o FSEvents
> 
>  EventStreamMonitor now works with other backends.
> 
> o Filesystem.Monitor
> 
>  - Reduced initialization latency.
> 
>  - Changed the polling heuristic.
> 
>    This is intended to reduce poll (and notification) delays in
>    some circumstances.
> 
>  - Improved robostness of adjust_monitor().
> 
>  - Removed some dead and obsolete code.
> 
>  - Scan accelerated monitors too.
> 
>    Both the Inotify and FSEvents APIs claim that they support
>    notifications on eg network file systems, and while they will
>    succeed in notifying on changes performed by the local host
>    on such file systems, they will not on changes performed by
>    other hosts. To avoid missing such changes these monitors
>    need to be actively scanned too.
> 
>  - Fixed lost acceleration with InotifyMonitor
> 
>    Recover from race-condition where when a file was repeatedly
>    created and deleted, acceleration was lost.
> 
>  - Fixed symlink issue with InotifyMonitor.
> 
>  - Added support for more fine-grained tracing of monitors.
> 
> o Inotify
> 
>  Addressed an issue where the backend might be stuck in pending
>  indefinitely.
> 
> o mappings
> 
>  Fixed an off by one error in random(mapping) that randomly caused
>  values of type PIKE_T_FREE from the freelist to be exposed to Pike.
> 
> o Nettle.Hash
> 
>  Fixed NULL-dereference in Nettle.Hash()->crypt_hash().
> 
> o Parser.HTML
> 
>  Fixed a condition where Pike would run out of stack space for large
>  documents.
> 
> o Search
> 
>  Fixed a race condition when updating the database.
> 
> o Sql.pgsql
> 
>  - Sped up BEGIN/COMMIT statements.
> 
>  - Preserve the initial error message in case of multiple error messages
>    during the same transaction.
> 
>  - Flush out unseen error messages upon connection close to stderr.
> 
>  - Closed a prepared-statement-cache race when the same statement
>    is offered multiple times before it finalises the cache entry.
> 
>  - Fix sync errors with the database in case of multiple running
>    statements on a single connection that generate multiple errors.
> 
>  - Eliminate spurious sync errors on pipe-lined transactions
>    (multiple transactions in flight on a single file descriptor).
> 
>  - CancelRequests (to cancel running queries) caused sync errors with
>    the database when multiple queries were in flight.
> 
>  - Eliminate transient error messages on database restarts.
> 
> o Sql.SQLite
> 
>  When using query bindings, strings are now always stored as strings;
>  previously, 8-bit strings were stored as binary objects (BLOBs) and
>  wide strings were stored as unicode strings, which caused 8-bit strings
>  to be unequal (and thus not returned) when used in a standard string query.
> 
>  Binary values may be stored as BLOBs using bindings by wrapping the
>  binary string in a multiset. For example, to store the value "myBinary"
>  as a BLOB value using a binding, use: (<"myBinary">).
> 
> o Standards.BSON
> 
>  - Fixed incorrect encoding/decoding of Binary data.
> 
>  - Bugfixes for the decoding of Binary values of subtype 2, Binary
>    values of subtypes above 0x7f and Datetime values with negative
>    values.
> 
> o Standards.JSON
> 
>  Fixed integer overflow in decode() on 64-bit platforms.
> 
> o Stdio.Buffer
> 
>  - Fixed a crash when attempting to create a rewind key on a buffer
>    returned by read_buffer().
> 
>  - Fixed integer overflow in read_json().
> 
> Building
> --------
> 
> o Configure
> 
>  Attempt to detect the tool prefix depending on ABI.
> 
>  Improves detection of pkg-config.
> 
> o Java
> 
>  Detect system installation of JavaVM framework on MacOS X.
> 
> o Stdio
> 
>  Improved support for NetBSD.
> 
> Regards,
> -- 
> Peter Bortas

Reply via email to