development release newLISP v.10.0.3

Notices and updates
Post Reply
Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

development release newLISP v.10.0.3

Post by Lutz »

• 'swap' now exchanges any two places
• bug fixes

Files and changes notes:

http://www.newlisp.org/downloads/development/

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Hi Lutz,

Is it perhaps an option to also install the /doc directory from the tgz
package into the /usr/share/newlisp directory?


Thats has a big advantage for seeking the current doc version with
the installed version.. I always have to move my bookmarks to the
new release..instead of having a steading one pointing to /usr/share/newlisp/doc


PS: thanks for the 10.0.3 release!
-- (define? (Cornflakes))

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Wow.. Im stupid ;-)

I never thought is was installed in /usr/share/doc/newlisp ..
-- (define? (Cornflakes))

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

But just for the clarification..

release 10003 means 10.0.03 or 10.00.3 ?
-- (define? (Cornflakes))

Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

It means: 10.0.03 or 10.0.3. The middle number only goes from 0 to 9, but the last from 0 to 99.

itistoday
Posts: 413
Joined: Sun Dec 02, 2007 5:10 pm
Location: I'm sitting right next to you. :)
Contact:

Post by itistoday »

Any significant bug fixes...? It'd be nice to know what to watch out for with previous versions.
Get your Objective newLISP groove on.

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

10.0.3
Expanded 3rd syntax in 'swap' (swap <place> <place>) The first two old
call patterns are deprecated and will be removed in a future version.

Eliminated a stacksize dependence when using 'find' with 'match'

IBM AIX for PPC has been added as a platform and using the IBM xlc_r or gcc
compiler. Some issues with newLISP server mode are not resolved yet.

Fixed a memory mapping problem surfacing on IBM AIX 32-bit compiles

Better handling of status in HTTP headers sent back from server

'nil' and 'true' confused 'sort' and 'unique', fixed.
-- (define? (Cornflakes))

itistoday
Posts: 413
Joined: Sun Dec 02, 2007 5:10 pm
Location: I'm sitting right next to you. :)
Contact:

Post by itistoday »

Thanks newdep! Sorry, I forgot to check the CHANGES.txt file in the dev directory. :-\
Get your Objective newLISP groove on.

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Hi Lutz,

some questions about the SHA1.txt files

1) The SHA1.txt files on your download pages, are those correct?
Or are the files updated afterwards?

2) Will you always maintain the SHA1.txt file in the dowload section?
If yes ill include the sha1 check in my update script..

Norman.
-- (define? (Cornflakes))

Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

The SHA1 files are made on the server after I uploaded the files, and I have a copy of them outside of the ISP. There will always be a SHA1 file in the download and download/development section.

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Aha oke.. Well My sha check is different then the ones you display ;-)
Thats why my question was..


PS: Could you simplify the SHA1.txt content?

file sha1
file2 sha1
file3 sha1

instead of (file)= sha

Just a request but can live with the current way you display it ;-)
-- (define? (Cornflakes))

Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

I am using the 'openssl' utility installed on FreeBSD of my ISP, and also installed on my Mac OS X home machine. The way you see it, is the way it comes out. This is what I do:

Code: Select all

openssl sha1 *.tgz *.deb *.exe *.dmg > SHA1.txt

I just checked, and they are still the same :-)

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

yes correct... But crypto.lsp thinks differently ;-)

Have a coffee first ;-)



$ openssl sha1 /tmp/newlisp-10.0.3.tgz
SHA1(/tmp/newlisp-10.0.3.tgz)= 73ccc454cd6be078d055af8954dca19d570f769e

$ newlisp

newLISP v.10.0.3 on Linux IPv4, execute 'newlisp -h' for more info.

(MAIN)-> (load (append (env "NEWLISPDIR") "/modules/crypto.lsp"))

(MAIN)-> (crypto:sha1 "/tmp/newlisp-10.0.3.tgz")
"ab1624608d2975fd9c49c35dedc1c4133e64af32"
-- (define? (Cornflakes))

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Correction!

Ill have a coffee first ;-)

Its OKE !
-- (define? (Cornflakes))

Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

yes, not the file-name but the file itself (after the coffee):

Code: Select all

> (module "crypto.lsp") ; try this (predefined  since 10.0.2 ;-) )

> (crypto:sha1 (read-file "newlisp-10.0.3.tgz"))
"73ccc454cd6be078d055af8954dca19d570f769e"
> 

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Haaa slick! yeah I did not know that 'module existed..

Actualy.. How do I catch an (exit) from a module or load?

If a library cant be found then i.e. crypto exists, but the Main program too,
and thats not what i want..

I tried renaming 'exit with a constant but its not realy charming..

any idea?
-- (define? (Cornflakes))

Lutz
Posts: 5279
Joined: Thu Sep 26, 2002 4:45 pm
Location: Pasadena, California
Contact:

Post by Lutz »

Code: Select all

(if-not (catch (module "odbc.lsp") 'err) (println "Could not load: " err))
Could not load: ERR: problem loading library in function import : "dlopen(odbc32.dll, 9): image not found"
but this works only on older modules, newer modules should be rewritten to throw a user error with 'throw-error', which then can be handled from the top call.

In crypto.lsp instead of:

Code: Select all

(set 'library (files (or
    (find true (map file? files))
    (begin (println "cannot find crypto library") (exit)))))
change to:

Code: Select all

(set 'library (files (or
    (find true (map file? files))
    (throw-error "cannot find crypto library"))))
then it will work with a 'module' call like shown above.

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

Yes that is correct for local files,
but I like more the remote loading aproche, where Im not the maintainer...

(load "http://www.newlisp.org/code/modules/crypto.lsp")

This is what I use now in the main script

(constant (global 'quit) exit)
(constant (global 'exit) nil)

This still throws the error from (exit) but at least the main script continue's running..Still not very reliable because it can be overruled.. but it works..

Now I only need a way to Catch the output of the module when it
cant find the library's... (silent (catch doesnt seems to do the trick...
-- (define? (Cornflakes))

newdep
Posts: 2019
Joined: Mon Feb 23, 2004 7:40 pm
Location: Netherlands

Post by newdep »

actualy the only proper way currently is to pre-check the
library existence in the main-script.

using a 'exit rewrite isnt a good solution because the update.lsp
script is also embeded. (and i need to rewrite the (exit) inside the
script also to a throw ;-)

but still it would be nice to catch an external (exit) somehow
without modification of the original script & suppress messages
from a loaded newlisp script/module. (I cant get Catch to fully do it)
-- (define? (Cornflakes))

Cyril
Posts: 183
Joined: Tue Oct 30, 2007 6:27 pm
Location: Moscow, Russia
Contact:

Post by Cyril »

newdep wrote:Haaa slick! yeah I did not know that 'module existed..
Me too! Searching for more surprises...

Code: Select all

newLISP v.10.0.3 on Win32 IPv4, execute 'newlisp -h' for more info.

> (filter (fn (x) (lambda? (eval x))) (symbols))
(module)
No luck! ;-)
With newLISP you can grow your lists from the right side!

Post Reply