newLISP v.10.3 Release Notes

# newLISP® v.10.3 Release Notes rev 2010-10-01

This release starts the transition to the IPv6 – Internet Protocol version 6 – based Internet, introduces a better command-line mode (REPL), adds some minor new functionality and fixes miscellaneous bugs.

### 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 (reverse of `date-value`). The new function is the inverse of `date-value`.
- 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.

### Other changes and additions

- 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.
- 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 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.
- 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 MS392 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.

### Compatibility with previous release

- With exception of the `now` function with different numbering for the week-day field, all code running on the last stable release 10.2.8 should also run on 10.3 with no changes.

∂