diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33bb2089b..c1d7d9cb8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,9 +12,9 @@ jobs: configure: --pb --threads --enable-libffi test: test-some-fast - machine: a6osx - os: macos-12 + os: macos-13 - machine: ta6osx - os: macos-12 + os: macos-13 - machine: arm64osx os: macos-14 - machine: tarm64osx diff --git a/BUILDING b/BUILDING index 222554fd7..77de9d0ef 100644 --- a/BUILDING +++ b/BUILDING @@ -1,4 +1,4 @@ -Building Chez Scheme Version 10.0.0 +Building Chez Scheme Version 10.1.0 Copyright 1984-2024 Cisco Systems, Inc. Licensed under the Apache License, Version 2.0 (the "License"); @@ -541,7 +541,7 @@ Finally, configure the Emscripten build to use "demo.boot": CROSS COMPILING -To compile Chez Scheme for a target platform that is different than +To compile Chez Scheme for a target platform that is different from the host platform, supply the `--cross` flag to the "configure" script while also specifying the target machine type, compiler settings to build for the target platform, and `CC_FOR_BUILD=` to @@ -598,7 +598,7 @@ step via `DESTDIR`: CROSS COMPILING SCHEME PROGRAMS -After a non-cross build to work on the host platform, using +After getting a non-cross build to work on the host platform, using make bootquick XM= @@ -606,8 +606,8 @@ or zuo . bootquick -creates a "boot" subdirectory for containing boot file, -and in the process create a cross-compilation patch file as +creates a "boot" subdirectory for containing boot files +and in the process creates a cross-compilation patch file as "xc-/s/xpatch". Loading that "xpatch" file into Chez Scheme for the current platform changes functions like `compile-file` and `make-boot-file` to generate code for the target . diff --git a/NOTICE b/NOTICE index 4dc1b01ba..d84851e14 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -Chez Scheme Version 10.0.0 +Chez Scheme Version 10.1.0 Copyright 1984-2024 Cisco Systems, Inc. This product includes code developed by Cisco Systems, Inc. diff --git a/README.md b/README.md index f35f019f8..238645990 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ The R6RS core of the Chez Scheme language is described in which also includes an introduction to Scheme and a set of example programs. Chez Scheme's additional language, run-time system, and programming environment features are described in the -[Chez Scheme User's Guide](http://cisco.github.io/ChezScheme/csug10.0/csug.html). +[Chez Scheme User's Guide](http://cisco.github.io/ChezScheme/csug/csug.html). The latter includes a shared index and a shared summary of forms, with links where appropriate to the former, so it is often the best starting point. diff --git a/boot/pb/equates.h b/boot/pb/equates.h index ccbd108ed..35b731fa5 100644 --- a/boot/pb/equates.h +++ b/boot/pb/equates.h @@ -1,4 +1,4 @@ -/* equates.h for Chez Scheme Version 10.1.0-pre-release.4 */ +/* equates.h for Chez Scheme Version 10.1.0 */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -1015,7 +1015,7 @@ typedef uint64_t U64; #define rtd_sealed 0x4 #define sbwp (ptr)0x4E #define scaled_shot_1_shot_flag -0x8 -#define scheme_version 0xA010004 +#define scheme_version 0xA010000 #define seginfo_generation_disp 0x1 #define seginfo_list_bits_disp 0x8 #define seginfo_space_disp 0x0 diff --git a/boot/pb/petite.boot b/boot/pb/petite.boot index 574ec316e..074bd0de2 100644 Binary files a/boot/pb/petite.boot and b/boot/pb/petite.boot differ diff --git a/boot/pb/scheme.boot b/boot/pb/scheme.boot index 848ffd962..e54ced810 100644 Binary files a/boot/pb/scheme.boot and b/boot/pb/scheme.boot differ diff --git a/boot/pb/scheme.h b/boot/pb/scheme.h index 7c3681f0a..630c029d6 100644 --- a/boot/pb/scheme.h +++ b/boot/pb/scheme.h @@ -1,4 +1,4 @@ -/* scheme.h for Chez Scheme Version 10.1.0-pre-release.4 (pb) */ +/* scheme.h for Chez Scheme Version 10.1.0 (pb) */ /* Do not edit this file. It is automatically generated and */ /* specifically tailored to the version of Chez Scheme named */ @@ -40,7 +40,7 @@ #endif /* Chez Scheme Version and machine type */ -#define VERSION "10.1.0-pre-release.4" +#define VERSION "10.1.0" #define MACHINE_TYPE "pb" /* Integer typedefs */ diff --git a/c/scheme.rc b/c/scheme.rc index f09e55cf6..d106d62da 100644 --- a/c/scheme.rc +++ b/c/scheme.rc @@ -1,8 +1,8 @@ #include "winver.h" VS_VERSION_INFO VERSIONINFO - FILEVERSION 10,0,0,0 - PRODUCTVERSION 10,0,0,0 + FILEVERSION 10,1,0,0 + PRODUCTVERSION 10,1,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 10.0.0" - VALUE "FileVersion", "10.0.0" + VALUE "FileDescription", "Chez Scheme Version 10.1.0" + VALUE "FileVersion", "10.1.0" VALUE "InternalName", "scheme.exe" 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", "10.0.0" + VALUE "ProductVersion", "10.1.0" } } BLOCK "VarFileInfo" { diff --git a/configure b/configure index 0c0ab6636..8815f3ccc 100755 --- a/configure +++ b/configure @@ -653,11 +653,11 @@ if [ "$installdoc" = "" ] ; then fi if [ "$installcsug" = "" ] ; then - installcsug=$installdoc/csug10.0 + installcsug=$installdoc/csug10.1.0 fi if [ "$installreleasenotes" = "" ] ; then - installreleasenotes=$installdoc/csv10 + installreleasenotes=$installdoc/csv10.1.0 fi if [ "$help" = "yes" ]; then diff --git a/csug/csug.stex b/csug/csug.stex index 080101b54..856aa2a29 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 "February 2024") +(define latest-release-date "November 2024") (printf "\\def\\CSVersion{~a}\n" (scheme-version #t)) (cond [(not (scheme-pre-release)) diff --git a/lz4 b/lz4 index d44371841..5ff839680 160000 --- a/lz4 +++ b/lz4 @@ -1 +1 @@ -Subproject commit d44371841a2f1728a3f36839fd4b7e872d0927d3 +Subproject commit 5ff839680134437dbf4678f3d0c7b371d84f4964 diff --git a/makefiles/Makefile-csug.in b/makefiles/Makefile-csug.in index ebaf7176f..407fe12af 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)/csug10_0.pdf + $(INSTALL) -m 0644 --ifdiff csug.pdf $(installdir)/csug.pdf $(INSTALL) -m 2755 -d $(installdir)/canned $(INSTALL) -m 0644 --ifdiff canned/* $(installdir)/canned $(INSTALL) -m 2755 -d $(installdir)/gifs diff --git a/maketarball b/maketarball new file mode 100755 index 000000000..fbfd53f06 --- /dev/null +++ b/maketarball @@ -0,0 +1,38 @@ +#!/bin/bash + +# maketarball +# Copyright 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. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +cd "$(dirname "$0")" +srcdir=$(pwd) +tmpdir=$(mktemp -d) + +function cleanup() { rm -rf "$tmpdir"; } + +trap cleanup EXIT + +git archive --format=tar --prefix=csv10.1.0/ HEAD | (cd "$tmpdir"; tar -xf -) +git submodule update --init --recursive +git submodule --quiet foreach --recursive \ + "git archive --format=tar --prefix=\"csv10.1.0/\$path/\" HEAD | (cd \"$tmpdir\"; tar -xf -)" + +if [[ "$(uname -s)" == "Darwin" ]]; then + mac="--no-mac-metadata" +else + mac="" +fi +(cd "$tmpdir"; tar -c -z $mac -f "$srcdir/csv10.1.0.tar.gz" csv10.1.0) diff --git a/newrelease b/newrelease index 0fb9a387d..9c1e091cd 100755 --- a/newrelease +++ b/newrelease @@ -36,9 +36,6 @@ if ({(echo -n "$1" | grep '^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >& /dev/null # set ZR to release number w/o "." set ZR = $MR$mR$bR - - # set underscoreR to release number w/ "_" in place of "." - set underscoreR = $MR"_"$mR"_"$bR else echo "invalid release number $R" exit 1 @@ -52,9 +49,12 @@ sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \ -e "s/Copyright 1984-.... /Copyright 1984-`date +%Y` /" \ -I "" NOTICE -sed -e "s/csug[0-9][0-9]*\.[0-9][0-9]*/csug$MR.$mR/" \ - -e "s/csug[0-9][0-9]*_[0-9][0-9]*/csug$MR""_$mR/" \ - -I "" makefiles/Makefile-csug.in +sed -e "s/csug[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/csug$R/g" \ + -e "s/csv[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/csv$R/g" \ + -I "" configure + +sed -e "s/csv[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/csv$R/g" \ + -I "" maketarball sed -e "s/Chez Scheme Version [0-9][0-9]*\.[0-9][0-9]*\(\.[0-9][0-9]*\)* .* [0-9][0-9]*/Chez Scheme Version $R `date +'%B %Y'`/" \ -e "s/Copyright .* Cisco Systems, Inc./Copyright `date +%Y` Cisco Systems, Inc./" \ diff --git a/pkg/Makefile b/pkg/Makefile index 4c1b6171c..5b102ea82 100644 --- a/pkg/Makefile +++ b/pkg/Makefile @@ -14,7 +14,7 @@ # limitations under the License. m := $(shell find ../bin/* -type d | xargs basename) -version = 10.0.0 +version = 10.1.0 release = 1 DOTUSER = $(shell ls -ld . | sed -e 's/[^ ]* *[^ ]* *\([^ ]*\).*/\1/') diff --git a/release_notes/release_notes.stex b/release_notes/release_notes.stex index 746e76318..cc3ffef1d 100644 --- a/release_notes/release_notes.stex +++ b/release_notes/release_notes.stex @@ -1,8 +1,8 @@ \documentclass{releasenotes} -\thisversion{Version 10.0.0} +\thisversion{Version 10.1.0} \thatversion{Version 8.4} -\pubmonth{February} +\pubmonth{November} \pubyear{2024} \iflatex @@ -116,6 +116,15 @@ Online versions of both books can be found at %----------------------------------------------------------------------------- \section{Functionality Changes}\label{section:functionality} +\subsection{Constrain signal delivery to the main thread (10.1.0)} + +Signals are now always delivered to the main Scheme thread to avoid crashes when a signal +is delivered to a thread that may not even be running Scheme. + +\subsection{Improved support for lists in type recovery (10.1.0)} + +The type recovery pass has improved support for lists by classifying pairs as mutable or +immutable. Type recovery is enabled with the \scheme{enable-type-recovery} parameter. \subsection{New machine types for iOS (10.1.0)}\label{section:ios-machine-types} @@ -2755,6 +2764,35 @@ in fasl files does not generally make sense. %----------------------------------------------------------------------------- \section{Bug Fixes}\label{section:bugfixes} +\subsection{Incorrect assembly code for threaded ARMv5 and earlier (10.1.0)} + +A bug that generated incorrect assembly code in threaded mode for ARMv5 and earlier +architectures has been fixed. + +\subsection{Index checks in bytevector-reference procedures (10.1.0)} + +Bugs that caused an invalid memory reference in \scheme{bytevector-reference-ref}, +\scheme{bytevector-reference*-ref}, and \scheme{bytevector-reference-set!} have been +fixed. + +\subsection{Repairs for pb32 foreign interface (10.1.0)} + +Bugs in the handling of callable addresses and 64-bit arguments and results in pb32 when +using libffi have been fixed. + +\subsection{Bytecode endianness handling on s390x, m68k, and hppa (10.1.0)} + +The bytecode endianness on s390x, m68k, and hppa architectures has been fixed. + +\subsection{Error message fixes (10.1.0)} + +A bug where \scheme{flvector} incorrectly reports ``non-flonum found'' errors as +``non-fixnum found'' errors has been fixed. + +Errors for invalid indices in bit operations \scheme{bitwise-bit-set?}, +\scheme{bitwise-copy-bit}, \scheme{logbit?}, \scheme{logbit0}, and \scheme{logbit1} now +report ``invalid bit index'' instead of ``not an exact integer''. + \subsection{\scheme{with-continuation-mark} key and value expressions (10.1.0)} A bug in \scheme{with-continuation-mark} positioned the key and @@ -2770,7 +2808,7 @@ to report the wrong result has been fixed. \subsection{Repair R$^5$RS and IEEE environments (10.1.0)} The environments returned by \scheme{(scheme-report-environment 5)} -and \scheme{(scheme-ieee-environment)} had some names incorrectly +and \scheme{(ieee-environment)} had some names incorrectly prefixed with \scheme{r6rs:}, such as \scheme{r6rs:<} instead of \scheme{<}. @@ -2785,25 +2823,19 @@ The ``V'' format directive is now recognized in uppercase as well as lowercase. \subsection{Optimization and \scheme{debug-level} $\geq$ 2 (10.1.0)} -Setting \scheme{debug-level} to 2 or higher did not prevent an -error-causing call in nontail position to stay nontail when -\scheme{enable-type-recovery} is \scheme{#t} (the default value). -Furthermore, a tail error-causing call could be made non-tail by -optimizations that aim to expose non-error paths. Those behaviors -moved further from the documented behavior of \scheme{debug-level} -than Chez Scheme version 9.x---but version 9.x was also not consistent -with the documentation due to cp0 conversions such as replacing -\scheme{(let ([x \var{expr}]) x)} with just \var{expr}. - -Instead of guaranteeing any specific behavior, a \scheme{debug-level} -value of 2 or higher is now defined to merely \emph{discourage} -optimizations that affect the continuation structure as revealed by the -inspector, where the goal is to produce more informative stack -backtraces at the point where an exception is raised. The -implementation produces results that are more in line with Chez Scheme -9.x. Meanwhile, continuation marks support predictable and -well-defined reflection on continuations in a way that is compatible -with compiler optimizations. +When \scheme{debug-level} is 2 or higher and \scheme{enable-type-recovery} is \scheme{#t} +(the default), the compiler could move a call to error from non-tail position to tail +position, which eliminates the stack frame and makes debugging more difficult. +Furthermore, the compiler could also move a call to error from tail position to non-tail +position by optimizations that aim to expose non-error paths. + +Instead of guaranteeing any specific behavior, a \scheme{debug-level} value of 2 or higher +is now defined to \emph{discourage} optimizations that affect the continuation structure +as revealed by the inspector, where the goal is to produce more informative stack traces +at the point where an exception is raised. The implementation produces results that are +more consistent with Chez Scheme 9. Meanwhile, continuation marks support predictable and +well-defined reflection on continuations in a way that is compatible with compiler +optimizations. \subsection{Random number generation for large exact integers (10.1.0)} diff --git a/rpm/Makefile b/rpm/Makefile index 3f347b7b6..699a6d2c0 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 = 10.0.0 +version = 10.1.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/cmacros.ss b/s/cmacros.ss index dee9e404f..b8330e727 100644 --- a/s/cmacros.ss +++ b/s/cmacros.ss @@ -357,7 +357,7 @@ ;; --------------------------------------------------------------------- ;; Version and machine types: -(define-constant scheme-version #x0a010004) +(define-constant scheme-version #x0a010000) (define-syntax define-machine-types (lambda (x) diff --git a/scheme.1.in b/scheme.1.in index 25378e334..8c02bb555 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 10.0.0 February 2024" +.TH SCHEME 1 "Chez Scheme Version 10.1.0 November 2024" .SH NAME {InstallSchemeName} - Chez Scheme .br diff --git a/wininstall/Makefile b/wininstall/Makefile index d96a49a52..f93532752 100644 --- a/wininstall/Makefile +++ b/wininstall/Makefile @@ -1,4 +1,4 @@ -VERSION := 10.0.0 +VERSION := 10.1.0 WIXEXTENSIONS := -ext WixUIExtension -ext WixBalExtension export MSYS_NO_PATHCONV=1 diff --git a/wininstall/a6nt.wxs b/wininstall/a6nt.wxs index 19a40336d..82a2359ee 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 5c57c4f9c..15db4329f 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 3e71059ee..1b79ddaac 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 a29fb986c..2371e8b58 100644 --- a/wininstall/ti3nt.wxs +++ b/wininstall/ti3nt.wxs @@ -4,16 +4,16 @@ - + - + - + - + @@ -40,10 +40,10 @@ - + - +