~ubuntu-branches/debian/squeeze/cmucl/squeeze

« back to all changes in this revision

Viewing changes to src/docs/cmu-user/introduction.tex

  • Committer: Bazaar Package Importer
  • Author(s): Peter Van Eynde
  • Date: 2009-04-18 20:27:23 UTC
  • mfrom: (0.2.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090418202723-oiooywxwcwe1j4mb
Tags: 19f-20090312-1
* New upstream release. Major changes:
    + Feature enhancements:
      - ~R supports many more cardinal names.
      - Updated network support:
        o Added BIND-INET-SOCKET to bind a socket to a local address.
        o Added OPEN-NETWORK-STREAM to create a stream connected to a 
          given host.
        o Added ACCEPT-NETWORK-STREAM to create a stream connected to
          the new network connection
        o Updated CONNECT-TO-INET-SOCKET to allow binding the newly
          created socket to a local address
      - Added UNIX:UNIX-OPENPTY, an interface to the openpty C library
        function.
      - SSE2 support added for x86.
        o CMUCL automatically detects whether sse2 is supported or not
          and loads up the appropriate core file.
        o New -fpu switch allows the user to specify explicitly which
          core should be used.  The valid values are x87, sse2, or auto
          (the default).
        o Fasls compiled with sse2 support have the extension sse2f.
          Otherwise, the normal x86f extension is used.  This allows the
          user to do tests/experiments with both x87 and sse2 without
          having to mess around with different directories and removing
          fasls before building for a different FPU.
        o If the chip supports sse2, but CMUCL can't find the sse2 core,
          CMUCL will try to fall back to the x87 core.  (This only
          happens if -fpu is auto.)
      - Command line parsing now recognizes the option "--".  Everything
        after "--" is not subject to CMUCL's command line parsing, and
        everything after the "--" is placed in the new variable
        EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS*. 
  
    + ANSI compliance fixes:
      - Fix bug in backquote printer.  If the variable is @foo, we want
        to print ", @foo" not ",@foo".  Similarly, for .foo, we want to
        print ", .foo" instead of ",.foo".
      - Fix merging of version in MAKE-PATHNAME.  If the pathname name
        is given, the version is not affected by the version in the
        default pathname.
      - RENAME-FILE now creates defaulted-new-name from merging new-name
        with the original filespec.  This is an incompatible change from
        the previous version which created defaulted-new-name from
        merging the new-name with the truename of filespec.  Also, a
        logical pathname should be returned if new-name is a logical
        pathname. 
      - Character names need to be a capital letter followed by lower
        case.  Needed to match what ~:C does.  (Found via ansi-tests).
  
    + Bugfixes:
      - Compiler can now derive the rank of an array, even if the array
        is not simple.
      - Fix off-by-one bug in ~R which prevents printing numbers from
        10^63 to 10^66-1.  10^63 is a vigintillion.
      - The compiler and interpreter should now handle slot-value the
        same.  Previously, different results were returned for things
        like (slot-value foo :a).
      - UNIX-GETGRNAM is now defined for Darwin (x86 and ppc).
      - UNIX-GETPWUID is defined for all BSD systems.
      - Type-derivation for EXPT no longer causes errors in some
        situations.  The computed bounds were of the wrong type for the
        resulting type specifier.
      - Pathname printer no longer produces an error for (MAKE-PATHNAME
        :HOST NIL :TYPE "foo").  It returns #P(:HOST NIL :TYPE "foo")
        now. 
      - Type derivation for DOUBLE-DOUBLE-FLOAT arithmetic should be
        working.  Previously, all arithmetic operations would just
        return DOUBLE-DOUBLE-FLOAT even though the compiler should have
        been able to figure out a tighter result.
      - When SCALE-FLOAT would underflow, it would always return 0f0,
        instead of a floating-point zero of the correct type.
      - Fix some issues in creating the debug arglist string when the
        arglist contains items that can't be printed readably.
      - DIRECTORY is now faster for directories with a large number of
        files.  
      - RANDOM is now much faster on all platforms for numbers upto
        #xffffffff.  This is an incompatible change from previous
        releases because the numbers produced may be different from
        before.  
      - The small bias in RANDOM for integer args up to 32 bits long
        should now be gone.
      - Improved type derivation for LOGAND when one arg is bounded but
        the other is not.
      - Some issues with tracing on sparc and ppc have been fixed.  This
        usually manifests itself with a segfault just after the function
        result is printed.
      - Fixed bug on sparc where C-c sometimes causes a segfault.  We
        now handle the case where siginfo_t is NULL, which can also
        happen on other architectures.
      - The interpreter catches invalid EVAL-WHEN situations just like
        the compiler, instead of silently ignoring them.
      - FLOAT-PRECISION supports double-double floats.
      - Tracing should now be working on Darwin/x86.  Previously,
        certain cases would cause Lisp to segfault in bad ways where you
        could not return to the repl.  Do not need to do encapsulation
        by default anymore.
      - The bounds for type (REAL lo hi) are computed better now.  The
        REAL type is a union of SINGLE-FLOAT, DOUBLE-FLOAT, and
        DOUBLE-DOUBLE-FLOAT.  The computed bounds for
        DOUBLE-DOUBLE-FLOAT only had double-float accuracy if the bound
        for REAL was a rational.
      - The FLOAT type now requires that the bounds, if given, are
        floats.  Previously, any real type would be accepted.  This
        makes FLOAT behave like SINGLE-FLOAT and DOUBLE-FLOAT which
        required the bounds to be a float of the appropriate type.
  
    + Trac Tickets:
      - #16: Read-time hash-table issue
        Fixed.
      - #17: LOOP NAMED NIL has no effect
        Fixed.
      - #18: Modular arith bug 1
        Fixed
      - #19: Modular arith bug 2
        Fixed by not doing modular arith if the args are known to be
        fixnums.
      - #20: Modular arith bug?
        Fixed via the fix for Trac #21.  The original workaround has
        been removed.
      - #24: Float contagion for expt
        Float contagion is applied to the arguments before computing
        expt.
      - #21: Modular arith bug 3
        Fixed by delaying the logand defoptimizer.
      - #15: x86 double-float issue
        Fixed when using SSE2 support.  We will not fix this for x87.
      - #25: Compiler bug
        Fixed.
      - #26: slot-value type check
        Fixed for some cases.  When used in methods, slot-value may not
        do the type check.if the object is not a argument to the method.
      - #29: make-condition doesn't accept class objects
        Fixed.
  
    + Other changes:
      - IS1, IS2, IS3, and IS4 are recognized character names for the
        ASCII control codes US, RS, GS, FS, respectively.
      - Added OPEN-NETWORK-STREAM and ACCEPT-NETWORK-STREAM functions.
      - When initializing a random state, try to read 627 words from
        /dev/urandom to initialize the entire state vector with random
        bits.  Previously, only one word was read.
      - A seed of 0 is allowed in KERNEL:INIT-RANDOM-STATE.
      - Updated User guide to include more examples of tracing.
      - Enable gencgc page protection on x86/darwin.  This can speed up
        GC a bit.  (Not measured.)
      - Bignum truncate is significantly faster.  Some cl-bench
        benchmarks are now almost twice as fast.
      - The continuable error produced by raising an integer to a power
        exceeding *intexp-maximum-exponent* is now a restart, giving the
        user the option to continue and update the limit to the new
        power.
      - The Darwin/x86 port can run on Mac OS X 10.4 or later.
  
    + Improvements to the PCL implementation of CLOS:
      - The compiler and interpreter should handle SLOT-VALUE the same
        way.  Previously, (SLOT-VALUE obj :a) would behave differently
        in the compiler and interpreter.
      - Some issues with get-accessor-method-function and
        slot-value-using-class have been fixed.
        Get-accessor-method-function was causing an error to be signaled
        incorrectly.
      - (setf (slot-value <obj> <slot>) <new>) will now signal an error
        in some situations when the new value is not of the correct
        declared type for slot.
  
    + Changes to building procedure:
      - For Linux, custom CFLAGS, CC, and LDFLAGS are supported.
        Requested by Stelian Ionescu for Gentoo support.
      - The Linux config file is now named Config.x86_linux, which is
        the equivalent to Config.linux_gencgc, which is deprecated.
    * From this version onwards I will only support the sse2 variant 
      as I don't have any non-sse2 machines anymore. 
* Updated debhelper version to 7
* updated standard version without any real changes
* use dh_prep instead of dh_clean -k

Show diffs side-by-side

added added

removed removed

Lines of Context:
129
129
\item[\code{-init}] accepts an argument that should be the name of an
130
130
  init file to load during the normal start up sequence.  The default
131
131
  is to load \file{init.\var{object-type}} or, if that does not exist,
132
 
  \file{init.lisp} from the user's home directory.  If the file is not
133
 
  in the user's home directory, the full path must be specified.
 
132
  \file{init.lisp} from the user's home directory.  If neither exists,
 
133
  \cmucl tries \file{.cmucl-init.\var{object-type}} and then
 
134
  \file{.cmucl-init.lisp}.  If the file is not
 
135
  in the user's home directory, the full path must be specified.  If
 
136
  the file does not exist, \cmucl silently ignores it.
134
137
  
135
138
\item[\code{-noinit}] accepts no arguments and specifies that an init
136
139
  file should not be loaded during the normal start up sequence.
155
158
  \end{example}
156
159
  where \var{machine-name} is the internet host name for the machine
157
160
  and \var{socket} is the decimal number of the socket to connect to.
 
161
 
 
162
\item[\code{-fpu}] specifies what fpu should be used for x87 machines.
 
163
  The possible values are ``\code{x87}'', ``\code{sse2}'', or
 
164
  ``\code{auto}'', which is the default.  By default, \cmucl will
 
165
  detect if the chip supports the SSE2 instruction set or not.  If so
 
166
  or if \code{-fpu sse2} is specified, the SSE2 core will be loaded
 
167
  that uses SSE2 for floating-point arithmetic.  If SSE2 is not
 
168
  available or if \code{-fpu x87} is given, the legacy x87 core is
 
169
  loaded.
 
170
 
 
171
\item[\code{--}] indicates that everything after ``\code{--}'' is not
 
172
  subject to \cmucl's command line parsing.  Everything after
 
173
  ``\code{--}'' is placed in the variable
 
174
  \code{ext:*command-line-application-arguments*}.
158
175
\end{Lentry}
159
176
 
160
177
For more details on the use of the \code{-edit} and \code{-slave}
273
290
University has been discontinued. All code and documentation developed
274
291
at CMU was released into the public domain. The project continues as a
275
292
group of users and developers collaborating over the Internet. The
276
 
currently active maintainers are:
 
293
current and previous maintainers include:
277
294
 
278
295
\begin{itemize}
279
296
\item Marco Antoniotti
280
297
\item Martin Cracauer
 
298
\item Fred Gilham
 
299
\item Alex Goncharov
281
300
\item Rob MacLachlan
282
301
\item Pierre Mai
283
302
\item Eric Marsden
284
303
\item Gerd Moellman
285
304
\item Tim Moore
 
305
\item Carl Shapiro  
 
306
\item Robert Swindells
286
307
\item Raymond Toy
287
308
\item Peter Van Eynde
288
309
\item Paul Werkowski
316
337
\item Dave McDonald
317
338
\item Tim Moore
318
339
\item Skef Wholey
 
340
\item Paul Foley
 
341
\item Helmut Eller
 
342
\item Jan Rychter
319
343
\end{itemize}
320
344
 
321
345
Countless others have contributed to the project by sending in bug
322
 
reports, bug fixes, new features.
 
346
reports, bug fixes, and new features.
323
347
 
324
348
This manual is based on CMU Technical Report CMU-CS-92-161, edited by
325
349
Robert A. MacLachlan, dated July 1992. Other contributors include