Two new expand modes and a new letex give detailed control over macro expansion not possible before.
Logic programming with a PROLOG like unify and assisted by the new expand modes.
Implicit indexing now available for nth-set and set-nth results in much better readability for these functions. Parameter passing by reference two user-defined functions via default functors is now totally transparent as default functors can be used in nth-set and set-nth.
More of previously list-only functions now also handle strings: member,push,pop and rotate.
Many changes and corrections in the manual. Complete editing review of the Users Manual (thanks to Michael Michaels). An updated version of Introduction to newLISP by Cormullion.
Most of the additions and changes in this release where prompted by users.
New or changed functionality |
Description |
version |
error-event, net-eval, signal, timer |
Now can take anonymous lambda expressions or built-in functions. Previous only symbols holding lambda expressions where allowed. |
v8.8.1 |
rest, slice |
Implicit indexing for these function with lists in default functor. |
v8.8.1 |
real-path |
New function translates a relative file path into an absolute file path. |
v.8.8.3 |
save,source |
suppress saving/sourcing system symbols starting with '$' unless specified specifically. |
v.8.8.3 |
sys-info |
Allows negative indices like args and main-args do already. |
v.8.8.4 |
dup |
Will assume 0 (zero) for negative values. |
v.8.8.4 |
load |
Now can take URLs, i.e: http://asite.com or file://home/joe/afile.txt. |
v.8.8.5 |
xml-parse |
Can now specify a context where to place tag-symbols. |
v.8.8.5 |
dolist, dotimes |
Now can take an optional break condition for early loop return. |
v.8.8.6 |
letex |
New function combining let and macro expansion. |
v.8.8.6 |
clean |
New function works like filter with a negated condition. |
v.8.8.7 |
unify |
Does Prolog like unification with occur-check and works together with 2 new expand modes. |
v.8.8.7 |
expand |
Two new expansion syntax modes for working with macros and unify |
v.8.7.7 |
nth-set, set-nth |
Now have a second syntax with implicit indexing: |
v.8.8.5 |
dolist |
System variable $idx now contains offset of current list item in loop-list. Safe for nested dolist in v8.9.0 |
v.8.8.8/8.9.0 |
args |
Indexing mode of args now works with multiple indexes, i.e. (args 3 -1) and is faster. |
v.8.8.8 |
pop, push |
Will now also work on strings. |
v.8.8.0 |
rotate |
Will now also rotate strings. |
v.8.9.10 |
member |
Will now also find a member of a string. |
v.8.9.0 |
Added Files and Other Changes |
|
|
mysql5.lsp |
New module for version 5.x of MySQL database. |
v.8.8.5 |
sqlite.lsp |
sqlite.lsp vor SQLite v.2.x has been discontinued, use sqlite3.lsp and SQLite3 |
V8.6.0 |
zlib.lsp |
New module for in-memory and .gz compatible file compression. |
v.8.8.5 |
syntax.cgi |
New file in examples directory for syntax highlighting of newLISP source in HTML |
v.8.8.8 |
newlisp_manual.html |
Examples in the manual appendix are now syntax highlighted. Prepared using syntax.cgi |
v.8.9.0 |
Bug Fixes |
|
|
filter,index, |
Now do memory cleanup after exception in function argument. |
v.8.8.1 |
rand |
Generated numbers alternating in odd/even on BSDs |
v.8.8.1 |
[cmd][/cmd] |
When used interactively will not crash anymore on cursor up after [/cmd] on some OS. |
v.8.8.4 |
xml-parse |
Did emit an extra tag when closing CDATA tag was preceded by a forward slash. |
v.8.8.4 |
read-key |
Now also working on Mac OS X. |
v.8.8.5 |
Error reporting |
(1) Fix for reporting longer strings. (2) Same error message was repeated for different catch levels. |
v.8.8.6 |
Open “append” |
Append mode for open was not atomic. |
v.8.8.6 |
get-url, post-url, put-url |
Transfer-encoding: chunked was not handled correctly when extra spaces where present after the colon. |
v.8.8.7 |
replace |
$0 counter did not count first element when in remove mode. |
v.8.8.7 |
net-ping |
Did not work on localhost . |
v.8.8.9 |
Get-url, post-url, put-url |
Did not allow 0 (zero) chunk size in Transfer-encoding: chunked. |
v.8.8.10 |
[text] |
Entering this tag in the interactive console without closing tag now gives error message and will not stay in endless loop. |
v.8.9.0 |
starts-with, ends-with |
(starts-with s k true) should behave like the default (starts-with s k), same with ends-with. This bug never surfaced because nobody specified anything for the default of case sensitivity |
v.8.9.0 |
The versions newLISP 8.8.1 to newLISP 8.8.10 where released as development versions.
This release will run code from the previous release 8.8.0 with one unlikely exception:
In released versions previous to 8.9.0 push and pop worked only on lists. In previous releases pushing data on a variable containing numbers or strings resulted in initializing those variables to an empty list where data could be pushed on. This behavior has changed.
Starting with this release push and pop also work on strings. When push encounters a variable containing a string it assumes a string to be pushed into the target and will not initialize to a list as before. Starting with this release only a list or nil in the push target will cause push working in list mode. A number in the target variable will cause an error message and a string in the target variable will expect a string to be pushed.
§