All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.39 - 2024-08-11
- Updated kernel to S39.
- Binary releases for macOS on x64. Now two binaries for both x64 and arm64 are uploaded for macOS.
0.38 - 2024-06-02
- The
cd
function is not overriden anymore. Now it behaves the same as in the official SBCL port. It doesn't use the underlying Chezcurrent-directory
function anymore, which means that FFI code should not depend on the current directory as seen bycd
anymore.
0.37 - 2024-05-25
- Support for aarch64 and riscv64 architectures on Linux.
0.36 - 2024-05-21
- Updated kernel to S38.3.
0.35 - 2024-05-12
- Updated kernel to S38.2.
- Bumped default Chez version to 10.0.0.
0.34 - 2024-01-14
- Updated kernel to S36.0.
- Bumped default Chez version to 9.6.4.
0.33 - 2023-08-19
- Updated kernel to S34.5.
0.32 - 2023-07-02
- Fix
close
so that it returns an empty list as declared by the Shen kernel.
0.31 - 2023-07-02
- Updated kernel to S34.4.
0.30 - 2023-04-02
- Updated kernel to S34.3.
0.29 - 2022-12-10
- Updated kernel to S34.2.
0.28 - 2022-11-27
- Updated kernel to S34.1.
0.27.1 - 2022-10-09
- Updated kernel to S33.1.2.
- Bumped default Chez version to 9.5.8.
0.27 - 2022-10-09
- Updated kernel to S33.1.1.
- Improved compilation of factorized
defuns
that generates code as efficient as the pre-S-kernel version.
- Special treatment of
scm.
prefixed functions was removed. The newforeign
form must now be used.
0.26 - 2022-09-10
- Updated kernel to S33.1
- Origin of raised exceptions is not shown anymore my default. This can be changed by setting
shen.*show-exceptions*
totrue
.
0.25.5 - 2022-09-06
pr
override now respects*hush*
's value.
0.25.4 - 2022-09-04
eval-kl
now correctly returns the name of the defined function when evaluatingdefun
expressions.- The exception raised by
abort
andshen.string-match
is now recognized as an interactive error in the REPL and no exception message is displayed.
0.25.3 - 2022-07-31
- Updated kernel to S32.3
0.25.2 - 2022-05-21
- Updated kernel to S32.1
0.25.1 - 2022-03-06
- Updated kernel to S32
0.25 - 2022-03-06
- Updated for new S-series kernel (version S31)
0.24 - 2021-03-07
- Updated for Shen 22.4.
0.23 - 2020-12-13
- Enabled
programmable-pattern-matching
extension. - Non-string version of special
scm.
form.
- Updated for Shen 22.3.
- Updated Chez dependency to 9.5.4.
if
branches with a known test result are optimized away.- Faster equality check against literal numbers.
- Faster globals.
- Various other optimizations.
0.22 - 2019-10-01
- Updated for Shen 22.1.
- Replace factorisation implementation with extension from kernel.
0.21 - 2019-09-26
- Integrated new
features
extension provided by the latest Shen kernel release.
- Updated for Shen 22.0.
- Arguments to the shen-scheme binary have changed, and the launcher extension provided by the latest Shen kernel release is used, pass the
--help
argument to the executable to see the new format.
0.20 - 2019-09-23
- Added flag to allow disabling of pattern factorization.
- Improve pattern factorization by only hoisting labels that get jumped to from more than one place.
- Improve pattern factorization by generating fewer
ifs
in cases where the conditions can be merged into a singleif
+and
. - Compile chains of
cons
calls that result in a properly formed list into a singlelist
call. - Multiple aesthetic changes to the Scheme code the compiler generates.
0.19 - 2019-09-22
- Implemented pattern matching optimization. Speedup goes from modest in simple patterns to huge in patterns that deconstruct larger structures.
- Added missing
*release*
variable.
- Updated for Shen 21.2.
- Functions generated by compiling
defun
expressions are not wrapped inbegin
expressions anymore.
0.18 - 2019-09-02
- Add
shen-scheme.find-library
function that returns a path where libraries can be added. - Add support for Scheme's
letrec
through thescm.letrec
form.
- Updated for Shen 21.1.
- Updated Chez dependency from 9.5 to 9.5.2.
- Don't flush ports after calling
write-byte
unless the port is stdout or stderr. - Override
pr
with a better performing implementation. - Override
vector
constructor with better performing implementation. - Override
@p
tuple constructor with better performing implementation. - Make
sysfunc?
return true forscm.
prefixed symbols. - Remove "whoami" dependency.
- Fix compilation of
let
. Was not working correctly in where the variable name showed up on the right-side. - Compile
(thaw ...)
expressions to direct function calls. - Use path relative to shen-scheme executable as home.
0.17 - 2018-02-17
- Add support for
(scm. "(literal scheme code)")
forms. - Add
--eval <expression>
command-line option.
- Updated for Shen 21.
- Reduce overhead of
trap-error
in most situations. - Return numbers when calling
intern
with numeric strings. - Optimise calls to
(intern "StringConstant")
. - Fix dicts not working properly with some key value types.
- Fix
symbol?
override so that it behaves like the Shen Kernel version.
0.16 - 2018-01-13
- Updated for Shen 20.1.
- Totally rewritten compiler in Shen.
- Swiched platform to Chez Scheme.
- Dropped support for Gauche Scheme and Chibi Scheme.