newLISP Fan Club

Forum => newLISP newS => Topic started by: Lutz on October 01, 2013, 08:44:01 AM

Title: newLISP Stable Release v.10.5.4
Post by: Lutz on October 01, 2013, 08:44:01 AM
This stable release fixes bugs and adds two new call patterns to the t-test function.



Files and release notes: http://www.newlisp.org/index.cgi?page=Downloads
Title: Re: newLISP Stable Release v.10.5.4
Post by: johu on October 04, 2013, 07:43:12 PM
Hello, Lutz.



I finished translartions of manuals.



CodePatterns-10504

newlisp_manual-10504



There are in here (//https).



And,

line 26186 in newlisp_manual
Quotemoderatly significant. With a probability <tt>p = 0.021 (2.1%)</tt> the null hypothesis



moderately significant. With a probability <tt>p = 0.021 (2.1%)</tt> the null hypothesis

Regards,
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 05, 2013, 07:36:55 AM
Thank you very much Johu.



All translations and corrections are online now.:



http://www.newlisp.org/newlisp_manual-jp.html

http://www.newlisp.org/manual_frame-jp.html

http://www.newlisp.org/CodePatterns-jp.html
Title: Re: newLISP Stable Release v.10.5.4
Post by: xytroxon on October 14, 2013, 10:25:27 AM
Sanning the the inprogress - newlisp-10.5.5.tgz      14-Oct-2013 11:17

the following 48 suspect spelling errors were detected...



---------------



newlisp manual



artifial

bject

bufffer

clusteranalysis

comforming

controllling

cript

decription

defininitions

divisable

dsitribution

effectiviely

everage

floationg

freedmom

guarenteed

hyothesis

incorrecttly

informaton

intercative

libary

namspace

numer

ocurring

otation

partions

probablity

proteced

recived

signficant

specifed

speified

stntax

successfull

suport

teminal

ther

unifcation



--------------------



Code Patterns



decribed

folllowing

fuctions

hundered

intitialized

libray

proramming

receved

registerd

wil



------------------



-- xytroxon
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 15, 2013, 12:14:35 AM
Thanks for the corrections. Now online:



http://www.newlisp.org/downloads/newlisp_manual.html

http://www.newlisp.org/downloads/CodePatterns.html







Ps: in case you check again, some are false positives because of embedded HTML for bolding or underlining letters.
Title: Re: newLISP Stable Release v.10.5.4
Post by: xytroxon on October 15, 2013, 07:51:21 AM
Sorry, I didn't have time to verify them all.



I just found my old Win 98 script* that I "lost" when I moved to Win 7 in 2010. The "jargon" word exclusion list may need adjustment.



-- xytroxon



*  Written in some obscure futuristic language called "newLISP" ;o)
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 15, 2013, 08:57:25 AM
yes, it's things like this:


<p>For a description of the JSON format (<u>J</u>ava<u>S</u>cript <u>O</u>bject <u>N</u>otation)
Title: Re: newLISP Stable Release v.10.5.4
Post by: rickyboy on October 15, 2013, 11:45:49 AM
Please pardon me if someone already caught these typos in the manual.



accepts mult-line statements



argumment



whole expression is evaluates in big integer mode



a multi-chracacter string



as strings without without the preceding



to resolve a function's application polymorphously.   [rickyboy]



separator between between namespace



the the empty string



matix- [rickyboy]



userdefined



a buit-in function



in milli seconds



For each openport



net-connnect



for the timout to expire



when starting remode nodes



MAC OS X



When custom configured packets contains zeros



recieved



If no signal handler is speified



reset tratment of signal 2 to startup conditions



Students's t test



In the second syntax, the functions performs



Prosac
Title: Re: newLISP Stable Release v.10.5.4
Post by: FossilizedCarlos on October 15, 2013, 07:29:07 PM
Hello all,



Hope all is well. I installed newLISP on a debian system, and it will not load...


newlisp: error while loading shared libraries: libffi.so.6: cannot open shared object file: No such file or directory

I was curious as to where newLISP looks for this file, as I have created a symbolic link to it, and I still receive the same message.



Thanks!

Carlos
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 15, 2013, 11:53:41 PM
It probably looks for it in either /usr/local/lib or /usr/lib. You could use ldd /usr/bin/newlisp to find out. Perhaps you need to run ldconfig (as root) to configure library paths as found in /etc/ld.so.conf.
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 15, 2013, 11:56:05 PM
Thanks again for corrections:



http://www.newlisp.org/downloads/newlisp_manual.html
Title: Re: newLISP Stable Release v.10.5.4
Post by: rickyboy on October 16, 2013, 07:39:46 AM
The following typos are still there:



