Releases: Shen-Language/shen-sources
Releases · Shen-Language/shen-sources
Shen OS Kernel 32.0
Changed
- Integrated changes from the new S-kernel series.
Shen OS Kernel 31.0-rc1
Pre-release
Shen OS Kernel 22.4
Fixed
- Fixed compilation of empty vector pattern matching.
Shen OS Kernel 22.3
Added
- New experimental
programmable-pattern-matching
extension. - Extensible selector rules on
factorise-defun
extension. - Benchmarks.
Fixed
- Fixed bug in typechecking function that made user-defined typechecking rules for lambdas to never run.
- Fixed handling of prolog cuts in some corner cases.
- The t* algorithm now respects user-defined rules for lambdas.
Shen OS Kernel 22.2
Fixed
factorise-defun
extension: Avoid generating unnecessary labels for%%return
expresions for literal values or variable references.
Shen OS Kernel 22.1
Added
- New
factorise-defun
extension that performs a pattern matching factorisation optimization on defuns.
Changed
- Split initialisation function into many.
Shen OS Kernel 22.0
Added
- Premature expansion of some dynamic code when generating
.kl
files so that it doesn't have to be evaluated during startup. Some ports should see a huge speedup in startup times from this change. - Extensions (see
doc/extensions.md
). - New document with instructions for porters on how to upgrade to new kernel releases (see
doc/port-upgrade.md
).
Changed
shen.shen
has been renamed toshen.repl
.- A new file
init.kl
has been added and it needs to be included along the other.kl
files. - A new
shen.initialise
function has been added. This function has to be called before anything else. - Load order of
.kl
files doesn't matter anymore.
Shen OS Kernel 21.2
Fixed
- variables that shadow a pattern match variable no longer get ebr'd.
print-vector?
will now handle empty absvectors, returningfalse
.- Removed
<>
from initialisation ofshen.external-symbols
. - Fix
preclude*
andinclude*
not working for datatypes defined inside packages.
Changed
tests.shen
no longer resets pass/fail counters when test suite is finished.
Shen OS Kernel 21.1
Added
- Support for cons syntax in type signatures (via Mark).
Fixed
- Make prolog's
call
work with properly with pvars.
Changed
prolog?
macro now expands code inline like in SP instead of usingdefprolog
(via Mark).(map F X)
now returns(F X)
whenX
is not a list. The type signature ofmap
remains unchanged. Matches SP's behaviour.map
is no longer tail-recursive. Matches SP's behaviour.
Shen OS Kernel 21.0
Added
- Moved code that prints errors at the toplevel to the
shen.toplevel-display-exception
function that can be overrided by ports to customize printing of errors (to for example, include error location).
Removed
command-line
function and*argv*
variable.fold-right
andfold-left
.get/or
,value/or
,<-address/or
,<-vector/or
and<-dict/or
.filter
.exit
.- Handling of EOF in the REPL.
Changed
for-each
was made internal to theshen
package.dict
,dict?
,dict-count
,dict->
,<-dict
,dict-rm
,dict-fold
,dict-keys
anddict-values
made internal to theshen
package.
Fixed
- Remove repetition from code generated by
defcc
which made some cases very slow to compile and run. - Fixed the expansion of non-null packages generated by macros.
- Increased space allocated for prolog, fixes issues in bigger programs.
- Made
,
external. - Fixes
nth
for cases where the element is not on the list or invalid arguments are passed.