newLISP 10.1.1
newLISP 10.1.1 Ranking & Summary
newLISP 10.1.1 description
newLISP 10.1.1 offers you an effective Lisp-like, general-purpose scripting language. It has all the magic of traditional Lisp but is easier to learn and use. newLISP is friendly, fast, and small. Most of the functions you will ever need are already built in. newLISP runs on most OS platforms.
newLISP is a LISP-like scripting language for doing things you typically do with scripting languages: programming for the internet, system administration, text processing, gluing other programs together, etc. newLISP is a scripting LISP for people who are fascinated by LISP's beauty and power of expression, but who need it stripped down to easy-to-learn essentials. newLISP is small on resources like disk space and memory but has a deep, practical API.
LISP is an old language born, grown, and standardized in times very different from today, times when programming was for highly educated people who engineered programs. newLISP is LISP reborn as a scripting language: pragmatic and casual, simple to learn without requiring you to know advanced computer science concepts. Like any good scripting language, newLISP is quick to get into and gets the job done without fuss. It has all of the essential elements that made LISP famous: symbol processing, lists, anonymous functions (lambda expressions), and S-expressions as a simple syntax for both data and program.
newLISP has a modern relevant API (Application Programming Interface) with networking, regular expression, advanced math, simulation, statistics, financial, HTTP, and XML functions built right into it. newLISP modules are available that let you connect newLISP to databases, mailservers, and more. newLISP can interface to standard shared libraries on Win32 and Linux/UNIX systems to add even more functionality. The newLISP API is user-driven and adapts over time to the ever-changing requirements of tomorrow's applications.
Major Features:
- Friendly — fast — small
- Documented, modern, complete API
- Expandable with modules and shared C-libraries
- Built-in server modes for distributed computing
- Parallel processing support with Cilk -like API
- Mac OS X, UBUNTU Linux and Win32 installers
- IDE written using newLISP-GS (Gui Server)
- GNU General Public License GPL
- See the big list of features
- Search Twitter for newLISP.
- Improved support for concurrency and multi core CPUs
-
- Release 10.1 improves concurrency support for multi core CPUs with new messaging functions for parent and child processes launched with spawn. The new non-blocking API works without locks and semaphores and is safe against collisions. Besides constants, any expression with any size can be transferred with the new send and receive functions. Objects bigger then the OS's shared memory pagesize are transferred using files internally. The new message API is only available on Mac OS X, Linux and other UNIX.
- New and changed functionality
-
- dotree can filter hash symbols starting with an underscore character as used in hashes and bayes-train when using an optional true flag.
- xpand when used with an association list as second parameter can now take an optional third boolean parameter to indicate evaluation of the value part in associations:
- Expand and letex now also expand symbols on the top level of an expression or letex body:
- Eliminated stack-size dependence in functions find and map.
- Find for strings can take an additional offset option (v.10.1.1).
- A new inf? predicate tests if a number is infinite:
Lambda - functions now can be of unlimited length in their body without affecting the runtime result-stack. Before the number of statements in a lambda was limited to 2 to 4 thousand. - New last-error replaces eliminated error-number and error-text and returns number and text in a list consistent with the behavior of net-error and sys-error. All three functions now behave the same way and can enumerate all errors when given the error number as parameter.
- Net-eval can take either an expression or a string for remote evaluation (v.10.1.1). In previous versions only a string was accepted. Note that in any case symbol bindings are in the remote environment.
- The prob-z function is now implemented using the error function errf and gives results with a higher precision.
- The receive function receives a messge from a parent or child process launched with spawn.
- Regex can take an additional offset option (v.10.1.1).
- The send functions sends a message to a parent or child process launched with spawn.
- Any datatype can now be specified as a start expression in series (v.10.1.1).
- The share function now can share any lisp expression and size. On older versions only boolean, number and strings constants were supported.
- The function swap now can swap the contents of two places in lists, arrays or variables specifying locations in the same form as done by the functions setf or setq and inc or dec. The old syntax of swap using three parameters has been eliminated. The new syntax also allows swapping places from two different data objects. In the old form this was only possible when swapping the contents of two variables. Now two elements from two different lists or arrays can be swapped too:
- The function sys-info now also returns the process id (pid) of the parent process which launched the current process using fork or spawn. The pid is 0 (zero) if newLISP was launched not from fork or spawn. The pid can be found at position -4. It is recommended to access the last four members with negative offsets, to be compatible with older versions of newLISP.
- The function write-buffer now behaves like write-line. When no parameters are given the contents of (current-line) line is written to stdout. Whithout the second parameter the contents of (current-line) is written to either the string buffer or file handle sepcified in the first parameter.
- The new xfer-event function monitors byte-transfer in get-url, post-url and put-url and in all file operations which take URLs:
- Changes and additions in external files
-
- The MySQL interface using the mysql.lsp module file has been ovehauled and the mysql5.lsp and mysql51.lwp module files have been eliminated. The new mysql.lsp should be version independent for versions including and after 4.0.
- A new postgres.lsp interfaces to the PostSQL database.
- The SQLite sqlite3.lsp module has been expanded with parameter binding fucntionality for safer ussage of the database in web applications, where the danger of SQL injection exists.
- All three modules mysql.lsp, postgres.lsp and sqlite3.lsp have also been tested on 64-Bit newLISP.
- The documentation utility newlispdoc now accepts custom tags. Any line starting with ;; @mytag my description will be formatted like any other tag line, but has no effect other wise.
- In the newLISP-GS editor newlisp-edit(.lsp) in both the editor and the monitor pane, font face and size now can be changed interactively.
- Added makefiles for 64-bit BSD, tested on OpenBSD and for ARM Nokia 810.
- When installing using make install or when installing from the UBUNTU Linux binary installer, a newlisp-x.x.x and a symbolic link is created for newlisp → newlisp.x.x.x, where x.x.x is the version number. This older versions of the newLISP binary are not deleted and are still accessible. The binary installers for Win32 and Mac OS X have not changed.
- When building newLISP on Mac OS X or other Unix, make check is now recognized additionally to make test and make all check will make and test.
- An alternative configure script configure-alt has been added see doc/INSTALL for details (v.10.1.1).
- Bug fixes
-
- Bind did not allow for recursive-incremental definitions.
- The definition of legal? for symbols was too restrictive and caused longer code than necessary when serializing symbols using save or source
- Eval-string did not restore correct eror handling when an error procedure was specified in the parameters (v.10.1.1). This could lead to crashes on subsequent error conditions.
- Some HTTP errors where not registered in net-error.
- An unknown host result with net-lookup is now registered and can be retrieved with net-error.
- Pack did no convert from floats (doubles) to integers only from integers to floats. Now pack will correctly convert in both directions.
- The replace in remove mode did not work correctly when all list members where nil.
- Under some circumstances nil and true could confuse the sort and unique functions.
- Swap now throws and error when the second parameter is mising (v.10.1.1).
- The floating point division zero by zero and subtracting two infinite numbers from each other will now return NaN:
- In the guiserver.lsp library the function gs:color-tag was documented but not implemented (v.10.1.1). Tnis is an important function when implementing animations and board games.
- Fixed a memory mapping problem surfacing on IBM AIX compiled newLISP.
- Better handling of status in HTTP headers sent back from newLISP server mode.
newLISP 10.1.1 Screenshot
newLISP 10.1.1 Keywords
Bookmark newLISP 10.1.1
newLISP 10.1.1 Copyright
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com