Changes and Additions in newLISP for Linux, Free BSD, Mac OSX, Solaris and Win32

see latest versions in: http://newlisp.org/download
see development versions in: http://newlisp.org/download/development

Back to home page at http://newlisp.org

Function / Other Description
Linux
and
Win2k/XP
Tcl/Tk
GUI
version
Release Date
date now the optional time ofset parameter in 'date' and 'now' must now  be given in minutes west of GMT, was previously in hours.
7.5.0 7.5.0 January 21st, 2004
date
crashed at values overflowing int32 (2038 1 19 3:14:07)
7.5.0 7.5.0 January 21st, 2004
now (now ... ) returns an additional number 'minutes west of GMT'  for the timezone offset. This is not working correctly on some SOLARIS compiles (gives random values) 7.5.0 7.5.0 January 21st, 2004
format %s format now recognizes precision i.e:
(format "%5.2" "hello") => "   he"
format now can take an unlimited number of parameters (previously 2048)
7.5.0 7.5.0 January 21st, 2004
if cond
if the last condition given is the empty listy () which evaluates to nil in a boolean context, and if no then/else actions or no cond action is given, then the empty list () is returned (previusly nil) .
7.5.0 7.5.0 January 21st, 2004
transpose now transposes any kind of matrix (previously only matrices containing numbers); it also rectangualarizes matrices; speed improved  3 fold.

7.5.0 7.5.0 January 21st, 2004
import on Win32 now can use 'cdecl' calling conventions with 7.5.0 7.5.0 January 21st, 2004
sys-info sys-info now reports an addtional number 'max cell count' in the second position, default is 0x10000000, ~bytes per cell. This is related to the new commandline switch -m 7.5.0 7.5.0 January 21st, 2004
char did not convert the  0 correctly, now: (char 0) => "\000" before: "" 7.5.0 7.5.0 January 21st, 2004
sqlite.cgi
web script for administering SQLite database in newLISP
7.5.0 7.5.0 January 21st, 2004
sqlite.lsp
new module for SQLite database from http://www.sqlite.org

7.5.0 7.5.0 January 21st, 2004
stat.lsp smtp.lsp httpd changes for additional number in sys-info 7.5.0 7.5.0 January 21st, 2004
mysql.lsp
mysql.lsp version 2.0, several functions changed and offsets defined  for MySQL v.4.0, previous versions will not work
7.5.0 7.5.0 January 21st, 2004
pop3.lsp pop3.lsp now handles pop3 servers w/o LAST command, but only on  functions: get-all-mail and delete-all-mail 7.5.0 7.5.0 January 21st, 2004
stat.lsp plotting with Gnuplot now works on Windows 7.5.0 7.5.0 January 21st, 2004
-m
-m N, where N is the maximum megabytes to be used for cell memor 7.5.0 7.5.0 January 21st, 2004
-p -d logging has been changed to a fixed filename newlisp-log.txt 7.5.0 7.5.0 January 21st, 2004
-h
new command line switch: help for comandline switches 7.5.0 7.5.0 January 21st, 2004
error messages several small improvements 7.5.0 7.5.0 January 21st, 2004
gettime
programming example eliminated, service mostly not used
7.5.0 7.5.0 January 21st, 2004
BWidget tool set
updated to BWidget-1.7 in newlisp-tk (since 7.4.6)
7.5.0 7.5.0 January 21st, 2004
float->integer conversion
fixed problem in float -> integer conversion of big numbers

7.5.0 7.5.0 January 21st, 2004
newLISP-tk
fixed printing context name when in a context other than MAIN this affected the newlisp-tk frontend since v. 7.2.7 when using the 'New' command in the newlisp-tk frontend

7.5.0 7.5.0 January 21st, 2004
FILES file inventory document had some files missing 7.5.0 7.5.0 January 21st, 2004
newlisp.dll
new Win32 DLL of newlisp for accessing newLISP functionality from other Win32 applications
Win2k/XP
7.4.0
7.4.0 December 20th, 2003
char collect lookup nth pop push select set-nth slice
now all accept negative offset which will count from the  end of a list i.e.
(slice "newLISP" -4 2) => "LI"

