mes/NEWS

82 lines
3.1 KiB
Plaintext
Raw Normal View History

-*- org -*-
#+TITLE: Mes NEWS history of user-visible changes
#+STARTUP: content hidestars
Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
Please send Mes bug reports to janneke@gnu.org.
* Changes in 0.4 since 0.3
** Core
*** Smaller C-reader
The C-reader needs only support reading of words and lists
(s-expressions), line-comments. Quoting, characters, strings,
block-comments are all handled by the Scheme reader later.
** Language
*** Keywords are supported.
*** Cond now supports =>.
*** Lambda* and define* are now supported.
*** #;-comment is now supported.
*** Non-nested #| |#-comment is now supported.
** Noteworthy bug fixes
*** Closure is not a pair.
* Changes in 0.3 since 0.2
** Core
*** Number-based rather than pointer-based cells.
*** Garbage collector aka Jam scraper.
A variant on SICP's stop and copy Garbage Colletor (Jam Scraper?)
algorithm has been implemented.
*** The reader has been moved to Scheme.
** Language
*** Simple loadable modules.
*** Srfi-9 and match use handwritten syntax-rules (mes-use-module (mes syntax)).
*** Optional syntax-case using psyntax (mes-use-module (mes psyntax)).
** Noteworthy bug fixes
*** Srfi-0 has been fixed.
* Changes in 0.2 since 0.1
** Core
*** Names of symbols and strings are list of characters [WAS: c-string].
2016-11-21 13:16:52 +00:00
*** Sc-expand from pre-R6RS's psyntax has been integrated.
*** Undefined variable error now shows the name of the undefined variable.
*** There is now only one SCM type for builtin functions.
*** Macro expansion has been cleaned-up.
** Language
*** Mes now provides a subset of R6RS.
2016-11-21 13:16:52 +00:00
*** Mes now provides syntax-case.
*** Mes now provides `load'.
** Noteworthy bug fixes
*** Using values as second parameter of builtin function yields first value.
2016-11-21 13:16:52 +00:00
*** Quoted internals (e.g. 'if 'lambda) are now symbols.
*** Syntax error now exits.
*** Make+Bash voodoo has been replaced by build-aux/mes-snarf.scm.
*** Apply now accepts multiple list arguments.
*** Apply of character, inernal, number, string is an error.
*** Quasisyntax reading
* Changes in 0.1 (since progress report #2)
** Core
*** expand_macro is now a separate function.
*** A smaller core can now compiled using BOOT=1.
The smaller core does not provide define, define-macro, or quasiquote;
these are provided from a Scheme version of implemented eval/apply.
** Language
*** Mes now provides a subset of R5RS.
*** Mes now provides let-syntax.
*** Mes now provides match.
*** Mes now provides quasisyntax, unsyntax and unsyntax-splicing.
** User interface
*** Mes now provides a REPL, run:
scripts/repl.mes
*** Mes compiler can be run as a script:
scripts/mescc.mes doc/examples/main.c
*** Macro expansion can be inspected in the REPL, e.g.:
,expand (and 0 1)
** Noteworthy bug fixes
*** Performance: scripts/mescc.mes now takes 2s to compile main.c (was 1'20").
*** Symbols are now truly unique.
* '(), #t, #f are no longer symbols.