Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
cmucl
cmucl
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 25
    • Issues 25
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • cmucl
  • cmuclcmucl
  • Wiki
  • release21b

Last edited by Raymond Toy Oct 09, 2016
Page history

release21b

========================== C M U C L 21 b =============================

The CMUCL project is pleased to announce the release of CMUCL 21b. This is a major release which contains numerous enhancements and bug fixes from the 21a release.

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 multi-methods and a meta-object 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.

New in this release:

  • Known issues:

  • Feature enhancements

  • Changes

    • Update to ASDF 3.1.7.
    • Add support for asdf's static-image-op
      • This mostly entails internal changes in how executables are handled. lisp.a is not complete; it must be linked with either exec-init.o or exec-final.o.
      • If the linker fails to link an image, the exit code is returned to indicate failure.
    • When printing the process structure (from RUN-PROGRAM), include the exit code to make it easier to see if the the process exited cleanly or not. The printed representation is also changed slightly to use PPRINT-UNREADABLE-OBJECT.
    • Executable images on OSX no longer support running on other versions of the OS. Previously, -mmacosx-version-min=10.5 was used to specify the executable would run on OSX versions >= 10.5. This, however, requires the 10.5 SDK be available. Thus, no longer require that.
    • Disassembly of bytes and words now use .BYTE and .WORD instead of BYTE and WORD.
    • Unix support on Linux has been unified with all other OSes. Thus, src/code/unix-glibc2.lisp is no longer used.
    • Micro-optimize modular shifts on x86.
    • Update lisp-unit to commit e6c259f.
    • Added EXT:WITH-FLOAT-TRAPS-ENABLED to complement WITH-FLOAT-TRAPS-MASKED.
    • (EXPT 0 power) doesn't throw INTEXP-LIMIT-ERROR anymore for any integer value of power.
    • Starting CMUCL with "-dynamic-space-size 0" means using the maximum possible heap size for the platform.
    • More descriptive docstring for
      • *ENVIRONMENT-LIST*
      • :ENV option for RUN-PROGRAM
    • Maximum dynamic-space-size on Linux reduced to 1530 MB because that's the largest available space on 32-bit Ubuntu 11.10.
    • For linux, darwin, and solaris/sparc, the binding stack and control stack are now mapped into memory wherever the OS wishes to place them instead of being mapped into a fixed location. This is indicated by new feature :RELOCATABLE-STACKS.
    • Building on NetBSD now requires version 7.0 or later.
  • ANSI compliance fixes:

    • PATHNAME-MATCH-P did not accept search-lists.
    • (COMPILE 'FOO) returns the compiled function if FOO is already compiled. (See Ticket #24). This is a change in behavior for developers where foo would be recompiled if the source was available. Developers might want to investigate UNCOMPILE combined with COMPILE to get the old behavior back.
  • Bug fixes:

    • Linux was missing UNIX-SETITIMER which prevented saving cores.
    • Generate inexact exceptions more carefully.
    • Fix FP issue when building with Xcode 7.2 (and newer versions of clang). (See ticket #12.)
    • Cleanups in handling floating-point exceptions. See Tickets #15 and #16.
    • DIRECTORY with :FOLLOW-LINKS T (and :TRUENAME NIL) will follow directory links. Previously, the directories that were links weren't followed.
  • Trac Tickets:

  • Gitlab tickets:

    • Ticket #10 fixed: setting an element of a 1, 2, or 4-bit array with a constant index did not always set the element appropriately.
    • Ticket #12 fixed. It looks like a possible compiler bug, but worked around by explicitly setting inexact instead of using FP instructions to generate inexact.
    • Ticket #16 fixed: search-lists are handled correctly.
    • Ticket #14 fixed: WITH-FLOAT-TRAPS-ENABLED doesn't incorrectly set accrued exceptions anymore.
    • Ticket #15 fixed: FLOATING-POINT-INEXACT exception prints out values correctly now.
    • Ticket #17 fixed: better docstring for *ENVIRONMENT-LIST*
    • Ticket #18 fixed: better description of :ENV option for RUN-PROGRAM.
    • Ticket #22 fixed: Incorrect coercion to float.
    • Ticket #25 fixed: Issue with EXT:RUN-PROGRAM and string streams (related to character sizes?)
    • Ticket #27 fixed: Regression: ASDF test failures
    • Ticket #28 fixed: Recursive function definition during cross-compile
    • Ticket #30 fixed: Compilation of (DESCRIBE 'FOO)
    • Ticket #31 fixed: (COMPILE #'FOO) fails
    • Ticket #24 fixed: Compilation of (COMPILE 'FOO)
    • Ticket #32 fixed: doc fix: EXT:RUN-PROGRAM has no :BEFORE-EXECVE option
  • Other changes:

    • Update user manual.
  • Improvements to the PCL implementation of CLOS:

  • Changes to building procedure:

This release is not binary compatible with code compiled using CMUCL 21a; you will need to recompile FASL files.

See URL:http://www.cmucl.org or URL:https://gitlab.common-lisp.net/cmucl/cmucl for more information, See URL:https://gitlab.common-lisp.net/cmucl/cmucl/wikis/GettingCmucl for obtaining CMUCL, including sources and binaries..

We hope you enjoy using this release of CMUCL!

Clone repository
  • AnalyzingMemoryUsage
  • BuildingCmucl
  • ChangeCmuclPrompt
  • CmuclDesign
  • CmuclDocumentation
  • CustomCommandLineSwitches
  • FAQ
  • FeatureList
  • GettingCmucl
  • GitAndCmucl
  • GitAndTracIntegration
  • HistoryOfTheCMUCLProject
  • Home
  • InstallingCmucl
  • LispUnit
View All Pages