Enterprise Development Tools, Lisp, Free Lisp,
ANSI Common Lisp, Allegro CL, AllegroCache, RDF, OWL, SPARQL, Semantic Web Technology, AllegroGraph, Triple Store, RacerPro, TopBraid Composer, AI, LLM, SMP, Symetric Multiprocessing (original) (raw)
Allegro CL 11.0
The Ultimate Neuro-Symbolic AI Programming Platform
Allegro CL ®the most powerful Symbolic AI development system available today offers a perfect match with LLMs for fact-based enterprise-wide, AI application development. The power of Symbolic AI with LLMs, required by fields ranging from Life Sciences to Manufacturing to Financial Analytics, is delivered by Franz's complete AI technology stack, which also satisfies the need for Retrieval Augmented Generation (RAG). Allegro CL 11.0 is the most effective system for developing and deploying Neuro-symbolic applications to extend AI in the real world.For more information, contact [email protected].
- Combination of classic AI symbolic reasoning + Large Language Models + Graphs.
- Plug-in AllegroGraph for seamless Semantic Knowledge Graph capabilities,
- Use Lisp or Prolog to write rules for symbolic reasoning with or without AllegroGraph.
- Extract structured and unstructured information from LLMs and store in AllegroGraph.
- Perform fast, accurate, and intelligent text retrieval and query answering with the built in Vector Database.
"Franz has further advanced its industrial-strength Common Lisp platform with the release of Allegro CL 11. Impressive ARM support on both Mac and Linux means switching architectures is painless. Internally, hashtables and sorting are measurably improved. ACL 11 is a great platform for development professionals"
Jason Cornez CTO, RavenPack International
"Common Lisp remains one of the best languages for Artificial Intelligence applications, its flexibility enables rapid experimentation and deployment. Today's Lisp compilers are robust and flexible allowing development entirely within Lisp or in combination with other languages. For example, our CyclePad system for helping engineering students learn thermodynamics is written entirely in Allegro CL. Similarly, our sketch understanding system, CogSketch, which is a novel platform for both cognitive science research and education is primarily written in Allegro CL with two modules in C."
Ken Forbus - Walter P. Murphy Professor of Computer Science at Northwestern University
"For several years now, Triton has been harnessing the extraordinary power and flexibility of Common Lisp, and more specifically the Allegro CL platform, to research and rapidly develop cutting-edge approaches for the implementation of advanced embedded AI prototypes. With Allegro CL 11 this superbly integrated development platform continues to evolve with many powerful and handy new capabilities. Panos Lekkas, VP - AI Systems, at Triton Systems, Inc."
Panos Lekkas, VP - AI Systems, at Triton Systems, Inc.
Enhancements
See the Release Notes for a complete description of new features and enhancements.
New Features in 11.0
- LLM Integration for Neuro-Symbolic Computing
- Knowledge Graph and Vector Storage capabilities via AllegroGraph
- AWS Graviton Processor Support - ARM Processor
- Extensible lock-free hash-table imprelementation
- Native port to Apple Silicon and Software is Notarized
- Bowser Based IDE - CG/JS version of Common Graphics and the IDE
- Prebuilt fast-but-unsafe clrhash implementation.
- Significant changes to the runtime analyzer.
- New protection against trashing system constants.
- New situations for atomic update operations on slot-value calls.
- New :libname keyword argument to ff:def-foreign-call.
- MariaDB databases work with Allegro CL MySQL functionality.
- Support of package-local nicknames.
- New embellisher metaclass allows adding code to the class definition.
- AllegroServe documentation moved to github.
- Sort reimplemented to perform better on specialized arrays.
- The resource mechanism is more efficient on SMP lisps.
- Performance improvement for many boolean operations.
- New compile-file strategy
- More than 400 fixes and 150 enhancements (see the Release Notes for the highlights).
Overview
Powered by Common Lisp, Allegro CL's true dynamic object technology allows developers to generate leading edge, mission-critical applications that are robust, extensible, and easy to evolve and deploy.
AllegroCache-- The enabling technology behind Allegro CL persistent objects is a high-performance, scalable, dynamic object-caching database. It allows programmers to work directly with objects as if they were in memory while in fact the object data is always stored on disk. It supports fully ACID-compliant transaction mode with both long and short transactions. It automatically maintains referential integrity of complex object networks. AllegroCache provides 64-bit real-time data caching on the application memory to achieve very high data access throughput over as large a data set as required.AllegroCache features include:
Persistent CLOS Objects in Allegro Common Lisp -- Class definitions are stored as first class objects in the database
Dynamic Schema Evolution -- Redefine classes on the fly, persistent objects are lazily updated when accessed
Standalone & Client Server -- Single user on local disk or multiple clients talking to single server over sockets
Bulk Loading -- Improved performance adding objects to the database
Transaction Logging -- Restore databases after power failure or disk crash
Expression Cursors -- Iterate over a set of instances that satisfy a predicate over multiple slots of an instance
Range Queries -- Retrieve objects with slots that match a range of values
Native lisp btrees -- Comparable in speed with BerkeleyDB, with more control
Transactional model -- All ACID features, commit/rollback, and optimistic concurrency
Supports databases with billions of objects (and Terabytes of Data)
Convenient macros to loop over classes, maps and sets
Indexed slots -- A mapping from slot-values to objects, retrieve objects and object ids (oid)
Maps -- Transactionally safe persistent hashtables
Sets -- Persistent large collections of objects
Supports most common datatypes -- Including unsigned-byte 8 arrays, maps and sets
Object ID's unique for the lifetime of the database -- User accessible
Dump the database into XML files
Restore database from the XML dump
User controlled caching -- For the size of the btrees and the total number of objects stored in the cache
Connectivity:
SAX/DOM XML Parsers: Validating XML parsers, successfully tested against all major test suites. Analyze and process enterprise XML data extremely fast
Allegro Webactions: A Web Application Framework for building dynamic web pages that can be easily maintained and updated
AllegroServe: A dynamic, high-performance Lisp-based web server that also interoperates with other web/application servers
HTML Parser: Process and analyze web page data
SSL Socket Streams: Secure internet transactions
XML RPC(Remote Procedure Call): Allows Lisp applications to communicate via XML
Lisp RPC(Remote Procedure Call): Allows two Lisp applications to more easily communicate
IPv6-- Internet Protocol version 6 socket support
Development:
Allegro Prolog: A classic AI programming language in Allegro CL for Logic Programming, with an execution speed in excess of 1 Mlips and running essentially cons free
Pcache -- An update to Allegro Prolog, an implementation of Prolog within Allegro CL. It allows Allegro Prolog to be used as a query language for AllegroCache
Regular Expressions: A fast, Perl-compatible Regular Expression matcher
Allegro Runtime Analyzer: Profiles function calling patterns and analyzes their space and time utilization for code optimization, an important tool for tuning application performance
Very large array-total-size-limit (229 for 32-bit, 260 for 64-bit)
Operating System Interface: Built-in interface for direct interaction between Allegro CL and the OS, without the need to write foreign code
Shell Module: Provides access to the Linux/Mac commands at the application code level, enhancing performance, portability and consistency across platforms
asdf System Definition Facility (see www.cliki.net/asdf for info on asdf)
OpenGL Interface on platforms with available OpenGL libraries (seewww.opengl.org for more information)
IDE and Common Graphics for greater usability and navigation
HTML Widget in Common Graphics -- Used by the IDE help facility for better integration
Cryptography: SHA512, RMD160, et al support
Localization support for Unicode international character sets, local time, currency, etc.
Graphical profiling and debugging tools for multiple threads
Interact with GNU Emacs with the Franz Inc. Emacs-Lisp interface or SLIME
The Allegro CL Source Stepper
The Allegro CL Source Stepper is an offering unique to existing Lisp debuggers, and in fact probably unique to source-level debuggers provided by other languages. The Allegro Source Stepper provides the following:
- Debug/stepping info can be loaded on demand, without recompiling the function under debug.
- Assembler instructions can be displayed and stepped.
- Macros are rendered transparent, allowing macro forms as well as all levels of their expansions to fully participate in the debug process.
- Language personalities can be defined and loaded, which customize the debugger behavior for domain specific languages implemented in Common Lisp.
The source stepper displays source code while stepping through a form. When using it with the IDE, the source stepper is associated with the new Stepper Dialog. The Stepper Dialog allows carefully testing compiled code by interrupting execution at selected forms in the original source code and at macroexpansions of the code, allowing state to be examined at each stop point.
The dialog displays the original lisp source code for a function or method that is being stepped through, highlighting the form at which the stepper is stopped. Button widgets allow proceeding in various ways each time execution has been interrupted. The dialog also displays macroexpanded forms and the values of arguments and local variables, updated after each step. The IDE's code editor can be invoked at any time on the code being stepped through.
The dialog is implemented on top of the base lisp's stepping facility, which also has a simpler textual interface that can be used in a lisp listener. See The Lisp DeBug (ldb) stepperand The source stepper, both in debugging.html.
Stepper Dialog Example (click on picture to enlarge)
The Definition Pane
The Definition Pane (at the top of the dialog) shows the source code for the function or method that's currently being stepped through. This is a copy of the real source code text, complete with comments and original line breaks. The form at which the stepper is currently stopped will be highlighted with a different background color. Red parentheses are drawn around any breakpointed forms. The breakpointable form under the mouse (if any) in the Definition Pane will have a blue border drawn around it.
The form in the Definition Pane where the stepper is stopped is drawn with a background color that can have different meanings. An explanatory note will appear in the dialog the first three times each highlighting color is used. The default color is blue. When green, source-level debugging information is available for the function that the highlighted form will call. This is a "green light"that pressing the Step Into button will continue doing source-level stepping. When orange, you are stopped at a macro form. When gray, it means that no source code range is known for the current step point.
The Form Pane
The Form Pane (second from the top) shows just the form at which the stepper is currently stopped. This form would be executed by a subsequent Step Next. Sometimes this is a form in the original source code, and is the same as the highlighted form in the Definition Pane, and at other times it is all or part of a macroexpansion.
The Stack Pane
The Stack Pane (third from the top) lists the arguments and local variables of the function that is being stepped through, followed by the arguments to the function that called the function being stepped, and then by the arguments to to the next calling function.
Assembly-Language Stepping in the Stepper Dialog
If breakpoints are added to functions for which source-level debugging information is not available, the Stepper Dialog will still display some information and allow stepping to be done.
Documentation
Please refer to the Stepper Dialog documentationfor the full details.
Interoperability:
AllegroGraph: Semantic Knowledge Graph Platform for Neuro-Symbolic AI applications
Allegro Oracle Direct Connect: High-performance direct access to Oracle databases
Allegro MySQL Direct Connect: High-performance direct access to MySQL databases
NDBM Database Interface: Interface to NDBM functionality on Linux/Mac
Message Digest Functions: SHA512, RMD160 et al message digest support. HMAC-SHA1 support.
FTP Client: The Allegro FTP client makes it very easy to manage files, and connects seamlessly to any FTP server, including Allegro FTP
Java Tool Suite: Package applications as Java Beans or Servlets, directly call Java methods from Lisp methods and vice versa, and dynamically generate Java byte codes to run on JVMs. With jLinker,application programmers can choose the socket interface or native JNI interface on most platforms
Complete access to relational databases via Allegro ODBC
NT Service module: The NT Service module was previously available as opensource, and it is now included in the product, with some minor enhancements and fixes
Runtime:
- Change class definitions and methods on the fly, and automatically propagate changes to existing object instances
- Built-in memory management and garbage collection
- Application delivery as a DLL or stand alone image
- Robust, flexible and efficient multiprocessingfor Linux/Mac and Windows -- OS Threads for Windows: One Lisp thread and unlimited non-Lisp threads can run on different processors
- Linux Version Compatibility: Allegro CL runs on all Linux distributions that use Glibc 2.17, and is well protected against future Glibc changes
- Environments Access: Environments are now first-class data objects that are easily accessible and augmentable. Helps code compilation, code walking and domain-specific language development
Minimum Supported Operating System Versions
Allegro CL 11 is available on the following operating system versions.
Platform | Types available |
---|---|
Linux (x86-64) with glibc 2.17 | non-SMP, SMP |
Linux (ARM v8.1) Amazon Linux (Graviton) with glibc 2.26 | non-SMP, SMP |
Linux (ARM v8) Redhat/CentOS with glibc 2.17 | non-SMP, SMP |
Apple macOS (Apple Silicon) | non-SMP, SMP |
Apple macOS (x86-64) | non-SMP, SMP |
Windows (x86, 32bit) | non-SMP, SMP |
Windows (x86-64) | non-SMP, SMP |
FreeBSD (x86-64) | SMP |