development version newLISP 8.6.5

Started by Lutz, September 14, 2005, 06:19:13 AM

Previous topic - Next topic

Lutz

* new function 'randomize'

* new function 'net-eval' for simpler distributed computing

* revised logging system

* bug fixes



For change notes and files see http://newlisp.org/downloads/development/">http://newlisp.org/downloads/development/



Lutz

HPW

#1
Hello Lutz,



thanks for the new release!



But there is a bug in newLISP.dll which breaks some of my plugin-functions.

On every return-string of the DLL a single space-char is added.



Examples:

'[text] ........[/text] '

'nil '



Note the last extra space. Since I match for the last seven bytes '[/text]' I now get no match and return-string processing failed.
Hans-Peter

HPW

#2
Seems also been added in newLISP-tk!



Later:

Cross-tested with 8.6.0 where it worked without the space.
Hans-Peter

Lutz

#3
The extra space is on purpose and the change is mentioned in the CHANGES notes. This is the reason why:



When evaluating multiple expressions remotely over Tcp/Ip, pipes or any other communications channel, then the results come back in a string buffer. When numberrs or strings are returned those get concatenated when no space is inbetween. The new 'net-eval' evaluates the buffers coming back in order to facilitate lisp expressions, i.e. lists as return values. The space ensures that results are not concatenated and only the last is returned as in a (begin ...) block.



Lutz

HPW

#4
So will it stay this way also for the DLL-version?

If so, I will modify the plugin to work with the new end-tag.
Hans-Peter

HPW

#5
I have released a hpwNewLISP 2.08 which adresses the new return-string.
Hans-Peter

Lutz

#6
Yes, dynamic and shared libraries are working the same way (win32, osx, unix)



Lutz

HPW

#7
It seems that this great new release is pretty influenced by your kozorzu work.

;-)



PS: Distributed computing is far beyond my current use and understanding of newLISP,

but who knows when it might become usefull.
Hans-Peter

Fanda

#8
There is an error in 'randomize':



> (randomize '())

()

> (randomize '(1 2))

(2 1)

> (randomize '(1))

=> infinite loop



It doesn't check for list of length 1.



Fanda

Lutz

#9
thanks for catching this



Lutz

Fanda

#10
I like to test your development versions.



I use newLISP only for playing, but I test it to allow other people write some real stuff.



Fanda