newLISPtm v.9.2 Release Notes August 15th, 2007

First release with newLISP-GS Graphics Server module

This is the first release integrating the new Java based graphical user interface (GUI) server into the binary and source distribution. newLISP-GS was developed as replacement for newLISP-tk. newLISP now has its own API for building platform independent GUIs and graphics applications. GS is a Java application functioning as a network server accepting GUI and 2D graphics commands from newLISP. The server and many demo programs are packaged together with the newLISP executable and documentation in the Win32 and Mac OS X binary distribution. Nothing else needs to be installed . The standard Java runtime environment is included in all installations of MS Windows XP/Vista and Apple Mac OS X. A minimum of Java RE version 1.5 is required.
A newLISP-GS based multi tab editor with syntax highlighting, parenthesis matching and the possibility of evaluating newLISP code from inside the editor replaces the old Tcl/Tk based frontend.
On Win32 this new development environment is installed as a desktop icon and a folder in the Program Start menu. On Mac OS X an applications package and icon is installed in the Applications folder. The source for this program can be found as newlisp-edit.lsp on Win32 in the C:\Program Files\newlisp directory or as newlisp-edit installed in /usr/bin on Mac OS X and other UNIX s.
The new way of doing Graphics and GUIs in newLISP offers more sophistication and capabilities than the previous Tcl/Tk based approach. The old newlisp-tk.exe Win32 frontend and the Mac OS X and UNIX newlisp-tk.tcl script can still be used to create Tcl/Tk based applications.

UTF-16 support for directory and filenames on Win32

Thanks to Michael Sabin for contributing code for reading and writing directory and file path names in UTF-16 format on Win32 when using the UTF-8 version of newLISP. On Mac OS X this mode is not necessary as this OS supports UTF-8 file and directory names already.

Callback from xml-parse

The xml-parse function can now specify a callback function. This makes XML processing more comfortable in communications situations where XML needs to be processed in real-time.

UNIX local domain socket support

The network functions net-listen, net-connect, net-accept, net-select, net-send and net-receive now support local domain UNIX sockets on Mac OS X, LINUX and all other UNIX flavors.

New functions:

global? - a property function checking if a symbol is global.
protected? - property functions checking if a symbol is protected.

Enhancements to existing functionality:

Better quality of random number generation in rand, random and normal.
join now can take an extra flag to force a joint string after the last element.
net-ping now can accept ranges in the lowest octet, e.g.: 192.168.1.24-92
slice can specify a negative length, which will be interpreted as offset from the end of the string or list.
The HTTP_COOKIE environment variable is added when using the HTTPD server mode of newLISP.
A new module crypto.lsp with md5 and sha1 hash functions.
The documentation utility newlispdoc now can take a file with a list of URLs for documenting distributed files in a central place.
When invoking newlisp from the command line, files can be spefied as http:// or file:// URLs.

Bug fixes and documentation corrections:

Many bugs have been fixed in this release stabilizing the many new features, which were introduced in newLISP version 9.1. For more detail on bug fixes and other changes see the CHANGES file in the source distribution of newLISP v.9.2.0 in newlisp-9.2.0/doc/CHANGES. This file details changes for the development versions between 9.1.0/1 and to 9.2.0.
§