newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics.
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, advanced math, financial, simulation, regular expression, statistics, 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.
Here are some key features of "newLISP":
A Modern Built-In API:
· Regular espressions
· Pattern matching with unify
· Networking functions: TCP/IP, UDP, HTTP, ICMP (in net-ping)
· XML functions
· Advanced Math and classic Statistics functions
· Bayesian Statistics functions
· Financial functions
· Date and time functions
· Distributed applications support
· I/O transparent over local files or remote files via HTTP
Expandable API:
· import functions from C libraries
· Modules for MySQL, SQLite, Zlib, Crypto, Postscript etc.
· document generation support for user written modules: newLISPdoc
Complete Documentation:
· Users Manual and Reference
· Cookbook for common solutions Code Patterns in newLISP
· Introductions, e.g.: Introduction to newLISP
· Training videos (see Documentation page)
Advanced Automatic Memory Management:
· ORO memory management
· Syncronous for repeatable processing times in real-time tasks
· Fast and small
Multiprocessing:
· UNIX forks (not on Win32)
· Semaphores
· Shared memory
· local domain UNIX sockets for fast IPC, new on v.9.1.4 (not on Win32)
64 bit support:
· standard in 32-bit version for integers and some file operations
· LP64 Memory model support makefiles for LINUX, MacOS X and SOLARIS, TRU64
Distributed Computing Support:
· net-eval function for remote evaluation on multiple nodes
· HTTP and net-eval server modes built-in (no code required)
Small and portable:
· Only around 200KB in size (depending on plaform)
· Very fast load time for CGI and scripts
· Uses only very essential UNIX libs found on the smallest systems
· Makefiles for FreeBSD, NetBSD, OpenBSD, MacOS X, LINUX, SOLARIS, TRU64, Win32.
Embeddable:
· Shared library versions for all Platforms (.so, .dylib, .dll)
International:
· UTF-8 and Unicode support compile flavors
What's New in This Release: [ read full changelog ]
· Repeating ffi 'callback' with the same symbol will just return the old address but not redefine the callback or return nil (as in 10.3.9).
· examples/opengl-demo-ffi.lsp now also working with extended callback API on 32-bit and 64-bit.
· Huge speed improvement in 'read-line' with file handle parameter, now as fast as STDIN. For file and pipe operations.
'struct's returned by the extended FFI will now be unpacked automatically. Nested structures will be unpacked recursively too:
· Imported functions can now be default functors: (define myprintf:myprintf (import "libc.dylib" "printf"))
· All makefile_mingwdll* tweaked for MinGW gcc 4.6.2. But binaries are still delivered compiled on gcc 4.4.0 and made on Windows XP SP2, run fine on Windows 7. 10.3.6 to 10.3.9 had newlisp.dll compiled for cdecl now in 10.3.10 newlisp.dll calling conventations are back to stdcall.