Maintenance Release newLISP v.10.1.1

Started by Lutz, July 23, 2009, 11:47:07 AM

Previous topic - Next topic

Lutz

• This stable maintenance release has minor feature enhancements and bug fixes



Release notes: http://www.newlisp.org/downloads/newLISP-10.1-Release.html">http://www.newlisp.org/downloads/newLIS ... lease.html">http://www.newlisp.org/downloads/newLISP-10.1-Release.html

Downloads: http://www.newlisp.org/index.cgi?page=Downloads">http://www.newlisp.org/index.cgi?page=Downloads



Ps: the release notes contain 10.1.1 tags for the new and fixed stuff

newdep

#1
Thats actualy quite an addon this 10.1.1 release, nice enhancements..thanks..



Also the manual in the new format it looks very good..

.. nice character-set and clean layout.. smooth!
-- (define? (Cornflakes))

newdep

#2
consistent it is ;-)



> (sqrt -1)

nan

> (sqrt (div -1 0))

inf







> (inf? (sqrt -1))

nan

> (inf? (div -1 0))

true

>
-- (define? (Cornflakes))

newdep

#3
PS: Actualy



> (inf? (sqrt -1))

nan



should be nil ! and not nan..As "Infinite" isn't equal to "Not A Number"
-- (define? (Cornflakes))

Lutz

#4
Its seems to happen only on Windows, but is fine on MAC OSX, FreeBSD and Linux returning 'nil', on Windows all operations on NaN return NaN ... will investigate.

newdep

#5
Aaa yes your right.. I was indeed working on Windows with this one..



But then Its probably OS dependent and not easy to change because the

OS itself in some cases returns NaN instead of Inf...
-- (define? (Cornflakes))

Lutz

#6
But this will be fixed in the next version.



There is currently an old catch-all #ifdef WIN_32 for all operations on NaN values, which can now be eliminated. It was necessary for older compilers on Windows.

cormullion

#7
Talking of NaN, when I went round the supermarket yesterday I noticed that a few of the printed labels showed £Nan.p for the price per 100gm value. I like the way the error worked all the way through to the label printer OK...



Lutz: that new find option looks cool!



Also, on the documentation page of newlisp.org, could you consider slowly migrating some of the entries under Tutorials to point to the docuwiki version, since I probably won't be updating the older versions now, and they're already showing their age... :)

newdep

#8
Now I keep seeing NaN's everywhere..

I just ordered 2 Garlic NaN's at the Indian Takeaway ;-)
-- (define? (Cornflakes))

pjot

#9
The Makefile for 64bit Linux 'makefile_linuxLP64' seems to have a problem... below an changed version so it works with my 64bit Ubuntu 9.04 Linux.
Quote
# makefile for newLISP 64bit v.10.x.x on 64 bit LINUX tested on Intel Core Duo 2

#

# Note, that readline support may require different libraries on different OSs

#



OBJS = newlisp.o nl-symbol.o nl-math.o nl-list.o nl-liststr.o nl-string.o nl-filesys.o

   nl-sock.o nl-import.o nl-xml.o nl-web.o nl-matrix.o nl-debug.o pcre.o



CFLAGS = -m64 -Wall -pedantic -Wno-uninitialized -Wno-strict-aliasing -Wno-long-long -c -O2 -g -DNEWLISP64 -DLINUX



CC = gcc



default: $(OBJS)

#   $(CC) $(OBJS) -m32 -g -lm -ldl -lreadline -o newlisp # for UBUNTU Debian

#   $(CC) $(OBJS) -m32 -g -lm -ldl -lreadline -ltermcap -o newlisp # slackware

#   $(CC) $(OBJS) -m32 -g -lm -ldl -lreadline -lncurses -o newlisp # other Linux Dist

   $(CC) $(OBJS) -g -o newlisp -ldl -lm

   strip newlisp



.c.o:

   $(CC) $(CFLAGS) $<



$(OBJS): primes.h protos.h makefile_linuxLP64


For the other targets you can see a problem as the Makfeile is using both -m32 and -m64. In that situation, linking never succeeds.



Peter

TedWalther

#10
Thanks for the bug report.  I'm looking at incorporating automatic flag setting in the alternative configure file.



Can you post a diff, so I can see which lines you changed?



The following command should work:



diff oldfile newfile > file.patch
Cavemen in bearskins invaded the ivory towers of Artificial Intelligence.  Nine months later, they left with a baby named newLISP.  The women of the ivory towers wept and wailed.  \"Abomination!\" they cried.

pjot

#11
The only thing you have to do is removing all '-m32' entries.



Peter

TedWalther

#12
Ok.  Can you try using configure-alt, and then type make?



Let me know if the alternative configure script generates a correct Makefile for you.



Ted
Cavemen in bearskins invaded the ivory towers of Artificial Intelligence.  Nine months later, they left with a baby named newLISP.  The women of the ivory towers wept and wailed.  \"Abomination!\" they cried.

newdep

#13
newlisp 10.1.1 compiles in the gcc 335 evironment with readline support on OS2

The 'spawn part doesnt work deu to use of mmap inside newlisp which isnt

still not supported in the OS2 port of gcc.





configure and configure-alt return errors.



makefile_os2 contains no tabs



primes.c needs this adjustement but its in the way of win32.



#ifndef OS2

     {"spawn",      p_spawn,  0},

     {"sync",       p_sync,        0},

     {"abort",      p_abort,  0},

     {"send",       p_send,        0},

     {"receive",    p_receive,     0},

     {"share",      p_share,  0},

#endif



Ill check gcc440 and publish on my page the precompiled version.
-- (define? (Cornflakes))

pjot

#14
Quote
Can you try using configure-alt, and then type make?


This 'configure-alt' works fine.


Quote
peter@solarstriker:~/installation/newlisp-10.1.1$ ./configure-alt



Detected Operating System LINUX

Detected memory model LP64, using memory model LP64

UTF-8 is enabled

readline support is disabled



To enable readline support, use the --enable-readline option, and specify the

proper libraries to link by setting the RLFLAGS variable when running

configure.  Also if necessary, use the INCLUDES variable to specify where the

readline header files are."





Type "make" to build your newlisp binary.



If that doesn't work, type "make help"

peter@solarstriker:~/installation/newlisp-10.1.1$ vim Makefile

peter@solarstriker:~/installation/newlisp-10.1.1$ make

make -f makefile_configure

make[1]: Entering directory `/home/peter/installation/newlisp-10.1.1'

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG newlisp.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-symbol.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-math.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-list.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-liststr.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-string.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-filesys.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-sock.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-import.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-xml.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-web.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-matrix.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-debug.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG pcre.c

gcc -m64  -Wall -pedantic -Wno-long-long -Wno-strict-aliasing -O2 -c  -DNEWCONFIG nl-utf8.c

gcc newlisp.o nl-symbol.o nl-math.o nl-list.o nl-liststr.o nl-string.o nl-filesys.o    nl-sock.o nl-import.o nl-xml.o nl-web.o nl-matrix.o nl-debug.o pcre.o nl-utf8.o -m64          -lm -ldl  -o newlisp

strip newlisp

make[1]: Leaving directory `/home/peter/installation/newlisp-10.1.1'


Thanks,

Peter