newLISP® v.10.7.0 Stable Release
2016-01-21
This stable release adds new functionality to existing functions,
adds one new function and fixes bugs.
Additions and changes
- The installation location prefix for OS X, Linux and other Unix like
platforms has been changed from /usr to /usr/local for
installation in the /usr/local/ directory. See also the file
makefile-original-install in the main source directory.
- On Mac OS X, when starting guiserver.jar first, when it is not
loaded by another newLISP program, guiserver.jar expects the newlisp
executable in /usr/local/bin/newlisp. On other UNIX the newlisp
executable must be in the executable path of the operating system.
- On MS Windows, newLISP can now be compiled as a 64-bit executable.
Thanks to Shigeru Kobayashi for doing most of this work.
- dolist now also accepts arrays.
- The net-eval function now returns the evaluation
of the last expression passed, not the first. The possibility of
passing more than one expression in net-eval is not
documented.
- The system variable ostype on MS Windows now reports
the string "Windows". In previous version 1.62 "Win32"
was reported.
- The net-eval connection timeout has changed to 15 seconds
from 60 secconds. The processing timeout while connected can still be set
by the user in a net-eval parameter.
- The environment variable HTTP_AUTHORIZATION has been
added to the variables handled in HTTP server mode.
- In date-value the date and time numbers can now be
given in one list instead of separate number parameters using and
additional syntax.
- The date-list function, when given without a parameter,
now returns the date list for the current UTC date and time value.
- The trim function without trim character parameters will
now trim all white-space characters, not only spaces.
- dump now returns the number of cells dumped. Previously
true was returned.
- A new trace syntax (trace int-device) writes
all expression entries and exit results to the device given.
int-device can be the handle of an open'ed file or
1 for stdout.
- The stack trace in error messages now prints the entire expression
passed for evaluation, not only the function name.
- The tmp directory is now defined during newLISP startup.
For UNIX this is /tmp, for Windows it is taken from the
TMP environment variable or assumed as /tmp when TMP
is not defined. The directory is used by the built-in function share
and the built-in HTTPD server.
- A new newLISP library call (newlispLibConsole 1) forces console
output to stdout instead of writing to the return string of
newlispEvalStr. The same call also enables console input via
stdin.
- In get/put/post-url the new string option "raw" inhibits
'Location' redirection. "raw" parameter can also be combined with the
"list" and "debug" options, e.g. "raw debug".
- In get/put/post-url list mode the second string in the returned list
contains only the returned content. The third list member is the server HTTP
response line. The fourth list member contains the status-code, which is 0 for an
invalid HTTP response.
- The save function now saves symbols with strings longer than 2027
characters appending multiple partial lines delimited by quotes "...".
This way lines can contain escape characters which are not allowed when using
[text]...[/text] tags as delimiters.
- When using a new second seed syntax, all randomizing functions are
based on a random generator independent of platforms and compilers used to built
newLISP. When seeding using the second syntax all random functions called subsequenly
like amb, normal, rand, random and randomize
are based on this platform independent random generator. After initializing with
the new seed syntax a subsequent call to seed without parameters
returns the current seed state of the random generator, which can be used at a later
time to seed the generator for the same state in a sequence.
- A new ssq function returns the Sum of SQquares (SSQ) for a list or array
vector.
Bug fixes
- date-list crashed for negative values on some MS Windows versions.
- The det and mat functions now give an
error message when passed the wrong dimensions.
- HTTP server mode now works correctly with Apache server, when the environment
variables NEWLISPDIR and PROGRAMFILES are not defined. Default file paths
are then assumed for these variables.
- HTTP only server mode with command-line switch -http did not
reject net-eval requests.
- expand could crash when evaluating binding lists.
- The json-parse function now handles 64-bit numbers also in 32-bit
versions of newLISP.
- Response string from get- put- post-url was not zero-terminated for
HTTP error returns.
- date-value did not evaluate month, day parameters.
- PCRE options PCRE_NOTBOL, PCRE_NOTEOL and PCRE_NOTEMPTY did not work.
- Loading an empty file now returns nil instead of throwing an
error.
- guiserver.jar version 1.66 now correctly forces updates of a gs:canvas
in a gs:scroll-pane.
Compatibility with previous versions
This version is fully compatible with the previous development version 10.6.4.
∂