2016-10-15 09:54:24 +00:00
|
|
|
|
-*- org -*-
|
2018-07-22 12:24:36 +00:00
|
|
|
|
#+TITLE: GNU Mes NEWS – history of user-visible changes
|
2016-10-15 09:54:24 +00:00
|
|
|
|
#+STARTUP: content hidestars
|
|
|
|
|
|
2023-02-13 06:19:16 +00:00
|
|
|
|
Copyright © 2016,2017,2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
2016-10-15 09:54:24 +00:00
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2018-07-28 09:37:47 +00:00
|
|
|
|
Please send Mes bug reports to bug-mes@gnu.org.
|
2016-10-15 09:54:24 +00:00
|
|
|
|
|
2023-07-08 11:58:08 +00:00
|
|
|
|
* Changes in 0.25 since 0.24.2
|
|
|
|
|
** Core
|
|
|
|
|
*** Support for riscv64-linux.
|
|
|
|
|
** Build
|
|
|
|
|
*** Support M2-Planet build for x86_64-linux.
|
|
|
|
|
*** Building with M2-Planet-1.11.0 is now supported.
|
|
|
|
|
*** The requirement for M2-Planet's --bootstrap-mode was dropped.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** In the REPL, `include', `load', and `,use MODULE' now work.
|
|
|
|
|
*** Using mes' `access' with R_OK now respects read permissions.
|
|
|
|
|
*** On 64bit, displayed values are no longer truncated.
|
|
|
|
|
*** On 64bit, MesCC now correctly supports 8-byte immediate values.
|
|
|
|
|
*** MesCC now initializes struct fields to 0.
|
|
|
|
|
*** The MesCC test suite passes with gcc >= 10
|
|
|
|
|
An array overflow bug was fixed in `63-struct-cell.c'.
|
2023-02-13 06:19:16 +00:00
|
|
|
|
* Changes in 0.24.2 since 0.24.1
|
|
|
|
|
** Build
|
|
|
|
|
*** A number of compile warnings have been fixed.
|
|
|
|
|
*** The `simple.make' and `simple.sh' builds have been resurrected.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** Some assembly defines were added for building TinyCC for x86_64.
|
|
|
|
|
*** `__assert_fail' has been updated to use the standard signature.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** A bootstrap build without M2-Planet is now supported again.
|
|
|
|
|
*** `gettimeofday' no longer segfaults in the M2-Planet build.
|
|
|
|
|
*** `stat64' and friends are now used on 32bit platforms.
|
|
|
|
|
This fixes https://debbugs.gnu.org/41264, and should also fix
|
|
|
|
|
https://debbugs.gnu.org/49985,
|
|
|
|
|
https://debbugs.gnu.org/53415,
|
|
|
|
|
https://debbugs.gnu.org/53416.
|
|
|
|
|
*** The Mes C Library now supports uppercase hex conversions.
|
2022-10-15 08:01:10 +00:00
|
|
|
|
* Changes in 0.24.1 since 0.24
|
|
|
|
|
** Build
|
|
|
|
|
*** Support M2-Planet bootstrap for ARM.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** The Mes C Library now supports bootstrapping ARM.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** The definition of S_ISUID was fixed.
|
|
|
|
|
*** Unsigned modulo has been fixed for ARM.
|
|
|
|
|
*** A bug with abtol has been fixed.
|
|
|
|
|
*** Workarounds for building with gcc-12.2.0 have been added.
|
2022-04-30 14:02:01 +00:00
|
|
|
|
* Changes in 0.24 since 0.23
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes and Mes C Library can now be built with M2-Planet.
|
|
|
|
|
*** Mes now supports the --bootstrap build on ARM.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** MesCC now supports the integer suffixes:
|
|
|
|
|
Next to `U', also support `ULL', `UL', `L', and `LL'.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** MesCC now uses the unsigned type for sizeof.
|
|
|
|
|
*** MesCC now only uses signed division if numerator is signed.
|
|
|
|
|
*** The Mes C library now supports an argv bigger than 255.
|
|
|
|
|
*** Development build support with Guile-2 was resurrected.
|
|
|
|
|
*** The logand procedure now works correctly.
|
|
|
|
|
*** The 64bit build was resurrected.
|
2022-10-15 08:01:10 +00:00
|
|
|
|
|
|
|
|
|
* Changes in 0.23.1 since 0.23
|
|
|
|
|
** Build: Move to libera.chat.
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes and Mes C Library can now support ARM bootstrap.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** MesCC now supports ARM bootstrap.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Stack frame 0 does not perform out of bounds access.
|
|
|
|
|
*** MesCC's -m64 works again.
|
|
|
|
|
*** Guile-2 support has been resurrected.
|
|
|
|
|
*** logand has been fixed.
|
|
|
|
|
*** Mes C Library now supports more than 255 command line parameters.
|
|
|
|
|
|
2020-12-31 12:05:41 +00:00
|
|
|
|
* Changes in 0.23 since 0.22
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes and Mes C Library can now be built with GCC 10.x.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** The Mes C Library now supports an armhf-linux bootstrap.
|
|
|
|
|
*** MesCC now supports ARM.
|
|
|
|
|
*** mini.c library was split into _exit.c, and _write.c.
|
|
|
|
|
*** When building with GCC, -lgcc is now used.
|
|
|
|
|
*** MesCC now has it's own support library libmescc.a (-lmescc).
|
|
|
|
|
*** MesCC now requires mescc-tools-0.7.0 or later for ARM.
|
|
|
|
|
*** MesCC can be now built with nyacc-1.00.2:
|
|
|
|
|
note that nyacc-1.03.0 is not (backwards) compatible.
|
|
|
|
|
*** MesCC can be built with Guile 3.0.x:
|
|
|
|
|
See https://bugs.gnu.org/43831; use guild compile -O1 with Guile 3.0.x.
|
|
|
|
|
*** MesCC now raises SIGABRT on abort, if supported.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** unreadchar on EOF is now a no-op.
|
|
|
|
|
*** malloc now aligns the blocks it gives out to max_align_t.
|
2019-12-09 06:26:16 +00:00
|
|
|
|
* Changes in 0.22 since 0.21
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes now builds reproducibly with MesCC, cross distribution
|
|
|
|
|
Using --with-bootstrap on x86, a bin/mes-mescc is compiled with
|
|
|
|
|
mes+mescc, that shall have sha256sum
|
|
|
|
|
|
2020-01-23 16:00:05 +00:00
|
|
|
|
722790ed261954eb53cf2cd2906c89c7589ef72b66171bbe2a9dce0f0af20232 bin/mes-mescc v0.22
|
|
|
|
|
9e0bcb1633c58e7bc415f6ea27cee7951d6b0658e13cdc147e992b31a14625fb bin/mes-mescc v0.21
|
|
|
|
|
|
|
|
|
|
only differing in the version number string.
|
2019-12-09 06:26:16 +00:00
|
|
|
|
|
|
|
|
|
This has been verified on GNU Guix, Debian GNU/Linux and NixOS.
|
|
|
|
|
*** Mes now builds reproducibly with Guile+MesCC vs Mes+MesCC.
|
|
|
|
|
*** Mes now builds reproducibly with Tiny CC-built MesCC.
|
|
|
|
|
*** configure now respects the user's CFLAGS, CPPFLAGS and LDFLAGS.
|
|
|
|
|
*** Mes now supports mescc-tools 0.5.2 next to 0.6.1.
|
|
|
|
|
This allows introducing the Scheme-only bootstrap without updating or
|
|
|
|
|
adding new bootstrap binary seeds into GNU Guix.
|
|
|
|
|
*** Mes now runs when configured --with-courage on the Hurd:
|
|
|
|
|
GNU debian 0.9 GNU-Mach 1.8+git20170609-486/Hurd-0.9 i686-AT386 GNU
|
|
|
|
|
Note that mescc does not run; fork and exec are not yet implemented.
|
|
|
|
|
*** Mes now configures --with-courage on x86-FreeBSD 12.1
|
|
|
|
|
The initial ELF scaffold tests: exit-42.S, 0exit-42.hex2,
|
|
|
|
|
body-exit-42.hex2, hello-mes.S, 0hello-mes.hex2, body-hello-mes.hex2
|
|
|
|
|
pass.
|
|
|
|
|
*** configure now has a --with-bootstrap option.
|
|
|
|
|
This adds the reproducible bootstrap build of bin/mes-mescc, using
|
|
|
|
|
mes+mescc.
|
|
|
|
|
*** configure prefers $CC over gcc; tcc over gcc, gcc over cc.
|
|
|
|
|
*** Mes now prints an error when attempting to read a file that does not exist.
|
|
|
|
|
*** Mes no longer depends on GIT.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Several annoying build problems were fixed, for non-Guix systems.
|
|
|
|
|
*** A bug with buffered-read was fixed.
|
|
|
|
|
This means that bash-2.05 can now build glibc-2.2.5; notably it now
|
|
|
|
|
successfully executes make-syscall.sh.
|
|
|
|
|
*** A bug with execlp, execvp for file names containing a slash was fixed.
|
|
|
|
|
This should allow make-3.80 running scripts that have "#! ./move-if-change".
|
2019-11-04 18:59:13 +00:00
|
|
|
|
* Changes in 0.21 since 0.20
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes can now be bootstrapped with Gash and Gash Core Utils.
|
|
|
|
|
*** Mes now supports a Scheme-only bootstrap.
|
|
|
|
|
*** Mes now supports -c EXPR.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** Mes C Library now supports bootstrapping GNU Awk, GNU Bash, GNU SED, and GNU Tar.
|
|
|
|
|
*** Mes C Library now has limited float support in vfprintf, vsnprintf, vsscanf.
|
|
|
|
|
**** 7 new functions
|
|
|
|
|
abtod, atof, creat, dtoab, execlp, isgraph, mknod, readlink, strtod,
|
2019-11-24 09:30:40 +00:00
|
|
|
|
symlink.
|
2019-11-04 18:59:13 +00:00
|
|
|
|
**** 5 new stubs
|
|
|
|
|
getgrgid, getgrnam, getpgid, getpgrp, mktime, setgrent.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** A bug with `mes -c EXPR' has been fixed.
|
|
|
|
|
*** The REPL now works again on x86_64.
|
|
|
|
|
*** --with-system-libc now works again.
|
2018-12-20 06:44:18 +00:00
|
|
|
|
* Changes in 0.20 since 0.19
|
|
|
|
|
** Core
|
|
|
|
|
*** The build system has been simplified, again.
|
|
|
|
|
Mes now builds ootb on Debian.
|
|
|
|
|
*** Mes now supports -c EXPR.
|
|
|
|
|
** Divide by zero is now flagged.
|
|
|
|
|
** Language
|
|
|
|
|
*** 1 new function:
|
|
|
|
|
take-while.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** The C libraries have been exploded into one function per file.
|
|
|
|
|
*** MesCC now has enhanced POSIX/gcc comand line support, e.g. -DFOO=1,
|
|
|
|
|
-nodefaultlibs,
|
|
|
|
|
-nostartfiles,
|
|
|
|
|
-nostdlib.
|
|
|
|
|
*** The archiver is now called `mesar'.
|
|
|
|
|
*** MesCC now supports Nyacc-0.99.
|
|
|
|
|
*** MesCC now depends on MesCC-Tools 0.6.0.
|
|
|
|
|
*** 1 new function
|
|
|
|
|
__mesabi_uldiv.
|
|
|
|
|
** Noteworthy bug fixes
|
2019-12-09 06:26:16 +00:00
|
|
|
|
*** map and for-each now support lists with unequal length.
|
2018-12-20 06:44:18 +00:00
|
|
|
|
*** interger division has been fixed.
|
|
|
|
|
*** isatty now looks at terminfo.
|
|
|
|
|
*** signal now uses sigaction correctly for non-x86.
|
|
|
|
|
*** string->number now support #x hex-prefix.
|
|
|
|
|
*** ungetc now has a buffer per file handle.
|
2018-10-20 07:53:44 +00:00
|
|
|
|
* Changes in 0.19 since 0.18
|
|
|
|
|
** Core
|
|
|
|
|
*** The build system has been simplified.
|
|
|
|
|
*** Mes now prints a backtrace upon error.
|
|
|
|
|
*** Performance has been improved 2-8 times, making Mes 2-10 times slower than Guile.
|
|
|
|
|
*** Mes now supports a module type and uses a `boot-module'.
|
|
|
|
|
*** Mes now supports a hash_table type.
|
|
|
|
|
*** Mes now supports a struct type.
|
|
|
|
|
*** Mes now supports building a %bootstrap-mes seed from Guix.
|
|
|
|
|
** Language
|
|
|
|
|
*** Records are now implemented using struct (WAS: vector).
|
|
|
|
|
*** 44 new functions
|
|
|
|
|
ceil, char-downcase, char-set-adjoin, char-set-complement,
|
|
|
|
|
char-upcase, current-time, delete-file, dup, dup2, file-exists?,
|
|
|
|
|
floor, frame-printer, get-internal-run-time, getcwd, gettimeofday,
|
|
|
|
|
hash, hash-ref, hash-set!, hash-table-printer, hashq,
|
|
|
|
|
hashq-get-handle, hashq-ref, hashq-set, inexact->exact,
|
|
|
|
|
make-hash-table, make-stack, make-struct, module-define!,
|
|
|
|
|
module-printer, module-ref, module-variable, read-line, round,
|
|
|
|
|
stack-length, stack-ref, string-downcase, string-tokenize,
|
|
|
|
|
string-upcase, struct-length, struct-ref, struct-set! struct-vtable,
|
|
|
|
|
struct-vtable, with-error-to-file.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** Assembly defines have been cleaned-up: duplicates deleted, missing added, wrong fixed.
|
|
|
|
|
*** MesCC now supports compiling GNU Bash and GNU Tar.
|
|
|
|
|
**** 6 New functions
|
|
|
|
|
getegid, geteuid, getppid, setgid, setuid, sigdelset, sigprocmask.
|
|
|
|
|
**** 22 New macros
|
|
|
|
|
EACCES, ENOSPC, ESPIPE, INT16_MAX, INT16_MIN, INT32_MAX, INT32_MIN,
|
|
|
|
|
INT64_MAX, INT64_MIN, INT8_MAX, INT8_MIN, LLONG_MAX, LLONG_MIN,
|
|
|
|
|
SIZE_MAX SYS_getegid, SYS_geteuid, SYS_setgid SYS_setuid, S_IRGRP,
|
|
|
|
|
S_IROTH, S_IRWXG, S_IRWXO S_ISGID, S_ISUID, S_IWGRP, S_IWOTH, S_IXGRP,
|
|
|
|
|
S_IXOTH, UINT16_MAX, UINT32_MAX, UINT64_MAX, UINT8_MAX,
|
|
|
|
|
_POSIX_VERSION.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Mes now supports characters #\xNN.
|
|
|
|
|
*** Mes now supports assq-ref and assoc-ref with alist == #f.
|
|
|
|
|
*** Mes now support \xNN in strings. Fixes using Nyacc-0.86.0.
|
|
|
|
|
*** MesCC now supports the unary plus operator.
|
|
|
|
|
*** MesCC now supports the `U' integer suffix.
|
|
|
|
|
*** MesCC now comes with INTnn_MIN/MAX, UINTnn defines in stdint.h.
|
|
|
|
|
*** MesCC now always exits non-zero when assembler or linker fail.
|
2018-09-05 05:05:08 +00:00
|
|
|
|
* Changes in 0.18 since 0.17.1
|
2018-08-09 22:22:05 +00:00
|
|
|
|
** Core
|
2018-09-05 05:05:08 +00:00
|
|
|
|
*** Mes/MesCC now supports x86_64.
|
|
|
|
|
*** Mes/MesCC now brings a Reduced Binary Seed bootstrap to GuixSD.
|
|
|
|
|
** Language
|
|
|
|
|
*** fold-right now supports 3 lists.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** MesCC now supports x86_64 (also as cross build), using -m 64.
|
|
|
|
|
*** Mes C Library now has better support for bootstrapping gcc-3.0.
|
|
|
|
|
*** Mes C test suite now has 178 tests; 74 tests were added.
|
|
|
|
|
*** MesCC has been refactored to support use an abstracted assembly language.
|
|
|
|
|
*** MesCC now uses Nyacc 0.86.0.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** scaffold/tests/7s-struct-short.c has been fixed.
|
|
|
|
|
* Changes in 0.17.1 since 0.17
|
2018-08-09 22:22:05 +00:00
|
|
|
|
** MesCC
|
2018-09-05 05:05:08 +00:00
|
|
|
|
*** Mes C Library has now been exploded into a separate C file per function.
|
2018-08-09 22:22:05 +00:00
|
|
|
|
*** Mes C Library now bootstraps glibc-2.16.0, binutils-2.20.1, gcc-4.7.4.
|
|
|
|
|
*** Mes C Library now supports compiling make-3.82.
|
|
|
|
|
*** Mes C Library now supports compiling diffutils-2.7.
|
|
|
|
|
*** Mes C Library now supports x86_64.
|
|
|
|
|
**** 7 new functions
|
|
|
|
|
chdir, clock_gettime, closedir, execl, opendir, readdir, time.
|
|
|
|
|
**** 5 new stubs
|
|
|
|
|
getlogin, setlocale, setvbuf, sigaddset, sigblock.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** qsort can now handle lists with duplicate entries.
|
|
|
|
|
|
2018-07-22 14:21:50 +00:00
|
|
|
|
* Changes in 0.17 since 0.16.1
|
|
|
|
|
** Core
|
|
|
|
|
*** GNU Mes is now an official GNU package.
|
|
|
|
|
*** MesCC is now installed as a regular Guile package.
|
|
|
|
|
*** Support --srcdir build.
|
|
|
|
|
*** Support all standard GNU make targets.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4.
|
2018-06-26 20:22:56 +00:00
|
|
|
|
* Changes in 0.16.1 since 0.16
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes now builds out of the box on Debian buster/testing.
|
|
|
|
|
*** Mes now comes with a generic build recipe: build-aux/setup-mes.sh.
|
|
|
|
|
*** Mes now comes with INFO documentation.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails.
|
2018-06-24 11:13:13 +00:00
|
|
|
|
* Changes in 0.16 since 0.15
|
|
|
|
|
** Core
|
2018-07-22 14:21:50 +00:00
|
|
|
|
*** Support building with tcc, including Mes C Lib in-line assembly.
|
2018-06-24 11:13:13 +00:00
|
|
|
|
*** core:execl now supports 1000 arguments.
|
|
|
|
|
** MesCC
|
2018-07-22 14:21:50 +00:00
|
|
|
|
*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
|
2018-06-24 11:13:13 +00:00
|
|
|
|
*** MesCC binaries now run on Linux 4.17 too, i.e. survive Linus' new `sane mmap limits.'
|
|
|
|
|
*** MesCC now runs with mescc-tools 0.5 (no = in long options).
|
|
|
|
|
**** 3 new C test
|
|
|
|
|
88-strrchrc, 97-fopen.c, 98-fopen.c.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** strrchr now stops when it reaches start of string.
|
|
|
|
|
*** fopen now return 0 upon failure. Supports binutils' hack: fd=-2 means `cached'.
|
|
|
|
|
*** vfprintf, vsprintf now support precision and width on integers strings better.
|
|
|
|
|
*** fread now produces ungetc'd chars too.
|
|
|
|
|
*** memcmp now supports comparing 0 bytes, supporting binutils.
|
|
|
|
|
|
|
|
|
|
*** The unused ELF header data section, identical to the text section, has been removed.
|
2018-05-23 20:48:00 +00:00
|
|
|
|
* Changes in 0.15 since 0.14
|
|
|
|
|
** Core
|
|
|
|
|
*** Support fork, exec, waitpid.
|
|
|
|
|
*** Boot-0 loading has been refactored.
|
|
|
|
|
*** MesCC now has out of the box Geiser support.
|
|
|
|
|
** Language
|
|
|
|
|
*** 2 new functions
|
|
|
|
|
drop, drop-right.
|
|
|
|
|
** MesCC
|
2018-07-22 14:21:50 +00:00
|
|
|
|
*** MesCC and Mes C Lib can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5.
|
2018-05-23 20:48:00 +00:00
|
|
|
|
*** MesCC now provides dummy crti.o, crtn.o so that tcc needs not be patched for those.
|
2018-07-22 14:21:50 +00:00
|
|
|
|
*** Mes C Lib now supports compiling glibc-2.2.25.
|
|
|
|
|
*** Mes C Lib now supports compiling gcc-2.95.3
|
|
|
|
|
*** Mes C Lib now supports compiling binutils-2.30.
|
|
|
|
|
*** Mes C Lib now supports compiling m4-1.4.
|
|
|
|
|
*** Mes C Lib has been split into archs: gcc, x86-mes-gcc and x86-mes.
|
2018-05-23 20:48:00 +00:00
|
|
|
|
*** MesCC now has a posixy command line interface.
|
|
|
|
|
**** 70 new functions
|
|
|
|
|
abs, access, alarm, alloca, atexit, atol, bcmp, bcopy, brk, bzero,
|
|
|
|
|
chmod, clearerr, close, dup, dup2, execve, fabs, fcntl, fdgets, feof,
|
|
|
|
|
fgets, fileno, fork, freopen, fscanf, fstat, fsync, getcwd, getgid,
|
|
|
|
|
getpid, getrusage, getuid, index, ioctl, isalnum, isalpha, isascii,
|
|
|
|
|
iscntrl, isprint, ispunct, kill, link, lseek, lstat, mkdir, mktemp,
|
|
|
|
|
nanosleep, open, perror, pipe, raise, read, rename, rindex, rmdir,
|
|
|
|
|
sbrk, sbrk, setitimer, signal, sleep, stat, strcspn, strdup, strerror,
|
|
|
|
|
strncat, strpbrk, strspn, unlink, unsetenv, waitpid.
|
|
|
|
|
**** 23 new stubs
|
|
|
|
|
abort, atof, bsearch, bsearch, chown, ctime, fpurge, freadahead,
|
|
|
|
|
frexp, getpwnam, gmtime, mbstowcs, pclose, popen, rewind, setbuf,
|
|
|
|
|
sigsetmask, strftime, sys_siglist, system, times, umask, utime.
|
|
|
|
|
**** 10 new C tests
|
|
|
|
|
51-strcmp.c, 70-printf.c, 87-sscanf.c, 90-strpbrk.c, 91-fseek.c,
|
|
|
|
|
92-stat.c, 93-fread-fwrite.c, 94-unsetenv.c, 95-signal.c, 96-strto.c.
|
|
|
|
|
|
2018-05-19 18:52:24 +00:00
|
|
|
|
* Changes in 0.14 since 0.13
|
|
|
|
|
** Core
|
|
|
|
|
*** Bootstrapped Mes+MesCC now compiles a tcc that is self-hosting and only slightly patched.
|
|
|
|
|
*** The reader now supports binary numbers (previously: read as decimal).
|
|
|
|
|
*** String port support has been moved to C.
|
|
|
|
|
*** The build has been simplified, the Make-in-Scheme experiment has been removed.
|
|
|
|
|
*** 2 new functions
|
|
|
|
|
chmod, logxor.
|
|
|
|
|
** Language
|
|
|
|
|
*** Mes now supports define-immutable-record-type and single set-field from srfi-9 gnu.
|
|
|
|
|
*** 12 new functions
|
|
|
|
|
basename, chmod, const, delete-duplicates, logxor, string-contains,
|
|
|
|
|
string-map, string-replace, string-trim, string-trim-both,
|
|
|
|
|
string-trim-right, unfold.
|
|
|
|
|
** MesCC
|
|
|
|
|
*** MesCC now supports standalone usage of nestedly defined enums, structs and unions.
|
|
|
|
|
*** MesCC now supports comparison of unsigned and promotion of signed/unsigned -> unsigned.
|
|
|
|
|
*** MesCC now supports sign extension for char, short.
|
|
|
|
|
*** MesCC now has stubbing for floats; compiling works, data is fu.
|
|
|
|
|
*** MesCC now has full suport for switch case, e.g. with default as first clause.
|
|
|
|
|
*** MesCC now supports destruction of casted expressions: ((struct foo*)p)->bar.
|
|
|
|
|
*** MesCC now has full support for pre/post, e.g.: (foo--)->bar and permutations.
|
|
|
|
|
*** MesCC now supports sizeof any expression or type.
|
|
|
|
|
*** MesCC now supports initialization of anonymous unions.
|
|
|
|
|
*** MesCC now supports bit fields.
|
|
|
|
|
*** MesCC now supports valued functions in expressions: destruction and dereferencing.
|
|
|
|
|
*** MesCC now supports function-static variables.
|
|
|
|
|
*** MesCC now supports initializer lists in structs and unions.
|
|
|
|
|
*** MesCC now has full support for heterogeneous variable declarations, e.g.: char p, *x = "foo", buf[3];
|
|
|
|
|
**** 4 new functions
|
|
|
|
|
__lshrdi3, __ashldi3, __ashrdi3, strncpy.
|
|
|
|
|
**** 9 new mlibc stubs
|
|
|
|
|
__fixdfdi, __fixsfdi, __fixunsxfdi, __fixxfdi, __floatundixf, ldexp,
|
|
|
|
|
strtod, strtof, strtold.
|
2018-04-21 22:45:00 +00:00
|
|
|
|
* Changes in 0.13 since 0.12
|
|
|
|
|
** Core
|
|
|
|
|
*** Bootstrapped Mes+MesCC can now compile a patched tcc in ~1h45' (~25,000 LOC).
|
|
|
|
|
*** MesCC scripts for Mes and Guile are now merged; executable is: `mescc'.
|
|
|
|
|
*** Mes now uses only one arena for stop-and-copy; doubles available size.
|
|
|
|
|
*** Mes now has a Guile-like command-line interface (mes.repl has been removed).
|
|
|
|
|
*** Mes now boots into a full Scheme by default.
|
|
|
|
|
*** Mes can now be compiled (MES_MINI=1) to boot into a minimal Scheme (~2000 cells).
|
|
|
|
|
*** Mes now creates less garbage in the reader and in
|
|
|
|
|
append2, append_reverse, reverse, reverse!, vector-for-each, vector-to-list, vector-map.
|
|
|
|
|
*** 5 new functions
|
|
|
|
|
append-reverse, chmod, ioctl, isatty, isspace, last_pair, reverse!.
|
|
|
|
|
** Language
|
|
|
|
|
*** 3 new functions
|
|
|
|
|
char-whitespace?, chmod, isatty?
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Two bugs in the jam scraper/garbage collector have been fixed.
|
|
|
|
|
*** equal2_p now uses tail call elimination.
|
|
|
|
|
*** Escaped characters in strings are now read and write'd correctly.
|
|
|
|
|
*** The repl now expands macros again.
|
2017-11-21 18:22:26 +00:00
|
|
|
|
* Changes in 0.12 since 0.11
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes can now run Nyacc (0.80.42) to compile itself in ~4min (~3000 LOC).
|
|
|
|
|
*** Mes now recursively expands global variables per top level statement.
|
|
|
|
|
*** Mes now recursively expands macros per top level statement.
|
|
|
|
|
*** Mes now boots from MES_BOOT (default: module/mes/boot-0.scm).
|
|
|
|
|
*** Mes now has a full Scheme reader in C again.
|
|
|
|
|
This gives a 10x-20x performance improvement and increases the
|
|
|
|
|
bootstrap footprint by 160 LOC.
|
|
|
|
|
*** Mes reader now supports older abbreviated character forms
|
|
|
|
|
#\bel, #\bs, #\ht and #\vt.
|
|
|
|
|
*** 3 new functions
|
|
|
|
|
equal2?, memq, core:write.
|
|
|
|
|
** Language
|
|
|
|
|
*** Mes now has an incremental Scheme semantics test suite with 71 small tests.
|
|
|
|
|
*** Variable names can now have ticks.
|
|
|
|
|
*** Mes now evaluates expresions of COND only once.
|
|
|
|
|
*** srfi-9 records have been reimplemented.
|
|
|
|
|
*** #\page is now whitespace.
|
|
|
|
|
*** #<eof> is no longer a character.
|
|
|
|
|
*** 2 new macros
|
|
|
|
|
define-macro*, with-fluids.
|
|
|
|
|
*** 9 new functions
|
|
|
|
|
dirname, last, reverse-list->string, setenv, string-drop-right,
|
|
|
|
|
string-fold, string-fold-right, string-null?, write.
|
|
|
|
|
** MesCC
|
|
|
|
|
**** 9 new functions
|
|
|
|
|
chmod, getopt_long, ferror, itoab, longjmp, qsort, setenv, setjmp, strtol.
|
|
|
|
|
**** 2 new header files
|
|
|
|
|
endian.h, sys/signal.h.
|
|
|
|
|
|
2017-11-11 12:09:26 +00:00
|
|
|
|
* Changes in 0.11 since 0.10
|
|
|
|
|
** MesCC
|
2017-11-21 18:22:26 +00:00
|
|
|
|
*** MesCC now compiles a mes-tcc that fails 41/69 of mescc's C tests.
|
2018-05-19 18:52:24 +00:00
|
|
|
|
*** MesCC's libc can now be compiled with tcc (syscall support: write).
|
|
|
|
|
*** MesCC now compiles a less-patched tcc: -214/+458 lines [WAS: -333/+747].
|
2017-11-11 12:09:26 +00:00
|
|
|
|
*** MesCC now supports empty for.
|
|
|
|
|
*** MesCC has been greatly refactored, 500/3000 lines have been removed.
|
|
|
|
|
*** MesCC now supports complex [struct] by value assign foo.bar, foo->bar, foo[bar].
|
|
|
|
|
*** MesCC now depends on Nyacc 0.82.4.
|
2017-08-26 11:29:07 +00:00
|
|
|
|
* Changes in 0.10 since 0.9
|
|
|
|
|
** Core
|
|
|
|
|
*** 2 new functions
|
|
|
|
|
logand, lognot.
|
|
|
|
|
*** Mes now includes M1 sources for full source bootstrapping up to tcc.
|
2017-11-11 12:09:26 +00:00
|
|
|
|
** Mescc
|
2017-08-26 11:29:07 +00:00
|
|
|
|
*** Mescc now depends on Nyacc 0.81.0.
|
|
|
|
|
*** Mescc now compiles a mes-tcc that compiles a trivial C to a running a.out.
|
|
|
|
|
*** Mescc now supports several (as used my tinycc) struct by value assignments.
|
|
|
|
|
*** Mescc now has _start in a separate crt1.c.
|
|
|
|
|
*** Mescc now supports initializer arithmetic.
|
|
|
|
|
*** Mescc now supports arrays of struct of arbitrary size.
|
|
|
|
|
*** Mescc now supports pointer arithmetic.
|
|
|
|
|
*** Mescc now defines __i386__, __linux__.
|
|
|
|
|
*** Mescc now supports --*p, ++*p.
|
|
|
|
|
*** Mescc now supports int foo[bar] = {baz,...}.
|
|
|
|
|
*** Mescc now supports \x00 in strings in M1.
|
|
|
|
|
*** Mescc now supports complex enum expressions. Thanks, rain1!
|
|
|
|
|
*** Mescc now supports short.
|
|
|
|
|
*** Mescc now supports foo.bar = foo.baz = bla.
|
|
|
|
|
*** Mescc now supports foo = bar < baz and comparison permutations.
|
|
|
|
|
*** Mescc now supports (anonymous) structs in unions.
|
|
|
|
|
*** Mescc now writes M1 strings if possible.
|
|
|
|
|
**** 2 improved mlibc functions
|
|
|
|
|
malloc, realloc.
|
|
|
|
|
**** 13 new mlibc functions
|
|
|
|
|
fclose, fgetc, fprintf, fwrite, memcpy, memmove, memset, snprintf, strcat,
|
|
|
|
|
strchr, strrchr, strtoull, vnsprintf.
|
|
|
|
|
**** 15 new tinycc-support tests
|
|
|
|
|
76-pointer-arithmetic.c, 77-pointer-assign.c, 78-union-struct.c,
|
|
|
|
|
79-int-array.c, 7a-struct-char-array.c, 7b-struct-int-array.c,
|
|
|
|
|
7c-dynarray.c, 7d-cast-char.c, 7e-struct-array-access.c,
|
|
|
|
|
7f-struct-pointer-arithmetic.c, 7g-struct-byte-word-field.c,
|
|
|
|
|
7h-struct-assign.c, 7i-struct-struct.c, 7j-strtoull.c,
|
|
|
|
|
7k-for-each-elem.c.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Mescc has many fixes for foo.bar[baz], foo[bar].baz with ./-> permutations.
|
|
|
|
|
*** Many bugs and limitations in mescc have been fixed and removed.
|
2017-07-09 16:40:12 +00:00
|
|
|
|
* Changes in 0.9 since 0.8
|
|
|
|
|
** Core
|
|
|
|
|
*** Mes now builds better in non-Guix[SD] legacy distros/environments. Thanks, rain1!
|
|
|
|
|
** Mescc
|
2017-08-26 11:29:07 +00:00
|
|
|
|
*** Mescc now compiles a modified tinycc into a running [mostly segfaulting] mes-tcc.
|
2017-07-09 16:40:12 +00:00
|
|
|
|
https://gitlab.com/janneke/tinycc branch wip-mescc.
|
|
|
|
|
*** Mescc now supports locals stack frame larger than 1 byte offset.
|
|
|
|
|
*** Mescc now supports incomplete struct initializers {0}.
|
|
|
|
|
*** Mescc now supports >>=, <<=, ^=, ~.
|
|
|
|
|
*** Mescc now supports the comma operator.
|
|
|
|
|
*** Mescc now supports mullti-line string initializers.
|
|
|
|
|
*** Mescc now supports unions.
|
|
|
|
|
*** Mescc now supports arrays in structs.
|
|
|
|
|
*** Mescc now supports structs in structs.
|
|
|
|
|
*** Mescc now builds and runs with Guile-2.0 (legacy distro support, Guile-2.2 recommended).
|
|
|
|
|
*** Mescc has been refactored to use records.
|
|
|
|
|
*** Mescc now bundles tinycc's test2 test suite, passes one more test [34/55 pass].
|
|
|
|
|
*** Mescc now has an incremental test suite consisting of 56 tests.
|
|
|
|
|
*** Mescc now supports stdarg variable argument lists.
|
|
|
|
|
*** Mescc now has __GNUC__ unset, #f (WAS: 0).
|
|
|
|
|
*** Mescc now depends on Nyacc 0.80.3.
|
2017-08-26 11:29:07 +00:00
|
|
|
|
*** Mescc now depends on M1 from [[https://github.com/oriansj/mescc-tools][mescc-tools]] v0.2.
|
2017-07-09 16:40:12 +00:00
|
|
|
|
*** Mescc now compiles to M1 object files.
|
|
|
|
|
**** 7 new mlibc functions
|
|
|
|
|
calloc, close, getcwd, lseek, sprintf, unlink, vprintf.
|
|
|
|
|
**** 31 new mlibc stubs
|
|
|
|
|
execvp, fclose, fdopen, fflush, fopen, fprintf, fread, free, fseek,
|
|
|
|
|
ftell, fwrite, localtime, longjmp, memcpy, memmove, memmove, memset,
|
|
|
|
|
qsort, remove, setjump, snprintf, sscanf, strchr, strrchr, strstr,
|
|
|
|
|
strtol, strtoll, strtoul, strtoull, time, vnsprintf.
|
|
|
|
|
**** 10 new header files
|
|
|
|
|
alloca.h, float.h, libgen.h, locale.h, stdbool.h, stddef.h, stdint.h,
|
|
|
|
|
stdnoreturn.h, sys/select.h, sys/wait.h.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Many bugs and limitations in mescc have been fixed and removed.
|
2017-06-08 18:39:24 +00:00
|
|
|
|
* Changes in 0.8 since 0.7
|
|
|
|
|
** Mescc
|
|
|
|
|
*** Mescc now has experimental annotation support for hex2.
|
2017-08-26 11:29:07 +00:00
|
|
|
|
*** Mescc now depends on the hex2 linker from [[https://github.com/oriansj/mescc-tools][mescc-tools]].
|
2017-06-08 18:39:24 +00:00
|
|
|
|
Direct ELF output support has been removed.
|
|
|
|
|
ELF symbol and string table creation has been removed.
|
|
|
|
|
*** Mescc has been simplified by leveraging use labels in hex2 output.
|
|
|
|
|
*** Mescc now supports continue in loops.
|
|
|
|
|
*** Mescc now compiles to hex2 object files.
|
|
|
|
|
** Language
|
|
|
|
|
*** 1 new function
|
|
|
|
|
list-index.
|
2017-05-22 21:35:39 +00:00
|
|
|
|
* Changes in 0.7 since 0.6
|
|
|
|
|
** Core
|
|
|
|
|
*** The minimal C reader is now always included; dependencies
|
|
|
|
|
on i686-unknown-linux-gnu-gcc and binary read-0-32.mo have been
|
|
|
|
|
dropped, these are now optional.
|
|
|
|
|
** Language
|
|
|
|
|
*** Mes reader now supports octal numbers #oXXX.
|
|
|
|
|
*** 10 new functions
|
|
|
|
|
current-output-port, getopt-long, negate, open-output-file,
|
|
|
|
|
option-ref, set-current-output-port, string-rindex, string-suffix?,
|
|
|
|
|
with-ouwith-output-to-file, with-output-to-port.
|
|
|
|
|
** Mescc
|
|
|
|
|
*** Mescc can now be installed and used alongside a gcc installation.
|
|
|
|
|
*** Mescc can now handle const anywhere.
|
|
|
|
|
*** Mescc now supports array fields in structs.
|
|
|
|
|
*** Mescc now supports forward declarations and typedef.
|
|
|
|
|
*** Mescc can now handle comments anywhere.
|
|
|
|
|
*** Mescc now supports addition and substraction for enum field values.
|
|
|
|
|
*** Mescc now supports anonymous enums.
|
|
|
|
|
*** Mescc now supports all C99 header files needed to compile tcc.c.
|
|
|
|
|
*** build: C sources are now preprocessed separately, then compiled and linked.
|
|
|
|
|
*** build: mlibc and C sources are now compiled separately and then linked.
|
|
|
|
|
*** mlibc has been moved from Scheme snippets into C.
|
|
|
|
|
*** Mescc now supports -c, -D, -E, -I and -o options.
|
|
|
|
|
**** open now supports optional third mode parameter.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** string-index now supports function predicate.
|
|
|
|
|
*** number->string for radix > 10 now produces `a' instead of `:'.
|
2017-05-06 15:46:41 +00:00
|
|
|
|
* Changes in 0.6 since 0.5
|
|
|
|
|
** Core
|
|
|
|
|
*** configure, build now supports x86 and development for arm with-courage.
|
|
|
|
|
** Language
|
|
|
|
|
*** Nyacc has been unbundled and is now a dependency.
|
|
|
|
|
*** Mes now supports case-lambda.
|
|
|
|
|
*** Mes reader now supports abbreviated form for return character #\cr.
|
|
|
|
|
*** 1 new function
|
|
|
|
|
string-index.
|
|
|
|
|
** Mescc
|
|
|
|
|
*** Mescc can be used on regular C sources, like tinycc's tests/test2 suite.
|
|
|
|
|
*** make check passes 33/55 of tinycc's test suite etest/test2 tests.
|
|
|
|
|
*** Mescc now recognizes `short' as a type.
|
|
|
|
|
*** Mescc now supports sizeof (<identifier>), sizeof(<expression>).
|
|
|
|
|
*** Mescc now respects enum field initializers and supports enum variables.
|
|
|
|
|
*** Mescc now supports binary constants .
|
|
|
|
|
*** Mescc now supports assignments from ==, != boolean expressions .
|
|
|
|
|
*** Mescc now supports &, ^.
|
|
|
|
|
*** Mescc now supports struct pointers.
|
|
|
|
|
*** Mescc now supports struct definition with immediatete variable declaration.
|
|
|
|
|
*** Mescc now supports calling (returning correctly from) void functions.
|
|
|
|
|
*** Mescc now handles case statements breaks without compound correctly.
|
|
|
|
|
*** Mescc now has better [int/pointer] array support.
|
|
|
|
|
*** Mescc now has better support for simple (non-array-)structs.
|
|
|
|
|
*** Mescc now supports multiple declarations in one statement like: int a,b;
|
|
|
|
|
**** 2 new mlibc functions
|
|
|
|
|
printf, strcpy.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** Installed mes and mes.repl now also run outside of source tree again.
|
2017-04-02 15:01:29 +00:00
|
|
|
|
* Changes in 0.5 since 0.4
|
|
|
|
|
** Core
|
|
|
|
|
*** Support compilation with Mescc.
|
|
|
|
|
*** Support compilation with -nostdinc, -nostdlib using mlibc.
|
|
|
|
|
*** Support call-with-current-continuation.
|
|
|
|
|
*** Support exception handling, catch/throw.
|
|
|
|
|
*** Give sensible error message when a macro is missing.
|
|
|
|
|
** Language
|
|
|
|
|
*** Map now supports 4 lists.
|
|
|
|
|
*** The reader supports negative hex numbers.
|
|
|
|
|
*** 24 new functions
|
|
|
|
|
access?, assoc-set! c????r, compose, list->char-set,
|
|
|
|
|
open-input-string, read-string, string-delete, with-throw-handler.
|
|
|
|
|
** Mescc
|
|
|
|
|
*** Mescc can be used separately as a Nyacc-based C compiler backend for Guile.
|
|
|
|
|
*** Switch to Nyacc frontend, update Nyacc to 0.76.5.
|
|
|
|
|
*** Mescc now has a test suite, scaffold/t.c.
|
|
|
|
|
*** Mescc now includes a minimal C library libc/mlib.c libc/mstart.c.
|
|
|
|
|
*** Mescc can now compile mes.c.
|
|
|
|
|
** Noteworthy bug fixes
|
|
|
|
|
*** The build system (configure, make) has been refactored.
|
|
|
|
|
*** Support map-4.
|
|
|
|
|
*** Evaluate arguments of OR only once.
|
|
|
|
|
*** Fix assq-set!
|
|
|
|
|
*** Fix ,expand in the REPL.
|
2017-08-26 11:29:07 +00:00
|
|
|
|
|
2016-12-13 18:58:34 +00:00
|
|
|
|
* Changes in 0.4 since 0.3
|
|
|
|
|
** Core
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** Improved performance.
|
|
|
|
|
Macros are now memoized; after expansion and before eval'ing the
|
|
|
|
|
expanded form, their input s-expression is replaced by the expansion.
|
|
|
|
|
This yields a nice performance improvement which finally allowed
|
|
|
|
|
moving all non-essential bits from the C-core into Scheme...including
|
|
|
|
|
the reader. The Scheme reader is much, much slower than the previous
|
|
|
|
|
C version, making Mes--again-- feel slow. Think of that as a feature.
|
|
|
|
|
*** Bootstrap with minimal reader in C.
|
2016-12-13 18:58:34 +00:00
|
|
|
|
The C-reader needs only support reading of words and lists
|
2016-12-24 16:22:34 +00:00
|
|
|
|
(s-expressions), line-comments to read the initial [[file:module/mes/read-0.mes][Scheme reader]] which
|
|
|
|
|
then takes over and handles reading of quoting, characters, strings,
|
|
|
|
|
block-comments.
|
|
|
|
|
*** Reduced size.
|
|
|
|
|
Total C size: ~1500LOC. The main Mes evaluator is now ~1000LOC
|
|
|
|
|
including cell creation and garbage collector. This code is able to
|
2016-12-25 15:43:28 +00:00
|
|
|
|
execute a Scheme program that has been loaded into memory. Another
|
2016-12-24 16:22:34 +00:00
|
|
|
|
~500LOC is spent to load a minimal Scheme program and to dump it, to
|
|
|
|
|
provide a small posix interface, math functions and do some error
|
|
|
|
|
reporting.
|
|
|
|
|
*** Programs can be dumped and loaded using --dump and --load.
|
2016-12-16 22:30:33 +00:00
|
|
|
|
** Language
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** Minimal syntactic exception support for Nyacc.
|
|
|
|
|
*** Minimal syntactic fluids support for Nyacc.
|
|
|
|
|
*** Keywords are now supported.
|
2016-12-16 19:18:38 +00:00
|
|
|
|
*** Cond now supports =>.
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** Guile's optargs: lambda* and define* are now supported.
|
|
|
|
|
*** #;-comments are now supported.
|
|
|
|
|
*** Non-nested #| |#-comments are now supported.
|
|
|
|
|
*** Quasisyntax is now supported.
|
2016-12-19 18:41:43 +00:00
|
|
|
|
*** R7RS syntax-rules with custom ellipsis, with-ellipsis are now supported.
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** 9 new [partial] modules
|
|
|
|
|
(mes fluids), (mes nyacc), (mes optargs), (mes pmatch), (mes peg),
|
|
|
|
|
(srfi srfi-13), (srfi srfi-9-psyntax), (srfi srfi-26), (srfi srfi-43),
|
|
|
|
|
(rnrs arithmetic bitwise), (sxml xpath)
|
|
|
|
|
*** 36 new functions
|
|
|
|
|
1+, 1-, abs, and=>, append-reverse, ash, char<=?, char<?, char>=?,
|
|
|
|
|
char>?, even?, filter, delete, delq, vector-copy, fold, fold-right,
|
|
|
|
|
getenv, iota, keyword->symbol list-head, list-tail, negative?, odd?,
|
|
|
|
|
positive?, remove!, remove, string->number, string-copy,
|
|
|
|
|
string-prefix?, string=, string=?, symbol->keyword symbol-append,
|
|
|
|
|
symbol-prefix?, unless, write, zero?.
|
2016-12-19 18:35:38 +00:00
|
|
|
|
** Noteworthy bug fixes
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** Macros are now memoized.
|
|
|
|
|
*** An error is reported when using a wrong number of arguments with a call.
|
|
|
|
|
*** Cond now evaluates its test clauses only once.
|
|
|
|
|
*** Append can also handle one argument.
|
|
|
|
|
*** For-each now supports 2 list arguments.
|
|
|
|
|
*** Map now supports 3 list arguments.
|
|
|
|
|
*** Backslash in string is supported.
|
2016-12-19 18:35:38 +00:00
|
|
|
|
*** Closure is not a pair.
|
2016-12-24 16:22:34 +00:00
|
|
|
|
*** All standard characters are supported.
|
|
|
|
|
*** Mescc now also runs in Guile.
|
2016-11-21 08:30:59 +00:00
|
|
|
|
* 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.
|
2016-11-19 22:25:24 +00:00
|
|
|
|
*** The reader has been moved to Scheme.
|
2016-12-07 19:26:41 +00:00
|
|
|
|
** 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.
|
2016-11-02 14:35:32 +00:00
|
|
|
|
* 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.
|
2016-11-02 14:35:32 +00:00
|
|
|
|
** 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'.
|
2016-11-02 14:35:32 +00:00
|
|
|
|
** 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.
|
2017-08-26 11:29:07 +00:00
|
|
|
|
*** Quasisyntax reading
|
2016-10-15 09:54:24 +00:00
|
|
|
|
|
2016-11-02 14:35:32 +00:00
|
|
|
|
* Changes in 0.1 (since progress report #2)
|
2016-10-15 09:54:24 +00:00
|
|
|
|
** Core
|
|
|
|
|
*** expand_macro is now a separate function.
|
2016-12-12 19:31:41 +00:00
|
|
|
|
*** 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.
|
2016-10-15 09:54:24 +00:00
|
|
|
|
** Language
|
|
|
|
|
*** Mes now provides a subset of R5RS.
|
|
|
|
|
*** Mes now provides let-syntax.
|
|
|
|
|
*** Mes now provides match.
|
2016-10-16 12:00:40 +00:00
|
|
|
|
*** Mes now provides quasisyntax, unsyntax and unsyntax-splicing.
|
2016-10-15 09:54:24 +00:00
|
|
|
|
** User interface
|
|
|
|
|
*** Mes now provides a REPL, run:
|
|
|
|
|
scripts/repl.mes
|
2016-10-16 12:00:40 +00:00
|
|
|
|
*** Mes compiler can be run as a script:
|
2016-10-15 09:54:24 +00:00
|
|
|
|
scripts/mescc.mes doc/examples/main.c
|
|
|
|
|
*** Macro expansion can be inspected in the REPL, e.g.:
|
|
|
|
|
,expand (and 0 1)
|
|
|
|
|
** Noteworthy bug fixes
|
2016-11-20 20:45:12 +00:00
|
|
|
|
*** Performance: scripts/mescc.mes now takes 2s to compile main.c (was 1'20").
|
2016-10-15 09:54:24 +00:00
|
|
|
|
*** Symbols are now truly unique.
|
2016-12-12 19:31:41 +00:00
|
|
|
|
* '(), #t, #f are no longer symbols.
|