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 ]
· New 'extend' works like 'append' but modifies first list or string parameter.
· New ++ and -- increment/decrement in integer mode.
· Functions 'inc/dec' now always work in floating point mode.
· In 'find' the regex option can be specified as nil when offset is present, this way 'find' with offset does not have to be a regex search.
· In 'starts-with/ends-with' nil is not allowed as a parameter for case insensitivity anymore use the regex option 1 instead (nil always did regex anyway).
· Changed configure-alt now allows defintion of different install and exe prefixes. For questions and support for configure-alt, please contact Ted Walther: ted@reactor-core.org.
· Makefile has been simplified and the install part extracted as: makefile_original_install, (used by configure).