Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
cmucl
cmucl
Commits
3ccd76ad
Commit
3ccd76ad
authored
Mar 11, 2009
by
rtoy
Browse files
Merge changes from RELEASE_19f.
parent
e18d5af9
Changes
11
Hide whitespace changes
Inline
Side-by-side
bootfiles/19e/boot-19f.lisp
0 → 100644
View file @
3ccd76ad
;;;;
;;;; Boot file for changing the fasl file version numbers to 19e.
;;;;
(
in-package
:c
)
(
setf
lisp::*enable-package-locked-errors*
nil
)
;;;
;;; Note that BYTE-FASL-FILE-VERSION is a constant.
;;;
;;; (Be sure to change BYTE-FASL-FILE-VERSION in
;;; compiler/byte-comp.lisp to the correct value too!)
;;;
(
setf
(
symbol-value
'byte-fasl-file-version
)
#x19f
)
(
setf
(
backend-fasl-file-version
*target-backend*
)
#x19f
)
;;;
;;; Don't check fasl versions in the compiling Lisp because we'll
;;; load files compiled with the new version numbers.
;;;
(
setq
lisp::*skip-fasl-file-version-check*
t
)
;;;
;;; This is here because BYTE-FASL-FILE-VERSION is constant-folded in
;;; OPEN-FASL-FILE. To make the new version number take effect, we
;;; have to redefine the function.
;;;
(
defun
open-fasl-file
(
name
where
&optional
byte-p
)
(
declare
(
type
pathname
name
))
(
let*
((
stream
(
open
name
:direction
:output
:if-exists
:new-version
:element-type
'
(
unsigned-byte
8
)))
(
res
(
make-fasl-file
:stream
stream
)))
(
multiple-value-bind
(
version
f-vers
f-imp
)
(
if
byte-p
(
values
"Byte code"
byte-fasl-file-version
(
backend-byte-fasl-file-implementation
*backend*
))
(
values
(
backend-version
*backend*
)
(
backend-fasl-file-version
*backend*
)
(
backend-fasl-file-implementation
*backend*
)))
(
format
stream
"FASL FILE output from ~A.~@
Compiled ~A on ~A~@
Compiler ~A, Lisp ~A~@
Targeted for ~A, FASL version ~X~%"
where
(
ext:format-universal-time
nil
(
get-universal-time
))
(
machine-instance
)
compiler-version
(
lisp-implementation-version
)
version
f-vers
)
;;
;; Terminate header.
(
dump-byte
255
res
)
;;
;; Specify code format.
(
dump-fop
'lisp::fop-long-code-format
res
)
(
dump-byte
f-imp
res
)
(
dump-unsigned-32
f-vers
res
))
res
))
code/ntrace.lisp
View file @
3ccd76ad
...
...
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(
ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/ntrace.lisp,v 1.4
2
200
7/12/15 14:47
:2
8
rtoy
Exp
$"
)
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/ntrace.lisp,v 1.4
3
200
9/03/11 01:19
:2
7
rtoy
Rel
$"
)
;;;
;;; **********************************************************************
;;;
...
...
@@ -34,7 +34,6 @@
"If the trace indentation exceeds this value, then indentation restarts at
0."
)
;; Currently, only encapsulation works on x86/darwin,
(
defvar
*trace-encapsulate-default*
:default
"The default value for the :ENCAPSULATE option to trace."
)
...
...
compiler/byte-comp.lisp
View file @
3ccd76ad
...
...
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(
ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.4
6
200
8
/0
1/30 18
:1
6
:2
0
rtoy Exp $"
)
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/byte-comp.lisp,v 1.4
7
200
9
/0
3/11 01
:1
9
:2
7
rtoy Exp $"
)
;;;
;;; **********************************************************************
;;;
...
...
@@ -32,7 +32,7 @@
;;;; Fasl file format:
(
defconstant
byte-fasl-file-version
#x19
e
)
(
defconstant
byte-fasl-file-version
#x19
f
)
(
let*
((
version-string
(
format
nil
"~X"
byte-fasl-file-version
)))
(
sys:register-lisp-feature
(
intern
(
concatenate
'string
"CMU"
version-string
)
:keyword
))
...
...
docs/cmu-user/cmu-user.tex
View file @
3ccd76ad
...
...
@@ -47,7 +47,7 @@
\newcommand
{
\keywords
}{
lisp, Common Lisp, manual, compiler, programming
language implementation, programming environment
}
\date
{
Mar 200
8
\\
Release 19
e
}
\date
{
Mar 200
9
\\
Release 19
f
}
\begin{document}
...
...
docs/cmu-user/compiler-hint.tex
View file @
3ccd76ad
...
...
@@ -3253,8 +3253,10 @@ bit
base-character
single-float
double-float
ext:double-double-float
(complex single-float)
(complex double-float)
(complex ext:double-double-float)
\end{lisp}
Although a
\code
{
simple-vector
}
can hold any type of object,
\true
{}
...
...
docs/cmu-user/compiler.tex
View file @
3ccd76ad
...
...
@@ -66,7 +66,7 @@ Functions may be compiled using \code{compile}, \code{compile-file}, or
\keys
{
\kwd
{
output-file
}
\kwd
{
error-file
}
\kwd
{
trace-file
}}
\morekeys
{
\kwd
{
error-output
}
\kwd
{
verbose
}
\kwd
{
print
}
\kwd
{
progress
}}
\yetmorekeys
{
\kwd
{
load
}
\kwd
{
block-compile
}
\kwd
{
entry-points
}}
\yetmorekeys
{
\kwd
{
byte-compile
}}}}
\yetmorekeys
{
\kwd
{
byte-compile
}
\kwd
{
xref
}
}}}
The
\cmucl
{}
\code
{
compile-file
}
is extended through the addition of
several new keywords and an additional interpretation of
...
...
@@ -122,7 +122,7 @@ Functions may be compiled using \code{compile}, \code{compile-file}, or
resolved, unless an
\code
{
ext:block-start
}
declaration appears in
the source file.
\xlref
{
compile-file-block
}
.
\item
[\kwd{entry-points}]
If non-
nul
l, then this is a list of the
\item
[\kwd{entry-points}]
If non-
\ni
l
, then this is a list of the
names of all functions in the file that should have global
definitions installed (because they are referenced in other
files.)
\xlref
{
compile-file-block
}
.
...
...
@@ -130,7 +130,13 @@ Functions may be compiled using \code{compile}, \code{compile-file}, or
\item
[\kwd{byte-compile}]
If
\true
{}
, compiling to a compact
interpreted byte code is enabled. Possible values are
\true
{}
,
\false
{}
, and
\kwd
{
maybe
}
(the default.) See
\varref
{
byte-compile-default
}
and
\xlref
{
byte-compile
}
.
\varref
{
byte-compile-default
}
and
\pxlref
{
byte-compile
}
.
\item
[\kwd{xref}]
If non-
\nil
, enable recording of cross-reference
information. The default is the value of
\code
{
c:*record-xref-info*
}
.
\xlref
{
xref
}
. Note that the
compiled fasl file will also contain cross-reference information
and loading the fasl later will populate the cross-reference database.
\end{Lentry}
The return values are as per the proposed X3J13 cleanup
...
...
docs/cmu-user/cross-referencing.tex
View file @
3ccd76ad
...
...
@@ -49,6 +49,11 @@ analysis is independent of whether the compiler is generating native
code or byte code, and of whether it is compiling from a file, from a
stream, or is invoked interactively from the listener.
Alternatively, the
\kwd
{
:xref
}
option to
\code
{
compile-file
}
may be
specified to populate the cross-reference database when compiling a
file. In this case, loading the generated fasl file in a fresh lisp
will also populate the cross-reference database.
\begin{defun}
{
xref:
}{
init-xref-database
}{}
Reinitializes the database of cross-references. This can be used to
reclaim the space occupied by the database contents, or to discard
...
...
docs/cmu-user/extensions.tex
View file @
3ccd76ad
...
...
@@ -588,6 +588,10 @@ Package nicknames are in parenthesis after the full name.
\item
[\code{stream}]
The
\code
{
stream
}
package exports the public
interface to the simple-streams implementation (
\pxlref
{
simple-streams
}
).
\item
[\code{xref}]
The
\code
{
xref
}
package exports the public
interface to the cross-referencing utility (
\pxlref
{
xref
}
).
\end{Lentry}
...
...
@@ -1441,14 +1445,14 @@ defaults to \kwd{newest}.
(defun parse (x)
(values (pathname-name x) (pathname-type x) (pathname-version x)))
(parse "foo")
\result
"foo", NIL,
:NEWEST
(parse "foo.bar")
\result
"foo", "bar",
:NEWEST
(parse ".foo")
\result
".foo", NIL,
:NEWEST
(parse ".foo.bar")
\result
".foo", "bar",
:NEWEST
(parse "..")
\result
".", "", :NEWEST
(parse "foo.")
\result
"foo", "",
:NEWEST
(parse "foo.bar.
1
")
\result
"foo", "bar", 1
(parse "foo.bar.baz")
\result
"foo.bar", "baz",
:NEWEST
(parse "foo")
\result
"foo", NIL,
NIL
(parse "foo.bar")
\result
"foo", "bar",
NIL
(parse ".foo")
\result
".foo", NIL,
NIL
(parse ".foo.bar")
\result
".foo", "bar",
NIL
(parse "..")
\result
NIL, NIL, NIL
(parse "foo.")
\result
"foo", "",
NIL
(parse "foo.bar.
~1~
")
\result
"foo", "bar", 1
(parse "foo.bar.baz")
\result
"foo.bar", "baz",
NIL
\end{example}
The directory of pathnames beginning with a slash (or a search-list,
...
...
@@ -1853,74 +1857,11 @@ and printing time in various formats are available.
\clisp
{}
includes a random number generator as a standard part of the
language; however, the implementation of the generator is not
specified. Two random number generators are available in
\cmucl
{}
,
depending on the version.
\subsection
{
Original Generator
}
\cpsubindex
{
random number generation
}{
original generator
}
The default random number generator uses a lagged Fibonacci generator
given by
\begin{displaymath}
z[i] = z[i - 24] - z[i - 55]
\bmod
536870908
\end{displaymath}
where
$
z
[
i
]
$
is the
$
i
$
'th random number. This generator produces
small integer-valued numbers. For larger integer, the small random
integers are concatenated to produce larger integers. For
floating-point numbers, the bits from this generator are used as the
bits of the floating-point significand.
\subsection
{
New Generator
}
\cpsubindex
{
random number generation
}{
new generator
}
In some versions of
\cmucl
{}
, the original generator above has been
replaced with a subtract-with-borrow generator
combined with a Weyl generator.
\footnote
{
The generator described here
is available if the feature
\kwd
{
new-random
}
is available.
}
The
reason for the change was to use a documented generator which has
passed tests for randomness.
The subtract-with-borrow generator is described by the following
equation
\begin{displaymath}
z[i] = z[i + 20] - z[i + 5] - b
\end{displaymath}
where
$
z
[
i
]
$
is the
$
i
$
'th random number, which is a
\code
{
double-float
}
. All of the indices in this equation are
interpreted modulo 32. The quantity
$
b
$
is carried over from the
previous iteration and is either 0 or
\code
{
double-float-epsilon
}
. If
$
z
[
i
]
$
is positive,
$
b
$
is set to zero. Otherwise,
$
b
$
is set to
\code
{
double-float-epsilon
}
.
To increase the randomness of this generator, this generator is
combined with a Weyl generator defined by
\begin{displaymath}
x[i] = x[i - 1] - y
\bmod
1,
\end{displaymath}
where
$
y
=
7097293079245107
\times
2
^{
-
53
}$
. Thus, the resulting
random number
$
r
[
i
]
$
is
\begin{displaymath}
r[i] = (z[i] - x[i])
\bmod
1
\end{displaymath}
This generator has been tested by Peter VanEynde using Marsaglia's
diehard test suite for random number generators; this generator
passes the test suite.
This generator is designed for generating floating-point random
numbers. To obtain integers, the bits from the significand of the
floating-point number are used as the bits of the integer. As many
floating-point numbers as needed are generated to obtain the desired
number of bits in the random integer.
For floating-point numbers, this generator can by significantly faster
than the original generator.
specified.
\subsection
{
MT-19937 Generator
}
\cpsubindex
{
random number generation
}{
MT-199
8
7 generator
}
On all platforms, th
is is the preferred
generator as indicated by
\cpsubindex
{
random number generation
}{
MT-199
3
7 generator
}
On all platforms, th
e random number is
\code
{
MT-19937
}
generator as indicated by
\kwd
{
rand-mt19937
}
being in
\code
{
*features*
}
. This is a Lisp
implementation of the MT-19937 generator of Makoto Matsumoto and
T. Nishimura. We refer the reader to their paper
\footnote
{
``Mersenne
...
...
@@ -1935,6 +1876,12 @@ website at
\href
{
http://www.math.keio.ac.jp/~matumoto/emt.html
}{
\texttt
{
http://www.math.keio.ac.jp/~matsumoto/emt.html
}}
.
\fi
When
\cmucl
{}
starts up,
\code
{
*random-state*
}
is initialized by
reading 627 words from
\code
{
/dev/urandom
}
, when available. If
\code
{
/dev/urandom
}
is not available, the universal time is used to
initialize
\code
{
*random-state*
}
. The initialization is done as given
in Matsumoto's paper.
\section
{
Lisp Threads
}
\cindex
{
lisp threads
}
...
...
docs/cmu-user/introduction.tex
View file @
3ccd76ad
...
...
@@ -129,8 +129,11 @@ switches:
\item
[\code{-init}]
accepts an argument that should be the name of an
init file to load during the normal start up sequence. The default
is to load
\file
{
init.
\var
{
object-type
}}
or, if that does not exist,
\file
{
init.lisp
}
from the user's home directory. If the file is not
in the user's home directory, the full path must be specified.
\file
{
init.lisp
}
from the user's home directory. If neither exists,
\cmucl
tries
\file
{
.cmucl-init.
\var
{
object-type
}}
and then
\file
{
.cmucl-init.lisp
}
. If the file is not
in the user's home directory, the full path must be specified. If
the file does not exist,
\cmucl
silently ignores it.
\item
[\code{-noinit}]
accepts no arguments and specifies that an init
file should not be loaded during the normal start up sequence.
...
...
@@ -155,6 +158,20 @@ switches:
\end{example}
where
\var
{
machine-name
}
is the internet host name for the machine
and
\var
{
socket
}
is the decimal number of the socket to connect to.
\item
[\code{-fpu}]
specifies what fpu should be used for x87 machines.
The possible values are ``
\code
{
x87
}
'', ``
\code
{
sse2
}
'', or
``
\code
{
auto
}
'', which is the default. By default,
\cmucl
will
detect if the chip supports the SSE2 instruction set or not. If so
or if
\code
{
-fpu sse2
}
is specified, the SSE2 core will be loaded
that uses SSE2 for floating-point arithmetic. If SSE2 is not
available or if
\code
{
-fpu x87
}
is given, the legacy x87 core is
loaded.
\item
[\code{--}]
indicates that everything after ``
\code
{
--
}
'' is not
subject to
\cmucl
's command line parsing. Everything after
``
\code
{
--
}
'' is placed in the variable
\code
{
ext:*command-line-application-arguments*
}
.
\end{Lentry}
For more details on the use of the
\code
{
-edit
}
and
\code
{
-slave
}
...
...
@@ -273,16 +290,20 @@ The project funding stopped in 1994, so support at Carnegie Mellon
University has been discontinued. All code and documentation developed
at CMU was released into the public domain. The project continues as a
group of users and developers collaborating over the Internet. The
current
ly active
maintainers
ar
e:
current
and previous
maintainers
includ
e:
\begin{itemize}
\item
Marco Antoniotti
\item
Martin Cracauer
\item
Fred Gilham
\item
Alex Goncharov
\item
Rob MacLachlan
\item
Pierre Mai
\item
Eric Marsden
\item
Gerd Moellman
\item
Tim Moore
\item
Carl Shapiro
\item
Robert Swindells
\item
Raymond Toy
\item
Peter Van Eynde
\item
Paul Werkowski
...
...
@@ -316,10 +337,13 @@ the development of \cmucl{} since 1981 are
\item
Dave McDonald
\item
Tim Moore
\item
Skef Wholey
\item
Paul Foley
\item
Helmut Eller
\item
Jan Rychter
\end{itemize}
Countless others have contributed to the project by sending in bug
reports, bug fixes, new features.
reports, bug fixes,
and
new features.
This manual is based on CMU Technical Report CMU-CS-92-161, edited by
Robert A. MacLachlan, dated July 1992. Other contributors include
...
...
general-info/lisp.1
View file @
3ccd76ad
...
...
@@ -6,12 +6,12 @@
.\" If you want to use this code or any part of CMU Common Lisp, please contact
.\" Scott Fahlman or slisp-group@cs.cmu.edu.
.\"
.\"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/general-info/lisp.1,v 1.1
3
2009/0
1
/1
0
0
3
:1
6:54
rtoy
Exp
$
.\"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/general-info/lisp.1,v 1.1
4
2009/0
3
/1
1
0
1
:1
9:27
rtoy
Rel
$
.\"
.\" **********************************************************************
.\"
.\" Man page for CMU CL.
.TH LISP 1 "
July
, 200
5
"
.TH LISP 1 "
Mar
, 200
9
"
.AT 3
.SH NAME
lisp \- CMU Common Lisp programming environment
...
...
general-info/release-19f.txt
View file @
3ccd76ad
========================== C M U C L 19 f =============================
[--- WORK IN PROGRESS ---]
The CMUCL project is pleased to announce the release of CMUCL 19f.
This is a major release which contains numerous enhancements and
bugfixes from the 19e release.
...
...
@@ -110,7 +108,8 @@ New in this release:
- 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.
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
...
...
@@ -188,6 +187,11 @@ New in this release:
- The Linux config file is now named Config.x86_linux, which is
the equivalent to Config.linux_gencgc, which is deprecated.
* Known issues:
- Executables (via save-lisp) on recent FreeBSD versions are
currently not working. The executable is created, but the
resulting executable doesn't work correctly.
This release is not binary compatible with code compiled using CMUCL
19e; you will need to recompile FASL files.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment