diff --git a/BUILDING b/BUILDING index 2f36a892b..806dedceb 100644 --- a/BUILDING +++ b/BUILDING @@ -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. diff --git a/NOTICE b/NOTICE index 59771015d..4dc1b01ba 100644 --- a/NOTICE +++ b/NOTICE @@ -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. diff --git a/c/scheme.rc b/c/scheme.rc index 2e7783642..f09e55cf6 100644 --- a/c/scheme.rc +++ b/c/scheme.rc @@ -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 @@ -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" { diff --git a/csug/copyright.stex b/csug/copyright.stex index 16e82abfa..ed6951dc9 100644 --- a/csug/copyright.stex +++ b/csug/copyright.stex @@ -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 diff --git a/csug/csug.stex b/csug/csug.stex index 697f5e056..080101b54 100644 --- a/csug/csug.stex +++ b/csug/csug.stex @@ -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)) @@ -78,7 +78,7 @@ \def\copyrightnotice{\raw{

Chez Scheme Version 10 User's Guide
-Copyright © 2023 Cisco Systems, Inc.
+Copyright © 2024 Cisco Systems, Inc.
Licensed under the Apache License Version 2.0 (full copyright notice.).
Revised} \revisiondate\raw{ for }\CSVersion\raw{
diff --git a/makefiles/Makefile-csug.in b/makefiles/Makefile-csug.in index 52da6af88..ebaf7176f 100644 --- a/makefiles/Makefile-csug.in +++ b/makefiles/Makefile-csug.in @@ -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 diff --git a/pkg/Makefile b/pkg/Makefile index 5d34b98fb..4c1b6171c 100644 --- a/pkg/Makefile +++ b/pkg/Makefile @@ -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/') @@ -77,7 +77,7 @@ $(BUILDROOT)/Distribution: $(BUILDROOT) $(BUILDROOT)/Resources/en.lproj/Welcome.html: $(BUILDROOT)/Resources/en.lproj echo '' > $(BUILDROOT)/Resources/en.lproj/Welcome.html echo '

Chez Scheme Version $(version)

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html - echo '

Copyright © 2023 Cisco Systems, Inc.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html + echo '

Copyright © 2024 Cisco Systems, Inc.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html echo '

Chez Scheme is a programming language and an implementation of that language, with supporting tools and documentation.

' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html echo '' >> $(BUILDROOT)/Resources/en.lproj/Welcome.html chmod 644 $(BUILDROOT)/Resources/en.lproj/Welcome.html diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex index 6571ff70b..51a2e79ca 100644 --- a/release_notes/release_notes.stex +++ b/release_notes/release_notes.stex @@ -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} @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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: @@ -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 @@ -355,8 +349,7 @@ 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 @@ -364,8 +357,7 @@ 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 @@ -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: @@ -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 @@ -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: @@ -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 @@ -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 @@ -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 @@ -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 @@ -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: @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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. @@ -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 @@ -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 @@ -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. diff --git a/rpm/Makefile b/rpm/Makefile index 0205c4444..3f347b7b6 100644 --- a/rpm/Makefile +++ b/rpm/Makefile @@ -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) diff --git a/s/7.ss b/s/7.ss index c60ea6928..9b5091b0a 100644 --- a/s/7.ss +++ b/s/7.ss @@ -709,14 +709,10 @@ (define $format-scheme-version (lambda (n) - (if (= (logand (ash n -8) 255) 0) - (format "~d.~d" - (ash n -24) - (logand (ash n -16) 255)) - (format "~d.~d.~d" - (ash n -24) - (logand (ash n -16) 255) - (logand (ash n -8) 255))))) + (format "~d.~d.~d" + (ash n -24) + (logand (ash n -16) 255) + (logand (ash n -8) 255)))) ; set in back.ss (define $scheme-version) @@ -785,7 +781,7 @@ (define $scheme-greeting (lambda () - (format "~a\nCopyright 1984-2023 Cisco Systems, Inc.\n" + (format "~a\nCopyright 1984-2024 Cisco Systems, Inc.\n" (scheme-version #t)))) (define $session-key #f) diff --git a/s/cmacros.ss b/s/cmacros.ss index efa63484e..b083653f6 100644 --- a/s/cmacros.ss +++ b/s/cmacros.ss @@ -357,7 +357,7 @@ ;; --------------------------------------------------------------------- ;; Version and machine types: -(define-constant scheme-version #x09090918) +(define-constant scheme-version #x0a000000) (define-syntax define-machine-types (lambda (x) diff --git a/scheme.1.in b/scheme.1.in index 235645f1f..6ca82d7a5 100644 --- a/scheme.1.in +++ b/scheme.1.in @@ -3,7 +3,7 @@ .if t .ds c caf\o'\'e' .if n .ds c cafe .ds ]W -.TH SCHEME 1 "Chez Scheme Version 9.9.9 September 2023" +.TH SCHEME 1 "Chez Scheme Version 10.0.0 February 2024" .SH NAME \fIChez Scheme\fP .br @@ -794,6 +794,6 @@ Second Edition\fP, MIT press (1996). .in -5 .SH AUTHOR -Copyright 2023 Cisco Systems, Inc. +Copyright 2024 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) diff --git a/wininstall/Makefile b/wininstall/Makefile index 9f5338b84..34367489a 100644 --- a/wininstall/Makefile +++ b/wininstall/Makefile @@ -1,4 +1,4 @@ -VERSION := 9.9.9 +VERSION := 10.0.0 WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension export MSYS_NO_PATHCONV=1 diff --git a/wininstall/a6nt.wxs b/wininstall/a6nt.wxs index 96e47a220..19a40336d 100644 --- a/wininstall/a6nt.wxs +++ b/wininstall/a6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/i3nt.wxs b/wininstall/i3nt.wxs index 5cfde7e0e..5c57c4f9c 100644 --- a/wininstall/i3nt.wxs +++ b/wininstall/i3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/ta6nt.wxs b/wininstall/ta6nt.wxs index a330aa7ad..3e71059ee 100644 --- a/wininstall/ta6nt.wxs +++ b/wininstall/ta6nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - + diff --git a/wininstall/ti3nt.wxs b/wininstall/ti3nt.wxs index 5c490eff3..a29fb986c 100644 --- a/wininstall/ti3nt.wxs +++ b/wininstall/ti3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - +