# 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.65 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 1.64 .

∂