Skip to content

Releases: Shen-Language/shen-sources

Shen OS Kernel 32.0

06 Mar 21:19
Compare
Choose a tag to compare

Changed

  • Integrated changes from the new S-kernel series.

Shen OS Kernel 31.0-rc1

01 Mar 01:22
Compare
Choose a tag to compare
Pre-release

Pre-release

Shen OS Kernel 22.4

07 Mar 17:57
Compare
Choose a tag to compare

Fixed

  • Fixed compilation of empty vector pattern matching.

Shen OS Kernel 22.3

23 Feb 21:29
Compare
Choose a tag to compare

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

11 Oct 21:02
Compare
Choose a tag to compare

Fixed

  • factorise-defun extension: Avoid generating unnecessary labels for %%return expresions for literal values or variable references.

Shen OS Kernel 22.1

29 Sep 19:41
Compare
Choose a tag to compare

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

26 Sep 13:16
0d1783b
Compare
Choose a tag to compare

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 to shen.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

17 Sep 19:57
Compare
Choose a tag to compare

Fixed

  • variables that shadow a pattern match variable no longer get ebr'd.
  • print-vector? will now handle empty absvectors, returning false.
  • Removed <> from initialisation of shen.external-symbols.
  • Fix preclude* and include* 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

06 Oct 22:54
Compare
Choose a tag to compare

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 using defprolog (via Mark).
  • (map F X) now returns (F X) when X is not a list. The type signature of map remains unchanged. Matches SP's behaviour.
  • map is no longer tail-recursive. Matches SP's behaviour.

Shen OS Kernel 21.0

17 Feb 15:28
Compare
Choose a tag to compare

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 and fold-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 the shen package.
  • dict, dict?, dict-count, dict->, <-dict, dict-rm, dict-fold, dict-keys and dict-values made internal to the shen 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.