mescc: Mes C Library: Avoid type/size_t conflicts.
[mes.git] / NEWS
diff --git a/NEWS b/NEWS
index 78dd8a09b842f12330875e6eae01de4cd747c0dd..c3a536e5ef957d822e986b6fdb5960226d002bd6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
                                                               -*- org -*-
-#+TITLE: Mes NEWS – history of user-visible changes
+#+TITLE: GNU Mes NEWS – history of user-visible changes
 #+STARTUP: content hidestars
 
 Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -8,7 +8,144 @@ Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
   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.
+Please send Mes bug reports to bug-mes@gnu.org.
+
+* 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.
+* Changes in 0.18 since 0.17.1
+** Core
+*** 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
+** MesCC
+*** Mes C Library has now been exploded into a separate C file per function.
+*** 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.
+
+* 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.
+* 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.
+* Changes in 0.16 since 0.15
+** Core
+*** Support building with tcc, including Mes C Lib in-line assembly.
+*** core:execl now supports 1000 arguments.
+** MesCC
+*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
+*** 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.
+* 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
+*** MesCC and Mes C Lib can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5.
+*** MesCC now provides dummy crti.o, crtn.o so that tcc needs not be patched for those.
+*** 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.
+*** 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.
 
 * Changes in 0.14 since 0.13
 ** Core