(nth 2 -1 '(a b (c d e))) => e
7.4.0
7.4.0 December 20th, 2003
push pop
now can take multidimensional offsets like nth and set-nth, now can take multiple offsets in a list for better working together with new ref

7.4.0 7.4.0 December 20th, 2003
ref
finds an expression in a nested list and returns list offsets
7.4.0 7.4.0 December 20th, 2003
flat
returns the flat form of a nested list
7.4.0 7.4.0 December 20th, 2003
collect select
now returns the last element when offsets are too big (before nil was returned)
7.4.0 7.4.0 December 20th, 2003
set-locale new function sets locale environment on non-US versions of an OS   platform, this enables automatically correct character  handling (i.e. upper-case) on non-english character sets with:
(set-locale "")  
enables local character handling defaults
7.4.0 7.4.0 December 20th, 2003
atan2
new function returns arc tangent in radians of Y/X
7.4.0 7.4.0 December 20th, 2003
irr
new function calculates Internal Rate of Return (for fixed and variable time intervals! )
7.4.0 7.4.0 December 20th, 2003
pretty-print
new function can control pretty print width and indenting
7.4.0 7.4.0 December 20th, 2003
list
now accepts unlimited number of arguments (formerly 2048)
7.4.0 7.4.0 December 20th, 2003
let
now accepts also alternative syntax without the parenthesis  around var - exp pairs:
(let (var1 exp1 var2 exp2 ...) body )
7.4.0 7.4.0 December 20th, 2003
fn
can be used instead of lambda for quicker typing:
(map (fn (x) (+ x x)) '(1 2 3))
=> (2 4 6)

7.4.0 7.4.0 December 20th, 2003
set-nth swap now work also on strings 7.4.0 7.4.0 December 20th, 2003
import
now accepts also floats and up to 14 parameters (floats count double, i.e. 5 floats + 2 int + 2 string = 14)
7.4.0 7.4.0 December 20th, 2003
float integer
now accept leading spaces in conversion:
(integer " 12") => 12
(float " 1.2" => 1.2
7.4.0 7.4.0 December 20th, 2003
floating point numbers in source code and command line
- now accept leading . (dot) without digit, i.e: .5 instead of 0.5
- cleanup of NaN behaviour in Win32


December 20th, 2003
bugfixes for bug fixes on  append,integer,join,let,nth,push,remove, replace and select  see CHANGES file in dsitribution
7.4.0 7.4.0 December 20th, 2003
documentation
many changes, fixes, additions
7.4.0 7.4.0 December 20th, 2003
newlisp-tk
- uses 1 port less for communications (now 2 before 3) due to new multiline command mode when controlling remotely.

- tmp direcory on LINUX now defined via environment variable.

- windows position now gets save when saving options/settings
n/a
7.4.0 December 20th, 2003
PCRE
Perl Regular Expressions module updated to version 4.5, added 2k to the executable but is supposed to have bugfixes and some new features
7.4.0 7.4.0 December 20th, 2003
import
import was broken in 7.3.0 in the native Wind32 version when used inside contexts (i.e. odbc.lsp)
7.3.1 7.3.1 November 10th, 2003
contexts
contexts now can be assigned to variables and referenced
during runtime, i.e. contextVar:varName with late binding of contextVar with varName during program execution..  New possibilities of OO programming and lexically scoped programming: See new chapter in the users manual about "Programming with context objects" and new function new, which can be used for copying and instantiating contexts from other contexts or templates.

Stronger separation of contexts from context MAIN, only
primitive symbols, context symbols, true, nil, ? and @ are inherited unless make global with global Avoids confusion through overwriting of variables depending on sequence of loading contexts and MAIN.

All symbols for primitives, context symbols, true, nil, ? and @ are now protected and only can be changed with constant.
7.3.0 7.3.0 November 8th, 2003
new
copies contexts, helps using contexts a objects, which can be instantiated from a template context.
7.3.0 7.3.0 November 8th, 2003
global
new function to make variables in MAIN visible in all contexts (this was the default previously
7.3.0 7.3.0 November 8th, 2003
static in lambda expression are not available anymore, use contexts, which are also lexically scoped, as objects instead. 7.3.0 7.3.0 November 8th, 2003
set-nth like former replace-nth but multidimensional like nth, i.e.:

(set-nth 1 2 0 '(1 (a b (c d))) 'x)
=>  (1 (a b (x d)))


the replaced expression can be found in $0:

$0 => c
7.3.0 7.3.0 November 8th, 2003
nth
now can take multiple indices, i.e.:

(nth 1 2 0 '(1 (a b (c d)))) => c

good for working with matrices or sparse matrices out of bounds indices return the last element in dimension.
7.3.0 7.3.0 November 8th, 2003
chop
now also works on lists
7.3.0 7.3.0 November 8th, 2003
replace-nth
equivalent to the new set-nth now also uses the system variable $0 for the old element, i.e:

(set 'lst '(1 2 3 4))
(replace-nth 1 lst (+ $0 1))
lst => '(1 3 3 4)

now returns the changed list instead of the old  expression found (which is now in $0),  now checks also for missing last argument.
7.3.0 7.3.0 November 8th, 2003
replace-assoc
now also uses the system variable $0 for the old  list, which can be reused in the replacement expression, i.e:

(set 'lst '((a 1)(b 2)(c 3)))
(replace-assoc 'b lst
    (list 'b (+ 1 (last $0))))

lst => ((a 1)(b 3)(c 3))

now returns the changed list not the replaced element,which now is in $0.
7.3.0 7.3.0 November 8th, 2003
remove now returns the changed list and the number of removed elements in $0 7.3.0 7.3.0 November 8th, 2003
replace
now returns changed list or string for changed list count of replacements in $0 count for string replacements is not available any more (could be handled in replacement expression in a user written counter), now checks also for missing last argument. Fixed stack overflow after 2048 replacements.
7.3.0 7.3.0 November 8th, 2003
format
now checks for correct number of arguments and well formed format string, it will not crash anymore on mismatch of number and type of parameters
7.3.0
7.3.0
November 8th, 2003
constant symbols protected with constant now also get saved with constant 7.3.0 7.3.0 November 8th, 2003
set, setq, set!, constant
return current value of  the variable set, when last right-value is missing, i.e.:

(set 'x 123)
(set 'x) => 123

Useful when using 'constant' for putting protection on already assigned symbols. When using multiple parameter-value pairs it refers to the last parameter.
7.3.0 7.3.0 November 8th, 2003
infix.lsp
new module for parsing infix expressions i.e:

(INFIX:xlate "(3 + 4) * (5 - 2)")
=> (mul (add 3 4) (sub 5 2))
7.3.0 7.3.0 November 8th, 2003
ftp.lsp new module for making ftp transfers 7.3.0 7.3.0 November 8th, 2003
httpd
version 3.0 now big POSTs work.
7.3.0 7.3.0 November 8th, 2003
smtp.lsp, cgi.lsp, spam-filter fixes in modules smtp.lsp, cgi.lsp now lives in own context,  added features in spam-filter. 7.3.0 7.3.0 November 8th, 2003
error messages
fixed serveral occurrences of wrong error messaging. Now full call stack reporting on errors!
7.3.0 7.3.0 November 8th, 2003
gammai, beta, gammaln
crashed when supplying 0 for first parameter, now error message 'parameter out of range'
7.3.0 7.3.0 November 8th, 2003
newlisp-tk
now on Linux, freeBSD and MacOSX tmp directory is looked for in the home directory of the user running newlisp-tk.

7.3.0 November 8th, 2003
newlisp-tk
fixed bug, where editor browser would hang after having used regulare expressions.

7.3.0 November 8th, 2003
newlisp-tk
tk statements now can be multiline. i.e. (tk tkProgramm) where tkProgramm is a string containing Tcl/Tk statements on multiple lines broken by line feed characters.

7.3.0
November 8th, 2003
displaying strings in code commandline and when saving userspace
strings containig zeros are now displayed correctly i.e.  (pack "c c c" 0 1 2 3) => "\000\001\002\003"
7.2.0
7.2.0
October 1st, 2003
sys-info
operating system number in last position of 'sys-info'  linux 1, bsd 2, osx 3, solaris 4, cygwin 5, win32 6
7.2.0 7.2.0 October 1st, 2003
SUN Solaris
Sun SOLARIS is now supported (not much tested though)


October 1st, 2003
regex
replace
find
parse
regular expression speedup 5 to 50% by chaching the search pattern  and avoiding recompile, speedup greatly depends on complexity of  pattern relatively to the length of the search string and is best visible on 'replace'


7.2.0 October 1st, 2003
fft
ifft
'fft' and 'ifft' now can take plain numbers instead of complex numbers or a mixture of both
7.2.0 7.2.0 October 1st, 2003
save
fixed bug in 'save', which went into a loop when saving symbols containing contexts, this was a serious bug causing huge files to be written.
7.2.0 7.2.0 October 1st, 2003
pretty printing
fixed bug in pretty print on command line
7.2.0 7.2.0 October 1st, 2003
logfile
logfile support for remote mode -p and -d with '-l logfilename' or '-L logfilename'
7.2.0 7.2.0 October 1st, 2003
memory leak
transpose
'transpose' had a memory leak
7.2.0 7.2.0 October 1st, 2003
memory leak
set
setq
set!
'set' had a memory leak when using the multiple argments
7.2.0 7.2.0 October 1st, 2003
memory leaks in
find
replace
parse
memory leak in searchBufferRegex() affecting 'find', 'replace', 'parse'  where  fixed
7.2.0 7.2.0 October 1st, 2003
collect
select
'collect' and 'select' now also work on strings
  i.e: (collect "2001-09-20" 5 6 8 9 0 1 2 3) => "09202001"
7.2.0 7.2.0 October 1st, 2003
throw
'throw' now is documented has been there for quite some time, but was never documented/announced (works wioth 'catch')
7.2.0 7.2.0 October 1st, 2003
reverse
'reverse' now works on strings
7.2.0 7.2.0 October 1st, 2003
cgi.lsp
improved cgi.lsp, 'url-translate' now uses the new 'replace' with backreferences in the replacment string when using regular expressions
7.2.0 7.2.0 October 1st, 2003
first
'first' of an empty string now returns an empty string, previously nil
7.2.0 7.2.0 October 1st, 2003
error messages
error messages now include the offending expression/parameter which caused the error and the user defined function where the failing functions was called from
7.2.0 7.2.0 October 1st, 2003
symbol
'symbol' pretended to create a symbol although context would not exist
7.2.0 7.2.0 October 1st, 2003
send
'send' now accepts both: a symbol or a string
7.2.0 7.2.0 October 1st, 2003
write-buffer
'write-buffer' now acepts both: a symbol or a string
7.2.0 7.2.0 October 1st, 2003
slice
if the length of a sublist in slice is 0 then sice returns the empty  list '(), previously returned nil. This is more consistent with the  behavior of slice on strings and at the end of lists.
7.2.0 7.2.0 October 1st, 2003
join
'joint' now also can joint binary strings (including the joint string)
7.2.0 7.2.0 October 1st, 2003
append
'append' now also can append binary strings (i.e. containing 0's)
7.2.0 7.2.0 October 1st, 2003
import
on Mac OSX
On Mac OSX  'import' is now enabled using to addtional files osx-dlfcn.n/h for compiling. This import is for '.dylib'  libaries.

7.2.0 7.2.0 October 1st, 2003
net-send-udp
net-receive-udp
new 'net-send-udp' and 'net-receive-udp' for UDP communications without need of net-listen,net-accept and net-connect.
7.2.0 7.2.0 October 1st, 2003
if
'if' now accepts multiple condition-exp pairs and then works like a  cond without parenthesis around condition-value. 'if' with  condition-exp-exp or condition-exp still works like before.
7.2.0 7.2.0 October 1st, 2003
pipe
new function 'pipe' for use with child processes 7.2.0 n/a
October 1st, 2003
process
new function 'process' for launching independent child processes  (will not block)
7.2.0 7.2.0 October 1st, 2003
newLISP-tk
Uninitialized memory in writeStreamStr() caused problems when running newlisp-tk and transferring bigger string buffers. win32_fprintf() did not work right for buffers > 2048, which caused problems in browsing bigger buffers in newLISP-tk.
These bugs had been around since version 6.5.18, but only surfaced when dealing with bigger string buffers and in the newLISP-tk environment.
On the Win32 newLISP-tk version there are still limitations when evaluating edit windows with more than ~24Kbytes of content.
This should never be a problem when editing function definitions, but could be a limitation when editing data lists bigger than 24K. Those lists or strings should be edited in a different editor outside the newLISP-tk environment and when on Win32.
7.1.4 7.1.4 September 7th, 2003
symbol
third parameter in 'symbol' for supression of symbol creation, if  not found; returns 'nil' instead.

7.1.3 7.1.3 September 4th, 2003
TCP/IP communications [text]...[/text] caused problems in TCP/IP communications, this caused severe problems in soe situations in the newlisp-tk frontend
7.1.3 7.1.3 September 4th, 2003
HTML manual HTML manual had formatting error, which caused all after 'regex' to stay in curier.

7.1.3 7.1.3 September 4th, 2003
OSX, LINUX
surpression of some compiler warnings in Mac OSX compile makefile for linux has strip turned on and readline support  was not the default
n/a
7.1.3
September 4th, 2003
[text] ... [/text]
[text] and [/text] can be used as string limiters for large unprocessed text regions, i.e. in CGI for HTML text, or any other purpose where text might be big and unprocessed.
7.1.0 7.1.0 August 29th, 2003
parse, search
can now take regular expressions as break string / search patterm
7.1.0 7.1.0 August 29th, 2003
replace, find, regex
now replacement pattern with back references and as  lisp expression. Sub expressions are stored in variable $1, $2 ... etc. $0 contains the whole pattern found. These variables are also filled in 'regex' und 'find' .
7.1.0 7.1.0 August 29th, 2003
find, parse, regex, replace, search
PCRE Perl Compatible Regular Expression support updated to version 4.4
7.1.0 7.1.0 August 29th, 2003
newlisp-tk.tcl newlisp-tk.tcl has been changed for better usage of 'context'
7.1.0 7.1.0 August 29th, 2003
newlisp-tk.exe based on Tcl/Tk version 8.4.1 and BWidget v.1.6
7.1.0 n/a August 29th, 2003
newlisp-tk.exe
The newlisp-tk Windows version is now wrapped with freewrap v.5.5
7.1.0 n/a
August 29th, 2003
context
now can be deleted when empty (as in earlier versions)
7.1.0 7.1.0 August 29th, 2003
context, dotree, symbol, symbols
now accept unquoted  symbol if the symbols is a context.
7.1.0 7.1.0 August 29th, 2003
dotree
fixed crashbug in dotree, which was not reentrant
7.1.0 7.1.0 August 29th, 2003
now, date
additional optional parameter for an hour offset
7.1.0
7.1.0
August 29th, 2003
lookup
new primitive 'lookup' works like assoc with extracting parameter
7.0.4 7.0.4 February 3rd, 2003
replace
replace now gives error instead of returning 'nil when second arg not list or string
7.0.4 7.0.4 February 3rd, 2003
open
'open now has an "append" or "a" option
7.0.4 7.0.4 February 3rd, 2003
save
'save now can save multiple contexts and/or symbols at once
7.0.4 7.0.4 February 3rd, 2003
find now also does regex when looking up a string in list of strings 7.0.4 7.0.4 February 3rd, 2003
current-line fixed crash bug when current-line was used without previous read-line. Now returns empty string 7.0.4 7.0.4 February 3rd, 2003
pop3.lsp
fixed bug in pop3.lsp
7.0.4 7.0.4 February 3rd, 2003
smtp.lsp the header in the SMTP interface smtp.lsp was not finished with empty line
7.0.4 7.0.4 February 3rd, 2003
cgi.lsp
cgi.lsp now included in distribution
7.0.4 7.0.4 February 3rd, 2003
put-url
example in newLISP for put.cgi in newlisp_manual.html
7.0.4 7.0.4 February 3rd, 2003
SXML parsing
in SXML parsing attribute tags where left strings instead of symbols
7.0.4 7.0.4 February 3rd, 2003
-e commandline option
new commandline option -e for direct execution
7.0.4 7.0.4 February 3rd, 2003
installer for Win32
moved to version 5.4 of Freewrap for making the newlisp-tk.exe, which  is now doubled in size because 5.4 doesn't compress anymore (see Freewrap docs), but avoids problems installing on some systems.
n/a 7.0.4 February 3rd, 2003
pop3.lsp, smtp.lsp, httpd example file changes/fixes
Improved Id's for the sort mail files, contributed by Bob 'CaveGuy'.
Added better reporting for (set 'debug-flag true). Changes for eliminating deprecated functions.
7.0.1 7.0.1 October 25th, 2002
line termination bug fix
in Win32 now line termination gets written as RT-LF.
7.0.1 7.0.1 October 25th, 2002
newlisp-tk bug fixes
In newlisp-tk the lisp file extension can now be configured in newlisp-tk.config, which changes the files displayed in the file dialogs.
7.0.1 7.0.1 October 25th, 2002
prettey printing improved
frixes for pretty printing quoted objects and empty iterators
7.0.1 7.0.1 October 25th, 2002
slice
collapses functionality of sublist and substring into one polymorph function. Thanks to Eddie R. for this great idea. The old sublistand substringnow point to slice. They are deprecated but can still be used for some versions to come.
7.0.1 7.0.1 October 25th, 2002
string
bug fix for string, suppresses all pretty-print formatting
7.0.1 7.0.1 October 25th, 2002
xml-parse
new option number 16 in xml-parse for generating SXML output
7.0.1 7.0.1 October 25th, 2002
setq, set!
new functions setq/set!, like set but don't need quoted variables and also take mutiple arguments. Note, that old init.lsp's should be updated, becuase contains macro for setq.
7.0.1 7.0.1 October 25th, 2002
set
set now can take multiple arguments
7.0.1 7.0.1 October 25th, 2002
constant
new function constant to protect symbol contents from changing
7.0.1 7.0.1 October 25th, 2002
NaN
NaN can now be put into a variable for comparison. In mixed arithmetik using integer operators NaN is taken as 0. NaN caused crashes when used in Win32 in calculations. Division by zero now causes math exception in all versions (previously Inf in Unix versions). In mixed arithmetik using integer operators NaN is taken as 0. DOMAIN error messages in the Win32 versions are now silenced. Thanks to Bob 'CaveGuy' for helping to clean up NaN handling.
7.0.1 7.0.1 October 25th, 2002
date
fix for date which crashed on Win32 for dates close to epoc.: 1970-1-1
7.0.1 7.0.1 October 25th, 2002
quote
quote wil not evaluate it's argument anymore, but work like in Scheme or Common Lisp.
7.0.1
7.0.1
October 25th, 2002


changes in version 6.0.63 to 6.5.23
back to newLISP home page

copyright (c) 2003, Lutz Mueller, Nuevatec