Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
1244 commits behind the upstream repository.
Raymond Toy's avatar
Raymond Toy authored
The current bignum multiplier creates temp space to hold the absolute
value of the bignums and then negates the result (in-place) at the
end.

Instead, use the algorithm from Hacker's Delight that pretends the
numbers are unsigned, does the unsigned multiply and finally corrects
the result.  No extra memory is needed for this.
90d8b4b5
History
Name Last commit Last update
bin
src
tests
.gitignore
.gitlab-ci.yml
BUILDING
README.md

pipeline status

CMUCL is a free, high performance implementation of the Common Lisp programming language which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp standard. CMUCL provides a sophisticated native code compiler; a powerful foreign function interface; an implementation of CLOS; the Common Lisp Object System; which includes multimethods; a metaobject protocol; a source-level debugger and code profiler; and an Emacs-like editor implemented in Common Lisp. CMUCL is maintained by a team of volunteers collaborating over the Internet, and is mostly in the public domain.

Here is a summary of its main features:

  • support for static arrays that are never moved by GC but are properly removed when no longer referenced.
  • Unicode support, including many of the most common external formats such as UTF-8 and support for handling Unix, DOS, and Mac end-of-line schemes.
  • native double-double floats including complex double-double floats and specialized arrays for double-double floats and and complex double-double floats that give approximately 106 bits (32 digits) of precision.
  • a sophisticated native-code compiler which is capable of powerful type inferences, and generates code competitive in speed with C compilers.
  • generational garbage collection on all supported architectures.
  • multiprocessing capability on the x86 ports.
  • a foreign function interface which allows interfacing with C code and system libraries, including shared libraries on most platforms, and direct access to Unix system calls.
  • support for interprocess communication and remote procedure calls.
  • an implementation of CLOS, the Common Lisp Object System, which includes multimethods and a metaobject protocol.
  • a graphical source-level debugger using a Motif interface, and a code profiler.
  • an interface to the X11 Window System (CLX), and a sophisticated graphical widget library (Garnet, available separately).
  • programmer-extensible input and output streams (Gray Streams and simple-streams).
  • an Emacs-like editor, Hemlock, implemented in Common Lisp.
  • freely redistributable: free, with full source code (most of which is in the public domain) and no strings attached (and no warranty). Like the GNU/Linux and *BSD operating systems, CMUCL is maintained and improved by a team of volunteers collaborating over the Internet.

For the latest news and other information, see the wiki.