close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Changes between Initial Version and Version 1 of Release19f


Ignore:
Timestamp:
09/08/13 02:18:44 (12 years ago)
Author:
Raymond Toy
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TabularUnified Release19f

    v1 v1  
     1========================== C M U C L  19 f =============================
     2
     3The CMUCL project is pleased to announce the release of CMUCL 19f.
     4This is a major release which contains numerous enhancements and
     5bugfixes from the 19e release.
     6
     7CMUCL is a free, high performance implementation of the Common Lisp
     8programming language which runs on most major Unix platforms. It
     9mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
     10sophisticated native code compiler; a powerful foreign function
     11interface; an implementation of CLOS, the Common Lisp Object System,
     12which includes multimethods and a metaobject protocol; a source-level
     13debugger and code profiler; and an Emacs-like editor implemented in
     14Common Lisp. CMUCL is maintained by a team of volunteers collaborating
     15over the Internet, and is mostly in the public domain.
     16
     17New in this release:
     18
     19
     20  * Feature enhancements:
     21    * {{{~R}}} supports many more cardinal names.
     22    * Updated network support:
     23      * Added {{{BIND-INET-SOCKET}}} to bind a socket to a local address.
     24      * Added {{{OPEN-NETWORK-STREAM}}} to create a stream connected to a given host.
     25      * Added {{{ACCEPT-NETWORK-STREAM}}} to create a stream connected to
     26        the new network connection
     27      * Updated {{{CONNECT-TO-INET-SOCKET}}} to allow binding the newly
     28        created socket to a local address
     29    * Added {{{UNIX:UNIX-OPENPTY}}}, an interface to the openpty C library
     30      function.
     31    * SSE2 support added for x86.
     32      * {{{CMUCL}}} automatically detects whether sse2 is supported or not
     33        and loads up the appropriate core file.
     34      * New {{{-fpu}}} switch allows the user to specify explicitly which
     35        core should be used.  The valid values are {{{x87}}}, {{{sse2}}}, or {{{auto}}}
     36        (the default).
     37      * Fasls compiled with sse2 support have the extension {{{sse2f}}}.
     38        Otherwise, the normal {{{x86f}}} extension is used.  This allows the
     39        user to do tests/experiments with both x87 and sse2 without
     40        having to mess around with different directories and removing
     41        fasls before building for a different FPU.
     42      * If the chip supports sse2, but {{{CMUCL}}} can't find the sse2 core,
     43        {{{CMUCL}}} will try to fall back to the x87 core.  (This only
     44        happens if {{{-fpu}}} is auto.)
     45    * Command line parsing now recognizes the option "{{{--}}}".  Everything
     46      after "{{{--}}}" is not subject to {{{CMUCL}}}'s command line parsing, and
     47      everything after the "{{{--}}}" is placed in the new variable
     48      {{{EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS*}}}.
     49
     50  * ANSI compliance fixes:
     51    * Fix bug in backquote printer.  If the variable is {{{@foo}}}, we want
     52      to print "{{{, @foo}}}" not "{{{,@foo}}}".  Similarly, for {{{.foo}}}, we want to
     53      print "{{{, .foo}}}" instead of "{{{,.foo}}}".
     54    * Fix merging of version in {{{MAKE-PATHNAME}}}.  If the pathname name
     55      is given, the version is not affected by the version in the
     56      default pathname.
     57    * {{{RENAME-FILE}}} now creates defaulted-new-name from merging new-name
     58      with the original filespec.  This is an incompatible change from
     59      the previous version which created defaulted-new-name from
     60      merging the new-name with the truename of filespec.  Also, a
     61      logical pathname should be returned if new-name is a logical
     62      pathname.
     63    * Character names need to be a capital letter followed by lower
     64      case.  Needed to match what ~:C does.  (Found via ansi-tests).
     65
     66  * Bugfixes:
     67    * Compiler can now derive the rank of an array, even if the array
     68      is not simple.
     69    * Fix off-by-one bug in {{{~R}}} which prevents printing numbers from
     70      10^63^ to 10^66-1^.  10^63^ is a vigintillion.
     71    * The compiler and interpreter should now handle slot-value the
     72      same.  Previously, different results were returned for things
     73      like (slot-value foo :a).
     74    * {{{UNIX-GETGRNAM}}} is now defined for Darwin (x86 and ppc).
     75    * {{{UNIX-GETPWUID}}} is defined for all BSD systems.
     76    * Type-derivation for {{{EXPT}}} no longer causes errors in some
     77      situations.  The computed bounds were of the wrong type for the
     78      resulting type specifier.
     79    * Pathname printer no longer produces an error for
     80      {{{(MAKE-PATHNAME :HOST NIL :TYPE "foo")}}}.  It returns {{{#P(:HOST NIL :TYPE "foo")}}}
     81      now.
     82    * Type derivation for {{{DOUBLE-DOUBLE-FLOAT}}} arithmetic should be
     83      working.  Previously, all arithmetic operations would just
     84      return {{{DOUBLE-DOUBLE-FLOAT}}} even though the compiler should have
     85      been able to figure out a tighter result.
     86    * When {{{SCALE-FLOAT}}} would underflow, it would always return 0f0,
     87      instead of a floating-point zero of the correct type.
     88    * Fix some issues in creating the debug arglist string when the
     89      arglist contains items that can't be printed readably.
     90    * {{{DIRECTORY}}} is now faster for directories with a large number of
     91      files. 
     92    * {{{RANDOM}}} is now much faster on all platforms for numbers upto
     93      {{{#xffffffff}}}.  This is an incompatible change from previous
     94      releases because the numbers produced may be different from
     95      before. 
     96    * The small bias in {{{RANDOM}}} for integer args up to 32 bits long
     97      should now be gone.
     98    * Improved type derivation for {{{LOGAND}}} when one arg is bounded but
     99      the other is not.
     100    * Some issues with tracing on sparc and ppc have been fixed.  This
     101      usually manifests itself with a segfault just after the function
     102      result is printed.
     103    * Fixed bug on sparc where {{{C-c}}} sometimes causes a segfault.  We
     104      now handle the case where {{{siginfo_t}}} is {{{NULL}}}, which can also
     105      happen on other architectures.
     106    * The interpreter catches invalid {{{EVAL-WHEN}}} situations just like
     107      the compiler, instead of silently ignoring them.
     108    * {{{FLOAT-PRECISION}}} supports double-double floats.
     109    * Tracing should now be working on Darwin/x86.  Previously,
     110      certain cases would cause Lisp to segfault in bad ways where you
     111      could not return to the repl.  Do not need to do encapsulation
     112      by default anymore.
     113    * The bounds for type {{{(REAL lo hi)}}} are computed better now.  The
     114      {{{REAL}}} type is a union of {{{SINGLE-FLOAT}}}, {{{DOUBLE-FLOAT}}}, and
     115      {{{DOUBLE-DOUBLE-FLOAT}}}.  The computed bounds for
     116      {{{DOUBLE-DOUBLE-FLOAT}}} only had double-float accuracy if the bound
     117      for {{{REAL}}} was a rational.
     118    * The {{{FLOAT}}} type now requires that the bounds, if given, be
     119      floats.  Previously, any real type would be accepted.  This
     120      makes {{{FLOAT}}} behave like {{{SINGLE-FLOAT}}} and {{{DOUBLE-FLOAT}}} which
     121      required the bounds to be a float of the appropriate type.
     122
     123  * Trac Tickets:
     124    * #16: Read-time hash-table issue
     125      Fixed.
     126    * #17: LOOP NAMED NIL has no effect
     127      Fixed.
     128    * #18: Modular arith bug 1
     129      Fixed
     130    * #19: Modular arith bug 2
     131      Fixed by not doing modular arith if the args are known to be
     132      fixnums.
     133    * #20: Modular arith bug?
     134      Fixed via the fix for Trac #21.  The original workaround has
     135      been removed.
     136    * #24: Float contagion for expt
     137      Float contagion is applied to the arguments before computing
     138      expt.
     139    * #21: Modular arith bug 3
     140      Fixed by delaying the logand defoptimizer.
     141    * #15: x86 double-float issue
     142      Fixed when using SSE2 support.  We will not fix this for x87.
     143    * #25: Compiler bug
     144      Fixed.
     145    * #26: slot-value type check
     146      Fixed for some cases.  When used in methods, slot-value may not
     147      do the type check.if the object is not a argument to the method.
     148    * #29: make-condition doesn't accept class objects
     149      Fixed.
     150
     151  * Other changes:
     152    * IS1, IS2, IS3, and IS4 are recognized character names for the
     153      ASCII control codes US, RS, GS, FS, respectively.
     154    * Added {{{OPEN-NETWORK-STREAM}}} and {{{ACCEPT-NETWORK-STREAM}}} functions.
     155    * When initializing a random state, try to read 627 words from
     156      /dev/urandom to initialize the entire state vector with random
     157      bits.  Previously, only one word was read.
     158    * A seed of 0 is allowed in {{{KERNEL:INIT-RANDOM-STATE}}}.
     159    * Updated User guide to include more examples of tracing.
     160    * Enable gencgc page protection on x86/darwin.  This can speed up
     161      GC a bit.  (Not measured.)
     162    * Bignum truncate is significantly faster.  Some cl-bench
     163      benchmarks are now almost twice as fast.
     164    * The continuable error produced by raising an integer to a power
     165      exceeding *intexp-maximum-exponent* is now a restart, giving the
     166      user the option to continue and update the limit to the new
     167      power.
     168    * The Darwin/x86 port can run on Mac OS X 10.4 or later.
     169
     170  * Improvements to the PCL implementation of CLOS:
     171    * The compiler and interpreter should handle {{{SLOT-VALUE}}} the same
     172      way.  Previously, {{{(SLOT-VALUE obj :a)}}} would behave differently
     173      in the compiler and interpreter.
     174    * Some issues with {{{GET-ACCESSOR-METHOD-FUNCTION}}} and
     175      {{{SLOT-VALUE-USING-CLASS}}} have been fixed.
     176      {{{GET-ACCESSOR-METHOD-FUNCTION}}} was causing an error to be signaled
     177      incorrectly.
     178    * {{{(SETF (SLOT-VALUE <OBJ> <SLOT>) <NEW>)}}} will now signal an error
     179      in some situations when the new value is not of the correct
     180      declared type for slot.
     181
     182  * Changes to building procedure:
     183    * For Linux, custom CFLAGS, CC, and LDFLAGS are supported.
     184      Requested by Stelian Ionescu for Gentoo support.
     185    * The FreeBSD config file is now named Config.x86_freebsd, which
     186      is equivalent to Config.FreeBSD_gencgc, which is deprecated.
     187    * The Linux config file is now named Config.x86_linux, which is
     188      the equivalent to Config.linux_gencgc, which is deprecated.
     189
     190  * Known issues:
     191    * Executables (via save-lisp) on recent FreeBSD versions are
     192      currently not working.  The executable is created, but the
     193      resulting executable doesn't work correctly.
     194
     195This release is not binary compatible with code compiled using {{{CMUCL}}}
     19619e; you will need to recompile FASL files.
     197
     198See <URL:http://www.cons.org/cmucl/> for download information,
     199guidelines on reporting bugs, and mailing list details.
     200
     201
     202We hope you enjoy using this release of {{{CMUCL}}}!
     203