Skip to content

Commit

Permalink
version 10.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
burgerrg committed Feb 1, 2024
1 parent 1f5adec commit 282fcb2
Show file tree
Hide file tree
Showing 17 changed files with 82 additions and 109 deletions.
4 changes: 2 additions & 2 deletions BUILDING
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Building Chez Scheme Version 9.9.9
Copyright 1984-2023 Cisco Systems, Inc.
Building Chez Scheme Version 10.0.0
Copyright 1984-2024 Cisco Systems, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
4 changes: 2 additions & 2 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Chez Scheme Version 9.9.9
Copyright 1984-2023 Cisco Systems, Inc.
Chez Scheme Version 10.0.0
Copyright 1984-2024 Cisco Systems, Inc.

This product includes code developed by Cisco Systems, Inc.

Expand Down
12 changes: 6 additions & 6 deletions c/scheme.rc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "winver.h"

VS_VERSION_INFO VERSIONINFO
FILEVERSION 9,9,9,0
PRODUCTVERSION 9,9,9,0
FILEVERSION 10,0,0,0
PRODUCTVERSION 10,0,0,0
FILEFLAGSMASK 0x3fL
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
Expand All @@ -12,13 +12,13 @@ VS_VERSION_INFO VERSIONINFO
BLOCK "StringFileInfo" {
BLOCK "04090000" {
VALUE "CompanyName", "Cisco Systems, Inc."
VALUE "FileDescription", "Chez Scheme Version 9.9.9"
VALUE "FileVersion", "9.9.9"
VALUE "FileDescription", "Chez Scheme Version 10.0.0"
VALUE "FileVersion", "10.0.0"
VALUE "InternalName", "scheme.exe"
VALUE "LegalCopyright", "Copyright 1984-2023 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0."
VALUE "LegalCopyright", "Copyright 1984-2024 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0."
VALUE "OriginalFilename", "scheme.exe"
VALUE "ProductName", "Chez Scheme"
VALUE "ProductVersion", "9.9.9"
VALUE "ProductVersion", "10.0.0"
}
}
BLOCK "VarFileInfo" {
Expand Down
2 changes: 1 addition & 1 deletion csug/copyright.stex
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

\centerline{}\vfill

\textbf{\copyright~2023 Cisco Systems, Inc.}
\textbf{\copyright~2024 Cisco Systems, Inc.}

Licensed under the Apache License Version 2.0\\
http://www.apache.org/licenses/LICENSE-2.0
Expand Down
4 changes: 2 additions & 2 deletions csug/csug.stex
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
;; is the same as the documented version. If it's a release version,
;; then the date is fixed to the release date. Otherwise, use
;; the date when the document is built.
(define latest-release-date "September 2023")
(define latest-release-date "February 2024")
(printf "\\def\\CSVersion{~a}\n" (scheme-version #t))
(cond
[(not (scheme-pre-release))
Expand Down Expand Up @@ -78,7 +78,7 @@
\def\copyrightnotice{\raw{<hr class=copyright align=left>
<p>
<a class=plain href="index.html">Chez Scheme Version 10 User's Guide</a><br>
Copyright &copy; 2023 Cisco Systems, Inc.<br>
Copyright &copy; 2024 Cisco Systems, Inc.<br>
Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a>
(<a class=plain href="canned/copyright.html">full copyright notice.</a>).</br>
Revised} \revisiondate\raw{ for }\CSVersion\raw{<br>
Expand Down
2 changes: 1 addition & 1 deletion makefiles/Makefile-csug.in
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ target: canned logcheck1 logcheck2 checklibs $(x).html $(x).pdf
install: target
$(INSTALL) -m 2755 -d $(installdir)
$(INSTALL) -m 0644 --ifdiff *.html *.css $(installdir)
$(INSTALL) -m 0644 --ifdiff csug.pdf $(installdir)/csug9_9.pdf
$(INSTALL) -m 0644 --ifdiff csug.pdf $(installdir)/csug10_0.pdf
$(INSTALL) -m 2755 -d $(installdir)/canned
$(INSTALL) -m 0644 --ifdiff canned/* $(installdir)/canned
$(INSTALL) -m 2755 -d $(installdir)/gifs
Expand Down
4 changes: 2 additions & 2 deletions pkg/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# limitations under the License.

m := $(shell find ../bin/* -type d | xargs basename)
version = 9.9.9
version = 10.0.0
release = 1

DOTUSER = $(shell ls -ld . | sed -e 's/[^ ]* *[^ ]* *\([^ ]*\).*/\1/')
Expand Down Expand Up @@ -77,7 +77,7 @@ $(BUILDROOT)/Distribution: $(BUILDROOT)
$(BUILDROOT)/Resources/en.lproj/Welcome.html: $(BUILDROOT)/Resources/en.lproj
echo '<html>' > $(BUILDROOT)/Resources/en.lproj/Welcome.html
echo '<h3>Chez Scheme Version $(version)</h3>' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html
echo '<p>Copyright &copy; 2023 Cisco Systems, Inc.</p>' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html
echo '<p>Copyright &copy; 2024 Cisco Systems, Inc.</p>' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html
echo '<p>Chez Scheme is a programming language and an implementation of that language, with supporting tools and documentation.</p>' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html
echo '</html>' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html
chmod 644 $(BUILDROOT)/Resources/en.lproj/Welcome.html
Expand Down
87 changes: 32 additions & 55 deletions release_notes/release_notes.stex
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
\documentclass{releasenotes}

\thisversion{Version 9.9.9}
\thisversion{Version 10.0.0}
\thatversion{Version 8.4}
\pubmonth{September}
\pubyear{2023}
\pubmonth{February}
\pubyear{2024}

\iflatex
\usepackage{enumitem}
Expand Down Expand Up @@ -113,12 +113,12 @@ Online versions of both books can be found at
%-----------------------------------------------------------------------------
\section{Functionality Changes}\label{section:functionality}

\subsection{Unicode 15.1 support (9.9.9)}
\subsection{Unicode 15.1 support (10.0.0)}

The character sets, character classes, and word-breaking algorithms for character, string,
and Unicode-related bytevector operations have now been updated to Unicode 15.1.

\subsection{New supported platforms and portable bytecode (9.9.9)}
\subsection{New supported platforms and portable bytecode (10.0.0)}

AArch64 (64-bit Arm), RV64G (64-bit RISC-V), and LoongArch64 architectures are
supported. Threads are supported on architectures with weak memory
Expand All @@ -144,8 +144,7 @@ bytecode interpretation. In particular, since Chez Scheme is mostly
written in Chez Scheme, a pbchunk conversion of its boot files
improves performance of primitives and compilation.


\subsection{Threaded default and build system changes (9.9.9)}
\subsection{Threaded default and build system changes (10.0.0)}

Running \scheme{configure} assumes a threaded target machine type,
unless \scheme{--nothreads} or a non-threaded machine type is
Expand All @@ -172,8 +171,7 @@ The new \scheme{scheme-build-number} function complements
during development. The \scheme{scheme-build-number} procedure always
returns zero for a released version of Chez Scheme.


\subsection{Compiler improvements (9.9.9)}\label{sec:unbox-floats}
\subsection{Compiler improvements (10.0.0)}\label{sec:unbox-floats}

The compiler generates code that locally unboxes floating-point
operations, so that compositions of floating-point operations can be
Expand Down Expand Up @@ -233,8 +231,7 @@ The internal representation of record types has changed so that a
record-type predicate is a constant-time operation, instead of
proportional to the subtype depth.


\subsection{Garbage-collector improvements (9.9.9)}
\subsection{Garbage-collector improvements (10.0.0)}

Garbage collection takes advantage of machine parallelism. Parallel
collection is automatically enabled when a program has multiple Scheme
Expand Down Expand Up @@ -263,8 +260,7 @@ previous versions of Chez Scheme.
See also Sections~\ref{sec:gc-reflect} and \ref{sec:ffi-storage} for
related new functionality.


\subsection{Continuation marks (9.9.9)}\label{sec:cont-marks}
\subsection{Continuation marks (10.0.0)}\label{sec:cont-marks}

\emph{Continuation marks} add key--value information to continuations.
The \scheme{with-continuation-mark} form associates a key--value pair
Expand All @@ -288,8 +284,7 @@ similar to calling a procedure as a function, but instead of a value
to deliver to the continuation, it takes a procedure of no arguments
to call within the continuation.


\subsection{New fixnum operations (9.9.9)}
\subsection{New fixnum operations (10.0.0)}

New operations support common bit-related operations on fixnums:

Expand All @@ -312,8 +307,7 @@ mutable-fxvector? ; removed
immutable-fxvector? ; removed
\endschemedisplay


\subsection{New flonum operations (9.9.9)}
\subsection{New flonum operations (10.0.0)}

The \scheme{eq?} operator works on flonums in the sense that two
flonums values that are \scheme{eq?} at some point (such as creation
Expand Down Expand Up @@ -355,17 +349,15 @@ The \scheme{fl=}, \scheme{fl<}, , \scheme{fl>}, \scheme{fl<=}, and
that's \scheme{+nan.0}, which makes them consistent with \scheme{=},
\scheme{<}, \scheme{>}, \scheme{<=}, and \scheme{>=}.


\subsection{Improved bignum arithmetic (9.9.9)}
\subsection{Improved bignum arithmetic (10.0.0)}

Multiplication of very large numbers uses Karatsuba, Toom-3, or
Toom-4, while division (including GCD) uses Burnikel-Ziegler. These
changes make arithmetic and number-to-string conversions faster for
large values, and they avoid unbounded delays between interrupt
polling.


\subsection{Exact zeros, transcendentals, and exponentials (9.9.9)}
\subsection{Exact zeros, transcendentals, and exponentials (10.0.0)}

Division of an exact \scheme{0} by an inexact number now always
produces exact \scheme{0}, and
Expand All @@ -389,8 +381,7 @@ The \scheme{expt} function recognizes an exact \scheme{1/2} as its
second argument, and in that case it behaves like \scheme{sqrt}, which
may produce an exact result.


\subsection{New character, string, and Unicode functions (9.9.9)}
\subsection{New character, string, and Unicode functions (10.0.0)}

New functions support decoding grapheme clusters within strings or
character streams and expose the underlying new character classifiers:
Expand All @@ -410,9 +401,7 @@ creating an intermediate mutable string.
The \scheme{path-build} procedure combines two path strings to form a
path, adding a directory separator between them if necessary.


\subsection{Hashtable changes (9.9.9)}

\subsection{Hashtable changes (10.0.0)}

Operations returning hashtable cells (\scheme{hashtable-cell},
\scheme{eq-hashtable-cell}, \scheme{symbol-hashtable-cell}, and
Expand Down Expand Up @@ -447,8 +436,7 @@ changes to \scheme{eq?} for flonum values and the availability of weak
and ephemeron hash tables with arbitrary equality and hashing
functions.


\subsection{Stencil vectors (9.9.9)}
\subsection{Stencil vectors (10.0.0)}

Stencil vectors provide support in the compiler and runtime for
implementing data structures such as persistent maps:
Expand All @@ -465,8 +453,7 @@ stencil-vector-truncate!
stencil-vector-mask-width
\endschemedisplay


\subsection{New vector functions (9.9.9)}
\subsection{New vector functions (10.0.0)}

New and extended (in the case of \scheme{vector-copy}) vector functions
support creating a vector from the content of others and creating immutable
Expand All @@ -488,7 +475,7 @@ new versions can avoid redundant initialization and write barriers.
The immutable-vector functions similarly can avoid allocating an
intermediate mutable vector.

\subsection{New symbol functions (9.9.9)}
\subsection{New symbol functions (10.0.0)}

While gensyms support most symbol-generation needs, uninterned symbols
are useful for purposes where properties must not prevent a symbol
Expand All @@ -501,8 +488,7 @@ uninterned-symbol?

The string returned by \scheme{symbol->string} is always immutable.


\subsection{Record anonymous fields (9.9.9)}
\subsection{Record anonymous fields (10.0.0)}

Records can have anonymous fields, which can save memory in the
representation when many record types need to be created (as opposed
Expand All @@ -521,8 +507,7 @@ The new \scheme{record-instance?} predicate is a specialization of
An unsafe \scheme{record-instance?} test can be faster than an unsafe
\scheme{record?} test.


\subsection{Lists assuming immutability (9.9.9)}
\subsection{Lists assuming immutability (10.0.0)}

In a context where pairs are not mutated, the new
\scheme{list-assuming-immutable?} predicate is useful as a variant of
Expand All @@ -531,8 +516,7 @@ efficient, amortized constant-time decision on whether a value
represents a list, but its behavior is unspecified if the
\scheme{cdr} or any pair relevant to the result is mutated.


\subsection{New random number generation (9.9.9)}
\subsection{New random number generation (10.0.0)}

A new random-number API implements the MRG32K3A algorithm:

Expand All @@ -545,8 +529,7 @@ pseudo-random-generator->vector
vector->pseudo-random-generator
\endschemedisplay


\subsection{Wrapper procedures (9.9.9)}
\subsection{Wrapper procedures (10.0.0)}

A \emph{wrapper procedure} provides an inexpensive way to an adjust a
procedure's name, constrain its arity, or associate extra data to the
Expand All @@ -564,8 +547,7 @@ set-wrapper-procedure-data!
set-wrapper-procedure!
\endschemedisplay


\subsection{New thread functions (9.9.9)}\label{sec:threads}
\subsection{New thread functions (10.0.0)}\label{sec:threads}

The new \scheme{thread-join} operator can be used to wait for a thread
to terminate. Waiting for termination in this sense can be useful to
Expand All @@ -591,8 +573,7 @@ When a new thread is created, it now starts with the default
exception-handler stack instead of inheriting the stack of the
creating thread.


\subsection{Garbage collection introspection (9.9.9)}\label{sec:gc-reflect}
\subsection{Garbage collection introspection (10.0.0)}\label{sec:gc-reflect}

Similar to \scheme{enable-object-counts}, the
\scheme{enable-object-backreferences} parameter enables recording of
Expand Down Expand Up @@ -633,8 +614,7 @@ garbage collection, the \scheme{collect} function takes a list as
an optional last argument to fuse a garbage collection with size
accounting.


\subsection{Storage management and foreign interfaces (9.9.9)}\label{sec:ffi-storage}
\subsection{Storage management and foreign interfaces (10.0.0)}\label{sec:ffi-storage}

The \scheme{make-guardian} function accepts an option to create an
\emph{ordered guardian}. An ordered guardian treats each of its
Expand Down Expand Up @@ -691,8 +671,7 @@ internal changes that make allocation thread-local, which in turn
makes the size of a thread's representation proportional to the
maximum number of generations.


\subsection{Foreign interface extensions (9.9.9)}
\subsection{Foreign interface extensions (10.0.0)}

Some ABIs treat functions with varargs (i.e., specified with
\scheme{...} in the C prototype) differently than functions without
Expand Down Expand Up @@ -728,8 +707,7 @@ file descriptor and offset. This form of boot-file registration is
useful for loading boot files that are embedded with an executable
segment.


\subsection{Fasl and vfasl (9.9.9)}
\subsection{Fasl and vfasl (10.0.0)}

Reading fasl data has been made safe no matter how deeply nested the
structure of the data.
Expand All @@ -752,8 +730,7 @@ for boot files to load directly into a static generation can make
startup much faster; otherwise, the time--space tradeoff rarely pays
off. Convert from fasl to vfasl using \scheme{vfasl-convert-file}.


\subsection{New compiler options (9.9.9)}
\subsection{New compiler options (10.0.0)}

Two new parameters skip safety checks in specific situations:
\scheme{enable-unsafe-application} assumes that the target of a
Expand Down Expand Up @@ -803,14 +780,14 @@ The \scheme{enable-error-source-expression} parameter determines
whether error messages that become embedded in code can refer to the
original source file's path.

\subsection{Executable-relative boot files (9.9.9)}
\subsection{Executable-relative boot files (10.0.0)}

When searching for boot files, the two-character escape sequence
``\scheme{%x}'' is now supported on more platforms. By default, Chez
Scheme is configured to use this facility to find boot files relative
to the executable, even when installed.

\subsection{Syntax quoting (9.9.9)}
\subsection{Syntax quoting (10.0.0)}

The new \scheme{quote-syntax} form is like the R$^6$RS \scheme{syntax}
form except that pattern variables are not substituted. It can be
Expand Down Expand Up @@ -2749,13 +2726,13 @@ in fasl files does not generally make sense.
%-----------------------------------------------------------------------------
\section{Bug Fixes}\label{section:bugfixes}

\subsection{\scheme{library-exports} for library that is not yet imported (9.9.9)}
\subsection{\scheme{library-exports} for library that is not yet imported (10.0.0)}

When visiting or loading a separately compiled library,
\scheme{library-exports} raised an exception if the library was not
yet imported.

\subsection{Incorrect code for \scheme{record?} at optimize-level 3 (9.9.9)}
\subsection{Incorrect code for \scheme{record?} at optimize-level 3 (10.0.0)}

At optimize-level 3, the \scheme{record?} predicate could short circuit without
evaluating the \var{rtd} expression.
Expand Down
2 changes: 1 addition & 1 deletion rpm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

version = 9.9.9
version = 10.0.0
release = 1
m := $(shell find ../bin/* -type d | xargs basename)
arch := $(shell if test "$(m)" == "i3le" ; then echo i686 ; elif test "$(m)" == "a6le" ; then echo x86_64 ; else echo UNKNOWN ; fi)
Expand Down
Loading

0 comments on commit 282fcb2

Please sign in to comment.