argumment → argument



matix- → matrix-
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on October 16, 2013, 08:30:12 AM
Thanks, fixed:



http://www.newlisp.org/downloads/newlisp_manual.html
Title: Re: newLISP Stable Release v.10.5.4
Post by: xytroxon on November 06, 2013, 03:26:56 PM
Tracked down some more spelling errors in the in-progress newlisp-10.5.5.tgz   06-Nov-2013



===================

newlisp_manual.html

-----------------



Arithmetik -> Arithmetic



The following operators, functions and predicates work on big integers:

 Arithmetik operators: + - * / ++ -- %.



-----------------



recieved -> received



wait until status messages are recieved for each of the child processes.



======================

CodePatterns.html

-----------------



evaluater's -> evaluator's



This way variables can be set in the evaluater's environment, and messages can be routed to other processes.



-----------------



fuctions -> functions



Other fuctions could be added to the namespace, e.g. for initializing the sum.



-----------------



recieved -> received



message does not appear before all recieved messages are reported by process identified with B.



======================

newLISPdoc.html

-----------------



descrption -> description



create a file containing a @index and a @descrption link:



-----------------



messsage -> message



parameter: str-message - The messsage string to be printed.



;; @param <str-message> The messsage string to be printed.



-----------------



specificaton -> specification



 Between the tag link specificaton and description is exactly one space:

 

===================

MemoryManagement.html

----------------------



becuase -> because



does not need to evaluate its arguments 3 and 4 becuase they are constants,

 

----------------------



newsly -> newly



Any newsly created result expression is destined to be destroyed later



----------------------



simlar -> similar



