newLISP® v.10.3 Release Notes
rev 2011-02-02
Highlights
- This release starts the transition to the IPv6 – Internet Protocol
version 6 – based Internet with a new function to switch between the
old IPv4 and the new IPv6 protocol during runtime.
- A better interactive command-line mode (REPL) when running in an OS termnal
or shell window allows multiline entry of newLISP expressions (not available
in the monitor window of the newLISP-GS Java IDE).
New Functions and Features
- ! now has an optional process-creation parameter on MS
Windows. Using this parameter also suppresses creation of console windows.
- exec now allows binary zeros in the data piped in via a second
parameter.
- New date-list returns list of year, month, day, hours, minutes, seconds
and day of the year, day of the week from time value in seconds since
January 1st, 1970. The new function is the inverse of date-value.
- extend will take an un-initialized variable and create a list or
string depending on the second argument (similar to push). Before,
a variable in the first argument had to be initialized to a list or string.
- net-listen now can create divert sockets to divert
traffic to a divert port on BSD OS platforms. Port
diversion can be used to capture and process raw network packets.
- The mod function assumes its second parameter as 1
if missing.
- New net-ipv switches betweeen IPv4 and IPv6 internet protocols during
runtime. Prior versions had to be compiled for either IPv4 or IPv6. As of today
IPv6 is not widely deployed, but will gain importance during the coming years.
A command line switch -6 has been added to start up newLISP in IPv6
mode.
- New multiline mode on the commandline, without using the [cmd]
and [/cmd] tags: just hitting the enter-key on an empty line gets
into and out of multiline mode. The [cmd] and [/cmd] tags
still work too and are needed internally when newLISP is working in server mode,
for some programming environments interfacing with newLISP and when pasting
source containing empty lines into the terminal.
Tab-expansion (on Unix only) for built-in function names also works in
multiline mode. Multiline entry mode does not work in the Java based console
of newLISP-GS.
A chapter explaining more details of the interactive Lisp mode in newLISP has
been added to the Users Manual.
- newLISP HTTP server now registers the CONTENT_TYPE and CONTENT_LENGTH
environment variables when present in the header received.
Server mode now also handles binary content from POST requests.
previously only PUT requests could handle binary data.
See also this
file upload script.
Other changes and additions
- Previous to version 10.3.0 the list of probability values returned
by bayes-query and when using Fisher Chi² mode was normalized by
dividing each value by the sum of the whole list. This normalization
has been dropped.
- The week-day value in the returned list of now – also present
in the new date-list function – has been changed to conform to
the ISO-8601 international standard for time and date related data. Week days
from Monday thru Sunday now number 1 to 7.
- On 64-bit compiled versions date- functions will work for dates
beyond January 2038 and up to January 2100.
- The parse-date function has been renamed to date-parse
for better consistency of naming in the date functions API with functions
date-list and date-value. The old spelling
will still work but is not documented anymore.
- The return value for ref has changed from () to nil,
when nothing is found.
- The signal options for ignore, default and reset have been changed
from nil, true and (quote nil) to the option strings
"ignore", "default" and "reset".
- The maximum length for the interactive command-line and lines in HTTP
request headers has been increased to 511 charcters, up from 254.
- The default connection timeout for networks functions now is set to 10 secs,
up from 3 secs. This always can be overwritten by timeout parameters in
net-connect and HTTP web functions which take timeout parameters.
- win32demo.lsp shows how to interface with Win32 GUI libraries.
the file is available in the examples directory of the newLISP
source distribution. Thanks to Cyril Slobin for providing this example.
- The port scan and packet sniff demos have been added in the
examples directory of the newLISP source distribution.
- A table widget gs:table and supporting functions has been added
to the Java based newLISP-GS guiserver. See the new demo file table-demo.lsp
for details.
- The gs:text-field widget in the newLISP-GS guiserver can now be
configured as a password entry widget. The file textfield-demo.lsp
has been added to the demo files accessible from the newLISP-GS IDE.
- syntax.cgi now emits a bigger font for iPad and iPhone.
- All HTML files shipped in the doc directory of the source distribution
are now UTF-8, XHTML 1.0 compliant.
Bug fixes
- Support for UTF-8 is improved in the newLISP-GS, Java GUI server. Japanese
language characters from Windows Code Page MS932 are now displayed correctly in
all circumstances. For UTF-8 support, the UTF-8 version of the newlisp.exe
executable must be installed. It is available in
www.newlisp.org/downloads/UTF-8_win32/
directory.
- copy and map passed on a wrong protection status under some
circumstances.
- title-case did not handle the boolean flag correctly on non-utf8
versions.
- Various fixes for the IPv6 internet protocol mode.
- configure-alt, the alternate build configuration utility, did not
handle UTF-8 support correctly. This did not affect the standard
configure script in newLISP which always worked correctly.
Compatibility with previous stable release 10.2.8
- Probability results returned by bayes-query when using
the Fisher Chi² method are not normalized any longer.
- The now function changes the numbering for
the week-day field. Monday thru Sunday now number 1 to 7.
- Special options for the signal function are written
differently.
∂