newLISPtm v.9.4.5 Release Notes August 5th, 2008

Versions 9.4.1 to 9.4.5 are corrective updates to the 9.4.0 release with minor additions in functionality in version 9.4.4. These additions are marked: (v9.4.4) in the following text.

New API for hash-like dictionary access

newLISP has always used names-paces to build dictionaries for associative memory access, but the API (application programming interface) was lengthy and the created dictionaries where not always safe for saving and reloading, because of overwritten system symbols.

The new API is short and safe. Dictionaries created with the bayes-count function can be used as dictionaries with hash-like access and vice-versa. The new API allows for easy transformation of association lists into namespaces for hash-like access and and vice-versa converting association lists into namespaces.

For details on this new API see the chapter Dictionaries and hash tables in the users manual.

New Cilk API for multi processing

The new Cilk API works with only three new functions:

The new Cilk API takes advantage of todays multi-core CPUs as the operating system will distribute different processes on to different cores inside the processor. Even on single core processors the new API is useful wherever multiple processes in a program have to be coordinated and with data transfer in between them. An inlet function for event driven syncronization is also supported. The new API encapsulates exisiting functionality from the fork, wait-pid and share functions.

This new API works on Mac OS X and Linux/UNIX, on Win32 it is only simulated to make source code portable.

A general mechanism for reference passing

Namespaces in newLISP always haven been passed by reference to user-defined functions, but only few bult-in newLISP primitives could handle data packaged in namespaces with default functors. Now any function in newLISP can handle strings and lists packaged this way. See the chapters default functor and Passing data by reference in the users manual for more information.

More access to newLISP internals

One of newLISP's strengths is working with it interactively in a terminal. prompt-event and command-event allow a full integration of a OS shell and newLISP interactive mode. See the reference of the command-event function for an example.

Improved newLISP-GS with MIDI support

Other API changes and additions

Added and removed files

All known bugs have been fixed. For a detail of bug fixes see the CHANGES notes in the source distribution.