evaluateLambda(func, args) works simlar to evaluateFunc(func



----------------------



-- xytroxon
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on November 07, 2013, 03:26:16 AM
Many thanks Xytroxon, everything is updated and online.
Title: Re: newLISP Stable Release v.10.5.4
Post by: jonok on December 14, 2013, 12:37:26 AM
I gather CYGWIN isn't supported any more ... but in any case I found an error in the code



in nl-import.c  if FFI is NOT defined and CYGWIN IS, it breaks the following code, as there is a bracket inside the #ifdef that I'm presuming shouldn't be.



This is the cause of the weird error ...

nl-import.c:470:5: error: static declaration of 'template' follows non-static declaration



With this fix in place, newlisp compiles

the bracket with the FIX comment is currently inside the #ifdef FFI



starting from line 134 of nl-import.c

------------------

#ifdef CYGWIN

if(params != nilCell)

    {

    if(params->next == nilCell)

        {

        params = getString(params, &options);

        if(strcmp(options, "cdecl") ==  0)

            type = CELL_IMPORT_CDECL;

        }

#ifdef FFI

    else type = CELL_IMPORT_FFI;

#endif

    } /* FIX moved from inside previous ifdef FIX */

#else

if(params->next != nilCell)

    type = CELL_IMPORT_FFI;

#endif

------------------



PS, I'm not sure why FFI is NOT defined ... as I have the cygwin libffi installed ... not sure if it's relevant or not.
Title: Re: newLISP Stable Release v.10.5.4
Post by: jonok on December 14, 2013, 01:01:46 AM
OK ... after some more digging ... I enabled using the cygwin libffi packages and ffi.h.

I also testing using the default FFI stuff in the source distribution ... (ie I just fixed the bracket placement as in previous post) and it behaves exactly the same.



newlisp compiles and the qa-specific-test run by make test all run SUCCESSFULLY



the qa-dot test runs but fails at semaphore



jon@jon-Z930 /cygdrive/c/src/newlisp-10.5.4

$ ./newlisp.exe qa-dot > test_qa_dot.txt



Testing built-in functions ...

Bad system call (core dumped)  



jon@jon-Z930 /cygdrive/c/src/newlisp-10.5.4

$ tail test_qa_dot.txt

  -> rotate          

  -> round          

  -> save          

  -> search          

  -> seed          

  -> seek          

  -> select          

  -> self          

  -> semaphore          



If there's interest in getting cygwin back as a supported platform, I'm happy to help.



Jon
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on December 14, 2013, 07:14:46 AM
Support for CYGWIN was dropped in 2005 for two reasons:



1. The newlisp.exe produced was not standalone Windows, but also needed a CYGWIN dll distributed with it to work.



2. Problems with the newLISP fork function on CYGWIN. Windows does not have a native fork(). The CYGWIN implementation gave problems. From what you tell, its seems to work fine on your CYGWIN build, because make test also includes testing the Cilk API using the test routines found in qa-specific-tests/qa-cilk. The Cilk spawn function uses fork() internally. See also here: http://cygwin.com/faq.html#faq.using.fixing-fork-failures



The extended FFI using libffi was not introduced until November 2011. That is why it never has been tried in CYGWIN.



I am glad to hear that it compiles well now and you tried it using make testall. This more than doubles the number of tests compared to make test and also tries to test the libffi API.



The semaphore function is one of the first things to break when porting to other platforms. This function was introduced around the time CYGWIN support was dropping off. I think it only got implemented in the Borland-C compiled versions. Probably it would need new code be written to work on CYGWIN. semaphore is not a critical function in newLISP. You only would use it when working with the lower level fork function directly but not when using the Cilk and message API.



Ps: your brace fix for CYGWIN will be in the next version.
Title: Re: newLISP Stable Release v.10.5.4
Post by: kosh on December 14, 2013, 08:41:35 AM
Quote from: "jonok"the qa-dot test runs but fails at semaphore


To use semaphore function in cygwin, try install cygserver service.



http://cygwin.com/cygwin-ug-net/using-cygserver.html


$ (login as root)
$ cygserver-config
$ cygrunsrv --install cygserver -p /usr/sbin/cygserver
$ cygrunsrv --start cygserver
$ make -f makefile_cygwin
$ ./newlisp.exe -n qa-dot

Testing built-in functions ...

Testing contexts as objects and scoping rules ...

total time: 5411

>>>>> ALL FUNCTIONS FINISHED SUCCESSFUL: ./newlisp
Title: Re: newLISP Stable Release v.10.5.4
Post by: jonok on December 14, 2013, 02:19:29 PM
I can confirm that installing cygserver makes the semaphore test succeed!



Also, after tweaking qa-ffi to handle CYGWIN (by equating Windows to Cygin), eg replacing Win32 test with



(if (or (= ostype "Win32") (= ostype "Cygwin"))



all tests pass ...



$ make testall

make checkall | grep '>>>'

>>>>> ALL FUNCTIONS FINISHED SUCCESSFUL: ./newlisp

>>>>> Dictionary API tested SUCCESSFUL

>>>>> XML API tested SUCCESSFUL

>>>>> XML callback tested SUCCESSFUL

>>>>> JSON translation tested SUCESSFUL

>>>>> Signal testing SUCCESSFUL

>>>>> Network eval and network file functions IPv4 SUCCESSFUL

 >>>> Cannot bind socket. Cannot test IPv6 on this platform.

>>>>> The Cilk API tested SUCCESSFUL

>>>>> Reference testing SUCCESSFUL

>>>>> Time per simple message: 31 micro seconds

>>>>> Time per round trip : 160 micros seconds

>>>>> Time per proxy trip: 310 micro seconds

>>>>> Message API tested SUCCESSFUL

>>>>> Memory allocation/deallocation SUCCESSFUL

>>>>> Exception testing SUCCESSFUL

>>>>> Floating point tests SUCCESSFUL

>>>>> FOOP nested 'self' tested SUCCCESSFUL

>>>>> FOOP symbol protection SUCCESSFUL

>>>>> UNIX local domain sockets SUCCESSFUL

>>>>> In-place modification passed SUCCESSFUL

>>>>> qa-utf16path: This test is only used on UTF8 enabled versions.

>>>>> 0.047 ms per write->read pipe/fork (0.0356 ms Mac OSX, 1.83 GHz Core 2 Duo)

>>>>> ffilib API testing SUCCESSFUL

>>>>> callback API 1234567890 (simple callback API) SUCCESSFUL

>>>>> callback API 1234567890 12345.6789 (extended callback API) SUCCESSFUL

>>>>> struct tested SUCCESSFUL

>>>>> struct ptr tested SUCCESSFUL

>>>>> abs, float, bigint, +, -, *, /, % big integers tested SUCCESSFUL

>>>>> parsing big integers SUCCESSFUL

>>>>> Benchmarking all non I/O primitives ... may take a while ...

>>>>> Performance ratio: 0.48 (1.0 on Mac OSX, 1.83 GHz Core 2 Duo, newLISP v10.2.8)
Title: Re: newLISP Stable Release v.10.5.4
Post by: Lutz on December 15, 2013, 07:05:16 AM
looks good!



What do you put here in qa-ffi:
(define LIBC
  (case ostype
    ("Win32" "msvcrt.dll")
    ("Cygwin" "???????")
    ("OSX" "libc.dylib")
    ("Linux"

what is the name of the library, you would use for Cygwin?
Title: Re: newLISP Stable Release v.10.5.4
Post by: jonok on December 15, 2013, 03:27:35 PM
I took a punt on equating Cygwin to Win32 so I put in msvcrt.dll, and it worked.



BTW, you should look closely at my fix ... it's completely naive.