* some missing gaps filled in reference passing
* fixed some memory leaks in matrix functions and 'count'
* HTML and PDF manual formatting updates
for users of the recent version 9.4.0 it is recommended to update to version 9.4.1
files: http://www.newlisp.org/downloads/
or here: http://www.newlisp.org/index.cgi?page=Downloads
Compiles without any errors on Tru64 Unix. Only one test in 'qa-dot' fails:
Quote
olga> ./qa-dot
Testing built-in functions ...
Testing contexts as objects and scoping rules ...
total time: 6464
>>>>> TESTING: newlisp FINISHED WITH ERRORS:
>>>> share failed ERR: not enough memory in function share
called from user defined function QA:unix-test-share
called from user defined function QA:qa
Testing contexts as objects and scoping rules ...
total time: 8671
>>>>> TESTING: newlisp FINISHED WITH ERRORS:
>>>> share failed ERR: not enough memory in function share
called from user defined function QA:unix-test-share
called from user defined function QA:qa
This system has 1Gb internal RAM memory.
BTW also on my 64bit Linux system (Linux 2.6.22.8 #1 SMP Tue Sep 25 20:41:25 BST 2007 x86_64 x86_64 x86_64 GNU/Linux) newLisp compiles well, but there are some errors:
Quote
peter@AsteroidRider:~/installation/newlisp-9.4.1$ ./qa-dot
Testing built-in functions ...
Testing contexts as objects and scoping rules ...
total time: 3094
>>>>> TESTING: /usr/bin/newlisp FINISHED WITH ERRORS:
>>>> cons failed nil
>>>> date failed nil
>>>> date-value failed nil
>>>> pipe failed nil
Are these problems in the testsuite, or should I dig into it...?
Cheers
Peter
OK I couldn't wait. These are the results for (cons):
Tru64Unix
Quote
newLISP v.9.4.1 64-bit on Tru64Unix IPv4, execute 'newlisp -h' for more info.
> (= (cons 'c '(a b) -1) '(a b c))
true
> (cons 'c '(a b) -1)
(a b c)
Linux 64 bit
Quote
newLISP v.9.4.1 on Linux IPv4, execute 'newlisp -h' for more info.
> (= (cons 'c '(a b) -1) '(a b c))
nil
> (cons 'c '(a b) -1)
(c a b)
Hmmm... on 64bit Linux I started compilation with 'make', not specifying some 64bit Makefile. The strange thing is that my applications appear to work OK with this newLisp version.
When I compile with 'makefile_linux64' the (cons) works but then the newLisp binary itself is a 32bit application. Then I cannot import 64bit libraries anymore.
On Tru64Unix however it is all working correctly and I can also import 64bit libraries... any idea what I can do to make all work on 64bit Linux?
Thx, P.
Quote
Hmmm... on 64bit Linux I started compilation with 'make', not specifying some 64bit Makefile. The strange thing is that my applications appear to work OK with this newLisp version.
for a 64bit app on 64 bit Linux use:
make -f makefile_linux64LP64
for a 32bit app on 64 bit Linux use:
make -f makefile_linux64ILP32
never do just make on a 64bit Linux, you will end up with all kind of weird behavior
ps: how did you come up with the -1 in 'cons'? 'cons' does not have a third parameter. It should ignore the third parameter. Perhaps you mean 'push'.
Quote
how did you come up with the -1 in 'cons'? 'cons' does not have a third parameter. It should ignore the third parameter. Perhaps you mean 'push'.
No, I have copied that line from your own 'qa-dot' testfile, line 540.
The 'make -f makefile_linux64LP64' now works, except for this:
Quote
peter@AsteroidRider:~/installation/newlisp-9.4.1$ ./qa-dot
Testing built-in functions ...
Testing contexts as objects and scoping rules ...
total time: 3126
>>>>> TESTING: /usr/bin/newlisp FINISHED WITH ERRORS:
>>>> pipe failed nil
Again, how well up to date is the 'qa-dot'? For this may not be a real error. Same with the (share) on Tru64Unix.
Peter
Quote
No, I have copied that line from your own 'qa-dot' testfile, line 540.
yes, I just found this in the CHANGES notes for version 8.8.10. This was put in as an experiment for consing on the end of a list and tested, but never documented, and I will take it out.
'pipe' may have failed for timing reasons, the timing is tuned for my testing on the usual OSs. You could increase the '(sleep 500)' to a higher value in the function 'test-pipe'. The parent starts a new child process using 'process' and then waits for 500 ms before writing to the pipe, then waits another 500 ms before reading it back.
For an extended test do:
make test
and it will run more tests.