mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-04 02:15:24 +01:00
mescc-tools-extra contains two important tools: - cp - chmod mes first builds itself from a mes 0.21 seed as used by guix, and then builds a mes 0.22 and then mes 0.22 using that created mes 0.22. It does /not/ use bootstrap.sh as we don't have a proper shell at this point, it has been manually adapted for kaem.
12616 lines
425 KiB
Text
12616 lines
425 KiB
Text
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.22.
|
|
* configure (VERSION): Update to 0.22.
|
|
(main): Likewise.
|
|
* build-aux/GNUmakefile.in: Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
|
|
build: Update release process.
|
|
* build-aux/GNUmakefile.in: Update documentation.
|
|
(sign-dist): Rename from `sign'.
|
|
* configure: Remove version check for Guix; support GUIX=guix ./configure.
|
|
|
|
doc: Release update.
|
|
* BOOTSTRAP: Release update.
|
|
* HACKING: Likewise.
|
|
* INSTALL: Likewise.
|
|
* NEWS: Likewise.
|
|
* PORTING: Likewise.
|
|
* README: Likewise.
|
|
* ROADMAP: Likewise.
|
|
* doc/mes.texi: Likewise.
|
|
* doc/announce/ANNOUNCE-0.22: New file.
|
|
|
|
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix execlp, execvp for file names with slash.
|
|
Reported by mid-kid.
|
|
|
|
* lib/posix/execlp.c (execlp): Do not use search_path when file name
|
|
contains a slash (WAS: when file name starts with slash).
|
|
* lib/posix/execvp.c (execvp): Likewise.
|
|
|
|
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support bootstrapping using build.sh.
|
|
* build-aux/build.sh.in: Oops, use $compiler = bootstrap concept does
|
|
not exist yet. Gash cp does not support -p; drop it.
|
|
* configure.sh: Oops, set bootstrap to `true' instead of yes.
|
|
|
|
mescc: Mes C Library: lseek: Be careful clearing read buffer.
|
|
* lib/linux/lseek.c (_lseek): New function.
|
|
* lib/linux/lseek.c (lseek): Use it to check if we should reset read
|
|
buffer.
|
|
* lib/mes/__buffered_read.c (__read_buffer_max): New variable.
|
|
(__buffered_read_init): Add environment override: MES_READ_BUFFER.
|
|
(__buffered_read): Use it.
|
|
|
|
build: Have configure respect GUILE_LOAD_PATH for mes to find Nyacc.
|
|
* configure: Substitute GUILE_LOAD_PATH from %load-path.
|
|
* configure.sh: Likewise.
|
|
* build-aux/config.make.in: Add GUILE_LOAD_PATH as subtitution variable.
|
|
* build-aux/config.sh.in: Likewise.
|
|
* mes/module/mes/guile.mes (%load-path): New variable.
|
|
|
|
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Have configure prefer $CC over gcc; tcc over gcc, gcc over cc.
|
|
Reported by Vagrant Cascadian.
|
|
|
|
* configure (string->version): Prefer for most-dotted string. Fixes
|
|
makeinfo version.
|
|
(check-program-version): Prefer displaying of command, if single word.
|
|
(main): Check for $CC --version, $CC -v. Prefer $CC over gcc; tcc over
|
|
gcc, gcc over cc.
|
|
|
|
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Opt for reproducible builds with Guile and Mes.
|
|
* module/mescc/compile.scm (mes-or-reproducible?): New variable.
|
|
(ast->comment): Use it.
|
|
* module/mescc/preprocess.scm (mes-or-reproducible?): New variable.
|
|
(c99-input->full-ast): Use it.
|
|
|
|
2020-01-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resurrect compiling with TinyCC.
|
|
./configure CC=tcc --host=i686-unknown-linux-gnu --with-courage
|
|
|
|
* configure: Cater for tcc.
|
|
|
|
2019-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Cater for FreeBSD.
|
|
* build-aux/bootstrap.sh.in: Add test ! -e -o to satisfy FreeBSD test.
|
|
Fixes skipping over all compilations.
|
|
* build-aux/cc.sh (compile): Likewise.
|
|
|
|
freebsd: Initial x86 scaffold.
|
|
* lib/freebsd/x86-mes-gcc/crt1.c: New file.
|
|
* lib/freebsd/x86-mes-gcc/exit-42.S: New file.
|
|
* lib/freebsd/x86-mes-gcc/hello-mes.S: New file.
|
|
* lib/freebsd/x86-mes-gcc/mini.c: New file.
|
|
* lib/freebsd/x86-mes-mescc/crt1.c: New file.
|
|
* lib/freebsd/x86-mes-mescc/mini.c: New file.
|
|
* lib/freebsd/x86-mes/elf32-0exit-42.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-0header.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-0hello-mes.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-body-exit-42.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-body-hello-mes.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-footer-single-main.hex2: New file.
|
|
* lib/freebsd/x86-mes/elf32-header.hex2: New file.
|
|
|
|
freebsd: Initial configure support.
|
|
* configure: Initial FreeBSD configure support.
|
|
* configure.sh: Likewise. Run without bash.
|
|
|
|
build: Prepare for kernel variants.
|
|
* configure: Fix detection of Arch, FreeBSD.
|
|
* lib/linux/x86-mes-gcc/exit-42.S: Move from ...
|
|
* lib/x86-mes-gcc/exit-42.S: ... here.
|
|
* lib/linux/x86-mes-gcc/hello-mes.S: Move from ...
|
|
* lib/x86-mes-gcc/hello-mes.S: ... here.
|
|
* lib/linux/x86-mes-mescc/exit-42.S: Move from ...
|
|
* lib/x86-mes-mescc/exit-42.S: ... here.
|
|
* lib/linux/x86-mes-mescc/hello-mes.S: Move from ...
|
|
* lib/x86-mes-mescc/hello-mes.S: ... here.
|
|
* lib/linux/x86-mes/elf32-0exit-42.hex2: Move from ...
|
|
* lib/x86-mes/elf32-0exit-42.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-0header.hex2: Move from ...
|
|
* lib/x86-mes/elf32-0header.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-0hello-mes.hex2: Move from ...
|
|
* lib/x86-mes/elf32-0hello-mes.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-body-exit-42.hex2: Move from ...
|
|
* lib/x86-mes/elf32-body-exit-42.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-body-hello-mes.hex2: Move from ...
|
|
* lib/x86-mes/elf32-body-hello-mes.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-footer-single-main.hex2: Move from ...
|
|
* lib/x86-mes/elf32-footer-single-main.hex2: ... here.
|
|
* lib/linux/x86-mes/elf32-header.hex2: Move from ...
|
|
* lib/x86-mes/elf32-header.hex2: ... here.
|
|
* lib/linux/x86_64-mes-gcc/exit-42.S: Move from ...
|
|
* lib/x86_64-mes-gcc/exit-42.S: ... here.
|
|
* lib/linux/x86_64-mes-gcc/hello-mes.S: Move from ...
|
|
* lib/x86_64-mes-gcc/hello-mes.S: ... here.
|
|
* lib/linux/x86_64-mes-mescc/exit-42.S: Move from ...
|
|
* lib/x86_64-mes-mescc/exit-42.S: ... here.
|
|
* lib/linux/x86_64-mes-mescc/hello-mes.S: Move from ...
|
|
* lib/x86_64-mes-mescc/hello-mes.S: ... here.
|
|
* lib/linux/x86_64-mes/elf64-0exit-42.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-0exit-42.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-0header.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-0header.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-0hello-mes.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-0hello-mes.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-body-exit-42.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-body-exit-42.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-body-hello-mes.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-body-hello-mes.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-footer-single-main.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-footer-single-main.hex2: ... here.
|
|
* lib/linux/x86_64-mes/elf64-header.hex2: Move from ...
|
|
* lib/x86_64-mes/elf64-header.hex2: ... here.
|
|
* module/mescc.scm (parse-opts): Support --kernel.
|
|
* module/mescc/mescc.scm (kernel-find): New function.
|
|
* module/mescc/mescc.scm (hex2->elf): Use it to find kernel-specific ELF
|
|
snippets.
|
|
* build-aux/install.sh.in: Install it.
|
|
|
|
2019-12-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Add ioctl3 stub.
|
|
|
|
mescc: Mes C Library: Fix access stub.
|
|
* lib/stub/access.c (access): Use _open3 to give more meaningful
|
|
behaviour. Fixes hanging of mes.
|
|
|
|
hurd: Fixes for upgrade to debian-hurd-20190220.img.
|
|
* include/mach/mach-init.h (__mach_host_self, __mach_task_self):
|
|
Remove macro magic.
|
|
(mach_host_self, mach_task_self): Remove macro magic; declare as function.
|
|
* lib/mach/mach-init.c (mach_host_self, mach_task_self): New function.
|
|
(mach_init): Use them.
|
|
* lib/gnu/hurd-start.c (_hurd_start): Use mach_task_self ().
|
|
* lib/gnu/_exit.c (_exit): Likewise.
|
|
|
|
hurd: Add malloc.
|
|
* include/gnu/syscall.h (__vm_allocate): New value.
|
|
(__vm_allocate): Declare.
|
|
* lib/gnu/malloc.c: New file.
|
|
* lib/stdlib/malloc.c[__GNU__]: Disable. See FIXME.
|
|
* lib/gnu/vm-allocate.c: New file.
|
|
* build-aux/configure-lib.sh (libc_SOURCES): Add it.
|
|
|
|
hurd: Add open.
|
|
* include/fcntl.h (O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_APPEND,
|
|
O_TRUNC)[__GNU__]: Specialize for GNU.
|
|
* lib/gnu/dir-lookup.c: New file.
|
|
* lib/stdio/fopen.c (fopen): Use O_RDONLY.
|
|
* lib/tests/posix/50-open-read.c (main): Likewise.
|
|
* lib/tests/stdio/90-fseek.c (main): Likewise.
|
|
* include/gnu/syscall.h (SYS__dir_lookup): New value.
|
|
* lib/gnu/_open3.c: New file.
|
|
* build-aux/configure-lib.sh (libc_SOURCES): Build them.
|
|
|
|
hurd: Add argv and environ.
|
|
* include/gnu/hurd.h (struct hurd_startup_data): Add argp, envp.
|
|
* lib/gnu/hurd-start.c (__argv, __env): Define them.
|
|
* lib/gnu/exec-startup-get-data.c (mach_startup_info2hurd_startup_data):
|
|
Set them.
|
|
* lib/gnu/x86-mes-gcc/crt1.c (_start): Use them.
|
|
* build-aux/configure-lib.sh (libc_mini_SOURCES): Add argz-extract.c.
|
|
* include/argz.h: Build fix.
|
|
* lib/string/argz-count.c: Likewise.
|
|
* lib/string/argz-extract.c: Likewise.
|
|
|
|
hurd: Add stubs for missing libc+tcc functions.
|
|
* lib/stub/close.c: New file.
|
|
* lib/stub/rmdir.c: New file.
|
|
* lib/stub/stat.c: New file.
|
|
* build-aux/configure-lib.sh (libc_tcc_SOURCES)[gnu]: Add them.
|
|
|
|
hurd: Add stubs for missing libc functions.
|
|
* lib/stub/_getcwd.c: New file.
|
|
* lib/stub/_getcwd.c: New file.
|
|
* lib/stub/_open3.c: New file.
|
|
* lib/stub/access.c: New file.
|
|
* lib/stub/brk.c: New file.
|
|
* lib/stub/chmod.c: New file.
|
|
* lib/stub/clock_gettime.c: New file.
|
|
* lib/stub/dup.c: New file.
|
|
* lib/stub/dup2.c: New file.
|
|
* lib/stub/execve.c: New file.
|
|
* lib/stub/fork.c: New file.
|
|
* lib/stub/gettimeofday.c: New file.
|
|
* lib/stub/ioctl.c: New file.
|
|
* lib/stub/time.c: New file.
|
|
* lib/stub/unlink.c: New file.
|
|
* lib/stub/waitpid.c: New file.
|
|
* build-aux/configure-lib.sh (libc_SOURCES)[gnu]: Add them.
|
|
|
|
hurd: Add stubs for missing libmes functions.
|
|
* lib/stub/lseek.c: New file.
|
|
* build-aux/configure-lib.sh (libmes_SOURCES)[gnu]: Add it.
|
|
|
|
hurd: Add _read.
|
|
* include/gnu/hurd.h (fd_read): Declare.
|
|
* include/gnu/syscall.h (SYS__io_read): New value.
|
|
* lib/gnu/_read.c: New file.
|
|
* lib/gnu/fd-read.c: New file.
|
|
* lib/gnu/io-read.c: New file.
|
|
* build-aux/configure-lib.sh (libc_SOURCES): Add _read sources.
|
|
|
|
hurd: Add _write.
|
|
* include/gnu/syscall.h (SYS__io_write): Add enum field.
|
|
(_hurd_dtable, _hurd_dtable_size): Declare variable.
|
|
(fd_get, fd_write, __io_write, __syscall_put): Declare.
|
|
* lib/gnu/hurd-start.c (_hurd_dtable, _hurd_dtable_size): Define
|
|
variable.
|
|
* lib/gnu/_write.c: New file.
|
|
* lib/gnu/fd-get.c (fd_get): New file.
|
|
* lib/gnu/fd-write.c (fd_write): New file.
|
|
* lib/gnu/io-write.c: New file.
|
|
* lib/gnu/syscall.c (__syscall_put): New function.
|
|
* build-aux/cofnigure-lib.sh (libc_mini_SOURCES): Add write sources.
|
|
* lib/tests/mes/30-oputs.c (main): Update.
|
|
* lib/tests/mes/30-oputs.stdout: New file.
|
|
* lib/tests/mes/30-eputs.c: New test.
|
|
* lib/tests/mes/30-eputs.stderr: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
|
|
2019-12-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
hurd: Initial support.
|
|
This adds minimal Hurd support by implementing the _exit function.
|
|
|
|
* AUTHORS: Update.
|
|
* .gitignore: Ignore a.out, core, .config.
|
|
* include/sys/wait.h (W_EXITCODE): New define.
|
|
* lib/gnu/x86-mes-gcc/crt1.c: New file.
|
|
* lib/gnu/x86-mes-gcc/mini.c: New file.
|
|
* lib/gnu/hurd-start.c: New file.
|
|
* lib/gnu/_exit.c: New file.
|
|
* include/gnu/syscall.h: New file.
|
|
* include/gnu/hurd.h: New file.
|
|
* lib/gnu/_exit.c: New file.
|
|
* lib/gnu/exec-startup-get-data.c: New file.
|
|
* lib/gnu/hurd-start.c: New file.
|
|
* lib/gnu/proc-mark-exit.c: New file.
|
|
* lib/gnu/syscall.c: New file.
|
|
* lib/gnu/task-get-special-port.c: New file.
|
|
* lib/gnu/task-terminate.c: New file.
|
|
* lib/gnu/vm-statistics.c: New file.
|
|
* build-aux/configure-lib.sh (libc_mini_SOURCES): Add Hurd sources.
|
|
* build-aux/build.sh.in (CPPFLAGS): Add lib to includes, to find linux
|
|
crt1.c.
|
|
* build-aux/test-c.sh: Always use at least -l c+mini for GNU.
|
|
* lib/tests/scaffold/30-exit-42.exit: New file.
|
|
* lib/tests/scaffold/30-exit-42.c: New test.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
* lib/tests/scaffold/30-exit-0.c (main): Move from 00-exit-0.c; Rewrite,
|
|
use _exit.
|
|
* include/gnu/hurd-types.h: Import from GNU C Library.
|
|
* include/mach/mach-init.h: Likewise.
|
|
* lib/mach/mach-init.c: Likewise.
|
|
* lib/mach/mach_host_self.S: Likewise.
|
|
* lib/mach/mach_msg_trap.S: Likewise.
|
|
* lib/mach/mach_reply_port.S: Likewise.
|
|
* lib/mach/mach_task_self.S: Likewise.
|
|
* lib/mach/mach_thread_self.S: Likewise.
|
|
* lib/mach/msg.c: Likewise.
|
|
|
|
2019-12-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Generate ChangeLog reproducibly. Thanks, Timothy!
|
|
* build-aux/gitlog-to-changelog (git_dir_option): Avoid non-reproducible
|
|
localtime.
|
|
|
|
build: Make guild optional for bootstrap builds.
|
|
* configure: Use `true' for guild when it is not available.
|
|
|
|
build: Clean-out .gitignore.
|
|
.gitignore: Remove obsolete cross build patterns.
|
|
|
|
build: Cater for bootstrap build.
|
|
* build-aux/build.sh.in: Build bin/mes. Update scripts and users.
|
|
* build-aux/bootstrap.sh.in: Update.
|
|
* build-aux/install.sh.in: Install all built bin/mes-* flavours.
|
|
* configure: Drop SEED, support --bootstrap.
|
|
* configure.sh: Likewise.
|
|
|
|
2019-12-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Oops, have configure honor --host.
|
|
This allows
|
|
|
|
./configure --host=i686-unknown-linux-gnu
|
|
|
|
instead of
|
|
|
|
CC=i686-unknown-linux-gnu-gcc ./configure
|
|
|
|
* configure (main): Honor --host.
|
|
|
|
2019-12-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Default to mesar for mescc build.
|
|
* configure.sh: Default to mesar for mescc build.
|
|
|
|
bootstrap: Fix configure.sh's host detection.
|
|
* configure.sh: Avoid setting host="" and not running $CC.
|
|
|
|
mescc: Add mes 0.19 compatibility.
|
|
* mes/module/mes/boot-0.scm (%datadir): Cater for %datadir not being
|
|
set.
|
|
|
|
2019-12-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Build files only once.
|
|
* build-aux/bootstrap.sh.in: Build files only once.
|
|
|
|
build: Support mescc-tools 0.5.2.
|
|
* configure: Remove version check for mescc-tools.
|
|
Check for stage0 architecture flag type.
|
|
* configure.sh: Likewise.
|
|
* build-aux/build-scaffold.sh: Add stage0 flag type indirection.
|
|
* module/mescc/mescc.scm (arch-get-architecture): Likewise.
|
|
|
|
2019-12-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix for compiling handwritten .S assembly.
|
|
* module/mescc/mescc.scm (mescc:compile): Handle .S.
|
|
(mescc:link): Likewise.
|
|
|
|
build: Add mescc scaffold for regular build.
|
|
* lib/x86-mes-mescc/exit-42.S: New file.
|
|
* lib/x86-mes-mescc/hello-mes.S: New file.
|
|
* lib/x86_64-mes-mescc/exit-42.S: New file.
|
|
* lib/x86_64-mes-mescc/hello-mes.S: New file.
|
|
|
|
2019-12-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Add --with-bootstrap option.
|
|
* configure (main): Add --with-bootstrap option.
|
|
* build-aux/build.sh.in [--with-bootstrap]: After building mes with CC,
|
|
build mes with MesCC.
|
|
|
|
2019-12-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support toplevel lib and mes builds.
|
|
* build-aux/build.sh.in: Add missing libdir for gcc build.
|
|
* build-aux/config.sh.in: ...here.
|
|
* build-aux/build-mes.sh: Do not overwrite srcdest, V.
|
|
|
|
bootstrap: Support srcdir builds.
|
|
* build-aux/bootstrap.sh.in (srcdest): Initialize.
|
|
* build-aux/build-lib.sh: Source config.sh.
|
|
* configure.sh: Support srcdir builds.
|
|
* build-aux/build.sh.in: Move setting of cflags to ...
|
|
* build-aux/cflags.sh: ... New file.
|
|
|
|
configure: Honor CFLAGS, LDFLAGS.
|
|
* configure (cflags-list, ldflags-list): New function.
|
|
check-preprocess-header-c, check-compile-string-c,
|
|
check-link-string-c): Use them. Be verbose when %verbose?.
|
|
(CFLAGS, LDFLAGS): Initialize to "-static -g".
|
|
|
|
2019-12-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build! Fixup clean without git: Clean cleaner.
|
|
* build-aux/GNUmakefile.in (clean): Clean cleaner.
|
|
|
|
2019-12-07 Vagrant Cascadian <vagrant@debian.org>
|
|
|
|
Fix build without git on "wip" branch.
|
|
--=-=-=
|
|
Content-Type: text/plain
|
|
|
|
In the "wip" branch, the attempt to build without git was a bit overly
|
|
aggressive in the purging of GIT.
|
|
|
|
live well,
|
|
vagrant
|
|
|
|
From 73bb68e86318a6bc0fe191db663be97f94556956 Mon Sep 17 00:00:00 2001
|
|
From: Vagrant Cascadian <vagrant@debian.org>
|
|
Date: Sat, 7 Dec 2019 19:59:00 +0100
|
|
Subject: [PATCH] Fix build without git
|
|
|
|
Commit "1863c0d843a5fe4e94e8cb923cc0896f30fceeeb" removed the
|
|
substitution of @GIT@ when, resulting in the GIT variable being set to
|
|
"@GIT@" rather than "" when git is not installed.
|
|
|
|
2019-12-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fix configure host detection for Arch. Thanks, Jelle!
|
|
* configure (main): Grok `CPU-pc-linux-gnu'.
|
|
|
|
build: Successfully check for Nyacc 0.99.0.
|
|
* configure (gulp-pipe): New function.
|
|
(check-program-version): Use it to correctly detect Nyacc.
|
|
(gulp-pipe*): Rewrite to use it.
|
|
|
|
build: Remove git dependency.
|
|
* configure: Remove git dependency.
|
|
* build-aux/GNUmakefile.in (clean,distclean, maintainer-clean):
|
|
Implement without git.
|
|
* INSTALL: Update dependencies.
|
|
|
|
2019-12-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove MES_PKGDATADIR.
|
|
* configure: Do not add MES_PKGDATADIR to config.h.
|
|
* configure.sh: Likewise.
|
|
* simple.sh: Likewise.
|
|
* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
|
|
MES_PREFIX or cwd.
|
|
|
|
2019-12-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Ignore -fno-stack-protector.
|
|
* module/mescc.scm (parse-opts): Ignore it.
|
|
|
|
build: Use debug build (-g) by default.
|
|
* build-aux/build.sh.in (debug): Enable.
|
|
|
|
build: Honor user's CFLAGS, CPPFLAGS, LDFLAGS.
|
|
* build-aux/build.sh.in (AM_CFLAGS, AM_CPPFLAGS, AM_LDFLAGS): Rename
|
|
from CFLAGS, CPPFLAGS, LDFLAGS. Export them.
|
|
* configure: Substitute them.
|
|
* configure.sh: Likewise.
|
|
* build-aux/cc.sh (compile, link): Use them.
|
|
* build-aux/config.make.in (CFLAGS, CPPFLAGS, LDFLAGS): Add
|
|
substitutable variables.
|
|
* build-aux/config.sh.in: Likewise.
|
|
* build-aux/export.make: Export them.
|
|
|
|
test: 90-abtod: Remove printf dependency. Fixes gcc.
|
|
* lib/tests/mes/90-abtod.stdout: Remove.
|
|
* lib/tests/mes/90-abtod.c (main): Remove printf.
|
|
|
|
2019-12-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: 90-readdir: Remove qsort dependency. Fixes tmpfs failures.
|
|
* lib/tests/dirent/90-readdir.c (check_seen): New function.
|
|
(main): Use it instead of qsort.
|
|
(qsort_strcmp): Remove.
|
|
|
|
2019-11-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Throw instead of segfault on non-existing input file.
|
|
Reported by theruran.
|
|
|
|
* src/posix.c (open_input_file): Call error instead of failing silently.
|
|
|
|
2019-06-11 Vagrant Cascadian <vagrant@debian.org>
|
|
|
|
boot-0: Fix spelling of "evaluate"
|
|
|
|
2019-11-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Honor --includedir, --libdir.
|
|
* guix/git/mes.scm (mes):
|
|
* module/mescc.scm (%includedir, %libdir): New variable.
|
|
(mescc:main): Add them to options.
|
|
* module/mescc/mescc.scm (mescc:preprocess, c->info): Add %includedir.
|
|
(arch-find): Use %libdir instead of
|
|
prefix-file.
|
|
(prefix-file): Remove.
|
|
* scripts/mescc.scm.in (%includedir, %libdir): Initialize from and set
|
|
in environment.
|
|
|
|
xx
|
|
|
|
* module/mescc/mescc.scm :
|
|
|
|
2019-11-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Post-release update.
|
|
* NEWS: Typo.
|
|
* doc/announce/ANNOUNCE-0.21: Add checksums.
|
|
|
|
2019-11-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.21.
|
|
* configure (VERSION): Update to 0.21.
|
|
(main): Likewise.
|
|
* build-aux/GNUmakefile.in: Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
|
|
2019-11-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* BLURB: Release update.
|
|
* HACKING: Remove roadmap.
|
|
* INSTALL: Release update.
|
|
* NEWS: Add 0.21 section.
|
|
* README: Release update.
|
|
* ROADMAP: New file.
|
|
* configure.sh: Release update.
|
|
* doc/announce/ANNOUNCE-0.21: New file.
|
|
* doc/mes.texi: Release update.
|
|
|
|
2019-11-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: vfprintf: Support --with-system-libc.
|
|
* include/stdarg.h (va_arg8)[SYSTEM_LIBC]: Define.
|
|
|
|
mescc: Mes C Library: Support gcc-4.6.4: Fix ctime stub.
|
|
* lib/stub/ctime.c (ctime): Fix stub to avoid segfault upon use.
|
|
|
|
mescc: Mes C Library: Fix isatty for x86_64.
|
|
* lib/linux/ioctl.c (ioctl3): New function.
|
|
* include/sys/ioctl.h: Declare it.
|
|
* lib/posix/isatty.c (__tcgetattr): Use it.
|
|
|
|
2019-11-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Prefer /bin/bash if available. Thanks, Vagrant!
|
|
Ensure the configure script uses /bin/bash, otherwise on systems with
|
|
/bin -> /usr/bin it results in /bin/bash being embedded in various
|
|
scripts.
|
|
|
|
Inspired by
|
|
|
|
https://salsa.debian.org/debian/mes/blob/debian/master/debian/patches/force-use-of-bin-bash
|
|
|
|
* configure: Prefer /bin/bash, /bin/sh if available. Helps
|
|
reproducibility on Debian.
|
|
|
|
2019-11-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Update script help and usage.
|
|
* doc/mes.texi (Invoking mesar): New section.
|
|
* mes/module/mes/boot-0.scm: Add one line help description.
|
|
* module/mescc.scm (parse-opts): Likewise.
|
|
* scripts/diff.scm (main): Add -h,--help, -v,--version.
|
|
* scripts/mesar.in: Likewise.
|
|
|
|
build: Use unversioned doc directory. Thanks, Vagrant!
|
|
* configure (docdir): Drop version. Fixes Debian lint error.
|
|
* configure.sh (docdir): Likewise.
|
|
|
|
build: Add sensible NAME section for man pages. Thanks, Vagrant!
|
|
* build-aux/GNUmakefile.in (mes.1, mescc.1, mesar.1): Add sensible
|
|
--name section. Fixes Debian lint error. Reported by Vagrant
|
|
Cascadian.
|
|
|
|
2019-11-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "build: Mark lib/tests/dirent/90-readdir.c as XFAIL on x86_64-gcc."
|
|
This reverts commit dc0b41f83efa973b7a92c0c7a0ad1eb21a7c4c7a.
|
|
|
|
2019-10-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Mark lib/tests/dirent/90-readdir.c as XFAIL on x86_64-gcc.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS)[x86_64-gcc]: Add
|
|
lib/tests/dirent/90-readdir.c.
|
|
|
|
2019-11-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "build: Mark lib/tests/dirent/90-readdir.c as XFAIL on x86_64-mescc."
|
|
This reverts commit 17986224095ed72649fb2383f72c21f525977310.
|
|
|
|
2019-10-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Mark lib/tests/dirent/90-readdir.c as XFAIL on x86_64-mescc.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS)[x86_64-mescc]: Add
|
|
lib/tests/dirent/90-readdir.c.
|
|
|
|
2019-10-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Better and friendlier tarball.
|
|
* build-aux/GNUmakefile.in (dist): Be friendly to Debian; avoid using
|
|
EPOCH. Cater for file permission differences.
|
|
|
|
2019-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: bootstrap fixes.
|
|
* build-aux/config.sh.in (bootstrap): Set up for substitution.
|
|
* configure.sh (bootstrap): Substitute.
|
|
* build-aux/install.sh.in (_v): Robustify check for V.
|
|
(__exclude_go, __exclude_scm): Initialize.
|
|
|
|
2019-10-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Fix -c, --command.
|
|
* mes/module/mes/boot-0.scm: Prepend 'begin to expr list.
|
|
|
|
2019-10-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
check: Remove duplicate test.
|
|
* build-aux/check-boot.sh (TESTS): Remove duplicate test.
|
|
|
|
2019-09-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support gcc-4.6.4: vfprintf, vsnprintf: pad with space.
|
|
* lib/stdio/vfprintf.c (vfprintf): pad with space.
|
|
* lib/stdio/vsnprintf.c (vsnprintf): pad with space.
|
|
|
|
2019-09-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support gcc-4.6.4: Add math stubs.
|
|
* lib/math/ceil.c: New file.
|
|
* lib/math/floor.c: New file.
|
|
* lib/stub/atan2.c: New file.
|
|
* lib/stub/cos.c: New file.
|
|
* lib/stub/exp.c: New file.
|
|
* lib/stub/log.c: New file.
|
|
* lib/stub/modf.c: New file.
|
|
* lib/stub/pow.c: New file.
|
|
* lib/stub/sin.c: New file.
|
|
* lib/stub/sqrt.c: New file.
|
|
* lib/libc+gnu.c: Include them.
|
|
* include/math.h (atan2, ceil, cos, exp, fabs, floor, log, modf, pow,
|
|
sin, sqrt): Declare.
|
|
* lib/math/fabs.c: Update.
|
|
* lib/stub/ldexp.c: Update.
|
|
|
|
2019-09-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support gcc-4.6.4: Add fscanf, vfscanf.
|
|
* lib/stdio/vfscanf.c: New file.
|
|
* lib/stdio/fscanf.c: New file.
|
|
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Add them.
|
|
* include/stdio.h (fscanf): Declare.
|
|
* include/stdarg.h (vfscanf): Declare.
|
|
* lib/stub/fscanf.c: Remove.
|
|
|
|
2019-09-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Libray: Fix off_t.
|
|
* include/sys/types.h (off_t): Drop unsigned.
|
|
|
|
2019-09-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Environment setup.
|
|
* scripts/mescc.in (MES_ARENA, MES_MAX_ARENA, MES_STACK): Reduce defaults.
|
|
* build-aux/check.sh.in (MES_ARENA): Likewise. Export them.
|
|
* build-aux/bootstrap.sh.in (MES_STACK): Likewise.
|
|
(MES_PREFIX): Set default.
|
|
|
|
2019-08-26 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Add missing #include.
|
|
* lib/stdlib/mbstowcs.c: Add missing #include.
|
|
|
|
Fix dtoab.
|
|
* lib/mes/dtoab.c (dtoab): Fix it.
|
|
* lib/tests/mes/90-dtoab.c (main): Fix test.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS: Remove it.
|
|
|
|
2019-08-27 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
va_align: Fix compiler warning.
|
|
Follow-up to 49b0cd7d2e6952044d7436260d6ba950e40ee05f.
|
|
|
|
* include/stdarg.h: Fix compiler warning.
|
|
|
|
2019-08-27 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Add missing #include.
|
|
* lib/tests/mes/90-abtod.c (main): Add missing #include.
|
|
|
|
Fix variable argument list traversal for doubles.
|
|
* include/stdarg.h (va_align): New macro.
|
|
(va_arg8): New macro.
|
|
* lib/stdio/vfprintf.c (vfprintf): Use it.
|
|
* lib/stdio/vsnprintf.c (vsnprintf): Use it.
|
|
|
|
2019-08-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Improve --with-system-libc support.
|
|
* build-aux/build-lib.sh: Avoid building libc for --with-system-libc.
|
|
Make libmes richer.
|
|
build-aux/check-mescc.sh: Enable 50-malloc test.
|
|
* include/dirstream.h: Use HAVE_DIRSTREAM_H to cater for non-existing
|
|
dirstream.h.
|
|
* include/grp.h[SYSTEM_LIBC]: Typo.
|
|
* include/mes/lib.h (__brk, __call_at_exit)[SYSTEM_LIBC]: Declare.
|
|
* include/stdlib.h (comparison_fn_t)[SYSTEM_LIBC]: Declare.
|
|
* include/time.h (mktime): Return time_t.
|
|
* lib/posix/isatty.c [SYSTEM_LIBC]: Do not (re)declare termios.
|
|
* lib/stub/mktime.c (mktime): Return time_t.
|
|
* lib/tests/scaffold/41-ternary.c (main): Remove assumption that
|
|
locals are initialized.
|
|
* lib/tests/scaffold/70-stdarg.c: Cater for SYSTEM_LIBC.
|
|
* lib/tests/setjmp/80-setjmp.c: Declare jmp buf.
|
|
* lib/*/*.c: Add missing mes/lib.h, errno.h includes.
|
|
|
|
2019-09-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: vfprintf, vsnprintf: Pad floats with space.
|
|
* lib/stdio/vfprintf.c (vfprintf): Pad floats with space.
|
|
* lib/stdio/vsnprintf.c (vsnprintf): Pad floats with space.
|
|
* lib/tests/stdio/90-sprintf.c: Test it.
|
|
|
|
2019-08-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: vsscanf: Increase count for scanned float.
|
|
* lib/stdio/vsscanf.c (vsscanf): Increase count for scanned float.
|
|
|
|
2019-07-31 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Fix getpwnam, getpwuid stubs.
|
|
* lib/stub/getpwnam.c (getpwnam): Return pointer to static struct
|
|
passwd.
|
|
* lib/stub/getpwuid.c (getpwuid): Likewise.
|
|
|
|
2019-07-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add getgrgid, getgrnam, setgrent stub.
|
|
* include/grp.h: New file.
|
|
* lib/stub/getgrgid.c: New file.
|
|
* lib/stub/getgrnam.c: New file.
|
|
* lib/stub/setgrent.c: New file.
|
|
* lib/libc+gnu.c: Include them.
|
|
|
|
2019-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Add wchar_t.
|
|
* include/sys/types.h (wchar_t): New typedef.
|
|
|
|
2019-07-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Add getpgid, getpgrp stubs.
|
|
* include/unistd.h (getpgid, getpgrp): Declare.
|
|
* lib/stub/getpgid.c: New file.
|
|
* lib/stub/getpgrp.c: New file.
|
|
* lib/libc+gnu.c: Include them.
|
|
|
|
2019-07-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add mktime stub, fix localtime stub.
|
|
* include/time.h (mktime): Declare.
|
|
* lib/stub/mktime.c: New stub.
|
|
* lib/libc+gnu.c: Include it.
|
|
* lib/stub/localtime.c (localtime): Return pointer to static struct
|
|
tm. Avoids segfaults.
|
|
|
|
2019-07-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add creat, mknod.
|
|
* include/linux/x86_64/syscall.h (SYS_mknod): New macro.
|
|
* include/linux/x86/syscall.h (SYS_mknod): New macro.
|
|
* lib/linux/mknod.c: New file.
|
|
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Add it.
|
|
* include/sys/stat.h (mknod): Declare it.
|
|
* include/fcntl.h (creat): New macro.
|
|
|
|
2019-07-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add missing defines.
|
|
* include/errno.h (ENXIO): New macro.
|
|
* include/sys/stat.h (S_IFIFO, S_ISFIFO): New macro.
|
|
|
|
2019-07-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Bash: Add struct winsize.
|
|
* include/termio.h (struct winsize): New type.
|
|
|
|
2019-07-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Implement atof.
|
|
* lib/stdlib/atoi.c: Update.
|
|
* lib/stdlib/atof.c: Rename from stub/atof.c; Implement.
|
|
* lib/libc+gnu.c: Update include.
|
|
* lib/libg.c: Update include.
|
|
|
|
2020-01-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Add dtoab, %f in vfprintf, vsnprintf.
|
|
* include/libmes.h (dtoab): Declare.
|
|
* lib/mes/ntoab.c (ntoab): Update.
|
|
* lib/mes/dtoab.c: New file.
|
|
* build-aux/configure-lib.sh (libmes_SOURCES, libc_tcc_SOURCES): Add
|
|
it.
|
|
* lib/tests/mes/90-dtoab.c: Test it.
|
|
* lib/tests/stdio/90-sprintf.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it, against...
|
|
* lib/tests/mes/90-dtoab.stdout: ...baseline.
|
|
* lib/stdio/vfprintf.c (vfprintf): Support %f, even more naive support
|
|
for %e, %E, %g, %G.
|
|
* lib/stdio/vsnprintf.c (vsnprintf): Likewise.
|
|
|
|
2019-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Add abtod, implementing strtod.
|
|
* include/libmes.h (abtod): Declare.
|
|
* lib/mes/abtod.c: New file.
|
|
* build-aux/configure-lib.sh (libmes_SOURCES, libc_tcc_SOURCES): Add
|
|
it.
|
|
* lib/mes/abtol.c: Update.
|
|
* lib/stdlib/strtod.c: Use it to implement; move from stub/strtod.
|
|
* lib/tests/mes/90-abtod.c: Test it.
|
|
* lib/tests/mes/90-abtod.stdout: Baseline.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2019-06-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: vsscanf: Support %f.
|
|
* lib/stdio/vsscanf.c (vsscanf): Support %f.
|
|
|
|
2019-06-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Do not flush std files.
|
|
* lib/stdio/fflush.c (fflush): Do not flush std files.
|
|
|
|
2019-06-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Awk: Add isgraph.
|
|
* lib/ctype/isgraph.c: New file.
|
|
* lib/libc+gnu.c: Include it.
|
|
* include/ctype.h: Add missing prototypes.
|
|
|
|
2019-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add readlink, symlink.
|
|
* lib/linux/gnu.c (readlink, symlink): New function.
|
|
* include/unistd.h (readlink, symlink): Declare.
|
|
* include/linux/x86/syscall.h (SYS_readlink, SYS_symlink): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_symlink, SYS_readlink): New
|
|
macro.
|
|
|
|
2019-06-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support GNU Tar: Add execlp.
|
|
* lib/posix/execl.c (vexec): New function.
|
|
(execl): Use it.
|
|
* lib/posix/execlp.c: New file.
|
|
* build-aux/configure-lib.sh (libc_tcc_SOURCES): Add it.
|
|
* lib/libc+gnu.c: Include it.
|
|
* include/unistd.h (execlp): Declare.
|
|
* lib/tests/posix/90-execlp.c: New file.
|
|
* lib/tests/posix/90-execlp.stdout: New file.
|
|
* build-aux/check-mescc.sh: Test it.
|
|
|
|
2019-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix compile warnings.
|
|
* include/stdlib.h (abort): Add prototype.
|
|
|
|
2019-11-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Add missing stubs.
|
|
* build-aux/configure-lib.sh (libc_gnu_SOURCES): Add fscanf, rewind stubs.
|
|
* lib/stdio/freeopen.c: Remove.
|
|
|
|
2019-09-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Avoid tar --exclude=.
|
|
* build-aux/install.sh.in: Only use `tar --exclude=' if we also have .go
|
|
files compiled by Guile.
|
|
|
|
2019-09-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: mesar: Remove bashisms.
|
|
* scripts/mesar.in: Remove bashisms.
|
|
|
|
2019-10-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
configure.sh: Cleanup argument parsing. Thanks, Timothy!
|
|
* configure.sh: Cleanup argument parsing.
|
|
|
|
2019-09-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
configure.sh: Remove bashisms.
|
|
* configure.sh: Remove bashisms. Fixes running with Gash 0.1.
|
|
|
|
2019-09-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "nyacc: 0.86.0 compatibility stub. WIP"
|
|
This reverts commit 0183cc1c42437fda27196e27b490285a61d47f59.
|
|
|
|
While it works to run Nyacc 0.86.0, it breaks running Nyacc 0.93 and
|
|
up. This would need more thought and work, adding a nyacc-compat
|
|
directory or so. Seems not worth the effort right now.
|
|
|
|
2019-09-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: 0.86.0 compatibility stub. WIP
|
|
* mes/module/nyacc/lang/c99/util.scm: 0.86.0 compatibility stub.
|
|
|
|
2019-09-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Split-out build-source-lib.sh from build-lib.sh.
|
|
* build-aux/build-lib.sh: Remove building of source lib.
|
|
* build-aux/build-source-lib.sh: New file.
|
|
* build-aux/build.sh.in: Invoke it.
|
|
* build-aux/bootstrap.sh.in: Likewise.
|
|
|
|
2019-11-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Honor configure's --includedir. Thanks, Vagrant!
|
|
Suggested by Vagrant Cascadian
|
|
|
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902174#84
|
|
|
|
* build-aux/install.sh.in: Install headers in $includedir.
|
|
* configure (includedir): Typo.
|
|
* configure.sh (includedir): Likewise.
|
|
|
|
2019-11-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Create ascii signature.
|
|
* build-aux/GNUmakefile.in (sign): Create ascii signature.
|
|
|
|
2019-09-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Post-release update.
|
|
* doc/announce/ANNOUNCE-0.20: Update.
|
|
* guix/git/mes.scm (mes): Update.
|
|
|
|
Release 0.20.
|
|
* configure (VERSION): Update to 0.20.
|
|
(main): Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
|
|
doc: Release update.
|
|
* BLURB: New file.
|
|
* AUTHORS: Update.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/images/gcc-mesboot-graph.dot: Update.
|
|
* doc/mes.texi: Update.
|
|
* simple.sh: Update.
|
|
* doc/announce/ANNOUNCE-0.20: New file.
|
|
|
|
guix: Update mescc-tools to 0.6.1.
|
|
* guix/git/mes.scm (mescc-tools): Update to 0.6.1.
|
|
* configure: Check for mescc-tools versions 0.6 or higher.
|
|
|
|
build: Create ascii signature.
|
|
* build-aux/GNUmakefile.in (sign): Create ascii signature.
|
|
|
|
guix: Update Nyacc to 0.99.
|
|
* guix/git/mes.scm (nyacc): Update to 0.99.
|
|
|
|
doc: Add PORTING.
|
|
* PORTING: New file.
|
|
|
|
doc: Typos. Thanks, dddddd.
|
|
* doc/announce/ANNOUNCE-0.11: Typo.
|
|
* doc/announce/ANNOUNCE-0.12: Typo.
|
|
* doc/announce/ANNOUNCE-0.13: Typo.
|
|
* doc/announce/ANNOUNCE-0.14: Typo.
|
|
|
|
mescc: Remove dead code. Thanks Mark Weaver.
|
|
* module/mescc/compile.scm (field-size): Remove dead function.
|
|
|
|
guix: Update packaging.
|
|
* build-aux/manifest.scm (string-append):
|
|
* guix/git/mes.scm (nyacc, git-file?): Remove.
|
|
(mescc-tools): Bump to 0.6.0.
|
|
(%source-dir): New variable.
|
|
(mes.git): Ues it.
|
|
* guix.scm: Rename from .guix.scm.
|
|
|
|
build: Do not generate ChangeLog from tarball.
|
|
* configure (main): Set .git-for-build.
|
|
* build-aux/install.sh.in (DESTDIR): Use it as canary to skip
|
|
ChangeLog rebuild.
|
|
|
|
build: Use mesar instead of ar.
|
|
* scripts/mesar.in: Rename from ar.in. Update users.
|
|
* build-aux/build.sh.in (LIBS): Update.
|
|
* build-aux/check.sh.in (recheck): Likwise.
|
|
* build-aux/install.sh.in (DESTDIR): Likwise.
|
|
* configure (main): Likwise.
|
|
* configure.sh (mes_system): Likwise.
|
|
* .gitignore: Update.
|
|
|
|
getopt: Remove old FSF address, thanks Vagrant.
|
|
* lib/posix/getopt.c: Remove old FSF address.
|
|
|
|
2019-09-09 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Add missing #include.
|
|
* lib/tests/scaffold/55-char-array.c: Add missing #include.
|
|
|
|
Add missing #include.
|
|
* lib/tests/io/90-stat.c: Add missing #include.
|
|
|
|
Add missing #include.
|
|
* lib/posix/getcwd.c: Add missing #include.
|
|
|
|
2019-09-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
signal: Use SA_RESTORER on x86-64.
|
|
* lib/linux/signal.c (signal)[x86_64]: Avoid segfault by setting
|
|
SA_RESTORER flag.
|
|
|
|
2019-09-09 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
signal: Add comment on why we don't use the restorer.
|
|
* lib/linux/signal.c: Add comment on why we don't use the restorer.
|
|
|
|
signal: Remove SA_SIGINFO.
|
|
* lib/linux/signal.c (signal): Remove SA_SIGINFO.
|
|
|
|
signal: Don't use custom restorer.
|
|
* lib/linux/signal.c (signal): Don't use custom restorer.
|
|
|
|
signal: Use SA_SIGINFO (like glibc).
|
|
* lib/linux/signal.c (_restorer): Rename to...
|
|
(_restorer_for_siginfo): ...this.
|
|
(signal): Use it. Use SA_SIGINFO.
|
|
|
|
signal: Make sure that the signal mask is actually unsigned long.
|
|
* lib/linux/signal.c (signal): Make sure that the signal mask is actually
|
|
unsigned long.
|
|
|
|
2019-09-09 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Delete "__sigmask".
|
|
Follow-up to 6d95b89759d3c598fc84194429ae8c57249daa1a
|
|
|
|
* lib/linux/signal.c (__sigmask): Delete definition.
|
|
|
|
2019-09-09 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Fix "struct sigaction" structure for rt_sigaction.
|
|
* include/signal.h (sigset_t): Increase size.
|
|
* lib/linux/signal.c (signal): Use new sigset_t.
|
|
|
|
Inherit CFLAGS for mes.
|
|
* build-aux/check.sh.in: Inherit CFLAGS for mes.
|
|
|
|
Fix typo.
|
|
* build-aux/build.sh.in: Fix typo in "CFLAGS".
|
|
|
|
tests: Fail early on nonexistent file.
|
|
* lib/tests/io/90-stat.c (main): Fail early on nonexistent file.
|
|
|
|
open: Check flags, and use _open2 if applicable.
|
|
* lib/linux/open.c (open): Check flags; use _open2.
|
|
|
|
ldiv: Make rem < 0 if a < 0.
|
|
* lib/mes/div.c (ldiv): Make rem < 0 if a < 0.
|
|
|
|
ldiv: Handle a == LONG_MIN.
|
|
* lib/mes/div.c (ldiv): Handle a == LONG_MIN.
|
|
|
|
2019-09-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
ntoab: Use __mesabi_uldiv only for arm.
|
|
* lib/mes/ntoab.c (ntoab)[__MESC__ && __arm__]: Use __mesabi_uldiv.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS): 70-printf-simple.c and
|
|
70-printf.c now pass for x86_64 mescc.
|
|
|
|
2019-07-01 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Fix ntoab.
|
|
Follow-up to b5b19304b59fefbed923b146ec8c8d495556fa76.
|
|
|
|
* lib/mes/ntoab.c (ntoab): Fix non-MESC case.
|
|
|
|
2019-06-18 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
signal: Define "_restorer" everywhere except on i386.
|
|
* lib/linux/signal.c: Define "_restorer" everywhere except on i386.
|
|
|
|
Clarify our data type choices in "struct stat".
|
|
* include/sys/stat.h: Clarify our data type choices in "struct stat".
|
|
|
|
2019-09-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Bump timeout.
|
|
* build-aux/test-c.sh: Bump timeout to 10s, __mesabi_uldiv can be slow.
|
|
|
|
2019-06-14 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
ntoab: Use __mesabi_uldiv only on __MESC__.
|
|
* lib/mes/ntoab.c (ntoab): Use __mesabi_uldiv only on __MESC__.
|
|
|
|
2019-06-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Include mes/div.c for mescc builds.
|
|
* build-aux/configure-lib.sh (libmes_SOURCES): Add mes/div.c.
|
|
* simple.sh: Likewise.
|
|
|
|
2019-06-13 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
ntoab: Include "assert.h".
|
|
* lib/mes/ntoab.c: #include "assert.h".
|
|
|
|
mescc: Mes C Library: Use __mesabi_uldiv.
|
|
* lib/mes/ntoab.c (ntoab): Use __mesabi_uldiv.
|
|
|
|
mescc: Mes C Library: Add integer division algorithm.
|
|
* lib/mes/div.c: New file.
|
|
|
|
2019-07-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Have write behave well with buffered reads.
|
|
* lib/mes/write.c: New file.
|
|
* build-aux/configure-lib.sh (libc_mini_SOURCES): Add it.
|
|
(libc_mini_shared_SOURCES): New variable.
|
|
(libc_mini_SOURCES, libmes_SOURCES): Use it.
|
|
(libmes_SOURCES): Add lib/linux/lseek.c, lib/posix/write.c.
|
|
(libc_tcc_SOURCES): Remove lib/linux/lseek.c.
|
|
* lib/posix/write.c (write): Correct for read buffer.
|
|
* lib/stdio/fwrite.c (fwrite): Remove read buffer correction.
|
|
* simple.sh: Update.
|
|
|
|
2019-07-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Add buffered read.
|
|
* lib/mes/__buffered_read.c: New file.
|
|
* build-aux/configure-lib.sh (libc_SOURCES): Add it. Also add memmove.c.
|
|
(libc_tcc_SOURCES): Remove memmove.c
|
|
* lib/linux/close.c (close): Clear read buffer.
|
|
* lib/linux/_open3.c (_open3): Likewise.
|
|
* lib/linux/lseek.c (lseek): Correct for read buffer.
|
|
* lib/stdio/fwrite.c (fwrite): Likewise.
|
|
* lib/posix/read.c (read): Call __buffered_read.
|
|
* lib/posix/write.c (write): Add FIXME note about buffered reads.
|
|
* simple.sh: Update.
|
|
|
|
2019-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tests: Disable 70-extern.c for x86_64-gcc.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS)[x86_64-gcc]: Add
|
|
70-extern.c.
|
|
|
|
2019-05-30 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
mescc: Put char's ASCII code into register, not char.
|
|
* module/mescc/compile.scm (expr-register): Put char's ASCII code into
|
|
register, not char.
|
|
|
|
2019-06-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Update to Nyacc 0.93.
|
|
* mes/module/nyacc/lang/c99/util.mes: New file.
|
|
* mes/module/nyacc/lang/c99/parser.mes: Use it.
|
|
* module/mescc/compile.scm (ast->info): Update for Nyacc 0.93.0.
|
|
* module/mescc/preprocess.scm (need-progress): Likewise.
|
|
(ast-strip-comment): Likewise.
|
|
|
|
2019-08-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: string->number: Support #x-prefixed hex numbers.
|
|
* mes/module/mes/scm.mes (string->number): Support "#x"-prefix.
|
|
* tests/math.test ("string->number #hex"): Test it.
|
|
|
|
2019-07-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Do not dump variables with extern storage.
|
|
* lib/tests/scaffold/70-extern.stdout: New file.
|
|
* lib/tests/scaffold/70-extern.c: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add it..
|
|
* module/mescc/M1.scm (global-string?, global-extern?): New function.
|
|
(info->M1): Dump strings first. Skip extern symbols.
|
|
* module/mescc/info.scm (<global>): Add storage field.
|
|
(make-global): Add storage parameter. Pass it.
|
|
* module/mescc/compile.scm (make-global-entry): Likewise.
|
|
(global->info): Likewise.
|
|
(init-declr->info): Likewise.
|
|
(decl->info): Pass storage.
|
|
|
|
build: ./pre-inst-env MES_PREFIX fixup.
|
|
* build-aux/pre-inst-env.in: Set MES_PREFIX to abs_top_srcdir.
|
|
* src/mes.c (open_boot): Cater for MES_PREFIX/mes and ${srcdest}.
|
|
|
|
mescc: Be silent.
|
|
* module/mescc/M1.scm (infos->M1, info->M1): Add verbose?. Move
|
|
debugging into verbose? > 1.
|
|
* module/mescc/compile.scm (c99-input->info, c99-ast->info): Likewise.
|
|
(mescc:trace-verbose): Rename from mescc:trace.
|
|
(mescc:trace): New function.
|
|
* module/mescc.scm (mescc:main): Likewise.
|
|
* module/mescc/mescc.scm (mescc:preprocess, c->ast mescc:compile,
|
|
c->info, E->info): Likewise.
|
|
* module/mescc/preprocess.scm (c99-input->full-ast, c99-input->ast):
|
|
Likewise.
|
|
|
|
2019-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add <include>/<kernel>/<arch> to include path.
|
|
* module/mescc/preprocess.scm (c99-input->full-ast): Add
|
|
<include>/<kernel>/<arch> to include path.
|
|
* module/mescc/compile.scm (c99-input->info): Pass arch.
|
|
* module/mescc/mescc.scm (mescc:preprocess): Likewise.
|
|
(c->info): Likewise.
|
|
(c->ast): Likewise.
|
|
|
|
mescc: Add 70-function-destruct-declare.c test.
|
|
* module/mescc/compile.scm (init-declr->info): Do not attempt to
|
|
re-calculate function type.
|
|
(ftn-declr:get-type): Remove.
|
|
* lib/tests/scaffold/70-function-destruct-declare.c: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
|
|
mescc: Resurrect --write.
|
|
* module/mescc/mescc.scm (mescc:preprocess): Pass pretty-print/write
|
|
to c->ast.
|
|
|
|
build: Distribute crt*.c, libc+gnu.c for tcc, gcc bootstrap build.
|
|
* build-aux/build-lib.sh (libc_gnu_SOURCES): Build libc+gnu.c. Copy
|
|
crt*.c, libc+gnu.c for distribution.
|
|
|
|
build: Uniquify config macros.
|
|
* configure (main): Rename VERSION to MES_VERSION, pkgdatadir to
|
|
MES_PKGDATADIR. Update users.
|
|
* configure.sh (mes_system): Likewise.
|
|
* src/mes.c (mes_symbols): Update.
|
|
(open_boot): Update.
|
|
* scaffold/cons-mes.c (main): Update.
|
|
* simple.sh: Update.
|
|
|
|
2019-07-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resurrect --with-cheating.
|
|
* build-aux/config.sh.in (SCHEME): New substitute.
|
|
* build-aux/config.make.in: Likewise.
|
|
* configure: Substitute them.
|
|
|
|
2019-07-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support tcc: libtcc1 build fixes.
|
|
* lib/libtcc1.c: Support building without long long, float support.
|
|
|
|
2019-06-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Avoid type/size_t conflicts.
|
|
* include/alloca.h: Remove typedefs, include sys/types.h.
|
|
* include/stdint.h: Likewise.
|
|
* include/string.h: Likewise.
|
|
|
|
2019-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support tcc: Add intptr_t, uintptr_t.
|
|
* include/sys/types.h (intptr_t, uintptr_t): Add typedef.
|
|
|
|
2019-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add 70-struct-post.c test with fix.
|
|
* lib/tests/scaffold/70-struct-post.c: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
* module/mescc/compile.scm (expr->register): Use type size for rank
|
|
0 (WAS: 1).
|
|
|
|
mescc: Add 70-struct-short-enum-init.c test with fix.
|
|
* module/mescc/compile.scm (init->data): Respect type of size.
|
|
* lib/tests/scaffold/70-struct-short-enum-init.c: New file.
|
|
* lib/tests/scaffold/70-struct-short-enum-init.stdout: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add test.
|
|
|
|
2019-07-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add 70-array-in-struct-init.c test with fix.
|
|
* lib/tests/scaffold/70-array-in-struct-init.c: New file.
|
|
* lib/tests/scaffold/70-array-in-struct-init.stdout: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add test.
|
|
* module/mescc/compile.scm (array-init-element->data): Recurse for
|
|
elements instead of using init->data. Support array fields.
|
|
|
|
2019-07-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Remove broken copy of simple-format.
|
|
* mes/module/mes/simple-format.mes: New file.
|
|
* mes/module/mes/guile.mes: Use it.
|
|
(with-output-to-string, simple-format): Remove broken copies.
|
|
* mes/module/mes/display.mes (with-output-to-string, simple-format,
|
|
format): Remove.
|
|
|
|
2019-07-05 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
Fix remainder handling.
|
|
* mes/module/mes/scm.mes (number->string): Fix remainder handling.
|
|
* build-aux/check-mescc.sh (XFAIL_TESTS): Remove
|
|
lib/tests/scaffold/60-math.c.
|
|
|
|
2019-07-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "test: Disable 60-math.c test."
|
|
This reverts commit bbe6576a66a520d429bb3ec84120ffcce88480bf.
|
|
|
|
test: Disable 60-math.c test.
|
|
* build-aux/check-mescc.sh (TESTS): Remove
|
|
lib/tests/scaffold/60-math.c.
|
|
(BROKEN_TESTS): Add it.
|
|
|
|
2019-07-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resurrect bootstrap.sh.
|
|
* build-aux/connfigure-lib.sh: Split from build-lib.sh
|
|
* build-aux/build-lib.sh: Include it.
|
|
* build-aux/bootstrap.sh.in: New file.
|
|
* configure.sh: Substitute it.
|
|
|
|
2019-07-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Use basename of input as default output name.
|
|
* module/mescc/mescc.scm (mescc:preprocess, mescc:compile,
|
|
mescc:assemble, M1->hex2): Use basename of input as default output name.
|
|
|
|
2019-07-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Handle gcc with --pie-by-default.
|
|
This fixes upgrading to debian-hurd-20190220.img.
|
|
|
|
* build-aux/build.sh.in (CFLAGS): Add -static. Fixes using gcc
|
|
compiled with --pie-by-default
|
|
* build-aux/check.sh.in (CFLAGS): Likewise.
|
|
* module/mescc.scm (parse-opts): Ignore -no-pie, -static.
|
|
|
|
2019-07-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Split-off broken 72-typedef-struct-def-local.
|
|
* lib/tests/scaffold/72-typedef-struct-def-local.c: New file.
|
|
* lib/tests/scaffold/72-typedef-struct-def.c: Remove local bit.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
(XFAIL_TESTS)[mescc]: Add lib/tests/scaffold/72-typedef-struct-def.c.
|
|
|
|
2019-06-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Fix open-read test.
|
|
* build-aux/pre-inst-env.in (srcdir): Remove.
|
|
(abs_top_srcdir, abs_top_builddir): Export.
|
|
* lib/tests/posix/50-open-read.c (main): Use abs_top_srcdir.
|
|
|
|
2019-06-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Add open-read test.
|
|
* build-aux/test-c.sh: Support running by hand.
|
|
* lib/tests/posix/50-open-read.c: New test.
|
|
* lib/tests/posix/data/open-read: New file.
|
|
* build-aux/check-mescc.sh (TESTS): Add it.
|
|
|
|
test: Enable argv test, run tests with arguments.
|
|
* build-aux/check-mescc.sh (TESTS): Enable 54-argv.c
|
|
(XFAIL_TESTS): Remove it.
|
|
* build-aux/test-c.sh: Invoke test with options.
|
|
* lib/tests/scaffold/54-argc.c: Update.
|
|
|
|
2019-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C library: Move common getcwd, open bits to posix.
|
|
* lib/linux/_getcwd.c: Rename from getcwd.c.
|
|
* lib/linux/_open3.c: Rename from open.c.
|
|
* lib/posix/getcwd.c: New file with bits from ../linux/getcwd.c.
|
|
* lib/posix/open.c: New file with bits ../linux/getcwd.c.
|
|
* build-aux/build-lib.sh (libc_SOURCES): Update.
|
|
|
|
2019-06-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Move posix bits to read.
|
|
* lib/linux/_read.c: Rename from read.
|
|
* lib/posix/read.c: New file.
|
|
* build-aux/build-lib.sh (libc_SOURCES): Update.
|
|
* include/mes/lib.h (_read): Declare.
|
|
|
|
2019-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
porting: Avoid failing in scaffold build.
|
|
* build-aux/build-scaffold.sh: Do not fail when using courage.
|
|
|
|
build: Use bash if available to avoid dash problems.
|
|
* configure: Set SHELL to bash.
|
|
* configure.sh: Likewise.
|
|
* build-aux/test-suite.sh (TEST_LOGS):
|
|
* build-aux/export.make: Export SHELL.
|
|
* build-aux/config.sh.in (SHELL): New substitute, export.
|
|
* build-aux/config.make.in (SHELL): New substitute.
|
|
* build-aux/GNUmakefile.in (build, check, install, uninstall): Use
|
|
$SHELL to avoid dash problems.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/build.sh.in: Likewise.
|
|
* build-aux/check-mes.sh: Likewise.
|
|
* build-aux/check.sh.in: Likewise.
|
|
|
|
test: Oops, uncomment some commented-out tests.
|
|
* lib/tests/scaffold/55-char-array.c: Uncomment.
|
|
* lib/tests/scaffold/72-typedef-struct-def.c: Likewise.
|
|
|
|
build: Improve --with-system-libc support.
|
|
* build-aux/build-lib.sh: Avoid building libc for --with-system-libc.
|
|
Make libmes richer.
|
|
build-aux/check-mescc.sh: Enable 50-malloc test.
|
|
* include/dirstream.h: Use HAVE_DIRSTREAM_H to cater for non-existing
|
|
dirstream.h.
|
|
* include/grp.h[SYSTEM_LIBC]: Typo.
|
|
* include/mes/lib.h (__brk, __call_at_exit)[SYSTEM_LIBC]: Declare.
|
|
* include/stdlib.h (comparison_fn_t)[SYSTEM_LIBC]: Declare.
|
|
* include/time.h (mktime): Return time_t.
|
|
* lib/posix/isatty.c [SYSTEM_LIBC]: Do not (re)declare termios.
|
|
* lib/stub/mktime.c (mktime): Return time_t.
|
|
* lib/tests/scaffold/41-ternary.c (main): Remove assumption that
|
|
locals are initialized.
|
|
* lib/tests/scaffold/70-stdarg.c: Cater for SYSTEM_LIBC.
|
|
* lib/tests/setjmp/80-setjmp.c: Declare jmp buf.
|
|
* lib/*/*.c: Add missing mes/lib.h, errno.h includes.
|
|
|
|
2019-06-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
porting: Add x86_64 scaffold: exit and write in assembly.
|
|
* lib/x86_64-mes-gcc/exit-42.S: New file.
|
|
* lib/x86_64-mes-gcc/hello-mes.S: New file.
|
|
* lib/x86_64-mes/elf64-0exit-42.hex2: New file.
|
|
* lib/x86_64-mes/elf64-0hello-mes.hex2: New file.
|
|
* lib/x86_64-mes/elf64-body-exit-42.hex2: Rewrite..
|
|
* lib/x86_64-mes/elf64-body-hello-mes.hex2:
|
|
* lib/x86_64-mes/elf64-0header.hex2: Fix copyright header.
|
|
* lib/x86_64-mes/elf64-header.hex2: Likewise.
|
|
* lib/x86_64-mes/elf-0footer.hex2: Remove.
|
|
|
|
2019-06-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
porting: Add x86 scaffold: exit and write in assembly.
|
|
* lib/x86-mes-gcc/exit-42.S: New file.
|
|
* lib/x86-mes-gcc/hello-mes.S: New file.
|
|
* lib/x86-mes/elf32-0exit-42.hex2: New file.
|
|
* lib/x86-mes/elf32-0hello-mes.hex2: New file.
|
|
* lib/x86-mes/elf32-body-hello-mes.hex2: New file.
|
|
* lib/x86-mes/elf32-body-exit-42.hex2: Rewrite.
|
|
* lib/x86-mes/elf32-header.hex2: Fix copyright header.
|
|
* lib/x86-mes/elf32-0header.hex2: Likewise.
|
|
* lib/x86-mes/elf-0footer.hex2: Remove.
|
|
* build-aux/build-scaffold.sh: Build them.
|
|
* .dir-locals.el (asm-mode): Allow TABs.
|
|
* .gitignore: Reserve .S assembly sources, i.e. manual written
|
|
assembly. Update build system.
|
|
* module/mescc/mescc.scm: Update.
|
|
* build-aux/build-lib.sh: Update.
|
|
* scripts/ar.in: Update.
|
|
|
|
2019-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
make check: Do not re-check unless recheck=true.
|
|
* build-aux/check-mescc.sh (recheck): New variable.
|
|
* build-aux/check.sh.in (recheck): New variable.
|
|
* build-aux/test-suite.sh (TEST_LOGS): Use it.
|
|
|
|
2019-05-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Cater for ARM.
|
|
* configure: Cater for ARM.
|
|
* configure.sh: Likewise
|
|
* build-aux/GNUmakefile.in: Likewise.
|
|
* build-aux/bootstrap.sh.in: Likewise.
|
|
* module/mescc.scm (parse-opts): Likewise.
|
|
* src/mes.c (mes_environment): Likewise.
|
|
* build-aux/build.sh.in: Likewise.
|
|
* build-aux/config.sh Likewise.
|
|
* build-aux/install.sh.in: Likewise.
|
|
* module/mes/guile.scm: Likewise.
|
|
* scripts/mescc.scm.in: Likewise.
|
|
* module/mescc/mescc.scm (arch-get): New function.
|
|
(arch-get-info): New function.
|
|
(arch-get-define): New function.
|
|
(arch-get-m1-options): New function.
|
|
(arch-get-Architecture): New function.
|
|
(mescc:preprocess c->info, E->info, M1->hex2, hex2->elf,
|
|
M1->blood-elf, arch-find): Use them.
|
|
|
|
2019-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Drop $@-workaround.
|
|
* scripts/mescc.in: Drop $@-workaround.
|
|
|
|
2019-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Simplify.
|
|
core: Make mes src/ c files separate compilation units.
|
|
|
|
* include/mes/constants.h: New file.
|
|
* include/mes/macros.h: New file.
|
|
* include/mes/mes.h: New file.
|
|
* src/gc.c: Update.
|
|
* src/hash.c: Update.
|
|
* src/lib.c: Update.
|
|
* src/math.c: Update.
|
|
* src/mes.c: Update.
|
|
* src/module.c: Update.
|
|
* src/posix.c: Update.
|
|
* src/reader.c: Update.
|
|
* src/string.c: Update.
|
|
* src/struct.c: Update.
|
|
* src/vector.c: Update.
|
|
|
|
mes: Update datadir.
|
|
|
|
* src/mes.c (g_datadir): New global.
|
|
(open_boot): Rename from read_boot.
|
|
(read_boot): New function.
|
|
* mes/module/mes/boot-0.scm: Move from boot-0.scm.in
|
|
* configure: Update.
|
|
* configure.sh: Update.
|
|
|
|
mescc: Create libraries from separate files.
|
|
|
|
* .gitignore: Update.
|
|
* build-aux/bootstrap-mes.sh: Remove.
|
|
* build-aux/bootstrap.sh.in: Remove.
|
|
* build-aux/build-guile.sh: Update.
|
|
* build-aux/build-mes.sh: Update.
|
|
* build-aux/build-scaffold.sh: New file.
|
|
* build-aux/build.sh.in: Update.
|
|
* build-aux/cc.sh: Update.
|
|
* build-aux/check-tcc.sh: Remove.
|
|
* build-aux/config.sh.in: New file.
|
|
* build-aux/config.sh: Remove.
|
|
* build-aux/install.sh.in: Update.
|
|
* build-aux/test-boot.sh: New file.
|
|
* build-aux/test-c.sh: New file.
|
|
* build-aux/test-driver: New file.
|
|
* build-aux/test-suite.sh: New file.
|
|
* build-aux/trace.sh: Update.
|
|
* build-aux/uninstall.sh.in: Update.
|
|
* configure: Update.
|
|
* configure.sh: Update.
|
|
* lib/linux/x86-mes-mescc/crt1.c: Move from lib/linux/x86-mes.
|
|
* lib/linux/x86-mes-mescc/mini.c: Likewise.
|
|
* lib/linux/x86_64-mes-mescc/crt1.c: Move from lib/linux/x86_64-mes.
|
|
* lib/linux/x86_64-mes-mescc/mini.c: Likewise.
|
|
* lib/linux/x86-mes-gcc/syscall.c: Rename from mes.c.
|
|
* lib/linux/x86-mes-mescc/syscall.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/syscall.c: Likewise.
|
|
* lib/linux/x86_64-mes-mescc/syscall.c: Likewise.
|
|
* lib/mes/mes_open.c: Include config.h.
|
|
* lib/tests/stdio/70-printf-hello.c: Likewise.
|
|
* lib/tests/stdio/70-printf-simple.c: Likewise.
|
|
* scaffold/gc-test.sh: New file.
|
|
* simple.sh: Update.
|
|
|
|
2019-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Move scaffold/tests into lib.
|
|
* lib/tests/scaffold: Move from scaffold/tests.
|
|
* scaffold/tests: Remove.
|
|
* build-aux/check-mescc.sh: Update.
|
|
|
|
2019-05-10 Danny Milosavljevic <dannym@scratchpost.org>
|
|
|
|
build: Make "GUILEC" compilation status output more verbose (print full path).
|
|
* build-aux/build-guile.sh: Make "GUILEC" compilation status output more
|
|
verbose (print full path).
|
|
|
|
2019-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fix --disable-silent-rules. Thanks ng0!
|
|
* configure (main): Substitute V as string value.
|
|
* build-aux/trace.sh: Typo. Fixes using V=0.
|
|
* build-aux/config.status.in (V): New substitute.
|
|
* build-aux/config.make.in (V): New substiute.
|
|
|
|
mescc: Use a.out as default executable name.
|
|
* module/mescc/mescc.scm (hex2->elf): Use a.out as default executable
|
|
name.
|
|
|
|
mescc: Robustify against empty `V' in environment.
|
|
* module/mescc.scm: Robustify against empty V in environment.
|
|
|
|
2019-05-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix -dumpmachine to respect -m bits selection.
|
|
* module/mescc.scm (parse-opts): Fix -dumpmachine to respect -m bits
|
|
selection. Also display kernel.
|
|
|
|
2019-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support single-dash options on Mes too.
|
|
* scripts/mescc.in[MES]: Add -- as separator, fixes using single-dash
|
|
options on Mes too.
|
|
|
|
mescc: Ignore -fnobuiltin, -nostdinc for GCC compatibility.
|
|
* module/mescc.scm (parse-opts): Add -fnobuiltin, -nostdinc.
|
|
(mescc:main): Ignore them.
|
|
|
|
2019-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Resurrect running boot tests on Guile.
|
|
* module/mes/guile.scm (keyword->string): New function.
|
|
* scaffold/boot/43-or.scm (foo): Add quoting.
|
|
* scaffold/boot/45-pass-if.scm (pass-if): Likewise.
|
|
* scaffold/boot/46-report.scm (pass-if): Likewise.
|
|
* scaffold/boot/47-pass-if-eq.scm (pass-if): Likewise.
|
|
* scaffold/boot/48-let.scm (map): Rename from map1.
|
|
* scaffold/boot/60-let-syntax-expanded.scm: Some work.
|
|
|
|
2019-05-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix compile warnings.
|
|
* lib/stdio/fputc.c (fputc): Oops, stream is a long.
|
|
* lib/stdlib/malloc.c (malloc): Cast to char *. FIXME
|
|
* lib/string/memchr.c (memchr): Cast to void *.
|
|
* lib/string/memcmp.c (memcmp): Add const cast.
|
|
|
|
mescc: Mes C Library: Fixes for x86_64 crt1.c
|
|
* lib/linux/x86_64-mes/crt1.c (_start): Write only 4 bytes to int
|
|
variables __stdin, __stdout, __stderr.
|
|
|
|
2019-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Move srfi-1 for-each and map tests to tests/srfi-1.test.
|
|
This fixes: `make check MES=guile'.
|
|
|
|
* tests/srfi-1.test ("map 1,2", "map 2,1", "for-each 1,2",
|
|
for-each 2,1"): Move from scm.test.
|
|
* tests/scm.test ("map 1,2", "map 2,1", "for-each 1,2",
|
|
for-each 2,1"): Remove.
|
|
|
|
2019-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Use SYSTEM_LIBC [WAS: WITH_GLIBC].
|
|
Run: sed -i 's,WITH_GLIBC,SYSTEM_LIBC,g' $(git grep -l WITH_GLIBC)
|
|
|
|
* build-aux/config.sh: Update.
|
|
* include/alloca.h: Likewise.
|
|
* include/ar.h: Likewise.
|
|
* include/argz.h: Likewise.
|
|
* include/assert.h: Likewise.
|
|
* include/ctype.h: Likewise.
|
|
* include/dirent.h: Likewise.
|
|
* include/dirstream.h: Likewise.
|
|
* include/dlfcn.h: Likewise.
|
|
* include/endian.h: Likewise.
|
|
* include/errno.h: Likewise.
|
|
* include/fcntl.h: Likewise.
|
|
* include/features.h: Likewise.
|
|
* include/float.h: Likewise.
|
|
* include/getopt.h: Likewise.
|
|
* include/inttypes.h: Likewise.
|
|
* include/libgen.h: Likewise.
|
|
* include/limits.h: Likewise.
|
|
* include/linux/x86_64/syscall.h: Likewise.
|
|
* include/locale.h: Likewise.
|
|
* include/math.h: Likewise.
|
|
* include/memory.h: Likewise.
|
|
* include/mes/lib-mini.h: Likewise.
|
|
* include/pwd.h: Likewise.
|
|
* include/setjmp.h: Likewise.
|
|
* include/signal.h: Likewise.
|
|
* include/stdarg.h: Likewise.
|
|
* include/stdbool.h: Likewise.
|
|
* include/stddef.h: Likewise.
|
|
* include/stdint.h: Likewise.
|
|
* include/stdio.h: Likewise.
|
|
* include/stdlib.h: Likewise.
|
|
* include/stdnoreturn.h: Likewise.
|
|
* include/string.h: Likewise.
|
|
* include/strings.h: Likewise.
|
|
* include/sys/cdefs.h: Likewise.
|
|
* include/sys/dir.h: Likewise.
|
|
* include/sys/file.h: Likewise.
|
|
* include/sys/ioctl.h: Likewise.
|
|
* include/sys/mman.h: Likewise.
|
|
* include/sys/param.h: Likewise.
|
|
* include/sys/resource.h: Likewise.
|
|
* include/sys/select.h: Likewise.
|
|
* include/sys/stat.h: Likewise.
|
|
* include/sys/time.h: Likewise.
|
|
* include/sys/timeb.h: Likewise.
|
|
* include/sys/times.h: Likewise.
|
|
* include/sys/types.h: Likewise.
|
|
* include/sys/ucontext.h: Likewise.
|
|
* include/sys/user.h: Likewise.
|
|
* include/sys/wait.h: Likewise.
|
|
* include/termio.h: Likewise.
|
|
* include/time.h: Likewise.
|
|
* include/unistd.h: Likewise.
|
|
* lib/libmes.c: Likewise.
|
|
* lib/tests/stdio/70-printf-hello.c: Likewise.
|
|
* lib/tests/stdio/70-printf-simple.c: Likewise.
|
|
* lib/tests/stdio/80-sscanf.c: Likewise.
|
|
* lib/tests/stdlib/50-malloc.c: Likewise.
|
|
* module/mescc/preprocess.scm: Likewise.
|
|
* scaffold/cons-mes.c: Likewise.
|
|
* scaffold/lib/stdlib/malloc.c: Likewise.
|
|
* scaffold/micro-mes.c: Likewise.
|
|
* scaffold/tests/61-array.c: Likewise.
|
|
* scaffold/tiny-mes.c: Likewise.
|
|
* simple.sh: Likewise.
|
|
* src/mes.c: Likewise.
|
|
|
|
2019-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Bugfix for search-path. Fixes running MesCC on Guile.
|
|
* module/mescc/mescc.scm (arch-find): Also look in cwd.
|
|
* mes/module/mes/posix.mes (search-path): Do not look in cwd.
|
|
|
|
2019-05-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Use named --architecture switch for upcoming mescc-tools 0.6.
|
|
* module/mescc/mescc.scm (M1->hex2): Use named --architecture switch for
|
|
upcoming mescc-tools 0.6.
|
|
(hex2->elf): Likewise.
|
|
* build-aux/bootstrap-mes.sh: Likewise.
|
|
* build-aux/bootstrap.sh.in: Likewise.
|
|
* build-aux/config.sh: Likewise.
|
|
|
|
2019-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Identify 64-bit bug when compiled with MesCC.
|
|
* src/math.c (divide): Add divide-by-zero error.
|
|
(modulo): Likewise.
|
|
* module/mes/guile.scm (%compiler): New variable.
|
|
* module/mescc/M1.scm (mesc?): New variable.
|
|
(hex2:immediate8): Use it to avoid divide-by-zero error.
|
|
* HACKING (Bugs): Add it.
|
|
|
|
mes: Make debug levels 4 and 5 usable.
|
|
* HACKING: Update debug policy.
|
|
* lib/linux/read.c (read): Print read in level 5.
|
|
* src/mes.c (eval_apply): Print module in level 6.
|
|
(main): Likewise. Remove redundant module printing.
|
|
* src/gc.c (gc): Print symbols in level 6.
|
|
|
|
2019-05-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Run build-aux/indent.sh.
|
|
* src/mes.c: Re-indent.
|
|
* src: Likewise.
|
|
* include: Likewise.
|
|
* lib: Likewise.
|
|
* scaffold: Likewise.
|
|
|
|
2019-05-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Grand indent: prepare.
|
|
* build-aux/indent.sh: New file.
|
|
* include/mes/builtins.h: Move from src/builtins.h.
|
|
* include/fcntl.h: Use // *INDENT-OFF* to prevent indent breakage.
|
|
* include/locale.h: Likewise.
|
|
* include/signal.h: Likewise.
|
|
* include/sys/stat.h: Likewise.
|
|
* include/sys/user.h: Likewise.
|
|
* lib/linux/x86-mes-gcc/crt0.c: Likewise.
|
|
* lib/linux/x86-mes-gcc/crt1.c: Likewise.
|
|
* lib/linux/x86-mes-gcc/mes.c: Likewise.
|
|
* lib/linux/x86-mes-gcc/mini.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/crt0.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/crt1.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/mes.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/mini.c: Likewise.
|
|
* lib/x86_64-mes-gcc/setjmp.c: Likewise.
|
|
* src/mes.c: Likewise.
|
|
* src/reader.c: Likewise.
|
|
|
|
2019-05-15 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Support -c EXPR.
|
|
* mes/module/mes/boot-0.scm.in: Support -c EXPR.
|
|
|
|
mes: Support optional port on read.
|
|
* mes/module/mes/scm.mes (read): Support optional port on read.
|
|
|
|
build: Fix mescc installation on Debian.
|
|
* build-aux/pre-inst-env.in: Set bindir.
|
|
* scripts/mescc.in: Fix configure/prefix issues.
|
|
* mes/module/mes/boot-01.scm (integer->char): Remove.
|
|
(newline): Use "\n".
|
|
(%moduledir): Use string-append.
|
|
* mes/module/mes/boot-02.scm: Likewise.
|
|
* mes/module/mes/boot-0.scm: Likewise.
|
|
|
|
build: Debian make check and install fixes.
|
|
* configure (main): Oops, typo: mandir uses --infodir.
|
|
* build-aux/check.sh.in: Run check-mescc.sh with bash.
|
|
* build-aux/config.sh (CFLAGS, CPPFLAGS, HEX2FLAGS, LDFLAGS, M1FLAGS):
|
|
unset.
|
|
* build-aux/install.sh.in: Use BASHOPTS to check for bash; on Debian
|
|
dash is used and has $SHELL=/bin/bash. Use ${DESTDIR}@...
|
|
|
|
2019-05-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Rename strings.c.
|
|
* src/string.c: Rename from src/strings.c.
|
|
* src/mes.c
|
|
* build-aux/snarf.sh: Update.
|
|
|
|
2019-05-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Use mes_open to avoid open trickery.
|
|
* include/mes/lib.h (mes_open): Declare.
|
|
* lib/libmes.c[WITH_GLIBC]: Remove open undefine.
|
|
(mes_open)[!WITH_GLIBC]: New function.
|
|
* src/mes.c (open_boot): Use mes_open.
|
|
* src/posix.c (open_input_file): Likewise.
|
|
(open_output_file): Likewise.
|
|
|
|
mescc: Mes C Library: Remove dead code.
|
|
* lib/glibc.c: Remove.
|
|
* lib/abtol.c: Remove.
|
|
|
|
mescc: Mes C Library: Explode linux/tcc.c.
|
|
* lib/linux/close.c: New file.
|
|
* lib/linux/lseek.c: New file.
|
|
* lib/linux/rmdir.c: New file.
|
|
* lib/linux/stat.c: New file.
|
|
* lib/linux/tcc.c: Include them.
|
|
(close, lseek, rmdir, stat): Remove.
|
|
|
|
mescc: Mes C Library: Explode linux/libc.c.
|
|
* lib/linux/access.c: New file.
|
|
* lib/linux/brk.c: New file.
|
|
* lib/linux/chmod.c: New file.
|
|
* lib/linux/dup.c: New file.
|
|
* lib/linux/dup2.c: New file.
|
|
* lib/linux/execve.c: New file.
|
|
* lib/linux/fork.c: New file.
|
|
* lib/linux/fsync.c: New file.
|
|
* lib/linux/getcwd.c: New file.
|
|
* lib/linux/ioctl.c: New file.
|
|
* lib/linux/libc.c: New file.
|
|
* lib/linux/open.c: New file.
|
|
* lib/linux/read.c: New file.
|
|
* lib/linux/unlink.c: New file.
|
|
* lib/linux/waitpid.c: New file.
|
|
* lib/linux/libc.c: Include them.
|
|
(access, brk, chmod, dup, dup2, execve, fork, fsync, getcwd, ioctl,
|
|
libc, open, read, unlink, waitpid): Remove.
|
|
|
|
2019-05-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Explode linux/gnu.c.
|
|
* lib/linux/chdir.c: New file.
|
|
* lib/linux/fcntl.c: New file.
|
|
* lib/linux/fstat.c: New file.
|
|
* lib/linux/getdents.c: New file.
|
|
* lib/linux/getegid.c: New file.
|
|
* lib/linux/geteuid.c: New file.
|
|
* lib/linux/getgid.c: New file.
|
|
* lib/linux/getpid.c: New file.
|
|
* lib/linux/getppid.c: New file.
|
|
* lib/linux/getrusage.c: New file.
|
|
* lib/linux/getuid.c: New file.
|
|
* lib/linux/kill.c: New file.
|
|
* lib/linux/link.c: New file.
|
|
* lib/linux/lstat.c: New file.
|
|
* lib/linux/mkdir.c: New file.
|
|
* lib/linux/nanosleep.c: New file.
|
|
* lib/linux/pipe.c: New file.
|
|
* lib/linux/rename.c: New file.
|
|
* lib/linux/setgid.c: New file.
|
|
* lib/linux/settimer.c: New file.
|
|
* lib/linux/setuid.c: New file.
|
|
* lib/linux/signal.c: New file.
|
|
* lib/linux/sigprogmask.c: New file.
|
|
* lib/linux/gnu.c: Include them.
|
|
(chdir, fcntl, fstat, getdents, getegid, geteuid, getgid, getpid,
|
|
getppid, getrusage, getuid, kill, link, lstat, mkdir, munmap,
|
|
nanosleep, pipe, rename, setgid, settimer, setuid, signal,
|
|
sigprogmask): Remove.
|
|
|
|
2019-05-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Explode libc-mini.c.
|
|
* lib/posix/write.c: New file.
|
|
* lib/linux/libc-mini.c: Include it.
|
|
(write): Remove.
|
|
* lib/tests/mes/30-oputs.c: Remove dead code.
|
|
|
|
2019-05-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Cleanup includes.
|
|
* include/mes/lib-mini.h: Move from include/libmes-mini.h. Update users.
|
|
* include/mes/lib.h: Move from include/libmes.h. Update users.
|
|
|
|
2019-05-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support -nodefaultlibs, -nostartfiles, -nostdlib.
|
|
* module/mescc.scm (parse-opts): Parse -nodefaultlibs, -nostartfiles, -nostdlib.
|
|
* module/mescc/mescc.scm (mescc:link): Handle -nodefaultlibs, -nostdlib.
|
|
(hex2->elf): Handle -nostartfiles, -nostdlib.
|
|
|
|
2019-05-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Do not install test binaries.
|
|
* build-aux/install.sh.in: Do not install test binaries.
|
|
|
|
2019-05-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: m2: Move force-output to Scheme.
|
|
* mes/module/mes/posix.mes (force-output): New function.
|
|
* src/posix.c (force_output): Remove.
|
|
* src/mes.c (mes_builtins): Remove adding of force-output.
|
|
|
|
2019-03-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: M2-Planet first-aid, simplest build script possible.
|
|
* simple.sh: New file.
|
|
|
|
2019-03-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
.dir-locals.el: Assert default GNU settings.
|
|
* .dir-locals.el: Assert default GNU settings.
|
|
|
|
Fix typo in stage0 copyright headers.
|
|
* lib/x86-mes/elf-0footer.hex2: Fix typo.
|
|
* lib/x86-mes/elf32-0header.hex2: Fix typo.
|
|
* lib/x86-mes/elf32-body-exit-42.hex2: Fix typo.
|
|
* lib/x86-mes/elf32-footer-single-main.hex2: Fix typo.
|
|
* lib/x86-mes/elf32-header.hex2: Fix typo.
|
|
* lib/x86_64-mes/elf-0footer.hex2: Fix typo.
|
|
* lib/x86_64-mes/elf64-0header.hex2: Fix typo.
|
|
* lib/x86_64-mes/elf64-body-exit-42.hex2: Fix typo.
|
|
* lib/x86_64-mes/elf64-footer-single-main.hex2: Fix typo.
|
|
* lib/x86_64-mes/elf64-header.hex2: Fix typo.
|
|
|
|
2019-03-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix ungetc.
|
|
* include/sys/resource.h (OPEN_MAX, RLIMIT_NOFILE): New macro.
|
|
* lib/libc.c: Add memset.c include.
|
|
* lib/libc+tcc.c: Remove memset.c include.
|
|
* lib/linux/tcc.c (close):
|
|
* lib/mes/fdgetc.c (__ungetc_buf): New global.
|
|
(_ungetc_pos, _ungetc_fd, _ungetc_buf): Remove. Update users.
|
|
* scaffold/tests/65-read.c: Update.
|
|
|
|
2019-03-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Replace POSIX, posix_p by WITH_GLIBC, wip_glibc_p.
|
|
* build-aux/build-mes.sh: Replace POSIX, posix_p by WITH_GLIBC, wip_glibc_p.
|
|
* build-aux/build.sh.in: Likewise.
|
|
* build-aux/cc.sh (link): Likewise.
|
|
* build-aux/config.make.in (with_glibc_p): Likewise.
|
|
* build-aux/config.sh (libc): Likewise.
|
|
(CPPFLAGS): Likewise.
|
|
* build-aux/config.status.in (with_glibc_p): Likewise.
|
|
* build-aux/test.sh: Likewise.
|
|
* configure (main): Likewise.
|
|
* configure.sh (subst): Likewise.
|
|
(mes_arch): Likewise.
|
|
* include/libmes.h: Likewise.
|
|
* include/linux/x86_64/syscall.h: Likewise.
|
|
* lib/libmes.c: Likewise.
|
|
* lib/tests/stdio/70-printf-hello.c (main): Likewise.
|
|
* lib/tests/stdio/70-printf-simple.c (main): Likewise.
|
|
* lib/tests/stdio/80-sscanf.c (main): Likewise.
|
|
* lib/tests/stdlib/50-malloc.c: Likewise.
|
|
* module/mescc/preprocess.scm (c99-input->full-ast): Likewise.
|
|
* scaffold/cons-mes.c: Likewise.
|
|
* scaffold/lib/stdlib/malloc.c: Likewise.
|
|
* scaffold/micro-mes.c: Likewise.
|
|
* scaffold/tests/61-array.c (getenv): Likewise.
|
|
* scaffold/tiny-mes.c: Likewise.
|
|
* src/mes.c: Likewise.
|
|
|
|
2019-03-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix compile warnings.
|
|
* include/libmes.h (dtoab, itoa, ltoa, ntoab, ultoa, utoa): Return
|
|
char* (WAS: char const*).
|
|
* lib/*/*c: Update, add missing includes.
|
|
|
|
2019-03-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Fix isatty.
|
|
* lib/posix/isatty.c (isatty): Test ioctl == 0.
|
|
* mes/module/mes/boot-0.scm.in: Update: no tty?: read from stdin.
|
|
|
|
test: 50-getenv: Test PATH, allow to fail.
|
|
* lib/tests/posix/50-getenv.c (main): Test PATH.
|
|
* build-aux/check-mescc.sh (broken): Add 50-getenv.
|
|
|
|
mes: Support map and for-each with lists of unequal length.
|
|
* mes/module/mes/base.mes (map): Support lists of unequal length.
|
|
* mes/module/mes/scm.mes (for-each): Likewise.
|
|
* module/mescc/compile.scm (expr->register): Fix compile warning.
|
|
* tests/scm.test ("map 1,2", "map 2,1", "for-each 1,2", "for-each
|
|
2,1": Test it.
|
|
|
|
mescc: Mes C Library: Use __ as global internal prefix.
|
|
* include/libmes-mini.h (g_stdin, g_stdout, g_stderr): Rename to
|
|
__stdin, __stdout, __stderr. Update users.
|
|
|
|
2019-02-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: ctype.h: Add missing prototypes.
|
|
* include/ctype.h: Add missing prototypes.
|
|
|
|
mescc: Mes C Library: Bugfix for tcc-compiled exit assembly.
|
|
* lib/linux/x86-mes-gcc/mini.c (_exit): Add clobbered registers %eax,
|
|
%ebx. Fixes always exit 1.
|
|
|
|
2019-02-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Remove special characters from files.
|
|
* scaffold/tests/06-call-not-1.c: Rename from 06-call-!1.c.
|
|
* scaffold/tests/06-not-call-1.c: Rename from 06-!call-1.c.
|
|
* scaffold/tests/12-if-eq.c: Rename from 12-if-==.c.
|
|
* scaffold/tests/13-if-neq.c: Rename from 13-if-!=.c.
|
|
* scaffold/tests/15-if-not-f.c: Rename from 15-if-!f.c.
|
|
* scaffold/tests/21-char-array-simple.c: Rename from 21-char[]-simple.c.
|
|
* scaffold/tests/21-char-array.c: Rename from 21-char[].c.
|
|
* scaffold/tests/22-while-char-array.c: Rename from 22-while-char[].c.
|
|
* scaffold/tests/41-ternary.c: Rename from 41-?.c.
|
|
* scaffold/tests/7u-call-ternary.c: Rename from 7u-call-?.c.
|
|
* scaffold/tests/7u-ternary-expression.c: Rename from 7u-?-expression.c.
|
|
* build-aux/check-mescc.sh (tests): Update.
|
|
|
|
build: Support building with Gash.
|
|
* build-aux/check-mes.sh: Replace unspported $((..)) by $(expr ...).
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/check-tcc.sh: Likewise.
|
|
|
|
2019-02-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Configure: remove temp files.
|
|
* configure (gulp-pipe*): Remove .error.
|
|
(check-header-c): Remove .config.c.
|
|
(check-compile-c): Likewise.
|
|
(check-link-c): Likewise.
|
|
|
|
build: Remove mini-mes.
|
|
* scaffold/mini-mes.c: Remove.
|
|
* build-aux/build-mes.sh: Remove commented build instructions.
|
|
* .gitignore: Remove pattern.
|
|
|
|
2019-02-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Initialize streams in crt1.
|
|
* lib/linux/x86-mes-gcc/crt1.c: Initialize streams.
|
|
* lib/linux/x86-mes/crt1.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/crt1.c: Likewise.
|
|
* lib/linux/x86_64-mes/crt1.c: Likewise.
|
|
* src/mes.c (main): Remove initialization of streams.
|
|
|
|
mescc: Mes C Library: Populate with function tests from scaffold.
|
|
* .gitignore: Update.
|
|
* build-aux/bootstrap.sh.in: Update.
|
|
* build-aux/build-mes.sh: Update.
|
|
* build-aux/check-mescc.sh: Update.
|
|
* lib/tests/assert/50-assert.c: Move from scaffold/tests/50-assert.c.
|
|
* lib/tests/dirent/90-readdir.c: Move from scaffold/tests/99-readdir.c.
|
|
* lib/tests/dirent/readdir.dir: Move from scaffold/tests/readdir.dir.
|
|
* lib/tests/io/90-stat.c: Move from scaffold/tests/92-stat.c.
|
|
* lib/tests/mes/30-oputs.c: Move from scaffold/tests/31-oputs.c.
|
|
* lib/tests/mes/50-itoa.c: Move from scaffold/tests/51-itoa.c.
|
|
* lib/tests/posix/90-unsetenv.c: Move from scaffold/tests/94-unsetenv.c.
|
|
* lib/tests/setjmp/80-setjmp.c: Move from scaffold/tests/80-setjmp.c.
|
|
* lib/tests/signal/90-signal.c: Move from scaffold/tests/95-signal.c.
|
|
* lib/tests/stdio/70-printf-hello.c: Move from scaffold/tests/70-printf-hello.c.
|
|
* lib/tests/stdio/70-printf-simple.c: Move from scaffold/tests/70-printf-simple.c.
|
|
* lib/tests/stdio/70-printf.c: Move from scaffold/tests/70-printf.c.
|
|
* lib/tests/stdio/80-sscanf.c: Move from scaffold/tests/87-sscanf.c.
|
|
* lib/tests/stdio/90-fopen-append.c: Move from scaffold/tests/98-fopen.c.
|
|
* lib/tests/stdio/90-fopen.c: Move from scaffold/tests/97-fopen.c.
|
|
* lib/tests/stdio/90-fread-fwrite.c: Move from scaffold/tests/93-fread-fwrite.c.
|
|
* lib/tests/stdio/90-fseek.c: Move from scaffold/tests/91-fseek.c.
|
|
* lib/tests/stdlib/50-getenv.c: Move from lib/tests/stdlib/getenv.c.
|
|
* lib/tests/stdlib/50-malloc.c: Move from lib/tests/stdlib/malloc.c.
|
|
* lib/tests/stdlib/70-strtoull.c: Move from scaffold/tests/7j-strtoull.c.
|
|
* lib/tests/stdlib/80-qsort-dupes.c: Move from scaffold/tests/81-qsort-dupes.c.
|
|
* lib/tests/stdlib/80-qsort.c: Move from scaffold/tests/81-qsort.c.
|
|
* lib/tests/stdlib/90-strtol.c: Move from scaffold/tests/96-strto.c.
|
|
* lib/tests/string/30-strlen.c: Move from scaffold/tests/30-strlen.c.
|
|
* lib/tests/string/50-strcmp.c: Move from scaffold/tests/51-strcmp.c.
|
|
* lib/tests/string/50-strcpy.c: Move from scaffold/tests/53-strcpy.c.
|
|
* lib/tests/string/50-strncmp.c: Move from scaffold/tests/51-strncmp.c.
|
|
* lib/tests/string/70-strchr.c: Move from scaffold/tests/70-strchr.c.
|
|
* lib/tests/string/80-strncpy.c: Move from scaffold/tests/86-strncpy.c.
|
|
* lib/tests/string/80-strrchr.c: Move from scaffold/tests/88-strrchr.c.
|
|
* lib/tests/string/90-snprintf.c: Move from scaffold/tests/9a-snprintf.c.
|
|
* lib/tests/string/90-strpbrk.c: Move from scaffold/tests/90-strpbrk.c.
|
|
* lib/tests/string/90-strspn.c: Move from scaffold/tests/90-strspn.c.
|
|
|
|
2019-02-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Start test suite.
|
|
TODO: move strict libc tests from scaffold/test/* here.
|
|
|
|
* lib/tests/stdlib/getenv.c: New file.
|
|
* lib/tests/stdlib/malloc.c: Move from scaffold.
|
|
* build-aux/bootstrap.sh.in: Built them.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
|
|
2019-02-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Remove stray debugging newline output.
|
|
* mes/module/mes/guile.mes (open-input-file): Move debugging newline
|
|
into debug clause.
|
|
|
|
mescc: Mes C Library: Fix brk return type compare.
|
|
* lib/stdlib/malloc.c (malloc): Fix brk return type compare.
|
|
|
|
core: Rename load_env to read_boot.
|
|
* src/mes.c (read_boot): Rename from load_env; Update users.
|
|
(open_boot): Rename from load_boot; Update users.
|
|
|
|
2019-02-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Initialize g_buf dynamically, add MES_STRING_MAX override.
|
|
* src/mes.c (g_buf, MAX_STRING): Move from strings.c.
|
|
(gc_init_cells): Initialize g_buf dynamically.
|
|
(main): Add environment override MES_MAX_STRING for MAX_STRING.
|
|
* doc/mes.texi (Environment Variables): Document it.
|
|
|
|
2019-02-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes-snarf: rewrite for development-time snarfing
|
|
* build-aux/mes-snarf.scm (%gcc?): Remove.
|
|
(symbol->header): Produce code for src/builtins.h.
|
|
(symbol->source, symbol->names, function->environment): Remove.
|
|
(snarf-symbols): Rewrite, snarf from init_symbol (...).
|
|
(function->source): Produce code to be manually put into
|
|
(main): Remove --mes option.
|
|
|
|
2019-02-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Resurrect POSIX build. Thanks, gio!
|
|
* lib/libmes.c[POSIX]: Define and initialize g_stdin, g_stdout and
|
|
g_stderr that were moved to crt1 for non-POSIX builds.
|
|
* src/mes.c[POSIX]: Remove struct-initialisation exceptions.
|
|
|
|
2019-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove struct definitions for builtins, drop snarfing.
|
|
After making a change to the list of builtin functions, run
|
|
|
|
cat src/*.i
|
|
|
|
and move the into
|
|
|
|
src/mes.c:mes_builtins ()
|
|
|
|
and, or also after changing the list of fixed symbols in src/mes.c:mes_symbols (), do
|
|
|
|
cat src/*.h > src/builtins.h
|
|
|
|
* build-aux/build.sh.in: Remove snarfing.
|
|
* build-aux/bootstrap.sh.in: Likewise.
|
|
* mes/module/mes/display.mes (display):
|
|
* mes/module/mes/type-0.mes (cell:type-alist): Remove <cell:function>.
|
|
(function?, builtin?): Remove.
|
|
* src/builtins.h: New file.
|
|
* src/mes.c (TFUNCTION): Remove.
|
|
(struct function): Remove.
|
|
(apply_builtin): Rewrite from call.
|
|
(mes_builtins): Rewrite.
|
|
(init_builtin, make_builtin_type, make_builtin, builtin_name,
|
|
builtin_arity, builtin, builtin_p, builtin_printer): New function.
|
|
|
|
2019-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove struct definitions for cells, drop snarfing for symbols.
|
|
* src/mes.c (init_symbol): New function.
|
|
(mes_symbols): Use it.
|
|
(scm_nil, ... scm_test): Remove.
|
|
|
|
2018-12-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add take-while.
|
|
* mes/module/srfi/srfi-1.mes (take-while): New function.
|
|
|
|
2018-12-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Enhance POSIX command-line support, e.g. -DFOO=1.
|
|
* module/mescc.scm (unclump-single): New function.
|
|
(main): Use it to support -DFOO=bar, and equivalent.
|
|
|
|
2018-12-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support running out-of-tree.
|
|
* build-aux/pre-inst-env.in (MES_PREFIX): Use absolute name.
|
|
|
|
core: Remove string debugging.
|
|
* src/strings.c (make_bytes, make_string, string_equal_p,
|
|
symbol_to_string, symbol_to_keyword, make_symbol): Remove string
|
|
debugging.
|
|
|
|
core: Remove --dump, --load.
|
|
* mes/module/mes/boot-0.scm.in (tty?): Remove --dump, --load.
|
|
* src/mes.c (bload_env): Remove.
|
|
* src/reader.c (dump): Remove.
|
|
|
|
2018-12-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Post-release update.
|
|
* doc/announce/ANNOUNCE-0.19: Update.
|
|
|
|
Release 0.19.
|
|
* configure (VERSION): Update to 0.19.
|
|
(main): Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
|
|
2018-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* AUTHORS: Update.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* doc/mes.guix: Update.
|
|
* scripts/mescc.in: Update.
|
|
* mes/module/mes/boot-0.scm.in: Update.
|
|
* doc/announce/ANNOUNCE-0.19: New file.
|
|
|
|
2018-12-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: assq-ref, assoc-ref: Support alist == #f.
|
|
* mes/module/mes/scm.mes (assq-ref): Support alist == #f.
|
|
(assoc-ref): Likewise.
|
|
|
|
core: Bump MAX_STRING to 524288
|
|
* src/strings.c (MAX_STRING): Bump to 524288.
|
|
(assert_max_string): New function.
|
|
(list_to_cstring, string_append, read_string): Use it.
|
|
* src/reader.c (reader_read_string): Use it.
|
|
|
|
2018-12-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support Bash: Add getppid.
|
|
* lib/linux/gnu.c (getppid): New function.
|
|
* include/linux/x86/syscall.h (SYS_getppid): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_getppid): New macro.
|
|
|
|
mescc: Support bash: Add sigdelset stub.
|
|
* lib/stub/sigdelset.c (sigdelset): New stub.
|
|
* lib/libc+gnu.c: Include it.
|
|
|
|
2018-12-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: getcwd: Support getcwd (0, 0) GNU extension.
|
|
* lib/linux/libc.c (_getcwd): Rename from getcwd.
|
|
(_getcwd): New function. Support getcwd (0, 0) GNU extension.
|
|
|
|
2018-12-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Replace \r in comments.
|
|
* module/mescc/compile.scm (ast->comment): Replace \r in comments.
|
|
|
|
2018-11-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support building with Gash.
|
|
* build-aux/install.sh: Replace variables with substitution.
|
|
* build-aux/bootstrap.sh: New file.
|
|
* configure: Substitute it.
|
|
* configure.sh: Likewise. Be friendly to Gash.
|
|
* .gitignore: Ignore it.
|
|
|
|
2018-11-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Run without shell.
|
|
* mes/module/mescc.mes: New file.
|
|
* module/mescc.scm: Include it.
|
|
* scripts/mescc.scm.in: New file.
|
|
* scripts/mescc.in: Use it; Make pure shell.
|
|
* configure: Substitute it.
|
|
* configure.sh: Substitute it.
|
|
* build-aux/install.sh.in: Install it.
|
|
|
|
2018-11-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add string-ref.
|
|
* src/strings.c (string_ref): New function.
|
|
* mes/module/mes/scm.mes (string-ref): Remove.
|
|
|
|
core: Add string-length.
|
|
* src/strings.c (string_length): New function.
|
|
* mes/module/mes/scm.mes (string-length): Remove.
|
|
|
|
core: Add string-append.
|
|
* src/strings.c (string_append): New function.
|
|
* mes/module/mes/boot-0.scm.in (string-append): Remove.
|
|
* mes/module/mes/boot-03.scm (string-append): Remove.
|
|
* scaffold/boot/50-make-string.scm (string-append): Remove.
|
|
* scaffold/boot/50-string-append.scm (string-append): Remove.
|
|
* scaffold/boot/50-string-join.scm (string-append): Remove.
|
|
* scaffold/boot/51-module.scm (string-append): Remove.
|
|
* scaffold/boot/52-define-module.scm (string-append): Remove.
|
|
* tests/macro.test (string-append): Remove.
|
|
* scaffold/boot/17-string-append.scm: Move from 50-string-append.scm.
|
|
|
|
2018-11-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: String as array of bytes.
|
|
* src/strings.c: New file.
|
|
* src/mes.c: Use it. Update users.
|
|
|
|
2018-11-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Move mecmp to libc.
|
|
* lib/libc.c: Include mecmp.c.
|
|
* lib/libc+tcc.c: Remove mecmp.c include.
|
|
|
|
2018-11-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Move memchr to libc.
|
|
* lib/libc.c: Include memchr.c.
|
|
|
|
test: Use write instead of display.
|
|
* module/mes/test.scm (seq?, sequal?, seq2?, sless?, sequal2?): Use
|
|
write for expected, actual.
|
|
|
|
2018-11-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: struct_set_: Oops typo.
|
|
* src/struct.c (struct_set_x_): Oops, remove indirection.
|
|
|
|
mes: Remove copy of make-string.
|
|
* mes/module/mes/guile.mes (make-string): Remove copy.
|
|
|
|
mescc: Compile fixes.
|
|
* include/libmes-mini.h[WITH_GLIBC]: Do not declare strlen, write, types.
|
|
|
|
2018-11-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Oops, %moduledir debug info.
|
|
* mes/module/mes/boot-0.scm.in: Oops, %moduledir debug info.
|
|
|
|
build: configure: Support Mes.
|
|
* configure: Support Mes.
|
|
|
|
mes; Add read-line.
|
|
* mes/module/mes/guile.mes (read-line): New function.
|
|
|
|
mes: dirname: Fix for absolute file names.
|
|
* mes/module/mes/guile.mes (dirname): Fix absolute files.
|
|
|
|
mes: Add file-exists?.
|
|
* mes/module/mes/guile.mes (file-exists?): New function.
|
|
|
|
mes: Add with-error-to-file.
|
|
* mes/module/mes/guile.mes (with-error-to-file): New function.
|
|
|
|
mes: Add string-downcase, string-upcase, string-tokenize.
|
|
* mes/module/srfi/srfi-13.mes (string-downcase, string-upcase,
|
|
string-tokenize): New function.
|
|
|
|
mes: Add char-downcase, char-upcase.
|
|
* mes/module/srfi/srfi-14.mes (char-downcase, char-upcase): New
|
|
function.
|
|
|
|
mes: Add char-set:digit, char-set:lower-case, char-set:upper-case.
|
|
* mes/module/srfi/srfi-14.mes (char-set:digit, char-set:lower-case,
|
|
char-set:upper-case): New variable.
|
|
|
|
mes: Add char-set-adjoin, char-set-complement.
|
|
* mes/module/srfi/srfi-14.mes (char-set-adjoin, char-set-complement):
|
|
New function.
|
|
|
|
mes: system*: Support redirection.
|
|
* mes/module/mes/posix.mes (system*): Support redirection.
|
|
|
|
core: read_string: Allow for gc.
|
|
* src/posix.c (read_char): Add optional port parameter.
|
|
(read_string): Allow for gc.
|
|
|
|
core: Add delete_file.
|
|
* src/posix.c (delete_file): New function.
|
|
|
|
core: Add dup, dup2.
|
|
* src/posix.c (dup_, dup2_): New function.
|
|
|
|
core: Add getcwd.
|
|
* src/posix.c (getcwd_): New function.
|
|
|
|
core: Support redirection of stderr.
|
|
* include/libmes-mini.h (g_stderr): New global.
|
|
* lib/mes/eputc.c (eputc): Use it.
|
|
* lib/mes/eputs.c (eputs): Likewise.
|
|
* lib/mes/oputc.c (oputc): Likewise.
|
|
* lib/mes/oputs.c (oputs): Likewise.
|
|
* src/lib.c (display_error_, write_error_): Likewise.
|
|
* src/posix.c (write_byte): Likewise.
|
|
* src/mes.c (mes_builtins): Likewise.
|
|
(main): Iniitalize g_stderr.
|
|
* src/posix.c (current_error_port, set_current_error_port): New
|
|
function.
|
|
* mes/module/mes/boot-0.scm.in (current-output-port,
|
|
current-error-port): Remove.
|
|
|
|
core: Assert g_free in alloc.
|
|
* src/mes.c (alloc): Assert g_free.
|
|
|
|
mescc: unlink: Move to libc.
|
|
* lib/linux/libc.c (unlink): New function.
|
|
* lib/linux/tcc.c (unlink): Remove.
|
|
|
|
mescc: dup, dup2: Move to libc.
|
|
* lib/linux/libc.c (dup, dup2): New function.
|
|
* lib/linux/gnu.c (dup, dup2): Remove.
|
|
|
|
mescc: getcwd: Move to libc.
|
|
* lib/linux/libc.c (getcwd): New function.
|
|
* lib/linux/tcc.c (getcwd): Remove.
|
|
|
|
2018-11-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support GNU make with POSIX.
|
|
* include/linux/x86/syscall.h (SYS_sigprocmask): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_rt_sigprocmask): New macro.
|
|
* include/signal.h (SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK): New macro.
|
|
(sigprocmask): Declare.
|
|
* lib/linux/gnu.c (sigprocmask): New function.
|
|
|
|
2018-11-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support GNU Bash.
|
|
* include/errno.h (EACCES, ENOSPC, ESPIPE): New macro.
|
|
* include/linux/x86/syscall.h (SYS_setuid, SYS_geteuid, SYS_getegid,
|
|
SYS_setgid): New macro.
|
|
* include/linux/x86_64/syscall.h: Likewise.
|
|
* include/stdint.h (LLONG_MIN, LLONG_MAX, SIZE_MAX): New macro.
|
|
* include/sys/stat.h (S_ISUID, S_ISGID, S_IXGRP, S_IXOTH, S_IRGRP,
|
|
S_IROTH, S_IWGRP, S_IWOTH, S_IRWXG, S_IRWXO): New macro.
|
|
* include/termio.h: New file.
|
|
* include/unistd.h (_POSIX_VERSION): New macro.
|
|
* lib/linux/gnu.c (geteuid, getegid, setuid, setgid): New function.
|
|
* lib/string/memchr.c: New file.
|
|
* lib/stub/getpwuid.c: New file.
|
|
* lib/stub/rand.c: New file.
|
|
* lib/stub/ttyname.c: New file.
|
|
* include/string.h (memchr): Declare.
|
|
* include/unistd.h (geteuid, getegid, setuid, setgid): Declare.
|
|
|
|
2018-11-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Simplify: cater for one compiler at a time.
|
|
* build-aux/build-cc.sh: Remove.
|
|
* build-aux/build-cc32.sh: Remove.
|
|
* build-aux/build-cc64.sh: Remove.
|
|
* build-aux/build-x86_64-mes.sh: Remove.
|
|
* build-aux/cc-mes.sh: Remove.
|
|
* build-aux/cc-x86_64-mes.sh: Remove.
|
|
* build-aux/cc32-mes.sh: Remove.
|
|
* build-aux/cc64-mes.sh: Remove.
|
|
* build-aux/test64.sh: Remove.
|
|
* build-aux/bootstrap-mes.sh: New file.
|
|
* build-aux/config.make.in: New file.
|
|
* build-aux/config.status.in: New file.
|
|
* build-aux/test-cc.sh: New file.
|
|
* .gitignore: Update.
|
|
* build-aux/GNUmakefile.in: Update.
|
|
* build-aux/build-guile.sh: Update.
|
|
* build-aux/build-mes.sh: Update.
|
|
* build-aux/build.sh.in: Update.
|
|
* build-aux/cc.sh: Update.
|
|
* build-aux/check-boot.sh: Update.
|
|
* build-aux/check-mes.sh: Update.
|
|
* build-aux/check-mescc.sh: Update.
|
|
* build-aux/check-tcc.sh: Update.
|
|
* build-aux/check.sh.in: Update.
|
|
* build-aux/config.sh: Update.
|
|
* build-aux/export.make: Update.
|
|
* build-aux/install.sh.in: Update.
|
|
* build-aux/pre-inst-env.in: Update.
|
|
* build-aux/test.sh: Update.
|
|
* build-aux/uninstall.sh.in: Update.
|
|
* configure: Update.
|
|
* configure.sh: Update.
|
|
* module/mescc/i386/as.scm: Update.
|
|
* module/mescc/preprocess.scm: Update.
|
|
* module/mescc/x86_64/as.scm: Update.
|
|
* scripts/mescc.in: Update.
|
|
* tests/psyntax.test: Update.
|
|
|
|
2018-11-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add missing define.
|
|
* lib/x86-mes/x86.M1: Add missing define.
|
|
|
|
2018-11-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Exit if library cannot be found.
|
|
* module/mescc/mescc.scm (arch-find): Exit upon failure.
|
|
|
|
mescc: Accept -O, --std, -x.
|
|
* scripts/mescc.in (parse-opts): Accept -O, --std, -x.
|
|
|
|
mescc: Support -dumpmachine.
|
|
* scripts/mescc.in (parse-opts): Support -dumpmachine.
|
|
|
|
2018-10-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: vsnprintf: Compliant implementation.
|
|
* lib/stdio/vsnprintf.c (vsnprintf): New, complient implementation,
|
|
replacing vsnprint.
|
|
* lib/stdio/vsprintf.c (vsnprint): Forward to vsnprint.
|
|
* lib/stdio/snprintf.c (snprintf): Likewise.
|
|
* scaffold/tests/9a-snprintf.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-10-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Add performance test.
|
|
* module/mes/test.scm (pass-if-timeout): New macro.
|
|
* tests/perform.test: New test.
|
|
* build-aux/check-mes.sh (tests): Run it.
|
|
|
|
mes: Add ceil, floor, round, inexact->exact.
|
|
* mes/module/mes/scm.mes (ceil, floor, round, inexact->exact,
|
|
exact->inexact): New function.
|
|
|
|
mes: read-string: Take optional port argument.
|
|
* src/posix.c (read_string): Take optional port argument.
|
|
* mes/module/mes/guile.mes (read-string): Remove.
|
|
|
|
core: eval_apply: Order gotos according to frequency.
|
|
* src/mes.c (eval_apply): Order gotos according to frequency.
|
|
|
|
Revert "core: eval_apply profile."
|
|
This reverts commit d61e6be0b18459a8e3c262eab448b428dc81937a.
|
|
|
|
core: eval_apply profile.
|
|
* src/mes.c: Poor man's eval_apply profile.
|
|
|
|
2018-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Fix displaying of closure.
|
|
* src/lib.c (display_helper): Fix displaying of closure.
|
|
|
|
mes: Print backtrace upon exception.
|
|
* mes/module/mes/catch.mes (display-backtrace,
|
|
frame-function): New function.
|
|
(%eh): Use them.
|
|
|
|
core: Set procedure in stack frame.
|
|
* src/mes.c (eval_apply): Set procedure in stack frame.
|
|
|
|
core: Implement stack and frame.
|
|
* src/lib.c (frame_printer make_frame_type, make_frame,
|
|
make_stack_type, make_stack, stack_length, stack_ref): New function.
|
|
|
|
core: Support time functions.
|
|
* lib/linux/clock_gettime.c: New file, move from gnu.c.
|
|
* lib/linux/gettimeofday.c: New file, move from tcc.c.
|
|
* lib/linux/time.c: New file, move from tcc.c.
|
|
* lib/linux/libc.c: Include them.
|
|
* lib/linux/gnu.c (clock_gettime): Remove.
|
|
* lib/linux/tcc.c (time, gettimeofday): Remove.
|
|
* include/time.h (CLOCK_PROCESS_CPUTIME_ID): New define.
|
|
* src/posix.c (init_time, current_time, gettimeofday_,
|
|
seconds_and_nanoseconds_to_long, get_internal_run_time): New function.
|
|
* src/mes.c (scm_symbol_internal_time_units_per_second): New symbol.
|
|
(main): Call init_time.
|
|
|
|
2018-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Use hash table for symbols.
|
|
* src/mes.c (mes_symbols): Use hash table for symbols. Update users.
|
|
|
|
2018-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Use assert before failure exit.
|
|
* src/mes.c (error): Use assert before failure exit. Helps debugging.
|
|
|
|
2018-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add hashq_get_handle, hash, hash_ref, hash_set_x.
|
|
* src/mes.c (scm_symbol_hashq_table, scm_symbol_record_type,
|
|
scm_symbol_module, scm_symbol_buckets, scm_symbol_size): New symbols.
|
|
Update users.
|
|
* src/hash.c (hash_list_of_char): Rename from hashq_. Respect size,
|
|
update callers.
|
|
(hashq_, hash_ hash, hashq_get_handle, hash_ref, hash_set_x_,
|
|
hash_set_x): New function.
|
|
(hashq_ref): Do not return handle. Update callers.
|
|
|
|
mes: Move pair? to core.
|
|
* src/lib.c (pair_p): New function. Gains 8% performance on MesCC.
|
|
|
|
2018-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Move assoc to core.
|
|
* mes/mes.c (assoc_string, assoc): New function.
|
|
* mes/module/mes/scm.mes (assoc): Remove. Gains 12% performance for
|
|
MesCC.
|
|
|
|
2018-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "core: Add gc-debug for stack array."
|
|
This reverts commit f35084d1dbea889d107824e7596da1701c6b90ad.
|
|
|
|
2018-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add gc-debug for stack array.
|
|
* src/gc.c (gc_debug): New function.
|
|
|
|
scaffold: Resurrect mini-mes.
|
|
* src/mini-mes.c: Resurrect.
|
|
|
|
2017-12-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Use array-based stack.
|
|
* src/mes.c (STACK_SIZE)[MES_ARRAY_STACK]: New variable.
|
|
(g_stack_array): New variable.
|
|
(g_stack): Change type to SCM*.
|
|
(gc_push_frame)[MES_ARRAY_STACK]: Use g_stack_array, g_stack.
|
|
(gc_peek_frame): Likewise.
|
|
(gc_pop_frame): Likewise.
|
|
* src/gc.c (gc_check): Likewise.
|
|
(gc): Likewise.
|
|
|
|
2018-10-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Resurrect Guile-1.8 support.
|
|
* module/mes/mes-0.scm: Resurrect Guile-1.8 support.
|
|
|
|
2018-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: expand_variable: Remove weird exceptions: begin, if.
|
|
* src/mes.c (expand_variable_): Remove weird exceptions: begin, if.
|
|
|
|
2018-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Switch to srfi-9 based on structs.
|
|
* mes/module/srfi/srfi-9.mes: Swap symlink to srfi-9-struct.mes.
|
|
* mes/module/srfi/srfi-9/gnu.mes: Swap symlink to gnu-struct.mes.
|
|
* src/module.c (make_module_type): Update to match srfi-9-struct
|
|
records. Update users.
|
|
* src/hash.c (make_hashq_type): Likewise.
|
|
|
|
mes: srfi-9: Add implementation based on struct.
|
|
* mes/module/srfi/srfi-9-struct.mes: New file.
|
|
* mes/module/srfi/srfi-9-vector.mes: Rename from srfi-9.mes
|
|
* mes/module/srfi/srfi-9.mes: Symlink to srfi-9-vector.mes.
|
|
* mes/module/srfi/srfi-9/gnu-struct.mes: Add srfi-9-struct
|
|
implementation.
|
|
* mes/module/srfi/srfi-9/gnu-vector.mes: Rename from gnu.mes.
|
|
* mes/module/srfi/srfi-9/gnu.mes: Symlink to gnu-vector.mes.
|
|
|
|
core: hashq-table: Refactor to be a record-like struct.
|
|
* src/hash.c (hash_table_printer): New function.
|
|
(make_hashq_type): New function.
|
|
* src/module.c (module_printer): Use it.
|
|
(make_module_type): New function.
|
|
(make_initial_module): Use them.
|
|
|
|
mescc: Mes C Library: oputs: New function.
|
|
* lib/mes/oputc.c: New file.
|
|
* lib/libmes.c: Include it.
|
|
* include/libmes.h: Declare it.
|
|
|
|
core: Use hashq-table for macros.
|
|
* src/mes.c (lookup_macro_): Remove.
|
|
(macro_ref, get_macro, macro_set_x): New function. Update callers.
|
|
|
|
core: Add hashq-table type.
|
|
src/hash.c: New file.
|
|
src/module.c (char_hash, module_hash): Remove.
|
|
* src/module.c (make_initial_module): Use hash primitives.
|
|
(module_define_x): Likewise.
|
|
(module_variable): Likewise.
|
|
* build-aux/snarf.sh: Snarf it.
|
|
* src/mes.c: Include it.
|
|
|
|
core: Add boot-module.
|
|
* src/mes.c (scm_symbol_boot_module): New symbol.
|
|
(eval_apply): Handle it.
|
|
(mes_symbols): Initialize it.
|
|
|
|
2018-10-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add module-define!
|
|
* src/module.c (module_define_x, module_printer): New function.
|
|
(make_initial_module): Use them.
|
|
* tests/srfi-0.test: Test it.
|
|
* src/mes.c (display_m0): Remove. Update callers.
|
|
* mes/module/mes/fluids.mes (make-fluid): Rewrite.
|
|
* tests/macro.test: Test it.
|
|
* mes/module/mes/boot-0.scm.in (module-define!): Remove.
|
|
* mes/module/mes/boot-02.scm: Likewise.
|
|
* module/mes/misc.scm (pk, warn): New function.
|
|
* build-aux/check-mes.sh (tests): Run tests.
|
|
|
|
core: Add module indirection for variable lookup.
|
|
* src/module.c (module_ref, module_variable): New function.
|
|
* src/mes.c: Thoughout: Use them.
|
|
(assq_ref_env): Remove.
|
|
* mes/module/mes/boot-0.scm.in (defined?): Use module-variable.
|
|
* mes/module/mes/boot-00.scm (defined?): Likewise.
|
|
* mes/module/mes/boot-01.scm (defined?): Likewise.
|
|
* mes/module/mes/boot-02.scm (defined?): Likewise.
|
|
* scaffold/boot/53-closure-display.scm: Likewise.
|
|
|
|
core: Add module type.
|
|
* src/module.c: New file.
|
|
* build-aux/snarf.sh: Snarf it.
|
|
* src/mes.c: Include it.
|
|
|
|
core: Add cstring_to_symbol.
|
|
* src/mes.c (make_symbol): Rename from lookup_symbol_. Update
|
|
callers.
|
|
(cstring_to_symbol): New function.
|
|
* src/reader.c (reader_read_identifier_or_number): Use it.
|
|
|
|
2018-10-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add struct type.
|
|
* src/struct.c: New file.
|
|
* build-aux/snarf.sh: Snarf it.
|
|
* src/mes.c: Include it.
|
|
|
|
2018-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: factor-out snarfing.
|
|
* build-aux/snarf.sh: New file.
|
|
* build-aux/build-cc.sh: Use it.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-cc64.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/build-x86_64-mes.sh: Likewise.
|
|
* build-aux/snarf.sh: Likewise.
|
|
|
|
core: core:cdr: Support port type.
|
|
* src/mes.c (cdr_): Support port type.
|
|
* mes/module/mes/display.mes (display): Add space between fields.
|
|
|
|
mes: with-fluids: Fix reset.
|
|
* mes/module/mes/fluids.mes (with-fluids): Fix reset.
|
|
* tests/fluids.test (report): Remove Mes failure expectation.
|
|
|
|
2018-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Recognize U integer suffix.
|
|
* module/mescc/compile.scm (cstring->int): Recognize U integer
|
|
suffix. Thanks, Peter de Wachter!
|
|
|
|
2018-10-16 Peter De Wachter <pdewacht@gmail.com>
|
|
|
|
mescc: Add INTn_MIN/MAX defines to stdint.h.
|
|
* include/stdint.h: Add INTn_MIN/MAX defines. Move integere size
|
|
defines from limits.h
|
|
* include/limits.h: Include it.
|
|
|
|
2018-10-16 Peter De Wachter <pdewacht@gmail.com>
|
|
|
|
mescc: Allow superfluous parentheses in function declarations.
|
|
E.g.: int (f)();
|
|
This is obscure but valid C. It occurs in the csmith headers (thanks
|
|
to macro shenanigans).
|
|
|
|
* module/mescc/compile.scm (fctn-defn:get-name,
|
|
fctn-defn:get-statement): Allow superfluous parentheses in function declarations.
|
|
|
|
2018-10-16 Peter De Wachter <pdewacht@gmail.com>
|
|
|
|
mescc: Implement unary plus operator.
|
|
* module/mescc/compile.scm (ast->type, expr->register,
|
|
try-expr->number):): Implement unary plus operator.
|
|
|
|
mescc: Add missing assembly defines.
|
|
* lib/x86-mes/x86.M1: Add missing assembly defines.
|
|
* lib/x86_64-mes/x86_64.M1: Likewise.
|
|
|
|
mescc: Delete duplicate assembly defines.
|
|
* lib/x86-mes/x86.M1: Delete duplicate assembly defines.
|
|
* lib/x86_64-mes/x86_64.M1: Likewise.
|
|
|
|
2018-10-16 Peter De Wachter <pdewacht@gmail.com>
|
|
|
|
mescc: Exit with non-zero exit code when subprocess fails.
|
|
system* returns the result of waitpid. So, suppose that a subprocess
|
|
fails with exit code 1. Then the waitpid return value will be 256.
|
|
And exit(256) is equivalent to exit(0).
|
|
|
|
Modified-by: Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
* mes/module/mes/posix.mes (status:exit-val): New function.
|
|
* module/mescc/mescc.scm (assert-system*): Use it.
|
|
|
|
2018-10-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Oops typo.
|
|
* module/mescc/M1.scm (hex2:immediate8): Typo.
|
|
|
|
2018-12-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Support \xNN in reader. Fixes tcc-boot running on Mes.
|
|
* src/reader.c (reader_read_string): Support \xNN. Fixes Guix
|
|
bootstrap chain; i.e., compilation of gcc-2.95.3 using tcc-boot.
|
|
* tests/base.test ("reader: \\x08"): Test it.
|
|
* scaffold/tests/17-compare-char.c: Likewise, for mescc.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-11-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: configure: Make dot optional.
|
|
* configure: Make dot optional.
|
|
|
|
2018-10-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Oops, remove stray lib/linux/x86_64-mes/crt1.
|
|
* lib/linux/x86_64-mes/crt1: Remove.
|
|
|
|
2018-10-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: x86_64 bootstrap build fixes and workaround.
|
|
* configure: Substitute @arch@ (WAS: ARCH). Update users.
|
|
* configure.sh: Substitute @arch@.
|
|
* build-aux/build-mes.sh: Use $GUILE for x86_64 build.
|
|
* build-aux/install.sh.in: Install mes.S, mes.x86_64-mes-S too.
|
|
Prune *.E, *.out.
|
|
|
|
2018-10-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
|
|
mescc: Oops, delete wrong line of assembly.
|
|
* lib/x86-mes/x86.M1 (movzbl_%bx,%ebx): Delete wrong line. Thanks, pdewacht!
|
|
|
|
2018-10-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
admin: Release update.
|
|
* doc/announce/ANNOUNCE-0.18: New file.
|
|
* guix/git/mes.scm (mes): Update hash.
|
|
|
|
2018-10-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.18.
|
|
* configure (VERSION): Update to 0.18.
|
|
(main): Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
* guix/mescc-tools-boot.patch: New file.
|
|
|
|
2018-09-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/mes.texi (Submitting Patches): Fix misquoting, misattribution.
|
|
|
|
2018-10-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Another attempt at divide.
|
|
* module/mescc/i386/as.scm (i386:r0/r1): Never be signed. Use div for unsigned.
|
|
(i386:r0%r1): Likewise.
|
|
* module/mescc/x86_64/as.scm (x86_64:r0/r1): Likewise.
|
|
(x86_64:r0%r1): Likewise.
|
|
* lib/x86-mes/x86.M1: Add div.
|
|
* lib/x86_64-mes/x86_64.M1: Likewise.
|
|
|
|
tests: Expect srfi-13 failure, MesCC more resembles Gcc.
|
|
* tests/srfi-13.test (report): Expect INT-MIN failure for x86.
|
|
|
|
2018-10-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: reader: Support 64 bit.
|
|
* src/reader.c (reader_read_identifier_or_number): Support 64 bit.
|
|
(reader_read_binary): Likewise.
|
|
(reader_read_octal): Likewise.
|
|
(reader_read_hex): Likewise.
|
|
|
|
mescc: Mes C Library: Fix execve on x86_64.
|
|
* include/linux/x86_64/syscall.h (SYS_execve): Typo. Fixes execve on
|
|
x86_64.
|
|
|
|
build: Support make seed for x86_64.
|
|
* build-aux/GNUmakefile.in (seed): Support make seed for x86_64.
|
|
* build-aux/build-mes.sh[SEED]: Also build src/mes.S.
|
|
* build-aux/build-x86_64-mes.sh[SEED]: Also build src/mes.x86_64-mes.S.
|
|
|
|
mes: Support fold-right 3.
|
|
* mes/module/srfi/srfi-1.mes (fold-right): Support fold-right 3.
|
|
* tests/srfi-1.test ("fold-right-3"): Test it.
|
|
|
|
mescc: Nyacc comment escapes.
|
|
* module/mescc/compile.scm (ast->comment): Nyacc comment escapes.
|
|
|
|
mescc: Fix clobbering of struct by value assign.
|
|
* module/mescc/x86_64/as.scm (long-r0->r1-mem): New instruction.
|
|
* module/mescc/i386/as.scm: Likewise.
|
|
* lib/x86_64-mes/x86_64.M1: Support it.
|
|
* module/mescc/compile.scm (r0->r1-mem*n-): Fix clobbering.
|
|
|
|
core: Add vector test.
|
|
* scaffold/boot/11-vector.scm: New test.
|
|
* build-aux/check-boot.sh: Run it.
|
|
|
|
mescc: Fix obnoxious assignment ERROR message.
|
|
* module/mescc/compile.scm (expression->register): Fix assignment
|
|
ERROR message.
|
|
|
|
core: Avoid 64bit zero divide.
|
|
* src/math.c (divide): Avoid (64bit) 0 divide.
|
|
(modulo): Likewise.
|
|
|
|
mescc: Support negative divide.
|
|
* module/mescc/i386/as.scm (i386:r0/r1, i386:r0%r1): Support
|
|
negative divide.
|
|
* module/mescc/x86_64/as.scm (x86_64:r0/r1, x86_64:r0%r1): Likewise.
|
|
* lib/x86-mes/x86.M1: Likewise.
|
|
* lib/x86_64-mes/x86_64.M1: Likewise.
|
|
* scaffold/tests/a0-math-divide-signed-negative.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
mescc: Support --align, off by default.
|
|
* scripts/mescc.in (parse-opts): Add --align.
|
|
* module/mescc/mescc.scm (mescc:compile): Support --align, off by
|
|
default.
|
|
* module/mescc/M1.scm (infos->M1): Add #:align parameter.
|
|
(M1:merge-infos): Likewise. Keep types.
|
|
(info->M1): Likewise. Make alignment switchable.
|
|
* module/mescc/compile.scm (r->ident): Do not clobber.
|
|
(ident-add): Likewise.
|
|
(clean-info): Keep types.
|
|
* module/mescc/i386/as.scm (i386:r->byte-label): New instruction.
|
|
* lib/x86-mes/x86.M1: Add instructions.
|
|
* lib/x86_64-mes/x86_64.M1: Add instructions.
|
|
* module/mescc/x86_64/as.scm (x86_64:r->byte-label,
|
|
x86_64:r->word-label, x86_64:r->long-label): New instruction.
|
|
|
|
Revert "mescc: Make globals at least reg-size."
|
|
This reverts commit 30544316c35ed4a2472f2029beb27e007d913792.
|
|
|
|
mescc: Make globals at least reg-size.
|
|
* module/mescc/compile.scm (global->info): Make globals at least reg-size.
|
|
|
|
mescc: Support 64-bit immediates.
|
|
* module/mescc/M1.scm (hex2:address8, hex2:immediate8): New function.
|
|
(info->M1): Support 64-bit.
|
|
* module/mescc/compile.scm (convert-r0): FIXME!
|
|
* module/mescc/x86_64/as.scm (x86_64:value->r, x86_64:r->local,
|
|
x86_64:label->arg, x86_64:label->r, x86_64:r+value,
|
|
x86_64:r-cmp-value, x86_64:r-long-mem-add, x86_64:r-and): Support
|
|
64-bit immediates.
|
|
* lib/x86_64-mes/x86_64.M1: Likewise.
|
|
* scaffold/tests/17-compare-unsigned-char-le.c: Test it.
|
|
* scaffold/tests/17-compare-unsigned-short-le.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run them.
|
|
|
|
core: Use proper name for %compiler.
|
|
* src/mes.c (mes_symbols, bload_env): : Use proper name for %compiler.
|
|
|
|
core: Resurrect MES_MINI for non-POSIX.
|
|
src/mes.c[MES_MINI,!POSIX]: Resurrect.
|
|
|
|
mescc: Mes C Library: Add ultoa.
|
|
* lib/mes/ultoa.c: New file.
|
|
* lib/libmes.c: Include it.
|
|
* include/libmes.h: Declare ultoa.
|
|
|
|
mescc: Mes C Library: Add ltoa.
|
|
* lib/mes/ltoa.c: New file.
|
|
* lib/libmes.c: Include it.
|
|
* include/libmes.h: Declare ltoa.
|
|
|
|
mescc: Fix truncation of short.
|
|
* module/mescc/compile.scm (convert-r0): Typo. Fixes truncation of
|
|
short. Thanks, pdewacht!
|
|
* scaffold/tests/a0-call-trunc-char.c: New file.
|
|
* scaffold/tests/a0-call-trunc-short.c: New file.
|
|
* build-aux/check-mescc.sh: Add them.
|
|
|
|
build: Split-off x86_mes-gcc build.
|
|
* build-aux/build-cc64.sh: New file.
|
|
* build-aux/build.sh.in[CC64]: Invoke it.
|
|
* build-aux/build-cc.sh: Remove x86_64-mes-gcc build.
|
|
* build-aux/GNUmakefile.in (x86_64-mes-gcc): New target.
|
|
* build-aux/build-x86_64-mes.sh: Build all scafffold files.
|
|
|
|
2018-10-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Oops, use MES_LIBS.
|
|
* build-aux/build-x86_64-mes.sh: Use MES_LIBS instead of the unused
|
|
MES64_LIBS. Fixes build. Thanks, pdewacht!
|
|
|
|
build: remove bashism.
|
|
* build-aux/trace.sh (trace): Remove bashism. Thanks pdewacht!
|
|
|
|
2018-10-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Support x86_64.
|
|
* src/lib.c: Support x86_64.
|
|
* src/math.c: Likewise.
|
|
* src/mes.c: Likewise.
|
|
* src/reader.c: Likewise.
|
|
* src/vector.c Likewise.
|
|
|
|
build: Oops, set VERSION.
|
|
* build-aux/install.sh.in (VERSION): New substituted variable.
|
|
|
|
2018-09-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resurrect make seed.
|
|
* build-aux/GNUmakefile.in (seed): Resurrect.
|
|
* build-aux/build-x86_64-mes.sh: Build from seed.
|
|
|
|
2018-08-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: x86_64 support: Refactor to abstracted assembly, add x86_64.
|
|
* module/mescc/as.scm: Support abstracted assembly.
|
|
* module/mescc/i386/as.scm: Rewrite.
|
|
* module/mescc/x86_64/as.scm: Implement.
|
|
* module/mescc/compile.scm: Refactor to abstracted assembly.
|
|
* module/mescc/M1.scm: Update for partial 64 bit support.
|
|
* module/mescc/bytevectors.scm (bytevector-u64-native-set!): New
|
|
procedure.
|
|
* module/mescc/i386/info.scm (i386:type-alist): Use 4 byte type length
|
|
also for faking double, long long, long double.
|
|
* module/mescc/info.scm:modified:
|
|
* module/mescc/x86_64/info.scm (x86_64:registers): New variable.
|
|
* lib/x86-mes/x86.M1: Update for new register scheme.
|
|
* lib/x86_64-mes/x86_64.M1: Implement.
|
|
* lib/x86-mes/setjmp.c: Implement.
|
|
* lib/x86_64-mes-gcc/setjmp.c: Implement.
|
|
* build-aux/build-cc.sh: Update for x86_64.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/build-x86_64-mes.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/test64.sh: Likewise.
|
|
* include/libmes.h: Likewise.
|
|
* include/setjmp.h: Likewise.
|
|
* include/signal.h: Likewise.
|
|
* include/stdarg.h: Likewise.
|
|
* include/sys/stat.h: Likewise.
|
|
* include/sys/types.h: Likewise.
|
|
* include/sys/wait.h: Likewise.
|
|
* include/unistd.h: Likewise.
|
|
* lib/libc+gnu.c: Likewise.
|
|
* lib/libc+tcc.c: Likewise.
|
|
* lib/linux/gnu.c: Likewise.
|
|
* lib/linux/libc-mini.c: Likewise.
|
|
* lib/linux/libc.c: Likewise.
|
|
* lib/linux/tcc.c: Likewise.
|
|
* lib/linux/x86_64-mes-gcc/mes.c: Likewise.
|
|
* lib/linux/x86_64-mes/crt1.c: Likewise.
|
|
* lib/mes/abtol.c: Likewise.
|
|
* lib/posix/mktemp.c: Likewise.
|
|
* lib/posix/wait.c: Likewise.
|
|
* lib/stdio/fopen.c: Likewise.
|
|
* lib/stdio/fputc.c: Likewise.
|
|
* lib/stdio/fseek.c: Likewise.
|
|
* lib/stdio/printf.c: Likewise.
|
|
* lib/stdio/sprintf.c: Likewise.
|
|
* lib/stdio/vfprintf.c: Likewise.
|
|
* lib/stdio/vsprintf.c: Likewise.
|
|
* lib/stdio/vsscanf.c: Likewise.
|
|
* lib/stdlib/qsort.c: Likewise.
|
|
* lib/x86-mes-gcc/setjmp.c: Likewise.
|
|
* scaffold/tests/11-if-1.c: Likewise.
|
|
* scaffold/tests/15-if-!f.c: Likewise.
|
|
* scaffold/tests/16-if-t.c: Likewise.
|
|
* scaffold/tests/21-char[].c: Likewise.
|
|
* scaffold/tests/23-pointer.c: Likewise.
|
|
* scaffold/tests/32-compare.c: Likewise.
|
|
* scaffold/tests/33-and-or.c: Likewise.
|
|
* scaffold/tests/34-pre-post.c: Likewise.
|
|
* scaffold/tests/35-compare-char.c: Likewise.
|
|
* scaffold/tests/36-compare-arithmetic.c: Likewise.
|
|
* scaffold/tests/37-compare-assign.c: Likewise.
|
|
* scaffold/tests/38-compare-call.c: Likewise.
|
|
* scaffold/tests/40-if-else.c: Likewise.
|
|
* scaffold/tests/41-?.c: Likewise.
|
|
* scaffold/tests/42-goto-label.c: Likewise.
|
|
* scaffold/tests/43-for-do-while.c: Likewise.
|
|
* scaffold/tests/44-switch.c: Likewise.
|
|
* scaffold/tests/45-void-call.c: Likewise.
|
|
* scaffold/tests/46-function-static.c: Likewise.
|
|
* scaffold/tests/51-strcmp.c: Likewise.
|
|
* scaffold/tests/51-strncmp.c: Likewise.
|
|
* scaffold/tests/53-strcpy.c: Likewise.
|
|
* scaffold/tests/54-argv.c: Likewise.
|
|
* scaffold/tests/60-math.c: Likewise.
|
|
* scaffold/tests/61-array.c: Likewise.
|
|
* scaffold/tests/63-struct-cell.c: Likewise.
|
|
* scaffold/tests/64-make-cell.c: Likewise.
|
|
* scaffold/tests/65-read.c: Likewise.
|
|
* scaffold/tests/70-printf.c: Likewise.
|
|
* scaffold/tests/71-struct-array.c: Likewise.
|
|
* scaffold/tests/72-typedef-struct-def.c: Likewise.
|
|
* scaffold/tests/74-multi-line-string.c: Likewise.
|
|
* scaffold/tests/76-pointer-arithmetic.c: Likewise.
|
|
* scaffold/tests/79-int-array.c: Likewise.
|
|
* scaffold/tests/7a-struct-char-array.c: Likewise.
|
|
* scaffold/tests/7b-struct-int-array.c: Likewise.
|
|
* scaffold/tests/7i-struct-struct.c: Likewise.
|
|
* scaffold/tests/7k-for-each-elem.c: Likewise.
|
|
* scaffold/tests/7l-struct-any-size-array.c: Likewise.
|
|
* scaffold/tests/7o-struct-pre-post.c: Likewise.
|
|
* scaffold/tests/7q-bit-field.c: Likewise.
|
|
* scaffold/tests/7s-struct-short.c: Likewise.
|
|
* scaffold/tests/80-setjmp.c: Likewise.
|
|
* scaffold/tests/81-qsort.c: Likewise.
|
|
* scaffold/tests/85-sizeof.c: Likewise.
|
|
* scaffold/tests/87-sscanf.c: Likewise.
|
|
* scaffold/tests/90-strpbrk.c: Likewise.
|
|
* scaffold/tests/91-fseek.c: Likewise.
|
|
* scaffold/tests/95-signal.c: Likewise.
|
|
* scaffold/tests/97-fopen.c: Likewise.
|
|
* scaffold/tests/99-readdir.c: Likewise.
|
|
* scaffold/tests/t.c: Likewise.
|
|
* lib/linux/x86_64-mes/mes.c: New file.
|
|
* lib/linux/x86_64-mes/mini.c: New file.
|
|
* lib/x86_64-mes/setjmp.c: New file.
|
|
* scaffold/tests/06-!call-1.c: New file.
|
|
* scaffold/tests/06-call-2.c: New file.
|
|
* scaffold/tests/06-call-variable.c: New file.
|
|
* scaffold/tests/08-assign-global.c: New file.
|
|
* scaffold/tests/08-assign-negative.c: New file.
|
|
* scaffold/tests/17-compare-and-or.c: New file.
|
|
* scaffold/tests/17-compare-and.c: New file.
|
|
* scaffold/tests/17-compare-ge.c: New file.
|
|
* scaffold/tests/17-compare-gt.c: New file.
|
|
* scaffold/tests/17-compare-le.c: New file.
|
|
* scaffold/tests/17-compare-lt.c: New file.
|
|
* scaffold/tests/17-compare-or.c: New file.
|
|
* scaffold/tests/17-compare-unsigned-ge.c: New file.
|
|
* scaffold/tests/17-compare-unsigned-gt.c: New file.
|
|
* scaffold/tests/17-compare-unsigned-le.c: New file.
|
|
* scaffold/tests/17-compare-unsigned-lt.c: New file.
|
|
* scaffold/tests/21-char[]-simple.c: New file.
|
|
* scaffold/tests/23-global-pointer-init-null.c: New file.
|
|
* scaffold/tests/23-global-pointer-init.c: New file.
|
|
* scaffold/tests/23-global-pointer-pointer-ref.c: New file.
|
|
* scaffold/tests/23-global-pointer-ref.c: New file.
|
|
* scaffold/tests/23-pointer-sub.c: New file.
|
|
* scaffold/tests/31-oputs.c: New file.
|
|
* scaffold/tests/32-call-wrap.c: New file.
|
|
* scaffold/tests/38-compare-call-2.c: New file.
|
|
* scaffold/tests/38-compare-call-3.c: New file.
|
|
* scaffold/tests/51-pointer-sub.c: New file.
|
|
* scaffold/tests/54-argc.c: New file.
|
|
* scaffold/tests/63-struct-array-assign.c: New file.
|
|
* scaffold/tests/63-struct-array-compare.c: New file.
|
|
* scaffold/tests/63-struct-array.c: New file.
|
|
* scaffold/tests/63-struct-assign.c: New file.
|
|
* scaffold/tests/63-struct-function.c: New file.
|
|
* scaffold/tests/63-struct-local.c: New file.
|
|
* scaffold/tests/63-struct-pointer.c: New file.
|
|
* scaffold/tests/63-struct.c: New file.
|
|
* scaffold/tests/70-printf-hello.c: New file.
|
|
* scaffold/tests/70-printf-simple.c: New file.
|
|
* scaffold/tests/70-stdarg.c: New file.
|
|
* scaffold/tests/70-strchr.c: New file.
|
|
* scaffold/tests/73-union-hello.c: New file.
|
|
* scaffold/tests/76-pointer-arithmetic-pp.c: New file.
|
|
* scaffold/tests/79-int-array-simple.c: New file.
|
|
* scaffold/tests/7b-struct-int-array-hello.c: New file.
|
|
* scaffold/tests/7b-struct-int-array-pointer.c: New file.
|
|
* scaffold/tests/7i-struct-struct-simple.c: New file.
|
|
* scaffold/tests/7k-for-each-elem-simple.c: New file.
|
|
* scaffold/tests/7l-struct-any-size-array-simple.c: New file.
|
|
* scaffold/tests/7o-struct-pre-post-simple.c: New file.
|
|
* scaffold/tests/7q-bit-field-simple.c: New file.
|
|
* scaffold/tests/90-strspn.c: New file.
|
|
* scaffold/tests/06-call-string.c.: Rename from 31-eputs.c.
|
|
* scaffold/tests/7t-function-destruct.c: Rename from 48-function-destruct.c.
|
|
* scaffold/tests/48-global-static.c: Rename from 49-global-static.c.
|
|
* scaffold/tests/55-char-array.c:renamed: Rename from 4a-char-array.c.
|
|
* scaffold/tests/51-itoa.c:r Rename from 52-itoa.c.
|
|
* include/signal.h:(struct sigaction):
|
|
|
|
mescc: x86_64 support: Add tests.
|
|
|
|
2018-08-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Initial x86_64 support.
|
|
make all-go && MES=guile ./pre-inst-env scripts/mescc -m64 -c scaffold/main.c
|
|
|
|
mescc: Prepare for x86_64 support.
|
|
* module/mescc/info.scm (info): Add allocated, registers.
|
|
* module/mescc/i386/info.scm: New file.
|
|
* build-aux/build-guile.sh (SCM_FILES): Add it.
|
|
* module/mescc/compile.scm (c99-input->info): Add info parameter.
|
|
(c99-ast->info): Likewise.
|
|
(i386:type-alist): Remove.
|
|
(alloc-register, free-register): New function.
|
|
(expr->register*): Rename from expr->accu*. Update callers.
|
|
(expr->accu): Rename from expr->accu. Update callers.
|
|
* module/mescc/mescc.scm(%info): New variable.
|
|
* module/mescc/mescc.scm (c->ast): Use it.
|
|
(mescc:compile): Likewise.
|
|
(E->info): Likewise.
|
|
|
|
2018-09-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
emacs: Add disassembly helpers.
|
|
* .dir-locals.el (as-32, as-64): Add disassembly helpers.
|
|
|
|
2018-09-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: nyacc-for-mes: Update to 0.86.0.
|
|
* guix/git/mes.scm (nyacc-for-mes): Update to 0.86.0 plus fix binary
|
|
literals.
|
|
|
|
mescc: Support gcc-3.0: Locale header fix.
|
|
* include/locale.h (LC_ALL, LC_NUMERIC): Numbers, not strings.
|
|
(LC_COLLATE, LC_CTYPE): New macro.
|
|
|
|
2018-09-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Oops, fix ./check.sh for bootstrap build.
|
|
* build-aux/config.sh (top_builddir): Set default to `.'.
|
|
|
|
2018-09-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: nyacc-for-mes: Update to 0.85.3.
|
|
* guix/git/mes.scm (nyacc-for-mes): Update to 0.85.3.
|
|
|
|
mes: Support Nyacc 0.85.3: Integrate progress.
|
|
* mes/module/nyacc/lang/sx-util.mes: New file.
|
|
* mes/module/nyacc/version.mes: New file.
|
|
* mes/module/nyacc/lang/c99/cpp.mes (nyacc): Include them.
|
|
* mes/module/nyacc/lang/c99/parser.mes (nyacc): Include them.
|
|
* module/mescc/preprocess.scm (need-progress): New function.
|
|
(progress): New function.
|
|
(insert-progress-monitors): Use them to Integrate progress.
|
|
|
|
mes: Support Nyacc 0.85.3: Add char-set-copy.
|
|
* mes/module/srfi/srfi-14.mes (char-set-copy): New function>
|
|
|
|
2018-09-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Update bootstrap graph.
|
|
* doc/images/gcc-mesboot-graph.dot: Regenerate.
|
|
* build-aux/GNUmakefile.in (doc/mes.info): Oops change dependency to .png.
|
|
* doc/mes.texi (The Mes Bootstrap Process): Update image and wording.
|
|
|
|
guix: Update hash.
|
|
* guix/git/mes.scm (mes): Update hash.
|
|
|
|
2018-09-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.17.1.
|
|
* configure (VERSION): Update to 0.17.1.
|
|
(main): Likewise.
|
|
* configure.sh (VERSION): Likewise.
|
|
* build-aux/GNUmakefile.in (gen-announce): Likewise.
|
|
* guix/git/mes.scm (mes, mes.git): Likewise.
|
|
|
|
2018-08-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* HACKING (prefix): Update.
|
|
* INSTALL (http): Update.
|
|
* NEWS: Update.
|
|
* README (C-compiler): Update.
|
|
* doc/announce/ANNOUNCE-0.17: Update.
|
|
|
|
2018-09-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: ALlow releasing from worktree.
|
|
* build-aux/GNUmakefile.in (COMMIT): Check for .git file.
|
|
|
|
2018-09-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Do not redefine size_t.
|
|
* include/stddef.h: Do not redefine size_t.
|
|
|
|
2018-08-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support make 3.80: Add setlocale, sigaddset.
|
|
* include/limits.h (ULONG_MAX): New macro.
|
|
* include/locale.h (LC_ALL, LC_NUMERIC): New macro.
|
|
* lib/stub/setlocale.c: New file.
|
|
* lib/stub/sigaddset.c: New file.
|
|
* lib/libc+gnu.c: Include them.
|
|
|
|
mescc: Mes C Library: Fix qsort to support duplicate entries.
|
|
* lib/stdlib/qsort.c (qpart): Handle dupes.
|
|
* scaffold/tests/81-qsort-dupes.c: New file.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-08-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support make: Implement clock_gettime, time.
|
|
* include/linux/x86/syscall.h (SYS_time, SYS_clock_gettime,
|
|
SYS_gettimeofday): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_time, SYS_clock_gettime,
|
|
SYS_gettimeofday): New macro.
|
|
* lib/linux/tcc.c (gettimeofday, time): New function.
|
|
* lib/linux/gnu.c (clock_gettime): New function.
|
|
* include/time.h: Declare it.
|
|
* lib/stub/gettimeofday.c: Remove.
|
|
* lib/stub/time.c: Remove.
|
|
|
|
mescc: Mes C Library: Support make: Support main with envp.
|
|
* lib/linux/x86-mes-gcc/crt1.c (_start): Also push envp.
|
|
* lib/linux/x86-mes/crt1.c (_start): Also push envp.
|
|
* lib/linux/x86_64-mes-gcc/crt1.c (_start): Also mov environment,%rdx.
|
|
|
|
mescc: Mes C Library: Support make: Add chdir, getlogin, setvbuf, sigblock.
|
|
* lib/stub/getlogin.c: New file.
|
|
* lib/stub/setvbuf.c: New file.
|
|
* lib/stub/sigblock.c: New file.
|
|
* lib/libc+gnu.c: Include them.
|
|
* include/linux/x86/syscall.h (SYS_chdir): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_chdir): New macro.
|
|
* include/stdio.h (_IOFBF, _IOLBF, _IONBF): New macro.
|
|
* include/errno.h (ENOEXEC, ECHILD): New macro.
|
|
* include/sys/wait.h (WNOHANG): New macro.
|
|
* lib/linux/gnu.c (chdir): New function.
|
|
* include/ar.h: New file.
|
|
|
|
mescc: Mes C Library: Support diffutils: Add execl.
|
|
* include/limits.h (CHAR_MAX): New macro.
|
|
* lib/posix/execl.c: New file.
|
|
* include/unistd.h: Declare it.
|
|
|
|
mescc: Mes C Library: Add closedir, opendir, readdir.
|
|
* include/dirent.h: New file. Import from glibc-2.2.5.
|
|
* include/dirstream.h: Likewise.
|
|
* lib/dirent/__getdirentries.c: Likewise.
|
|
* lib/dirent/closedir.c: Likewise.
|
|
* lib/dirent/readdir.c (readdir): Likewise.
|
|
* lib/libc+gnu.c: Include them.
|
|
* include/linux/x86/syscall.h (SYS_getdents): New macro.
|
|
* include/linux/x86_64/syscall.h (SYS_getdents): Likewise.
|
|
* lib/linux/gnu.c (getdents): New function.
|
|
* include/limits.h (NAME_MAX): New macro.
|
|
* include/fcntl.h (O_DIRECTORY): New macro.
|
|
* scaffold/tests/readdir.dir: New directory.
|
|
* scaffold/tests/99-readdir.c: New file, use it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-08-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Move strncmp to own test.
|
|
* scaffold/tests/51-strcmp.c: Remove strncmp tests.
|
|
* scaffold/tests/51-strncmp.c: New file.
|
|
* build-aux/check-mescc.sh (tests): Add it.
|
|
|
|
2018-08-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Cleanup includes.
|
|
* scaffold/tests/30-strlen.c: Include only libmes-mini.h
|
|
* scaffold/tests/31-eputs.c: Likewise.
|
|
* scaffold/tests/32-compare.c: Likewise.
|
|
* scaffold/tests/33-and-or.c: Likewise.
|
|
* scaffold/tests/34-pre-post.c: Likewise.
|
|
* scaffold/tests/35-compare-char.c: Likewise.
|
|
* scaffold/tests/36-compare-arithmetic.c: Likewise.
|
|
* scaffold/tests/37-compare-assign.c: Likewise.
|
|
* scaffold/tests/38-compare-call.c: Likewise.
|
|
* scaffold/tests/40-if-else.c: Likewise.
|
|
* scaffold/tests/41-?.c: Likewise.
|
|
* scaffold/tests/42-goto-label.c: Likewise.
|
|
* scaffold/tests/43-for-do-while.c: Likewise.
|
|
* scaffold/tests/44-switch.c: Likewise.
|
|
* scaffold/tests/45-void-call.c: Likewise.
|
|
|
|
mescc: Cleanup includes.
|
|
* include/libmes-mini.h: New file.
|
|
* include/libmes.h: Use it.
|
|
|
|
2018-08-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add dir to include path.
|
|
* module/mescc/mescc.scm (preprocess): Add dir to include path.
|
|
(c->info): Likewise.
|
|
* scaffold/tests/08-assign.c: New file.
|
|
|
|
2018-08-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
check-mescc: c-mini
|
|
|
|
2018-08-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Explode libc+gnu.c.
|
|
* modified: include/math.h: Add declarations.
|
|
* lib/posix/getopt.c: Rename from lib/getopt.c.
|
|
* lib/gcc.c: Remove.
|
|
* lib/m4.c: Remove.
|
|
* lib/ctype/isalnum.c: New file, explode from libc+gnu.c.
|
|
* lib/ctype/isalpha.c: Likewise.
|
|
* lib/ctype/isascii.c: Likewise.
|
|
* lib/ctype/iscntrl.c: Likewise.
|
|
* lib/ctype/isnumber.c: Likewise.
|
|
* lib/ctype/isprint.c: Likewise.
|
|
* lib/ctype/ispunct.c: Likewise.
|
|
* lib/math/fabs.c: Likewise.
|
|
* lib/posix/alarm.c: Likewise.
|
|
* lib/posix/mktemp.c: Likewise.
|
|
* lib/posix/raise.c: Likewise.
|
|
* lib/posix/sbrk.c: Likewise.
|
|
* lib/posix/sleep.c: Likewise.
|
|
* lib/posix/unsetenv.c: Likewise.
|
|
* lib/stdio/clearerr.c: Likewise.
|
|
* lib/stdio/fdgets.c: Likewise.
|
|
* lib/stdio/feof.c: Likewise.
|
|
* lib/stdio/fgets.c: Likewise.
|
|
* lib/stdio/fileno.c: Likewise.
|
|
* lib/stdio/freeopen.c: Likewise.
|
|
* lib/stdio/freopen.c: Likewise.
|
|
* lib/stdio/perror.c: Likewise.
|
|
* lib/stdlib/__exit.c: Likewise.
|
|
* lib/stdlib/abs.c: Likewise.
|
|
* lib/stdlib/atexit.c: Likewise.
|
|
* lib/stdlib/atol.c: Likewise.
|
|
* lib/stdlib/bsearch.c: Likewise.
|
|
* lib/stdlib/mbstowcs.c: Likewise.
|
|
* lib/string/bcmp.c: Likewise.
|
|
* lib/string/bcopy.c: Likewise.
|
|
* lib/string/bzero.c: Likewise.
|
|
* lib/string/index.c: Likewise.
|
|
* lib/string/rindex.c: Likewise.
|
|
* lib/string/strcspn.c: Likewise.
|
|
* lib/string/strdup.c: Likewise.
|
|
* lib/string/strerror.c: Likewise.
|
|
* lib/string/strncat.c: Likewise.
|
|
* lib/string/strpbrk.c: Likewise.
|
|
* lib/string/strspn.c: Likewise.
|
|
* lib/stub/__cleanup.c: Likewise.
|
|
* lib/stub/atof.c: Likewise.
|
|
* lib/stub/chown.c: Likewise.
|
|
* lib/stub/ctime.c: Likewise.
|
|
* lib/stub/fpurge.c: Likewise.
|
|
* lib/stub/freadahead.c: Likewise.
|
|
* lib/stub/frexp.c: Likewise.
|
|
* lib/stub/fscanf.c: Likewise.
|
|
* lib/stub/getpwnam.c: Likewise.
|
|
* lib/stub/gmtime.c: Likewise.
|
|
* lib/stub/pclose.c: Likewise.
|
|
* lib/stub/popen.c: Likewise.
|
|
* lib/stub/rewind.c: Likewise.
|
|
* lib/stub/setbuf.c: Likewise.
|
|
* lib/stub/sigsetmask.c: Likewise.
|
|
* lib/stub/strftime.c: Likewise.
|
|
* lib/stub/sys_siglist.c: Likewise.
|
|
* lib/stub/system.c: Likewise.
|
|
* lib/stub/times.c: Likewise.
|
|
* lib/stub/umask.c: Likewise.
|
|
* lib/stub/utime.c: Likewise.
|
|
* lib/libc+gnu.c: Include explodings.
|
|
* lib/libg.c: Likewise.
|
|
* lib/libgetopt.c: Include explodings.
|
|
|
|
2018-08-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Explode libc+tcc.c.
|
|
* include/libmes.h: Add declarations.
|
|
* include/string.h: Likewise.
|
|
* lib/ctype/islower.c: New file, explode from lib/libc+tcc.c.
|
|
* lib/ctype/isupper.c: Likewise.
|
|
* lib/ctype/tolower.c: Likewise.
|
|
* lib/ctype/toupper.c: Likewise.
|
|
* lib/mes/search-path.c: Likewise.
|
|
* lib/posix/execvp.c: Likewise.
|
|
* lib/stdio/fclose.c: Likewise.
|
|
* lib/stdio/fdopen.c: Likewise.
|
|
* lib/stdio/ferror.c: Likewise.
|
|
* lib/stdio/fflush.c: Likewise.
|
|
* lib/stdio/fopen.c: Likewise.
|
|
* lib/stdio/fprintf.c: Likewise.
|
|
* lib/stdio/fread.c: Likewise.
|
|
* lib/stdio/fseek.c: Likewise.
|
|
* lib/stdio/ftell.c: Likewise.
|
|
* lib/stdio/fwrite.c: Likewise.
|
|
* lib/stdio/printf.c: Likewise.
|
|
* lib/stdio/remove.c: Likewise.
|
|
* lib/stdio/snprintf.c: Likewise.
|
|
* lib/stdio/sprintf.c: Likewise.
|
|
* lib/stdio/sscanf.c: Likewise.
|
|
* lib/stdio/vfprintf.c: Likewise.
|
|
* lib/stdio/vprintf.c: Likewise.
|
|
* lib/stdio/vsnprintf.c: Likewise.
|
|
* lib/stdio/vsprintf.c: Likewise.
|
|
* lib/stdio/vsscanf.c: Likewise.
|
|
* lib/stdlib/calloc.c: Likewise.
|
|
* lib/stdlib/qsort.c: Likewise.
|
|
* lib/stdlib/strtof.c: Likewise.
|
|
* lib/stdlib/strtol.c: Likewise.
|
|
* lib/stdlib/strtold.c: Likewise.
|
|
* lib/stdlib/strtoll.c: Likewise.
|
|
* lib/stdlib/strtoul.c: Likewise.
|
|
* lib/stdlib/strtoull.c: Likewise.
|
|
* lib/string/memcmp.c: Likewise.
|
|
* lib/string/memmem.c: Likewise.
|
|
* lib/string/memmove.c: Likewise.
|
|
* lib/string/memset.c: Likewise.
|
|
* lib/string/strcat.c: Likewise.
|
|
* lib/string/strchr.c: Likewise.
|
|
* lib/string/strlwr.c: Likewise.
|
|
* lib/string/strncpy.c: Likewise.
|
|
* lib/string/strrchr.c: Likewise.
|
|
* lib/string/strstr.c: Likewise.
|
|
* lib/string/strupr.c: Likewise.
|
|
* lib/stub/gettimeofday.c: Likewise.
|
|
* lib/stub/ldexp.c: Likewise.
|
|
* lib/stub/localtime.c: Likewise.
|
|
* lib/stub/mprotect.c: Likewise.
|
|
* lib/stub/sigaction.c: Likewise.
|
|
* lib/stub/sigemptyset.c: Likewise.
|
|
* lib/stub/strtod.c: Likewise.
|
|
* lib/stub/time.c: Likewise.
|
|
* lib/libc+tcc.c: Include explodings.
|
|
|
|
2018-08-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Explode libmes.c.
|
|
* include/libmes.h: Add declarations.
|
|
* lib/abtol.c: New file, explode from lib/libmes.c.
|
|
* lib/ctype/isdigit.c: Likewise.
|
|
* lib/ctype/isnumber.c: Likewise.
|
|
* lib/ctype/isspace.c: Likewise.
|
|
* lib/ctype/isxdigit.c: Likewise.
|
|
* lib/mes/abtol.c: Likewise.
|
|
* lib/mes/eputc.c: Likewise.
|
|
* lib/mes/eputs.c: Likewise.
|
|
* lib/mes/fdgetc.c: Likewise.
|
|
* lib/mes/fdputc.c: Likewise.
|
|
* lib/mes/fdputs.c: Likewise.
|
|
* lib/mes/fdungetc.c: Likewise.
|
|
* lib/mes/itoa.c: Likewise.
|
|
* lib/mes/ltoab.c: Likewise.
|
|
* lib/mes/ntoab.c: Likewise.
|
|
* lib/mes/utoa.c: Likewise.
|
|
* lib/stdlib/atoi.c: Likewise.
|
|
* lib/libmes.c: Include explodings.
|
|
|
|
mescc: Mes C Library: Explode libc-mini.c.
|
|
* include/libmes.h: Add declarations.
|
|
* lib/mes/eputs.c: New file, explode from lib/libc-mini.c.
|
|
* lib/mes/oputs.c: Likewise.
|
|
* lib/stdlib/exit.c: Likewise.
|
|
* lib/stdlib/puts.c: Likewise.
|
|
* lib/string/strlen.c: Likewise.
|
|
* lib/libc-mini.c: Include explodings.
|
|
|
|
mescc: Mes C Library: Explode libc.c.
|
|
* lib/libc.c: New file, explode from lib/libc.c.
|
|
* lib/posix/execv.c: Likewise.
|
|
* lib/posix/isatty.c: Likewise.
|
|
* lib/posix/wait.c: Likewise.
|
|
* lib/stdio/fgetc.c: Likewise.
|
|
* lib/stdio/fputc.c: Likewise.
|
|
* lib/stdio/fputs.c: Likewise.
|
|
* lib/stdio/getc.c: Likewise.
|
|
* lib/stdio/getchar.c: Likewise.
|
|
* lib/stdio/putc.c: Likewise.
|
|
* lib/stdio/putchar.c: Likewise.
|
|
* lib/stdio/ungetc.c: Likewise.
|
|
* lib/stdlib/free.c: Likewise.
|
|
* lib/stdlib/getenv.c: Likewise.
|
|
* lib/stdlib/realloc.c: Likewise.
|
|
* lib/stdlib/setenv.c: Likewise.
|
|
* lib/string/strcmp.c: Likewise.
|
|
* lib/string/strcpy.c: Likewise.
|
|
* lib/string/strncmp.c: Likewise.
|
|
* lib/libc.c: Include explodings.
|
|
|
|
2018-08-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Build initial scaffold tests without libc.
|
|
* scaffold/argv.c (strcmp): New function; support building without
|
|
libc.
|
|
* build-aux/build-cc.sh: Build initial scaffold tests without libc.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* scaffold/read.data: Rename from `mesmes'.
|
|
* scaffold/read.c: Rename from `m.c'; update.
|
|
|
|
test: Remove 30-test.i indirection.
|
|
* include/30-test.i: Remove.
|
|
* scaffold/tests/30-strlen.c: Remove 30-test.i indirection.
|
|
* scaffold/tests/31-eputs.c: Likewise.
|
|
* scaffold/tests/32-compare.c: Likewise.
|
|
* scaffold/tests/33-and-or.c: Likewise.
|
|
* scaffold/tests/34-pre-post.c: Likewise.
|
|
* scaffold/tests/35-compare-char.c: Likewise.
|
|
* scaffold/tests/36-compare-arithmetic.c: Likewise.
|
|
* scaffold/tests/37-compare-assign.c: Likewise.
|
|
* scaffold/tests/38-compare-call.c: Likewise.
|
|
* scaffold/tests/40-if-else.c: Likewise.
|
|
* scaffold/tests/41-?.c: Likewise.
|
|
* scaffold/tests/42-goto-label.c: Likewise.
|
|
* scaffold/tests/43-for-do-while.c: Likewise.
|
|
* scaffold/tests/44-switch.c: Likewise.
|
|
* scaffold/tests/45-void-call.c: Likewise.
|
|
* scaffold/tests/46-function-static.c: Likewise.
|
|
* scaffold/tests/50-assert.c: Likewise.
|
|
* scaffold/tests/51-strcmp.c: Likewise.
|
|
* scaffold/tests/52-itoa.c: Likewise.
|
|
* scaffold/tests/53-strcpy.c: Likewise.
|
|
* scaffold/tests/60-math.c: Likewise.
|
|
* scaffold/tests/63-struct-cell.c: Likewise.
|
|
* scaffold/tests/64-make-cell.c: Likewise.
|
|
* scaffold/tests/65-read.c: Likewise.
|
|
* scaffold/tests/66-local-char-array.c: Likewise.
|
|
* scaffold/tests/70-printf.c: Likewise.
|
|
* scaffold/tests/71-struct-array.c: Likewise.
|
|
* scaffold/tests/72-typedef-struct-def.c: Likewise.
|
|
* scaffold/tests/73-union.c: Likewise.
|
|
* scaffold/tests/74-multi-line-string.c: Likewise.
|
|
* scaffold/tests/75-struct-union.c: Likewise.
|
|
* scaffold/tests/76-pointer-arithmetic.c: Likewise.
|
|
* scaffold/tests/77-pointer-assign.c: Likewise.
|
|
* scaffold/tests/78-union-struct.c: Likewise.
|
|
* scaffold/tests/79-int-array.c: Likewise.
|
|
* scaffold/tests/7a-struct-char-array.c: Likewise.
|
|
* scaffold/tests/7b-struct-int-array.c: Likewise.
|
|
* scaffold/tests/7c-dynarray.c: Likewise.
|
|
* scaffold/tests/7d-cast-char.c: Likewise.
|
|
* scaffold/tests/7e-struct-array-access.c: Likewise.
|
|
* scaffold/tests/7f-struct-pointer-arithmetic.c: Likewise.
|
|
* scaffold/tests/7g-struct-byte-word-field.c: Likewise.
|
|
* scaffold/tests/7h-struct-assign.c: Likewise.
|
|
* scaffold/tests/7i-struct-struct.c: Likewise.
|
|
* scaffold/tests/7j-strtoull.c: Likewise.
|
|
* scaffold/tests/7k-for-each-elem.c: Likewise.
|
|
* scaffold/tests/7l-struct-any-size-array.c: Likewise.
|
|
* scaffold/tests/7m-struct-char-array-assign.c: Likewise.
|
|
* scaffold/tests/7n-struct-struct-array.c: Likewise.
|
|
* scaffold/tests/80-setjmp.c: Likewise.
|
|
* scaffold/tests/81-qsort.c: Likewise.
|
|
* scaffold/tests/86-strncpy.c: Likewise.
|
|
* scaffold/tests/87-sscanf.c: Likewise.
|
|
|
|
test: Remove 00-test.i indirection.
|
|
* include/00-test.i: Remove.
|
|
* scaffold/tests/01-return-0.c: Remove 00-test.i indirection.
|
|
* scaffold/tests/02-return-1.c: Likewise.
|
|
* scaffold/tests/03-call.c: Likewise.
|
|
* scaffold/tests/04-call-0.c: Likewise.
|
|
* scaffold/tests/05-call-1.c: Likewise.
|
|
* scaffold/tests/06-call-!1.c: Likewise.
|
|
* scaffold/tests/10-if-0.c: Likewise.
|
|
* scaffold/tests/11-if-1.c: Likewise.
|
|
* scaffold/tests/12-if-==.c: Likewise.
|
|
* scaffold/tests/13-if-!=.c: Likewise.
|
|
* scaffold/tests/14-if-goto.c: Likewise.
|
|
* scaffold/tests/15-if-!f.c: Likewise.
|
|
* scaffold/tests/16-if-t.c: Likewise.
|
|
* scaffold/tests/20-while.c: Likewise.
|
|
* scaffold/tests/21-char[].c: Likewise.
|
|
* scaffold/tests/22-while-char[].c: Likewise.
|
|
* scaffold/tests/23-pointer.c: Likewise.
|
|
|
|
build: Cleanup trace output.
|
|
* build-aux/build-cc.sh: Cleanup trace output.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-guile.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/build-x86_64-mes.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc.sh: Likewise.
|
|
* build-aux/cc32-mes.sh: Likewise.
|
|
* build-aux/cc64-mes.sh: Likewise.
|
|
* build-aux/check-boot.sh: Likewise.
|
|
|
|
mescc: Support -l none (linking without libc).
|
|
* module/mescc/mescc.scm (mescc:link): Support -l none.
|
|
|
|
2018-08-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support -o-.
|
|
* module/mescc/mescc.scm (GUILE-with-output-to-file): New variable.
|
|
(with-output-to-file): Use it in redefined function.
|
|
|
|
build: Update dir-locals for new layout.
|
|
* .dir-locals.el: Update to new layout.
|
|
|
|
2018-08-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Support oputs for POSIX.
|
|
* lib/libmes.c (oputs)[POSIX]: New function.
|
|
|
|
core: mes: Prepare for M2-Planet.
|
|
* src/mes.c (cal): Refactor to use if instead of switch.
|
|
(eval_apply): Likewise.
|
|
|
|
core: lib: Prepare for M2-Planet.
|
|
* src/lib.c (display_helper): Refactor to use if instead of switch.
|
|
(memq): Likewise.
|
|
|
|
core: reader: Prepare for M2-Planet.
|
|
* src/reader.c (MAX_STRING): New define.
|
|
(read_input_file_env_): Remove dead code.
|
|
(reader_read_line_comment): Refactor to remove recursion.
|
|
(reader_read_line_sexp_): Refactor to use if instead of switch.
|
|
(reader_read_hash): Likewise.
|
|
(reader_read_character): Refactor: cache peekchar () value, make
|
|
M2-Planet friendly.
|
|
(reader_read_binary): Make M2-Planet friendly.
|
|
(reader_read_octal): Likewise.
|
|
(reader_read_hex): Likewise.
|
|
(reader_read_string): Refactor.
|
|
(dump): Make M2-Planet friendly.
|
|
|
|
build: src/mes build fixes.
|
|
* build-aux/GNUmakefile.in (seed): Add dependency on gcc.
|
|
* build-aux/build-cc.sh: Copy result to src/mes.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build.sh.in: Remove copying of results.
|
|
|
|
mescc: Mes C Library: Cleanup start files.
|
|
* lib/linux/x86-mes-gcc/crt0.c: Split from lib/linux/crt0.c.
|
|
* lib/linux/x86-mes-gcc/crt1.c: Split from lib/linux/crt1.c.
|
|
* lib/linux/x86-mes-gcc/crti.c: Split from lib/linux/crti.c.
|
|
* lib/linux/x86-mes-gcc/crtn.c: Split from lib/linux/crtn.c.
|
|
* lib/linux/x86-mes/crt0.c: Split from lib/linux/crt0.c.
|
|
* lib/linux/x86-mes/crt1.c: Split from lib/linux/crt1.c.
|
|
* lib/linux/x86-mes/crti.c: Split from lib/linux/crti.c.
|
|
* lib/linux/x86-mes/crtn.c: Split from lib/linux/crtn.c.
|
|
* build-aux/build-cc.sh: Update.
|
|
* build-aux/build-cc32.sh: Update.
|
|
* build-aux/build-mes.sh: Update.
|
|
|
|
2018-08-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Add x86_64 libc+gnu support.
|
|
* include/linux/x86/syscall.h: Move SYS_ defines from gnu.c.
|
|
* include/linux/x86_64/syscall.h: Add SYS_ defines for gnu.
|
|
* lib/linux/gnu.c: Update.
|
|
* lib/linux/gnu.c (signal)[__x86_64__]: Implement using rt_sigaction.
|
|
* lib/stdlib/abort.c: Support x86_64.
|
|
|
|
mescc: Mes C Library: Add x86_64 libc+tcc support.
|
|
* include/linux/x86/syscall.h: Move SYS_ defines from tcc.c.
|
|
* include/linux/x86_64/syscall.h: Add SYS_ defines for tcc.
|
|
* lib/x86-mes-gcc/setjmp.c: Rename from lib/libc+tcc-gcc.c
|
|
* lib/x86-mes/setjmp.c: Rename from lib/libc+tcc-mes.c
|
|
* lib/linux/tcc.c: Update.
|
|
|
|
mescc: Mes C Library: Add x86_64 libc support.
|
|
* include/linux/x86_64/syscall.h: New file.
|
|
* include/linux/x86/syscall.h: New file.
|
|
* lib/linux/x86_64-mes-gcc/mes.c: New file.
|
|
* lib/linux/x86-mes/mes.c: Rename from lib/linux/mes.c.
|
|
* lib/linux/x86-mes-gcc/mes.c: Rename from lib/linux/gcc.c.
|
|
* lib/linux/libc.c: Update includes.
|
|
(waitpid)[__x86_64__]: Use wait4.
|
|
* build-aux/build-cc.sh: Build libc too.
|
|
* lib/x86-mes/x86.M1 (mov____0x8(%ebp),%esi): New macro.
|
|
|
|
2018-08-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mes C Library: Add x86_64 libc-mini support.
|
|
* lib/linux/x86-mes-gcc/mini.c: Rename from lib/linux/mini-gcc.c.
|
|
* lib/linux/x86-mes/mini.c: Rename from lib/linux/mini-mes.c.
|
|
* lib/linux/x86_64-mes-gcc/crt1.c: Rename from lib/linux/x86_64/crt1.c.
|
|
* lib/linux/x86_64-mes-gcc/mini.c: New file.
|
|
* build-aux/build-cc.sh: Build libc-mini, scaffold/main, scaffold/hello.
|
|
* build-aux/cc64.sh: New file.
|
|
|
|
mescc: Add objdump'able x86_64-mes scaffold.
|
|
* lib/x86_64-mes/elf64-header.hex2: New file.
|
|
* lib/x86_64-mes/elf64-footer-single-main.hex2: New file.
|
|
* build-aux/build-x86_64-mes.sh: Enable second, objdump'able exit-42
|
|
scaffold test.
|
|
|
|
mescc: Initial x86_64-mes scaffold.
|
|
* build-aux/GNUmakefile.in (x86_64-mes): New target.
|
|
* .gitignore: Ignore x86 and x86_64 out files.
|
|
* build-aux/build-mes.sh: Resurrect three initial exit42 scaffold tests.
|
|
* build-aux/build-x86_64-mes.sh: New file. Add initial exit42
|
|
scaffold test.
|
|
* lib/x86-mes/elf32-0header.hex2: Fix comment.
|
|
* lib/x86-mes/elf32-header.hex2: Likewise.
|
|
* lib/x86_64-mes/elf-0footer.hex2: New file.
|
|
* lib/x86_64-mes/elf64-0header.hex2: New file.
|
|
* lib/x86_64-mes/elf64-body-exit-42.hex2: New file.
|
|
* lib/x86_64-mes/exit-42.c: New file.
|
|
|
|
2018-08-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: seed: Oops, copy TCC seed after it's been regenerated.
|
|
* build-aux/GNUmakefile.in (seed): Oops, copy TCC seed after it's been
|
|
regenerated.
|
|
|
|
2018-08-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fix mescc man page generation.
|
|
* build-aux/GNUmakefile.in (doc/mescc.1): Reverse dependencies;
|
|
generate page for mescc.
|
|
|
|
2018-08-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fixes for make check.
|
|
* build-aux/config.sh (srcdir): Initialize if unset.
|
|
* build-aux/test.sh (DIFF): Do not fail if unset.
|
|
|
|
2018-08-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Update to 0.17.
|
|
* guix/git/mes.scm (mes): Update to 0.17.
|
|
|
|
2018-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.17.
|
|
* configure (VERSION): Update to 0.17.
|
|
|
|
doc: Release update.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/announce/ANNOUNCE-0.17: New file.
|
|
|
|
2018-08-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Non-bootstrap install fixes.
|
|
* configure (main): Fix default bindir.
|
|
* build-aux/GNUmakefile.in (PHONY_TARGETS): Remove src/mes. Fixes
|
|
re-build upon install.
|
|
* build-aux/install.sh.in: Fix tar arguments for scaffold files.
|
|
Expand install directories.
|
|
|
|
check: Do not fail if partial test prerequisites fail.
|
|
* build-aux/check-tcc.sh: Pass if no test directory found.
|
|
* build-aux/check.sh.in (TINYCC_PREFIX): Rename from TCC_PREFIX. Pass
|
|
if partial tests prerequisites fail.
|
|
|
|
check: Fix 4f-string-split.scm for Guile.
|
|
* module/mes/guile.scm (core:car, core:make-cell): New function.
|
|
Fixes scaffold/boot/4f-string-split.scm.
|
|
|
|
build: configure: Oops, substitute @prefix@.
|
|
* build-aux/pre-inst-env.in (MES_PREFIX): Respect pre-set value.
|
|
* configure (main): Oops, substitute @prefix@.
|
|
* configure.sh (subst): Likewise.
|
|
|
|
2018-07-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: web: New target.
|
|
* README: Add bug-mes@gnu.org
|
|
* NEWS: Likewise.
|
|
* doc/mes.texi: Likewise.
|
|
* build-aux/gendocs.sh: New file, from gnulib.
|
|
* doc/gendocs_template: New file, from gnulib.
|
|
* build-aux/GNUmakefile.in (web): New target.
|
|
|
|
Remove fosdem talk.
|
|
* doc/fosdem/GuixSD.png: Remove.
|
|
* doc/fosdem/LISP-1-5-page-13-bottom.png: Remove.
|
|
* doc/fosdem/LISP-1.5-page-13-bottom.png: Remove.
|
|
* doc/fosdem/LISP-1.5-page-13.pdf: Remove.
|
|
* doc/fosdem/LISP-1.5-page-13.png: Remove.
|
|
* doc/fosdem/README: Remove.
|
|
* doc/fosdem/beamercolorthemeX.sty: Remove.
|
|
* doc/fosdem/beamerthemeX.sty: Remove.
|
|
* doc/fosdem/bootstrap-graph.png: Remove.
|
|
* doc/fosdem/egg.jpeg: Remove.
|
|
* doc/fosdem/egg.png: Remove.
|
|
* doc/fosdem/egg.xcf: Remove.
|
|
* doc/fosdem/fosdem.org: Remove.
|
|
* doc/fosdem/fosdem.pdf: Remove.
|
|
* doc/fosdem/fsb-logo-guile-guix-gnu.png: Remove.
|
|
* doc/fosdem/fsb-logo-guile-guix-gnu.xcf: Remove.
|
|
* doc/fosdem/fsb-logo-guile-guix-mes.png: Remove.
|
|
* doc/fosdem/fsb-logo-guile-guix-mes.xcf: Remove.
|
|
* doc/fosdem/fsb-logo.png: Remove.
|
|
* doc/fosdem/guix-build-bootstrap-tarballs.log: Remove.
|
|
* doc/fosdem/mes.png: Remove.
|
|
* doc/fosdem/mes.xcf: Remove.
|
|
|
|
2018-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Remove tinycc/test2 import.
|
|
* scaffold/tinycc/: Remove.
|
|
* build-aux/check-mescc.sh: Remove tinycc testing.
|
|
* build-aux/check-tcc.sh: New file.
|
|
* build-aux/check.sh.in: Use it.
|
|
* build-aux/config.sh: Update.
|
|
* build-aux/export.make: Update.
|
|
|
|
Add missing copyright headers and READMEs.
|
|
* ChangeLog: Add copyright header.
|
|
* build-aux/GNUmakefile.in (generate-ChangeLog): Append it as copyright footer.
|
|
* BOOTSTRAP: Add copyright header.
|
|
* scaffold/boot/2f-define-second-lambda.scm: Likewise.
|
|
* scaffold/boot/39-global-define-override.scm: Likewise.
|
|
* scaffold/boot/3a-global-define-lambda-override.scm: Likewise.
|
|
* scaffold/boot/4f-string-split.scm: Likewise.
|
|
* scaffold/boot/numbers.scm: Likewise.
|
|
* scaffold/gc.scm: Likewise.
|
|
* scaffold/b-0.mes: Remove.
|
|
* doc/GNU-EVAL-APPLY: Remove.
|
|
* doc/announce/README: New file.
|
|
* doc/announce/ANNOUNCE: Move from doc/ANNOUNCE.
|
|
* doc/announce/ANNOUNCE-0.10: Likewise.
|
|
* doc/announce/ANNOUNCE-0.11: Likewise.
|
|
* doc/announce/ANNOUNCE-0.12: Likewise.
|
|
* doc/announce/ANNOUNCE-0.13: Likewise.
|
|
* doc/announce/ANNOUNCE-0.14: Likewise.
|
|
* doc/announce/ANNOUNCE-0.15: Likewise.
|
|
* doc/announce/ANNOUNCE-0.16: Likewise.
|
|
* doc/announce/ANNOUNCE-0.3: Likewise.
|
|
* doc/announce/ANNOUNCE-0.4: Likewise.
|
|
* doc/announce/ANNOUNCE-0.5: Likewise.
|
|
* doc/announce/ANNOUNCE-0.6: Likewise.
|
|
* doc/announce/ANNOUNCE-0.7: Likewise.
|
|
* doc/announce/ANNOUNCE-0.8: Likewise.
|
|
* doc/announce/ANNOUNCE-0.9: Likewise.
|
|
* doc/announce/ANNOUNCE-2: Likewise.
|
|
* doc/announce/UPDATE-0.13: Likewise.
|
|
* doc/fosdem/README: New file.
|
|
* doc/fosdem/fosdem.org: Add legalese.
|
|
* doc/fosdem/fosdem.pdf: Regenerate.
|
|
* doc/images/README: New file.
|
|
* mes/module/mes/psyntax.pp.header: New file.
|
|
* mes/module/mes/psyntax.pp: Add it to generated file.
|
|
|
|
2018-07-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Make build more autotools-like.
|
|
* build-aux/build.sh.in: Move from ./build.sh
|
|
* build-aux/check.sh.in: Likewise.
|
|
* build-aux/GNUmakefile.in: Likewise.
|
|
* build-aux/install.sh.in: Likewise.
|
|
* build-aux/uninstall.sh.in: Likewise.
|
|
* configure: Substitute them.
|
|
* configure.sh: Likewise.
|
|
* build-aux/build-cc.sh: Update: use ${srcdest} instead of ${top_builddest}.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-guile.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc.sh: Likewise.
|
|
* build-aux/cc32-mes.sh: Likewise.
|
|
* build-aux/check-boot.sh: Likewise.
|
|
* build-aux/check-mes.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/config.sh: Likewise.
|
|
* build-aux/export.make: Likewise.
|
|
* build-aux/mes-snarf.scm: Likewise.
|
|
* build-aux/pre-inst-env.in: Likewise.
|
|
* build-aux/test.sh: Likewise.
|
|
* build-aux/trace.sh: Likewise.
|
|
* module/mescc/mescc.scm: Likewise.
|
|
* scripts/mescc.in: Likewise.
|
|
* src/mes.c: Likewise.
|
|
* .gitignore: Likewise.
|
|
|
|
2018-07-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support all `Standard targets' for users.
|
|
* GNUmakefile (distclean mostlyclean, maintainer-clean, html, dvi, ps,
|
|
install-dvi, install-ps, install-html, installcheck): New target.
|
|
(install-info): Remove fake target.
|
|
* configure (parse-opts): Add --srcdir.
|
|
|
|
xx
|
|
|
|
2018-07-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add taken-from-Binutils and copyright line to alloca.c
|
|
* lib/stdlib/alloca.c: Add `taken from binutils' and copyright line to
|
|
alloca.c for minor changes.
|
|
|
|
2018-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Relicense some taken-from-GNU Guile LGPLv3+ files to GPLv3+.
|
|
* mes/module/mes/pmatch.scm: Relicense to GPLv3+.
|
|
* mes/module/sxml/xpath.scm: Likewise.
|
|
* mes/module/mes/peg/cache.scm: Likewise.
|
|
* mes/module/mes/peg/codegen.scm: Likewise.
|
|
* mes/module/mes/peg/simplify-tree.scm: Likewise.
|
|
* mes/module/mes/peg/string-peg.scm: Likewise.
|
|
* mes/module/mes/peg/using-parsers.scm: Likewise.
|
|
|
|
2018-07-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Relicense some taken-from-GNU Guile LGPLv2+ files to GPLv3+.
|
|
* mes/module/mes/pretty-print.scm: Relicense to GPLv3+.
|
|
* mes/module/mes/psyntax.ss: Likewise.
|
|
* mes/module/srfi/srfi-1.scm: Likewise.
|
|
* mes/module/srfi/srfi-16.scm: Likewise.
|
|
* mes/module/srfi/srfi-26.scm: Likewise.
|
|
* module/mes/getopt-long.scm: Likewise.
|
|
|
|
Add missing copyright headers.
|
|
* .dir-locals.el: Add copyright header.
|
|
* AUTHORS: Likewise.
|
|
* HACKING: Likewise.
|
|
* INSTALL: Likewise.
|
|
* README: Likewise.
|
|
* build-aux/export.make: Likewise.
|
|
* build-aux/setup-mes.sh: Likewise.
|
|
* configure.sh: Likewise.
|
|
* install.sh: Likewise.
|
|
* scaffold/tests/90-goto-var.c: Likewise.
|
|
* scaffold/tests/91-goto-array.c: Likewise.
|
|
* tests/read.test: Likewise.
|
|
* uninstall.sh: Likewise.
|
|
* doc/fosdem/beamercolorthemeX.sty:
|
|
* doc/fosdem/beamerthemeX.sty:
|
|
* doc/fosdem/html.sty: Remove.
|
|
* doc/fosdem/README: New file.
|
|
* doc/images/README: New file.
|
|
|
|
2018-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
GNU Mes.
|
|
Throughout, make these changes
|
|
|
|
Copyright headers: GNU Mes
|
|
First mention of name: GNU Mes
|
|
Website: https://www.gnu.org/software/mes
|
|
Git: git://git.savannah.gnu.org/mes.git
|
|
|
|
2018-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support uninstall.
|
|
* uninstall.sh: New file.
|
|
* GNUmakefile (uninstall): Use it in new target.
|
|
|
|
build: Generate gcc-mesboot-graph from .dot.
|
|
* doc/images/gcc-mesboot-graph.dot: New file.
|
|
* doc/images/gcc-mesboot-graph.png: Remove.
|
|
* GNUmakefile (${top_builddest}doc/images/gcc-mesboot-graph.png): New target.
|
|
* configure (det): Add check.
|
|
* build-aux/export.make: Export it.
|
|
* doc/mes.texi (The Mes Bootstrap Process): Describe new recipe.
|
|
* guix/git/mes.scm (mes): Add graphvis dependency.
|
|
|
|
2018-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Refactor package setup.
|
|
Next to the convenient environment setup and package build from git
|
|
|
|
guix environment -l .guix.scm
|
|
guix build -f .guix.scm
|
|
|
|
we can now also build other included packages
|
|
|
|
GUIX_PACKAGE_PATH=guix guix build mes@0.17
|
|
GUIX_PACKAGE_PATH=guix guix build nyacc@0.80.42
|
|
|
|
* guix/git/mes.scm: Move from .guix.scm, make a module.
|
|
* .guix.scm: Move from guix.scm, use it.
|
|
* build-aux/manifest.scm: Update location.
|
|
* build-aux/pre-inst-env.in: Support it.
|
|
* configure: Check for guix.
|
|
* build-aux/export.make: Export GUIX.
|
|
* GNUmakefile (update-hash): New target.
|
|
|
|
2018-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Respect --docdir.
|
|
* configure: Respect --docdir.
|
|
|
|
2018-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support --srcdir build.
|
|
* build-aux/config.sh: New file.
|
|
* build-aux/trace.sh: New file.
|
|
* build-aux/GNUmakefile.in: New file.
|
|
* configure: Support srcdir configure.
|
|
* GNUmakefile: Support srcdir build.
|
|
* build-aux/build-cc.sh: Likewise.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-guile.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc.sh: Likewise.
|
|
* build-aux/cc32-mes.sh: Likewise.
|
|
* build-aux/check-mes.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/export.make: Likewise.
|
|
* build-aux/mes-snarf.scm: Likewise.
|
|
* build-aux/pre-inst-env.in: Likewise.
|
|
* build-aux/test.sh: Likewise.
|
|
* build.sh: Likewise.
|
|
* check.sh: Likewise.
|
|
* install.sh: Likewise.
|
|
* module/mescc/mescc.scm: Likewise.
|
|
* scripts/mescc.in: Likewise.
|
|
* src/mes.c: Likewise.
|
|
|
|
2018-06-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Prepare for the Hurd.
|
|
* lib/linux/libc.c: Move from lib/linux.c.
|
|
* lib/linux/gcc.c: Move from lib/linux-gcc.c.
|
|
* lib/linux/gnu.c: Move from lib/linux+gnu.c.
|
|
* lib/linux/libc.c: Move from lib/linux.c.
|
|
* lib/linux/mes.c: Move from lib/linux-mes.c.
|
|
* lib/linux/mini-gcc.c: Move from lib/linux-mini-gcc.c.
|
|
* lib/linux/mini-mes.c: Move from lib/linux-mini-mes.c.
|
|
* lib/linux/tcc.c: Move from lib/linux+tcc.c.
|
|
* lib/linux/crt0.c: Move from lib/crt0.c.
|
|
* lib/linux/crt1.c: Move from lib/crt1.c.
|
|
* lib/linux/crti.c: Move from lib/crti.c.
|
|
* lib/linux/crtn.c: Move from lib/crtn.c.
|
|
* build-aux/build-cc.sh: Update for new layout.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc32-mes.sh: Likewise.
|
|
* lib/string/argz-count.c: New file taken from GNU C Library,
|
|
relicensed.
|
|
* lib/string/argz-extract.c: New file taken from GNU C Library,
|
|
relicensed.
|
|
* include/argz.h: New file.
|
|
* lib/string/memcpy.c: New file, extract from libc.
|
|
* lib/assert/assert.c: Likewise.
|
|
|
|
2018-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Install ChangeLog.
|
|
* ChangeLog: New file.
|
|
* install.sh: Regenerate it, install it.
|
|
|
|
build: Refactor configure.
|
|
* configure: Refactor.
|
|
|
|
2018-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Prepare for autoconfiscation.
|
|
Make build system more in alignment with how autotools work. This
|
|
will make transition easier.
|
|
|
|
* mes/module/mes/boot-0.scm.in: Update from module/mes/boot-0.scm.
|
|
* scripts/mescc.in: Update from scripts/mescc.
|
|
* build-aux/pre-inst-env.in: New file.
|
|
* build-aux/cc-mes.sh: Use pre-inst-env.
|
|
* configure: Substitute new .in files.
|
|
* install.sh: Do not substitute mescc, boot-0.scm.
|
|
|
|
2018-07-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Document number->string INT-MIN failure with gcc-x86.
|
|
* src/mes.c (scm_symbol_arch, scm_symbol_compiler): New symbol.
|
|
(mes_symbols, bload_env): Add them.
|
|
(scm_symbol_gnuc, scm_symbol_mesc): Remove.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
* module/mes/mes-0.scm (%arch, %compiler): New public variable.
|
|
* tests/srfi-13.test: Expect number->string INT-MIN to fail for
|
|
gcc-x86.
|
|
* HACKING (Bugs): Add it.
|
|
|
|
build: Refactor mes tests.
|
|
* build-aux/check-mes.sh: New file.
|
|
* check.sh: Invoke it for Guile and Mes.
|
|
* .gitignore: Ignore new guile logs.
|
|
* mes/module/mes/boot-0.scm: Ignore some standard Guile options.
|
|
* module/mes/test.scm: Make a module.
|
|
* tests/base.test: Use it. Make a module, support invoking with Guile
|
|
or Mes alike.
|
|
* tests/boot.test: Likewise.
|
|
* tests/catch.test: Likewise.
|
|
* tests/closure.test: Likewise.
|
|
* tests/cwv.test: Likewise.
|
|
* tests/display.test: Likewise.
|
|
* tests/fluids.test: Likewise.
|
|
* tests/getopt-long.test: Likewise.
|
|
* tests/guile.test: Likewise.
|
|
* tests/let-syntax.test: Likewise.
|
|
* tests/let.test: Likewise.
|
|
* tests/match.test: Likewise.
|
|
* tests/math.test: Likewise.
|
|
* tests/module.test: Likewise.
|
|
* tests/optargs.test: Likewise.
|
|
* tests/peg.test: Likewise.
|
|
* tests/pmatch.test: Likewise.
|
|
* tests/psyntax.test: Likewise.
|
|
* tests/quasiquote.test: Likewise.
|
|
* tests/read.test: Likewise.
|
|
* tests/scm.test: Likewise.
|
|
* tests/srfi-13.test: Likewise.
|
|
* tests/srfi-14.test: Likewise.
|
|
* tests/srfi-16.test: Likewise.
|
|
* tests/srfi-1.test: Likewise.
|
|
* tests/srfi-43.test: Likewise.
|
|
* tests/srfi-9.test: Likewise.
|
|
* tests/syntax.test: Likewise.
|
|
* tests/vector.test: Likewise.
|
|
* tests/base.test-guile: Remove.
|
|
* tests/boot.test-guile: Remove.
|
|
* tests/catch.test-guile: Remove.
|
|
* tests/closure.test-guile: Remove.
|
|
* tests/cwv.test-guile: Remove.
|
|
* tests/display.test-guile: Remove.
|
|
* tests/fluids.test-guile: Remove.
|
|
* tests/getopt-long.test-guile: Remove.
|
|
* tests/guile.test-guile: Remove.
|
|
* tests/let-syntax.test-guile: Remove.
|
|
* tests/let.test-guile: Remove.
|
|
* tests/match.test-guile: Remove.
|
|
* tests/math.test-guile: Remove.
|
|
* tests/module.test-guile: Remove.
|
|
* tests/optargs.test-guile: Remove.
|
|
* tests/peg.test-guile: Remove.
|
|
* tests/pmatch.test-guile: Remove.
|
|
* tests/psyntax.test-guile: Remove.
|
|
* tests/quasiquote.test-guile: Remove.
|
|
* tests/read.test-guile: Remove.
|
|
* tests/scm.test-guile: Remove.
|
|
* tests/srfi-13.test-guile: Remove.
|
|
* tests/srfi-14.test-guile: Remove.
|
|
* tests/srfi-16.test-guile: Remove.
|
|
* tests/srfi-1.test-guile: Remove.
|
|
* tests/srfi-43.test-guile: Remove.
|
|
* tests/srfi-9.test-guile: Remove.
|
|
* tests/syntax.test-guile: Remove.
|
|
* tests/vector.test-guile: Remove.
|
|
|
|
build: all-go: Support V=0,1,2.
|
|
* build-aux/build-guile.sh: Support V=0,1,2.
|
|
|
|
build: Fix for handling missing makeinfo.
|
|
* configure (main): Update MAKEINFO.
|
|
|
|
mescc: fwrite: Increase debug tracing threshold.
|
|
* lib/libc+tcc.c (fwrite): Increase debug tracing threshold.
|
|
|
|
mescc: Add proper includes.
|
|
* include/libmes.h (__mes_debug): Declare.
|
|
* lib/libtcc1.c: Add proper includes.
|
|
* lib/linux+gnu.c: Likewise.
|
|
* lib/m4.c: Likewise.
|
|
|
|
core: Resurrect gcc support.
|
|
* src/mes.c (MES_ARENA)[POSIX]: Default to 100000000.
|
|
|
|
scaffold: Add proper includes.
|
|
* scaffold/argv.c: Add proper includes.
|
|
* scaffold/malloc.c: Likewise.
|
|
* scaffold/micro-mes.c: Likewise.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
* scaffold/tiny-mes.c: Likewise.
|
|
|
|
build: cc32: Silence warnings.
|
|
* build-aux/build-cc32.sh (CC32_CFLAGS): Silence warnings.
|
|
|
|
build: Resurrect i686-unknown-linux-gnu-gcc support.
|
|
* build-aux/build-cc32.sh (CC32_CFLAGS): Add -fno-builtin. Resurrects
|
|
i686-unknown-linux-gnu-gcc.
|
|
|
|
mescc: Support verbose int types.
|
|
* module/mescc/compile.scm (i386:type-alist): Support verbose int types.
|
|
|
|
build: Separate Mes and Guile modules.
|
|
* scaffold/gc.scm: Move from guile/gc.scm.
|
|
* guile/: Remove.
|
|
* module/language/paren.mes: Remove.
|
|
* mes/module/mes/base.mes: Move from module/mes/.
|
|
* mes/module/mes/boot-0.scm: Likewise.
|
|
* mes/module/mes/boot-00.scm: Likewise.
|
|
* mes/module/mes/boot-01.scm: Likewise.
|
|
* mes/module/mes/boot-02.scm: Likewise.
|
|
* mes/module/mes/catch.mes: Likewise.
|
|
* mes/module/mes/display.mes: Likewise.
|
|
* mes/module/mes/fluids.mes: Likewise.
|
|
* mes/module/mes/getopt-long.mes: Likewise.
|
|
* mes/module/mes/guile.mes: Likewise.
|
|
* mes/module/mes/lalr.mes: Likewise.
|
|
* mes/module/mes/lalr.scm: Likewise.
|
|
* mes/module/mes/let.mes: Likewise.
|
|
* mes/module/mes/match.mes: Likewise.
|
|
* mes/module/mes/match.scm: Likewise.
|
|
* mes/module/mes/mescc.mes: Likewise.
|
|
* mes/module/mes/misc.mes: Likewise.
|
|
* mes/module/mes/module.mes: Likewise.
|
|
* mes/module/mes/optargs.mes: Likewise.
|
|
* mes/module/mes/optargs.scm: Likewise.
|
|
* mes/module/mes/peg.mes: Likewise.
|
|
* mes/module/mes/peg/cache.scm: Likewise.
|
|
* mes/module/mes/peg/codegen.scm: Likewise.
|
|
* mes/module/mes/peg/simplify-tree.scm: Likewise.
|
|
* mes/module/mes/peg/string-peg.scm: Likewise.
|
|
* mes/module/mes/peg/using-parsers.scm: Likewise.
|
|
* mes/module/mes/pmatch.mes: Likewise.
|
|
* mes/module/mes/pmatch.scm: Likewise.
|
|
* mes/module/mes/posix.mes: Likewise.
|
|
* mes/module/mes/pretty-print.mes: Likewise.
|
|
* mes/module/mes/pretty-print.scm: Likewise.
|
|
* mes/module/mes/psyntax-0.mes: Likewise.
|
|
* mes/module/mes/psyntax-1.mes: Likewise.
|
|
* mes/module/mes/psyntax.mes: Likewise.
|
|
* mes/module/mes/psyntax.pp: Likewise.
|
|
* mes/module/mes/psyntax.ss: Likewise.
|
|
* mes/module/mes/quasiquote.mes: Likewise.
|
|
* mes/module/mes/quasisyntax.mes: Likewise.
|
|
* mes/module/mes/quasisyntax.scm: Likewise.
|
|
* mes/module/mes/repl.mes: Likewise.
|
|
* mes/module/mes/scm.mes: Likewise.
|
|
* mes/module/mes/syntax.mes: Likewise.
|
|
* mes/module/mes/syntax.scm: Likewise.
|
|
* mes/module/mes/test.mes: Likewise.
|
|
* mes/module/mes/tiny-0.mes: Likewise.
|
|
* mes/module/mes/type-0.mes: Likewise.
|
|
* mes/module/mescc/M1.mes: Likewise.
|
|
* mes/module/mescc/as.mes: Likewise.
|
|
* mes/module/mescc/bytevectors.mes: Likewise.
|
|
* mes/module/mescc/compile.mes: Likewise.
|
|
* mes/module/mescc/i386/as.mes: Likewise.
|
|
* mes/module/mescc/info.mes: Likewise.
|
|
* mes/module/mescc/mescc.mes: Likewise.
|
|
* mes/module/mescc/preprocess.mes: Likewise.
|
|
* mes/module/nyacc/lalr.mes: Likewise.
|
|
* mes/module/nyacc/lang/c99/cpp.mes: Likewise.
|
|
* mes/module/nyacc/lang/c99/parser.mes: Likewise.
|
|
* mes/module/nyacc/lang/c99/pprint.mes: Likewise.
|
|
* mes/module/nyacc/lang/calc/parser.mes: Likewise.
|
|
* mes/module/nyacc/lang/util.mes: Likewise.
|
|
* mes/module/nyacc/lex.mes: Likewise.
|
|
* mes/module/nyacc/parse.mes: Likewise.
|
|
* mes/module/nyacc/util.mes: Likewise.
|
|
* mes/module/rnrs/arithmetic/bitwise.mes: Likewise.
|
|
* mes/module/srfi/srfi-0.mes: Likewise.
|
|
* mes/module/srfi/srfi-1.mes: Likewise.
|
|
* mes/module/srfi/srfi-1.scm: Likewise.
|
|
* mes/module/srfi/srfi-13.mes: Likewise.
|
|
* mes/module/srfi/srfi-14.mes: Likewise.
|
|
* mes/module/srfi/srfi-16.mes: Likewise.
|
|
* mes/module/srfi/srfi-16.scm: Likewise.
|
|
* mes/module/srfi/srfi-26.mes: Likewise.
|
|
* mes/module/srfi/srfi-26.scm: Likewise.
|
|
* mes/module/srfi/srfi-43.mes: Likewise.
|
|
* mes/module/srfi/srfi-8.mes: Likewise.
|
|
* mes/module/srfi/srfi-9.mes: Likewise.
|
|
* mes/module/srfi/srfi-9/gnu.mes: Likewise.
|
|
* mes/module/sxml/xpath.mes: Likewise.
|
|
* mes/module/sxml/xpath.scm: Likewise.
|
|
* module/mes/mes-0.scm: Likewise.
|
|
* build-aux/build-guile.sh: Update for new layout.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/check-boot.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* install.sh: Likewise.
|
|
* scaffold/boot/51-module.scm: Likewise.
|
|
* scaffold/boot/52-define-module.scm: Likewise.
|
|
* scripts/mescc: Likewise.
|
|
* src/mes.c: Likewise.
|
|
* tests/base.test-guile: Likewise.
|
|
* tests/boot.test: Likewise.
|
|
* tests/srfi-9.test: Likewise.
|
|
* mes/include: New symlink.
|
|
* mes/lib: New symlink.
|
|
* AUTHORS: Update file names.
|
|
|
|
core: typo: Remove trailing 1.
|
|
* include/alloca.h: typo: Remove trailing 1.
|
|
|
|
2018-07-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add missing copyright header. Thanks, Mike!
|
|
* guile/gc.c: Add missing copyright header. Thanks, Mike!
|
|
|
|
2018-07-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: mes: Updatee to 0.16.1.
|
|
* guix.scm (mes): Update to 0.16.1.
|
|
(mes.git): Likewise.
|
|
|
|
2018-07-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.16.1
|
|
* configure (VERSION): Bump to 0.16.1.
|
|
|
|
doc: Release update.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* scaffold/tests/23-pointer.c: Add (janneke) to copyright line.
|
|
* doc/images/gcc-mesboot-graph.png: Update.
|
|
* doc/mes.texi (The Mes Bootstrap Process): Describe update.
|
|
|
|
build: setup-mes.sh: Cater for Debian/stretch too. Thanks, pdewacht!
|
|
* build-aux/setup-mes.sh: Cater for Debian/stretch too. Thanks,
|
|
pdewacht!
|
|
|
|
core: Fix segfault on Debian/strectch. Thanks, pdewacht!
|
|
* src/posix.c (execl_): Typo in initialization. Fixes segfault on
|
|
Debian/strectch. Thanks, pdewacht!
|
|
|
|
doc: Add html, pdf.
|
|
* GNUmakefile (html, pdf): New target.
|
|
* .gitignore: Ignore html, pdf targets.
|
|
|
|
doc: Remarks from Rutger.
|
|
* doc/mes.texi: Remarks from Rutger.
|
|
|
|
doc: Further work.
|
|
* doc/images/gcc-mesboot-graph.png: New file.
|
|
* install.sh: Install it.
|
|
* doc/mes.texi (The Mes Bootstrap Process): Show it.
|
|
(Bootstrapping): Add missing Mes direntry.
|
|
(Running the Test Suites): Fix example.
|
|
Fix typos.
|
|
|
|
build: Handle CFLAGS, CPPFLAGS for Debian.
|
|
|
|
build: Have configure create a git archive.
|
|
* configure: Create git archive if necessary.
|
|
|
|
build: Use GNU style lower case directory configure variable naming.
|
|
* GNUmakefile: Use GNU style lower case directory configure variable naming.
|
|
* HACKING: Likewise.
|
|
* INSTALL: Likewise.
|
|
* build-aux/build-cc.sh: Likewise.
|
|
* build-aux/build-cc32.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc.sh: Likewise.
|
|
* build-aux/cc32-mes.sh: Likewise.
|
|
* build-aux/export.make: Likewise.
|
|
* build-aux/setup-mes.sh: Likewise.
|
|
* build.sh: Likewise.
|
|
* check.sh: Likewise.
|
|
* configure: Likewise.
|
|
* doc/mes.texi: Likewise.
|
|
* install.sh: Likewise.
|
|
* scripts/mescc: Likewise.
|
|
|
|
build: Support Debian build, install.
|
|
* scripts/mescc: Support Debian build, install.
|
|
* lib/libmes.c (fdgetc): Allow Nyacc/ungetc conflict.
|
|
* build-aux/export.make (ARCH): Export.
|
|
* build-aux/build-mes.sh: Disable full build for non-bootstrap
|
|
x86-only.
|
|
* check.sh (total): Use bash to invoke build-aux/check-mescc.sh.
|
|
* build-aux/build-guile.sh (SCM_FILES): Support guile-2.0.
|
|
* module/mes/guile.scm (guile-2.0): Support guile-2.0.
|
|
* build-aux/build-mes.sh: Use bash.
|
|
* build-aux/setup-mes.sh: New file.
|
|
|
|
mescc: Be sure to exit upon system* failure.
|
|
* module/mescc/mescc.scm (assert-system*): New function.
|
|
(M1->hex2, hex2->elf, M1->blood-elf): Use it.
|
|
|
|
build: Support $DESTDIR.
|
|
* build-aux/export.make: export DESTDIR.
|
|
* install.sh: Support $DESTDIR.
|
|
|
|
build: Build and install manual pages.
|
|
* build-aux/export.make: New file.
|
|
* GNUmakefile (man): New target.
|
|
(doc): Depend on man.
|
|
include build-aux/export.make, remove exports.
|
|
* guix.scm (mes): Add dependency on help2man.
|
|
* configure: Check for help2man.
|
|
* install.sh: Install manual pages if built.
|
|
|
|
doc: Initial version.
|
|
* doc/mes.texi: New file.
|
|
* doc/fdl-1.3.texi: New file.
|
|
* AUTHORS: Mention it.
|
|
* GNUmakefile (doc, info, install-info): New targets.
|
|
* install.sh: Install info if available.
|
|
* guix: (mes): Add texinfo to native-inputs.
|
|
* configure: Check for makeinfo.
|
|
|
|
2018-06-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: mescc-tools: Update to 0.5.1.
|
|
* guix.scm (mescc-tools): Update to 0.5.1.
|
|
|
|
guix: Oops, fix nyacc-for-mes checksum. Thanks, pdewacht!
|
|
* guix.scm (nyacc-for-mes): Fix checksum.
|
|
|
|
guix: Update mes to 0.16.
|
|
* guix.scm (mes): Update to 0.16.
|
|
(mes.git): Likewise.
|
|
|
|
2018-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.16.
|
|
* configure (VERSION): Bump to 0.16.
|
|
|
|
2018-06-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.16: New file.
|
|
|
|
2018-06-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Fix compile warnings.
|
|
* lib/libmes.c: Fix warning.
|
|
* src/posix.c (execl_): Fix warning, add debug printing.
|
|
|
|
core: execl_: Allow 1000 arguments.
|
|
* src/posix.c (execl_): Allow 1000 arguments.
|
|
|
|
2018-06-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils 2.10.1: strrchr: Stop at start of string.
|
|
* lib/libc+tcc.c (strrchr): Stop at start of string.
|
|
* scaffold/tests/88-strrchr.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
build: Support tcc, create tinycc-seed with tcc.
|
|
* configure: check for tcc.
|
|
* build-aux/cc32-mes.sh: Rename from cc-mes-gcc.sh. Support
|
|
tcc. Update users.
|
|
* build-aux/build-cc32-mes.sh: Rename from build-mes-gcc.sh. Update users.
|
|
* GNUmakefile (mes-tcc): New target.
|
|
* .gitignore: Ignore mes-tcc arch output.
|
|
* lib/crt1.c (_start): Add "rm" constraint so satisfy tcc.
|
|
* lib/linux-gcc.c (_sys_call, _sys_call1 _sys_call2 _sys_call3): Likewise.
|
|
|
|
2018-06-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support glibc-2.2.5: header tweaks.
|
|
* include/sys/types.h [__PTRDIFF_T]: Extra guard for ptrdiff_t.
|
|
[__SIZE_T]: Extra guard for size_t.
|
|
* include/stdlib.h: Include alloca; remove alloca prototype,
|
|
* include/errno.h: Add E2BIG.
|
|
|
|
2018-06-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils 2.20.1: vfprint, vsprintf: %llx.
|
|
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %%llx. Print error:
|
|
should we skip another int, va_arg a long long?
|
|
|
|
2018-06-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils 2.14: vfprint, vsprintf: %12.10d.
|
|
* lib/libc+tcc.c (vfprintf, vsprintf): Handle %12.10d.
|
|
* scaffold/tests/70-printf.c: Test it.
|
|
|
|
2018-06-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support gnu toolchain: libtcc1.
|
|
* lib/libtcc1.c: New file.
|
|
* lib/libc+tcc-gcc.c: Remove libtcc1 stubs.
|
|
|
|
mescc: Support binutils-2.20.1a: header tweaks.
|
|
* include/signal.h: Include sys/types.h; remove type declaration copies.
|
|
* include/stdarg.h: Likewise.
|
|
* include/stdio.h: Likewise.
|
|
* include/stdlib.h: Likewise.
|
|
* include/unistd.h: Likewise.
|
|
|
|
2018-06-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support Tinycc 0.9.27: Drop dlclose, dlopen.
|
|
* lib/libc+tcc.c (dlclose, dlopen): Remove.
|
|
* include/dlfcn.h (RTLD_DEFAULT): Add.
|
|
|
|
core: Resurrect dump-tiny.
|
|
* src/reader.c (dump): Resurrect dump-tiny.
|
|
|
|
core: Resurrect loading of boot-0.32-mo.
|
|
|
|
2018-06-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils 2.25: fseek: Add debug printing.
|
|
* lib/libc+tcc.c (fseek): Add debug printing.
|
|
|
|
mescc: Tinycc support: bcopy: Do not return void.
|
|
* lib/m4.c (bcopy): Do not return void. Helps tcc.
|
|
|
|
mescc: Support binutils 2.25: memcmp: Support size 0.
|
|
* lib/libc+tcc.c (memcmp): Support size 0.
|
|
|
|
mescc: Support binutils 2.25: vsscanf: Skip `l'.
|
|
* lib/libc+tcc.c (vsscanf): Skip `l'.
|
|
|
|
mescc: Debugging oops.
|
|
* lib/libc.c (__mes_debug): Oops, wrong direction.
|
|
|
|
2018-06-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils 2.15a: fread: read ungetc'd chars too.
|
|
* lib/libmes.c (_ungetc_fd): New variable.
|
|
(fdgetc): Use it.
|
|
(_fdungetc_p): New function.
|
|
* lib/libc+tcc.c (_fungetc_p): New function.
|
|
* lib/libc+tcc.c (fread): Use it to read ungetc'd chars too.
|
|
|
|
mescc: Add another fopen test.
|
|
* scaffold/tests/98-fopen.c: New file.
|
|
* build-aux/check-mescc.sh (tests): Add it.
|
|
* AUTHORS: Mention it.
|
|
|
|
mescc: Add fopen test.
|
|
* scaffold/tests/97-fopen.c: New file.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
* include/unistd.h (link): Declare.
|
|
|
|
mescc: Support binutils-2.14: fopen: Return 0 upon failure.
|
|
* lib/libc+tcc.c (fopen): Return 0 upon failure.
|
|
|
|
2018-06-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Update elf32-header for linux-4.17.
|
|
Previously, our binaries showed this
|
|
|
|
$ readelf -s scaffold/main.mes-out
|
|
There are 2 program headers, starting at offset 64
|
|
|
|
Program Headers:
|
|
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
|
|
LOAD 0x000000 0x01000000 0x01000000 0x0557c 0x0557c RWE 0x1
|
|
LOAD 0x000000 0x01000000 0x01000000 0x0557c 0x0557c RWE 0x1
|
|
|
|
Section to Segment mapping:
|
|
Segment Sections...
|
|
00 .text .data
|
|
01 .text .data
|
|
|
|
Linux-4.17 refuses to run this and says
|
|
|
|
Uhuuh, elf segment at 0000000001000000 requested but the memory is mapped already
|
|
Segmentation fault
|
|
|
|
* lib/x86-mes/elf32-header.hex2: Remove unused data program header.
|
|
|
|
2018-06-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: make seed: Update mescc-tools-seed too.
|
|
|
|
guix: mescc-tools: Update to 0.5.
|
|
* guix.scm (mescc-tools): Update to 0.5.
|
|
|
|
Update for mescc-tools-0.5.
|
|
* build-aux/build-mes.sh (HEX2FLAGS): Remove = from flags.
|
|
* build.sh (HEX2FLAGS): Likewise.
|
|
* module/mescc/mescc.scm (hex2->elf): Likewise.
|
|
|
|
2018-06-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Update mes to 0.15.
|
|
* guix.scm (mes): Update to 0.15.
|
|
(mes.git): Likewise.
|
|
|
|
2018-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.15.
|
|
* configure (VERSION): Bump to 0.15.
|
|
|
|
2018-05-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release udpate.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.15: New file.
|
|
|
|
2018-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resurrect non-bootstrap build.
|
|
* configure (parse-opts): Support mixing VAR=VALUE --prefix=PREFIX.
|
|
* guix.scm (mes): Remove setting PREFIX in make-flags.
|
|
* install.sh: Cater for Guix's setting read-only of scripts/diff.scm.
|
|
|
|
2018-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support less-patched tcc/gcc: Add crti and crtn.
|
|
* lib/crt0.c[__MESC__]: Support MesCC.
|
|
* lib/crti.c: New file.
|
|
* lib/crtn.c: New file.
|
|
* build-aux/build-mes-gcc.sh: Build them.
|
|
|
|
mescc: Refactor debug and stub printing.
|
|
* lib/libc.c (__mes_debug): New function. Use it for debug printing
|
|
and in stubs throughout.
|
|
|
|
mescc: Support binutils-2.30: fopen fix.
|
|
* lib/libc+tcc.c (fopen): Set O_APPEND for 'a'.
|
|
|
|
2018-06-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils-2.30.
|
|
* lib/binutils.c (raise, strdup): New function.
|
|
(mbstowcs): New stub.
|
|
* include/fcntl.h (O_APPEND, FD_CLOEXEC): New define.
|
|
|
|
mescc: Support binutils-2.10.1: Stubs set errno to 0.
|
|
|
|
mescc: Silence some stubs.
|
|
* lib/libc+tcc.c: [!NOISY_FLOATS, !NOISY_TIMES]: Silence stubs.
|
|
* lib/gcc.c: Likewise.
|
|
* lib/binutils.c: Likewise.
|
|
|
|
2018-06-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add debug printing: fopen, fwrite.
|
|
* lib/libc+tcc.c (fopen, fwrite)[MESC_DEBUG]: Print debug info.
|
|
|
|
mescc: Support binutils-2.10.1: opentype `r+'.
|
|
* lib/libc+tcc.c (fopen): Support opentype `r+'.
|
|
|
|
2018-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: syscall: return only ever error -1, set errno.
|
|
|
|
2018-06-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support gcc-2.95: Add getpwnam stub.
|
|
* lib/gcc.c (getpwnam): New stub.
|
|
|
|
mescc: Support gcc-3.0: Implement alarm, setitimer.
|
|
|
|
mescc: Support gcc-3.0: Implement atexit.
|
|
|
|
mescc: Support gcc-3.0: Implement dup2, fcntl, getrusage.
|
|
* include/sys/resource.h: New file.
|
|
* lib/linux+gnu.c (fcntl, dup2, getrusage): New function.
|
|
* lib/binutils.c (fcntl): Remove stub.
|
|
|
|
mescc: Support gcc-3.2: Implement getuid, getgid.
|
|
* lib/linux+gnu.c (getuid, getdid): New function.
|
|
* lib/binutils.c (getuid, getdid): Remove stub.
|
|
|
|
mescc: Support gcc-3.2: Reset errno.
|
|
* lib/linux-gcc.c (_sys_call, _sys_call1, _sys_call2, _sys_call3):
|
|
Reset errno.
|
|
* lib/linux-mes.c (__sys_call, __sys_call1, __sys_call2 ,
|
|
__sys_call3): Rename from _*.
|
|
(_sys_call, _sys_call1, _sys_call2, _sys_call3): New function.
|
|
Reset errno.
|
|
|
|
2018-06-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support gcc-3.2: Implement integer strto*.
|
|
* lib/libc+tcc.c (strtoll, strtoul): Call strtoul.
|
|
|
|
mescc: Support gcc-3.2: Add getpid, signal.
|
|
* lib/linux+gnu.c (getpid, signal): New function.
|
|
* include/signal.h: Declare signal.
|
|
* include/unistd.h: Declare getpid.
|
|
* scaffold/tests/95-signal.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
mescc: Support gcc-3.4.0: *printf: Support `%n'.
|
|
* lib/libc+tcc.c (vfprintf, vsprintf): Support `%n'. For Gcc 3.4.0.
|
|
* scaffold/tests/70-printf.c: Test it.
|
|
|
|
mescc: Support gcc-3.4.0: alloca.
|
|
* lib/alloca.c: New file.
|
|
* AUTHORS: Mention it.
|
|
* lib/libc+gnu.c: Add it.
|
|
* include/stdlib.h: Declare alloca.
|
|
|
|
mescc: Support gcc-3.4.0: unsetenv.
|
|
* lib/gcc.c (unsetenv): New function.
|
|
|
|
mescc: Support gcc-3.2: Add __divdi3, __moddi3 stubs.
|
|
* lib/gcc.c (__divdi3, __moddi3): New stubs.
|
|
|
|
mescc: Support gcc-3.2: puts with newline.
|
|
* lib/libc-mini.c (oputs): Rename from puts.
|
|
(puts): New function: Add newline.
|
|
|
|
mescc: Support binutils-2.10.1.
|
|
xx
|
|
|
|
2018-06-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support glibc-1.06.4.
|
|
* lib/glibc.c: New file.
|
|
* lib/libc+gnu.c: Include it.
|
|
|
|
2018-06-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support gcc-2.6.3.
|
|
* TODO
|
|
|
|
2018-05-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support binutils-2.5.1.
|
|
* include/stdint.h: #undef types before typedef'ing them.
|
|
* include/sys/types.h: Likewise.
|
|
* include/string.h (NULL): New define.
|
|
* include/stdio.h (BUFSIZ): New define.
|
|
|
|
2018-06-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tests: Remove tinycc-imported non-free grep test.
|
|
* scaffold/tinycc/46_grep.c: Remove.
|
|
* scaffold/tinycc/46_grep.expect: Remove.
|
|
|
|
2018-05-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Implement fflush, sscanf, vsscanf.
|
|
* lib/libc+tcc.c (vsscanf): New function.
|
|
(sscanf): Use it.
|
|
(fflush): Remove stub notice; we have no buffering.
|
|
* include/stdarg.h: Declare it.
|
|
* scaffold/tests/87-sscanf.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Use arch-dir.
|
|
* lib/x86-mes: Move from stage0.
|
|
* build-aux/build-cc.sh: Create libraries in lib/gcc. Update users.
|
|
* build-aux/build-mes.sh: Create libraries in lib/x86-mes. Update users.
|
|
* build-aux/build-mes-gcc.sh: Rename from build-mlibc.sh. Create
|
|
libraries in lib/x86-mes-gcc. Update callers.
|
|
* build-aux/cc-mes-gcc.sh: Rename from cc-mlibc.sh. Update callers.
|
|
|
|
mlibc: Implement strstr.
|
|
* lib/libc+tcc.c (_memmem, memmem): New function. Import from GNU
|
|
LilyPond.
|
|
(strstr): Implement using memmem.
|
|
* include/string.h (_memmem, memmem): Declare.
|
|
* AUTHORS: Add Han-Wen Nienhuys.
|
|
|
|
mlibc: Implement ftell, fseek.
|
|
* lib/libc+tcc.c (ftell, fseek): Implement.
|
|
|
|
mlibc: Cleanup.
|
|
|
|
2018-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: m4 support: WIP
|
|
|
|
2018-05-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Refactor boot-0 loading.
|
|
* src/mes.c (load_boot): New function.
|
|
(load_env): Use it.
|
|
|
|
2018-05-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Out of the box Geiser support.
|
|
* .dir-locals.el: New file. Out of the box Geiser support for mescc.
|
|
|
|
2018-05-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Posixify interface.
|
|
* module/mescc/compile.mes: Move from language/c99/compiler.mes.
|
|
* module/mescc: New module..
|
|
* module/mescc/M1.scm: Move from mes/M1.mes.
|
|
* module/mescc/as.scm: Likewise.
|
|
* module/mescc/bytevectors.scm: Likewise.
|
|
* module/mescc/mescc.scm: New file.
|
|
* scripts/mescc: Update to new layout and posixy interface.
|
|
* GNUmakefile: Likewise.
|
|
* build-aux/build-cc.sh: Likewise.
|
|
* build-aux/build-guile.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/build-mlibc.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/cc-mlibc.sh: Likewise.
|
|
* build-aux/cc.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* build-aux/test.sh: Likewise.
|
|
* build.sh: Likewise.
|
|
* .gitignore: Update for posixy extensions.
|
|
|
|
2018-05-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add drop, drop-right.
|
|
* module/srfi/srfi-1.mes (drop, drop-right): New function.
|
|
|
|
2018-05-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "fork/exec: debug."
|
|
This reverts commit f0315ac0d9acd66a30dbb192334f443459b7ed16.
|
|
|
|
fork/exec: debug.
|
|
|
|
2018-05-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Support fork, waitpid, execve.
|
|
* stage0/x86.M1 (SYS_fork, SYS_waitpid, SYS_execve): New define.
|
|
* lib/linux-gcc.c (fork, waitpid, execve): New function.
|
|
* lib/linux-mes.c (fork, waitpid, execve): New function.
|
|
* lib/libc.c (wait): New function.
|
|
* include/unistd.h (fork, execve): Declare.
|
|
* include/sys/wait.h (waitpid, wait): Declare.
|
|
* module/mes/posix.mes (search-path, execlp, system*, waitpid): New function.
|
|
* src/posix.c (primitive_fork, execl): New function.
|
|
|
|
2018-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Oops, alignment.
|
|
* module/mes/M1.mes (object->M1): Oops, alignment: only add alignment
|
|
when not aligned.
|
|
|
|
2018-05-26 Jeremiah Orians <jeremiah@pdp10.guru>
|
|
|
|
mescc: Add fopen.
|
|
* lib/libc+tcc.c (fopen)[!POSIX]: Remove stub.
|
|
* lib/libc.c (fopen)[!POSIX]: New function.
|
|
* AUTHORS: Add Jeremiah.
|
|
|
|
2018-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Remove function declarations from M1.
|
|
* module/language/c99/compiler.mes (info->object): Remove function
|
|
declarations.
|
|
|
|
build: Check for mes-seed, tinycc-seed.
|
|
* configure: Check for guile-tools, mes-seed, tinycc-seed. Bugfix:
|
|
Add cwd to load path.
|
|
|
|
2018-05-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: mes: Update to 0.14.
|
|
* guix.scm (mes): Update to 0.14.
|
|
(mes.git): Likewise.
|
|
|
|
2018-05-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Add nyacc-for-mes.
|
|
* guix.scm (nyacc-for-mes): New variable.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.14.
|
|
* configure (VERSION): Bump to 0.14.
|
|
|
|
2018-05-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release udpate.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.14: New file.
|
|
|
|
2018-05-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Handle short struct initializer.
|
|
* module/language/c99/compiler.mes (array-init-element->data): Handle
|
|
short struct initializer.
|
|
|
|
2018-05-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Align global data.
|
|
* module/mes/M1.mes (object->M1): Align globals.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: strncpy.
|
|
* lib/libc+tcc.c (strncpy): New function.
|
|
* scaffold/tests/86-strncpy.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
* build-aux/cc-mlibc.sh (LIBC): Acknowlegde.
|
|
* build-aux/test.sh (LIBC): Export it.
|
|
|
|
2018-05-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: Add stubs: __fixdfdi, __fixxfdi, __fixsfdi.
|
|
* lib/libc+tcc-gcc.c (__fixdfdi, __fixxfdi, __fixsfdi): New stub.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: Add stubs: __floatundixf __fixunsxfdi.
|
|
* lib/libc+tcc-gcc.c (__floatundixf, __fixunsxfdi): New stub.
|
|
|
|
mescc: Tinycc support: workaround for tcc; this breaks: Structured type with char or short on heap.
|
|
* module/language/c99/compiler.mes (int->bv): Always use 32bit byte
|
|
vector.
|
|
|
|
2018-05-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Structured type with char or short on heap.
|
|
* module/language/c99/compiler.mes (int->bv): New function.
|
|
(init->data): Use it. Add parameter. Update callers.
|
|
(array-init->data): Add type parmeter.
|
|
(array-init-element->data): Likewise.
|
|
* module/mes/bytevectors.mes (bytevector-u8-set!): New function.
|
|
* module/mes/bytevectors.scm (mes): Export it.
|
|
* module/mes/as.mes (int->bv8): New function.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix size ERROR message.
|
|
* module/language/c99/compiler.mes (expr->accu): Fix size ERROR message.
|
|
|
|
mescc: Fix itoa.
|
|
* lib/libc.c (itoa): Use function-static buffer. Increase to 12 to
|
|
handle INT_MIN.
|
|
(itoab): Likewise.
|
|
|
|
2018-05-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Export nested struct definitions.
|
|
* module/language/c99/compiler.mes (struct-field): Support nested,
|
|
named and anonymous enums.
|
|
(field->info): New function.
|
|
(type->info): Use it to reap nestedly defined enums, structs, unions.
|
|
(decl->info): Likewise.
|
|
* scaffold/tests/t.c: Test it.
|
|
|
|
mescc: Tinycc support: Unsigned comparison.
|
|
* stage0/x86.M1 (ja32, jae32, jb32, jbe32): New macro.
|
|
* module/mes/as-i386.mes (i386:jump-a, i386:jump-ae, i386:jump-b,
|
|
i386:jump-be): Use it in new function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (test-jump-label->info): Use them to
|
|
support unsigned comparison.
|
|
* scaffold/tests/7s-unsigned-compare.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-05-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Char and short sign extend.
|
|
* module/mes/as-i386.mes (i386:accu*n->local, i386:byte-accu->local+n,
|
|
i386:word-accu->local+n): Remove.
|
|
(i386:byte-accu, i386:signed-byte-accu, i386:word-accu,
|
|
i386:signed-word-accu): New function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (accu->local+n-text): Simplify.
|
|
(mem->accu, convert-accu): New function.
|
|
(expr->accu): Use them.
|
|
* stage0/x86.M1 (mov____%al,0x32(%ebp), mov____%al,0x8(%ebp),
|
|
mov____%ax,0x32(%ebp), mov____%ax,0x8(%ebp), movzbl_0x32(%ebp),%eax,
|
|
movzbl_0x8(%ebp),%eax, movzwl_0x32(%ebp),%eax,
|
|
movzwl_0x8(%ebp),%eax): Deprecate.
|
|
* scaffold/tests/7r-sign-extend.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-05-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: string->number: Support upper case hex.
|
|
* module/mes/scm.mes (string->number): Support upper case hex.
|
|
|
|
2018-05-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Minimal float support.
|
|
* lib/libc+tcc.c (ldexp, strtod, strtof, strtold): New stub.
|
|
* include/math.h (ldexp): Declare.
|
|
* include/stdlib.h (strtod, strtof, strtold): Declare.
|
|
* module/mes/scm.mes (string->number): Minimal float support.
|
|
(inexact->exact): New function.
|
|
* tests/math.test ("string->number"): Test it.
|
|
* module/language/c99/compiler.mes (ast->type): Handle float type.
|
|
(type->info): Likewise.
|
|
(cstring->int): Rename from cstring->number. Update callers.
|
|
(cstring->float): New function.
|
|
(expr->accu): Use it.
|
|
|
|
2018-05-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Switch with heterogeneous body, non-last default.
|
|
* module/language/c99/compiler.mes (switch->info): New function.
|
|
(ast->info): Use it for switch.
|
|
(clause->info, statements->clauses): Remove.
|
|
* scaffold/tests/44-switch.c (default_first): Test it.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Support fold 3.
|
|
* module/srfi/srfi-1.mes (fold): Support fold 3.
|
|
|
|
2018-05-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Compound strings as function argument.
|
|
* module/language/c99/compiler.mes (expr->accu): Handle compound
|
|
strings as function argument.
|
|
* module/mes/M1.mes (object->M1): Call error when string not found.
|
|
* scaffold/tests/t.c: Test it.
|
|
|
|
mescc: Tinycc support: Update some tests.
|
|
|
|
mescc: Tinycc support: Add __lshrdi3, __ashldi3, __ashrdi3.
|
|
* lib/libc+tcc-gcc.c (__lshrdi3, __ashldi3, __ashrdi3): New function.
|
|
|
|
mescc: Tinycc support: Fix sizeof interesting expressions.
|
|
* module/language/c99/compiler.mes (ast->type): Return type for
|
|
sizeof-expr, sizeof-type.
|
|
* scaffold/tests/85-sizeof.c: Test it.
|
|
|
|
2018-05-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Support bit-fields.
|
|
* module/language/c99/compiler.mes (struct->fields): Support bit-fields.
|
|
(ast->type):
|
|
(field-field):
|
|
(field-offset):
|
|
(expr->accu*):
|
|
(expr->accu):
|
|
(struct-field):
|
|
(->size):
|
|
* module/language/c99/info.scm (<bit-field>): New type.
|
|
* stage0/x86.M1 (and____$i32,%eax, and____(%edx),%eax,
|
|
mov____(%edx),%eax, or____(%edx),%eax): New macro.
|
|
* module/mes/as-i386.mes (i386:base-mem->accu): Use
|
|
it.
|
|
(i386:accu-and, i386:accu-and-base-mem, i386:accu-or-base-mem): New
|
|
function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* scaffold/tests/7q-bit-field.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-05-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Anonymous string array.
|
|
* module/language/c99/compiler.mes (global->info): Anonymous string
|
|
array.
|
|
(local->info): Likewise.
|
|
(array-init->string): Support array of char.
|
|
(init-local): Likewise.
|
|
(->size): Fix for array.
|
|
* scaffold/tests/4a-char-array.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
mescc: Tinycc support: sizeof: Bugfix for c-array.
|
|
* module/language/c99/compiler.mes (->size): Bugfix for c-array.
|
|
* scaffold/tests/85-sizeof.c: Test it.
|
|
|
|
2018-05-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Implement ((struct foo*)p)->bar.
|
|
* module/language/c99/compiler.mes (expr->accu*):
|
|
* scaffold/tests/7p-struct-cast.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Run it.
|
|
|
|
2018-05-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Implement (foo--)->bar and permutations.
|
|
* module/language/c99/info.scm (clone): Add post field.
|
|
(make): Handle post parameter.
|
|
* module/language/c99/compiler.mes (clone): Handle post parameter.
|
|
(expr->accu*): Set it to support foo--/foo--.
|
|
(expr->accu): Read it to support foo--/foo--.
|
|
* scaffold/tests/7o-struct-pre-post.c: Test it.
|
|
* build-aux/check-mescc.sh: Run it.
|
|
|
|
2018-05-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: Function addresses.
|
|
|
|
mescc: Tinycc support: Numeric constant expressions.
|
|
|
|
mescc: Tinycc support: Function variables.
|
|
|
|
mescc: Tinycc support: Pointer typedefs.
|
|
|
|
mescc: Tinycc support: Array typedefs.
|
|
|
|
mescc: Tinycc support: Sizeof struct destruct.
|
|
|
|
mescc: Tinycc support: Anonymous union initialization.
|
|
|
|
mescc: Tinycc support: Fix for ?-operator.
|
|
|
|
mescc: Tinycc support: Valued function assign.
|
|
|
|
2018-05-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor type system: WIP
|
|
* module/language/c99/compiler.mes (): WIP
|
|
* module/language/c99/info.scm (): WIP
|
|
|
|
mescc: Refactor type system: struct/enum fields: (name . <type>).
|
|
* module/language/c99/compiler.mes (struct-field): Refactor.
|
|
(field:name): Update.
|
|
(field:pointer): Update.
|
|
(field:size): Update.
|
|
(field:type): Remove.
|
|
(->size): New function.
|
|
|
|
2018-05-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor type system: introduce <array>, <pointer>, <var>.
|
|
* module/language/c99/info.scm (<array>, <pointer>, <var>): New type.
|
|
* module/language/c99/compiler.mes (ast-><type>): New function.
|
|
(ast-type): Use it.
|
|
|
|
2018-05-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor variable declaration.
|
|
* module/language/c99/compiler.mes (decl->info): Refactor.
|
|
|
|
2018-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Handle sizeof expression.
|
|
* module/language/c99/compiler.mes (expr->accu): Handle sizeof
|
|
expression.
|
|
* scaffold/tests/85-sizeof.c: Test it.
|
|
|
|
mescc: Handle struct field lists.
|
|
* module/language/c99/compiler.mes (struct-field): Return list of
|
|
fields. Update callers.
|
|
* scaffold/tests/84-struct-field-list.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Add it.
|
|
|
|
mescc: Support heterogeneous variable init.
|
|
* module/language/c99/compiler.mes (decl->info): Support heterogeneous
|
|
variable init.
|
|
* scaffold/tests/83-heterogenoous-init.c: Test it.
|
|
* build-aux/check-mescc.sh (tests): Add it.
|
|
|
|
mescc: Handle (Skip) global static.
|
|
* module/language/c99/compiler.mes (decl->info): Handle (Skip) global
|
|
static.
|
|
* scaffold/tests/48-global-static.c: Test it.
|
|
|
|
mescc: Support functions in expression.
|
|
* module/language/c99/info.scm (<function>): New type.
|
|
* module/language/c99/compiler.mes (ast->type): Support function.
|
|
(expr->type-size): Likewise.
|
|
(expr->type): Likewise.
|
|
(expr->accu*): Likewise.
|
|
(function->info): Create <function>.
|
|
* module/mes/M1.mes (object->M1): Grok <function>.
|
|
* scaffold/tests/47-function-expression.c: Test it.
|
|
* build-aux/check-mescc.sh: Add it.
|
|
|
|
mescc: Support function-static variables.
|
|
* module/language/c99/info.scm (make): Add statics field.
|
|
(<global>): Add name and function fields. Update callers.
|
|
(global->string): New function.
|
|
* module/mes/M1.mes (object->M1): Update.
|
|
* module/language/c99/compiler.mes (clone): Add statics field.
|
|
(ident->accu): For <global>, use global in text (WAS: name).
|
|
(ident-address->accu): Likewise.
|
|
(ident-address->base): Likewise.
|
|
(decl-local->info): New function.
|
|
(decl->info): New function.
|
|
(ast->info): Use them.
|
|
(function->info): Keep globals in object (WAS: global:value only).
|
|
* scaffold/tests/46-function-static.c: Test it.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add unfold.
|
|
* module/srfi/srfi-1.mes (unfold): New function.
|
|
|
|
mes: Add const.
|
|
* module/mes/scm.mes (const): New function.
|
|
* tests/scm.test ("const"): Test it.
|
|
|
|
2018-05-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add logxor.
|
|
* src/math.c (logxor): New function.
|
|
* tests/math.test ("logxor"): Test it.
|
|
|
|
mes: string-join: Support optional delimiter, support grammar.
|
|
* module/srfi/srfi-13.mes (string-join): Support optional infix and
|
|
grammar.
|
|
* tests/srfi-13.test ("string-join"): Test it.
|
|
|
|
core: reader: Support binary #b101.
|
|
* src/reader.c (reader_read_binary): New function.
|
|
(reader_read_hash): Use it.
|
|
* tests/scm.test ("binary"): Test it.
|
|
|
|
2018-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Support srfi-9-gnu.
|
|
* module/srfi/srfi-9/gnu.mes: New file. Support srfi-9-gnu.
|
|
* tests/srfi-9.test: Test it.
|
|
* tests/srfi-9.test-guile:
|
|
|
|
2018-04-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Have core:eval expand macros.
|
|
* src/mes.c (core:eval-expand): Remove
|
|
(core:eval-expanded): New variable.
|
|
(eval_apply): Have core:eval expand macros; core:eval-expanded evals
|
|
expanded sexps.
|
|
|
|
2018-04-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "core: Remove pmatch-car, pmatch-cdr hack."
|
|
This reverts commit be1e84624ea4a158173f34af923e3c4a3793412a.
|
|
|
|
2018-04-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove pmatch-car, pmatch-cdr hack.
|
|
* src/mes.c (scm_vm_eval_pmatch_car, scm_vm_eval_pmatch_cdr): Remove
|
|
(eval_apply): Remove cell_vm_eval_pmatch_car,
|
|
cell_vm_eval_pmatch_cdr hack.
|
|
(mes_symbols): Remove cell_symbol_pmatch_car, cell_symbol_pmatch_cdr.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
* module/mes/guile.scm (mes): Remove pmatch-car, pmatch-cdr.
|
|
* module/mes/pmatch.scm (ppat): Use plain car, cdr.
|
|
|
|
2018-05-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Do not assume /bin/sh, basename/dirname.
|
|
* install.sh: Do not assume /bin/sh, basename/dirname.
|
|
* scripts/diff.scm: Likewise.
|
|
|
|
build: Build mini-libc and libc+tcc-gcc too.
|
|
* include/getopt.h[__GNUC__ && POSIX]: Only use include_next.
|
|
* lib/libc+tcc-gcc.c[POSIX](longjmp, setjmp, __udivdi3, __umoddi3):
|
|
Remove.
|
|
* build-aux/build-cc.sh: Build mini-libc-gcc and libc+tcc-gcc too.
|
|
* build-aux/build-mlibc.sh: Build mini-libc-gcc too.
|
|
|
|
boot: Bugfix for diff on mes.
|
|
* scripts/diff.scm (diff-files): Rename from diff; Avoids name clash
|
|
with module to allow using -e '(<module>)' hack.
|
|
|
|
build: Install naive diff.
|
|
* scripts/diff.scm: Move from build-aux.
|
|
* install.sh: Install it.
|
|
* build-aux/tests.sh: Update location.
|
|
|
|
2018-05-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Update configure.
|
|
* configure: Update.
|
|
|
|
2018-05-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Remove debugging.
|
|
* module/mes/module.mes (mes-load-module-env): Remove debugging.
|
|
|
|
2018-05-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Use ../mes-seed/refresh.sh, ../tinycc-seed/refresh.sh.
|
|
* GNUmakefile (seed): Use ../mes-seed/refresh.sh, ../tinycc-seed/refresh.sh.
|
|
|
|
2018-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Guile fixes.
|
|
* scripts/mescc: Set GODIR. Add module as expression to Mes
|
|
invokation. Remove explicit (second) call to main.
|
|
|
|
2018-05-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Use diff -ub for tinycc tests.
|
|
* build-aux/diff.scm: Support -b.
|
|
* build-aux/test.sh: Use it.
|
|
|
|
2018-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
check: Also test with i686-unknown-linux-gnu-gcc.
|
|
* check.sh (CC32): New variable.
|
|
* build-aux/test.sh: Also test with CC32.o
|
|
|
|
2018-05-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: configure: Handle VAR=VALUE. Update help.
|
|
* configure: Handle VAR=VALUE. Update help.
|
|
|
|
2018-05-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fixes for Debian and /bin/sh == dash.
|
|
* build.sh: Use separate export stanzas. Use command -v (WAS: type
|
|
-p). Fixes sh, /bin/sh == dash.
|
|
* build-aux/build-cc.sh: Likewise.
|
|
* build-aux/build-guile.sh: Likewise.
|
|
* build-aux/build-mes.sh: Likewise.
|
|
* build-aux/build-mlibc.sh: Likewise.
|
|
* build-aux/cc-mes.sh: Likewise.
|
|
* build-aux/check-mescc.sh: Likewise.
|
|
* check.sh: Likewise.
|
|
* install.sh: Likewise.
|
|
* scripts/mescc: Likewise.
|
|
|
|
build: Rebuild after build from seed.
|
|
* build-aux/build-mes.sh: Rebuild after build from seed.
|
|
|
|
mescc: Use file-name as global prefix.
|
|
* module/mes/M1.mes (object->M1): Add file-name parameter.
|
|
|
|
2018-05-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Fixes for int-max, int-min.
|
|
* src/math.c (greater_p): Fix INT_MAX > 0.
|
|
(less_p): Fix INT_MIN < 0.
|
|
* tests/math.test ("< INT-MIN"): Test it.
|
|
("< INT-MAX"):
|
|
("> INT-MAX"):
|
|
("> INT-MAX 0"):
|
|
("> INT-MIN"):
|
|
* tests/srfi-13.test ("string->number INT-MAX"): Test it.
|
|
("string->number INT-MIN"):
|
|
("number->string INT-MAX"):
|
|
("number->string INT-MIN"):
|
|
* scaffold/tests/60-math.c (test): Test it.
|
|
|
|
mescc: Fix dumping of strings > M1_STRING_MAX.
|
|
* module/mes/M1.mes (object->M1): Skip opening quote.
|
|
|
|
2018-04-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "core: length: Check parameter."
|
|
This reverts commit 1f52ed35c66febcce16e06868e803a39be7eda41.
|
|
|
|
core: length: Check parameter.
|
|
* src/mes.c (length): Check parameter.
|
|
|
|
2018-05-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: enable all tests, use expect count, add tinycc tests.
|
|
* build-aux/check-mescc.sh (tests): Add tinycc tests.
|
|
* build-aux/diff.scm: Naive diff for tinycc tests.
|
|
* build-aux/test.sh: Run diff when .expect found.
|
|
|
|
2018-04-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Simplify, drop make.scm experiment.
|
|
* build.sh: Rewrite.
|
|
* build-aux/build-cc.sh: New file.
|
|
* build-aux/build-mes.sh: New file.
|
|
* build-aux/build-mlibc.sh: New file.
|
|
* build-aux/cc.sh: New file.
|
|
* build-aux/cc-mes.sh: New file.
|
|
* build-aux/cc-mlibc.sh: New file.
|
|
* install.sh: Update.
|
|
* make.scm: Remove.
|
|
* guile/guix/make.scm: Remove.
|
|
* guile/guix/records.scm: Remove.
|
|
* guile/guix/shell-utilsg.scm: Remove.
|
|
|
|
2018-04-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Use length__.
|
|
* src/mes.c (check_formals): Use length__.
|
|
|
|
2018-04-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes-snarf: Support running with Mes.
|
|
* build-aux/mes-snarf.scm: Support running with Mes.
|
|
|
|
mes: Support -C and -L for Guile compatibility.
|
|
* module/mes/boot-0.scm): Support -C and -L for Guile compatibility.
|
|
|
|
mes: Support -e,--main option.
|
|
* module/mes/boot-0.scm: Support -e,--main option.
|
|
|
|
mes: Upgrade Guile module support.
|
|
* module/mes/boot-0.scm (define-module): New macro with minimal Guile support.
|
|
(use-modules): New macro.
|
|
|
|
mes: Add srfi-8.
|
|
* module/srfi/srfi-8.mes: New file.
|
|
|
|
mes: string-join: Handle empty list.
|
|
* module/mes/boot-0.scm (string-join): Handle empty list.
|
|
|
|
mes: Add basename.
|
|
* module/mes/posix.mes (basename): New function.
|
|
|
|
mes: Add delete-duplicates.
|
|
* module/srfi/srfi-1.mes (delete-duplicates): New function.
|
|
|
|
mes: filter-map: Handle two lists.
|
|
* module/srfi/srfi-1.mes (filter-map): Handle two lists, add error
|
|
when called with three or more.
|
|
|
|
mes: Add string-replace.
|
|
* module/srfi/srfi-13.mes (string-replace): New function.
|
|
* tests/srfi-13.test ("string-replace"): Test it.
|
|
|
|
mes: Add string-map.
|
|
* module/srfi/srfi-13.mes (string-map): New function.
|
|
* tests/srfi-13.test ("string-map"): Test it.
|
|
|
|
mes: Add string-trim, string-trim-right, string-trim-both.
|
|
* module/srfi/srfi-13.mes (string-trim, string-trimn-right,
|
|
string-trim-both): New function.
|
|
* tests/srfi-13.test ("string-trim"): Test it.
|
|
("string-trim-right"):
|
|
("string-trim-both"):
|
|
|
|
mes: Add string-contains.
|
|
* module/srfi/srfi-13.mes (string-contains): New function.
|
|
* tests/srfi-13.test ("string-contains"): Test it.
|
|
("string-contains not"):
|
|
|
|
mes: string-drop: Error on negative droppings.
|
|
* module/srfi/srfi-13.mes (string-drop, string-take,
|
|
string-drop-right): Error on negative droppings.
|
|
* tests/srfi-13.test ("string-drop"): Test it.
|
|
|
|
core: reverse!: Handle empty list.
|
|
* src/mes.c (reverse_x_): Handle empty list.
|
|
* tests/scm.test ("reverse! ()"): Test it.
|
|
|
|
core: Add string ports.
|
|
* src/mes.c (type_t): Add TPORT.
|
|
(scm_type_port): New symbol.
|
|
(PORT): New macro.
|
|
(MAKE_STRING_PORT): New macro.
|
|
(eval_apply): Handle string ports in primitive-load.
|
|
(mes_symbols): Add scm_type_port.
|
|
* src/posix.c (peekchar): Handle string ports.
|
|
(readchar): New function. Replace all getchar callers.
|
|
(unreadchar): Likewise.
|
|
* module/mes/type-0 (port?): New function.
|
|
* module/mes/guile.mes (with-input-from-file): Rewrite.
|
|
(open-input-string): Remove.
|
|
* module/mes/guile.scm (guile): Update cell types.
|
|
* src/gc.c (gc_loop): Support TPORT.
|
|
* src/lib.c (display_helper): Support TPORT.
|
|
* module/mes/display.mes (display): Support TPORT.
|
|
|
|
mes: assq, assoc-ref: Handle non-A-LISTs.
|
|
* src/mes.c (assq): Return #f if A-LIST is not a list.
|
|
* module/mes/scm.mes (assoc): Likewise.
|
|
|
|
core: Use single definition rule for cell-type.
|
|
* src/mes.c (scm_type_char, scm_type_closure, scm_type_continuation,
|
|
scm_type_function, scm_type_keyword, scm_type_macro,
|
|
scm_type_number, scm_type_pair, scm_type_ref, scm_type_special,
|
|
scm_type_string, scm_type_symbol, scm_type_values,
|
|
scm_type_variable, scm_type_vector): New symbol.
|
|
(mes_symbols): Add them.
|
|
* module/mes/type-0.mes (<cell:char>, <cell:char>, <cell:closure>,
|
|
<cell:continuation>, <cell:function>, <cell:keyword>, <cell:macro>,
|
|
<cell:number>, <cell:pair>, <cell:ref>, <cell:special>,
|
|
<cell:string>, <cell:symbol>, <cell:values>, <cell:variable>,
|
|
<cell:vector>, <cell:broken-heart): Remove.
|
|
* module/mes/boot-0.scm: Likewise.
|
|
* module/mes/boot-01.scm: Likewise.
|
|
* module/mes/boot-02.scm: Likewise.
|
|
* scaffold/boot/20-define-quote.scm: Likewise.
|
|
* scaffold/boot/37-closure-lambda.scm: Likewise.
|
|
* scaffold/boot/38-simple-format.scm: Likewise.
|
|
* scaffold/boot/4c-quasiquote.scm:
|
|
* scaffold/boot/4e-string-split.scm: Likewise.
|
|
* scaffold/boot/51-module.scm: Likewise.
|
|
* scaffold/boot/52-define-module.scm: Likewise.
|
|
* scaffold/boot/60-let-syntax.scm: Likewise.
|
|
* module/mes/guile.scm: Add some of them.
|
|
|
|
core: Fix gc_up_arena for x86_64.
|
|
* src/gc.c (gc_): Fix gc_up_arena for x86_64.
|
|
|
|
core: Fix compile warnings.
|
|
* src/posix.c: Include sys/stat.h.
|
|
(chmod): Return cell_unspecified.
|
|
* include/stdlib.h: Typo.
|
|
|
|
mlibc: Declare chmod.
|
|
* include/sys/stat.h (mode_t, chmod): Declare.
|
|
|
|
2018-04-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Update mes to 0.13.
|
|
* guix.scm (mes): Update to 0.13.
|
|
(mes.git): Likewise.
|
|
|
|
2018-04-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.13.
|
|
* configure (VERSION): Bump to 0.13.
|
|
|
|
2018-04-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release udpate.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.13: New file.
|
|
|
|
2018-04-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Merge mescc.mes and mescc.scm.
|
|
* scripts/mescc: New file.
|
|
* scripts/mescc.mes: Remove.
|
|
* guile/mescc.scm: Remove.
|
|
* guile/guix/make.scm (CC.mescc): Update.
|
|
* install.sh (TINYCC_SEED): Update.
|
|
* make.scm (bootstrap?): Update.
|
|
* test.sh (MES): Update.
|
|
* check-boot.sh: Use $GUILE to allow running without Guile.
|
|
|
|
core: Add chmod.
|
|
* src/posix.c (chmod_): New function.
|
|
|
|
2018-04-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: jam-scaper/garbage-collector: Use only one arena.
|
|
* src/mes.c (ARENA_SIZE): Lower to 200000.
|
|
(MES_MAX_ARENA): Bump to 300000000.
|
|
(JAM_SIZE): New global.
|
|
(make_cell__): Remove ARENA assert.
|
|
(gc_init_cells): Alloc ARENA_SIZE + JAM_SIZE.
|
|
(mes_symbols): Do not init news.
|
|
(gc_init_news): Remove.
|
|
(main): Initialize JAM_SIZE, consider MES_JAM environment variable.
|
|
* src/gc.c (gc_init_news): Move from mes.c. Start at g_free.
|
|
(gc_flip): Do not flip to g_news, instead copy g_news to cells.
|
|
(gc_up_arena): Realloc to ARENA_SIZE + JAM_SIZE.
|
|
(gc_): Init news. Only up arena if g_news is safe.
|
|
|
|
2018-04-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Create less garbage when dumping M1.
|
|
* module/mes/M1.mes (display-join): New function.
|
|
* (object->M1): Use it.
|
|
|
|
core: last_pair: Move to core.
|
|
* src/lib.c (last_pair): New function.
|
|
* module/mes/scm.mes (last-pair): Remove.
|
|
|
|
core: equal2_p: Add short-circuit and eliminate tail call.
|
|
* src/lib.c (equal2_p): Add short-circuit and eliminate tail call.
|
|
|
|
2018-04-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Use display for dumping M1.
|
|
* module/mes/M1.mes (object->M1): Use display for dumping M1.
|
|
|
|
2018-04-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Guile-like command-line interface.
|
|
* module/mes/boot-0.scm (tty?): Guile-like command-line interface.
|
|
* scripts/repl.mes: Remove.
|
|
* scripts/mescc.mes: Update.
|
|
* tests/*.test: Update scripts.
|
|
* module/mes/repl.mes (repl): Add ,quit.
|
|
|
|
mes: getopt-long: Support stop-at-first-non-option.
|
|
* module/mes/getopt-long.scm (process-options): Fix parsing `-'. Add
|
|
parameter: stop-at-first-non-option.
|
|
(getopt-long): Add keyword parameter #:stop-at-first-non-option.
|
|
|
|
mes: Add isatty?.
|
|
* src/posix.c (isatty_p): New function.
|
|
|
|
mlibc: Add isatty.
|
|
* lib/libc.c (isatty): New function.
|
|
* include/unistd.h: Declare it.
|
|
|
|
mlibc: Add ioctl.
|
|
* stage0/x86.M1 (SYS_ioctl): New define.
|
|
* lib/linux-mes.c (ioctl): New syscall.
|
|
* lib/linux-gcc.c (ioctl): New syscall.
|
|
* include/sys/ioctl.h: New file.
|
|
|
|
2018-04-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Compile minimal mes with MES_MINI=1.
|
|
* src/mes.c: Compile minimal mes with MES_MINI=1.
|
|
|
|
2018-04-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core; reader_read_string: Support escaped characters.
|
|
* src/reader.c (reader_read_string): Support escaped characters.
|
|
|
|
2018-04-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "mescc: Use core:write."
|
|
This reverts commit d88e31dfec3158a830c32f9f732b052cfccac6eb.
|
|
|
|
2018-04-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Use core:write.
|
|
* scripts/mescc.mes (source->ast): Use core:write.
|
|
|
|
2018-04-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: display: Display escaped characters.
|
|
* module/mes/display.mes (display): Display escaped characters.
|
|
|
|
2018-04-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: display_helper: Display escaped characters.
|
|
* src/lib.c (display_helper): Display escaped characters.
|
|
|
|
mes: Resurrect macros in repl.
|
|
* src/mes.c (scm_vm_begin_expand): Rename to core:begin-expand.
|
|
(eval_apply): Expose it.
|
|
* module/mes/repl.mes (repl): Use it to resurrect macros.
|
|
|
|
core: Fixes for garbage collector/jam scraper.
|
|
* src/gc.c (gc_loop): Do not relocate car of TCLOSURE, TCONTINUATION.
|
|
Check for TBROKEN_HEART.
|
|
* src/mes.c (make_closure_): Set car to 0.
|
|
(check_apply): Check for TBROKEN_HEART. Fixes reporting artificial
|
|
out-of-memory error.
|
|
(eval_apply): Likewise.
|
|
* src/vector.c (vector_entry): Only copy TCHAR and TNUMBER.
|
|
|
|
core: drop global_p from variable.
|
|
* src/mes (struct scm): Remove field global_p.
|
|
(VARIABLE_GLOBAL_P): Remove.
|
|
(make_variable_): Remove global_p parameter. Update callers.
|
|
* src/lib.c (display_helper): Drop VARIABLE_GLOBAL_P support.
|
|
|
|
core: Reenable full printing of lists.
|
|
* src/lib.c (display_helper): Reenable full printing of lists.
|
|
|
|
2018-04-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: append2, append_reverse, reverse, reverse!: Create less garbage.
|
|
* src/mes.c (append_reverse): New function.
|
|
(reverse_x_): New function.
|
|
(append2): Use them to create less garbage.
|
|
* module/mes/scm.mes (reverse): Create less garbage.
|
|
* module/srfi/srfi-1.mes (reverse!): Rewrite, use core:reverse!.
|
|
(append-reverse): Remove.
|
|
|
|
core: vector_to_list: Create less garbage.
|
|
* src/vector.c (vector_to_list): Create less garbage.
|
|
|
|
core: Optimize vector-map, vector-for-each.
|
|
* module/srfi/srfi-43.mes (vector-map): Optimize.
|
|
(vector-for-each): Optimize.
|
|
* tests/srfi-43.test: New file.
|
|
* tests/srfi-43.test-guile: New file.
|
|
* check.sh (tests): Add it.
|
|
* make.scm (mes-tests): Add it.
|
|
|
|
2018-04-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "build-32.sh"
|
|
This reverts commit ace8b6f1b52de58c9ab404ed13234f397dac6bdc.
|
|
|
|
2018-04-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build-32.sh
|
|
|
|
2018-04-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Cleanup make_cell, remove tmp cells.
|
|
* src/mes.c (make_cell__): New function.
|
|
(make_cell_): Use it.
|
|
(length__): New function.
|
|
(tmp, tmp_num, tmp_num2, tmp_num_, tmp_num2_, make_tmps): Remove.
|
|
Update callers to use make_cell__ directly.
|
|
* src/vector.c (make_vector__): New function.
|
|
(make_vector_): Use it.
|
|
|
|
2018-04-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "mlibc: Use memmove in realloc."
|
|
This reverts commit f47a21e3cb4814c4a30d10ff59e5c947441725e9.
|
|
|
|
2018-04-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: Use memmove in realloc.
|
|
* src/libc.c (memmove): New function.
|
|
(realloc): Use it.
|
|
* src/libc+tcc.c (memmove): Remove.
|
|
|
|
mes: Add char-whitespace?
|
|
* module/srfi/srfi-14.mes (char-whitespace?): New function.
|
|
|
|
2018-04-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Move base-0.mes int boot-0.scm.
|
|
* module/mes/boot-02.scm: New file, rename from boot-0.scm.
|
|
* module/mes/boot-0.scm: Add base-0.mes.
|
|
* module/mes/base-0.mes: Remove.
|
|
|
|
2018-04-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Unify mlibc-gcc and mes builds.
|
|
* make.scm (bin.gcc): Remove stray slash.
|
|
* src/mes.c: Unify mlibc-gcc and mes builds.
|
|
(gc_init_cells):
|
|
(gc_init_news):
|
|
(bload_env):
|
|
* src/reader.c (reader_read_character):
|
|
(reader_read_string):
|
|
|
|
2018-04-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove local variables from gc.
|
|
* src/gc.c (gl_loop): Remove local variables.
|
|
|
|
core: Listen to MES_SAFETY environment variable.
|
|
|
|
core: Remove local variables from eval/apply.
|
|
* src/mes.c (eval_apply): Move all variables to global scope.
|
|
|
|
core: Remove MesCC reminder.
|
|
|
|
2018-04-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Update default memory settings.
|
|
* src/mes.c (MAX_ARENA_SIZE)[__MESC__]: Set to maximum 172100000.
|
|
|
|
2018-04-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Tune debug printing.
|
|
* src/mes.c: Tune debug printing.
|
|
* src/gc.c: Likewise.
|
|
* module/mes/guile.mes: Likewise.
|
|
* HACKING: Describe it.
|
|
|
|
core: Rewrite reader to create less garbage.
|
|
* src/reader.c (reader_read_line_comment): Rename from read_line_comment.
|
|
(reader_identifier_p): New function.
|
|
(reader_end_of_word_p): New function.
|
|
(reader_read_identifier_or_number): New function.
|
|
(reader_read_sexp_): Rewrite. Update callers.
|
|
(reader_read_list): Rewrite.
|
|
(reader_lookup_): Remove.
|
|
|
|
2018-04-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add isspace.
|
|
* include/ctype.h (isspace): Declare.
|
|
* lib/libc.c (isspace): New function.
|
|
|
|
2018-04-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Rewrite string reader.
|
|
* src/reader.c (reader_read_string): Rewrite, create much less
|
|
garbage.
|
|
(append_char): Remove.
|
|
|
|
install: Fix prefix confusion.
|
|
* install.sh: Substitute @PREFIX@ with MES_PREFIX.
|
|
* scripts/mescc.mes: Grok PREFIX as MES_PREFIX.
|
|
|
|
guix.scm: Update mes to 0.12.
|
|
* guix.scm (mes, mes.git): Update to 0.12.
|
|
|
|
2018-04-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.12.
|
|
* configure (VERSION): Bump to 0.12.
|
|
|
|
2017-11-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release udpate.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.12: New file.
|
|
* throughout: (janneke) coming out.
|
|
|
|
2018-04-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix.scm: Update mescc-tools to 0.4.
|
|
* guix.scm (mescc-tools): Update to 0.4.
|
|
|
|
core: Workaround for mescc.
|
|
* src/mes.c (eval_apply)[__MESC__]: Add reminder for macro_p, global_p.
|
|
|
|
2018-04-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Remove scripts/mes symlink.
|
|
|
|
mes: Add string-fold, string-fold-right.
|
|
* module/srfi/srfi-13.mes (string-fold, string-fold-right): New
|
|
function.
|
|
* tests/srfi-13.test ("string-fold"): Test it.
|
|
("string-fold-right"): Test it.
|
|
|
|
mes: Allow tick as part of identifier.
|
|
* src/reader.c (reader_read_sexp_): Do not treat tick as special.
|
|
|
|
mescc: Remove debugging.
|
|
* module/language/c99/compiler.mes: Remove debugging.
|
|
|
|
mescc: No comments in M1 when running on Mes.
|
|
* module/language/c99/compiler.mes (ast-comment): If mes?, return nil.
|
|
|
|
mescc: Trace globals.
|
|
* module/language/c99/compiler.mes (mescc:trace): New function. Use
|
|
throughout.
|
|
|
|
Revert "core: Add member."
|
|
This reverts commit 921686a0a3b06281f1804d04e6d4a0344dda507a.
|
|
|
|
core: Add member.
|
|
* src/lib.c (member): New function.
|
|
* module/mes/scm.mes (member): Remove.
|
|
|
|
mescc: trace M1 dumping.
|
|
* module/language/c99/compiler.mes (info->object): Add tracing.
|
|
* module/mes/M1.mes (object->M1): Add tracing.
|
|
|
|
Revert "guix: Update nyacc to 0.83.31."
|
|
This reverts commit 624b85d6b1dd876542f7ad342d6beb8a92408397.
|
|
|
|
guix: Update nyacc to 0.83.31.
|
|
* guix.scm (nyacc): Update to 0.83.31.
|
|
|
|
mescc: Have Nyacc trace functions while parsing.
|
|
* guile/mescc.scm (main): Set NYACC_TRACE.
|
|
* scripts/mescc.mes (main): Set NYACC_TRACE.
|
|
|
|
mes: Add setenv.
|
|
* src/posix.c (setenv_): New function.
|
|
* tests/base.test ("setenv, getenv"): Test it.
|
|
|
|
core: Add setenv.
|
|
* lib/libc.c (setenv): New function.
|
|
* include/stdlib.h (setenv): Declare it.
|
|
* scaffold/tests/61-array.c (test): Test it.
|
|
|
|
2018-04-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Add manifest.
|
|
* build-aux/manifest.scm: New file.
|
|
|
|
guix: Update Nyacc to 0.80.42.
|
|
* guix.scm (nyacc): Update to 0.80.42.
|
|
|
|
2018-04-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Also print `parsing: input' when using -E.
|
|
* module/language/c99/compiler.mes (c99-input->ast): Print `parsing:
|
|
input'.
|
|
(c99-input->info): Remove that.
|
|
|
|
2018-04-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Cleanup reader.
|
|
* src/reader.c (reader_read_sexp_): Rename from reader_read_word_. Cleanup.
|
|
(read_hash): Cleanup.
|
|
|
|
mes: Cleanup formatting.
|
|
|
|
core: Add equal2?.
|
|
* src/lib.c (equal2_p): New function.
|
|
* module/mes/base.mes (equal2?): Remove.
|
|
|
|
core: Add memq.
|
|
* lib/mes.c (memq): New function.
|
|
* module/mes/scm.mes (memq): Remove.
|
|
|
|
mes: Remove duplicate memq.
|
|
* module/mes/base-0.mes (memq): Remove.
|
|
|
|
2017-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Single environment lookup for variables, SICP chapter 3.
|
|
* src/mes.c (t): Add TVARIABLE.
|
|
(scm_vm_eval_deref): New vm special.
|
|
(make_vref_): New internal function.
|
|
(eval_apply): WIP: replace symbols with their variable reference.
|
|
* src/gc.c (gc_loop): Handle TVARIABLE.
|
|
* src/lib.c (display_helper): Handle TVARIABLE.
|
|
* module/mes/type-0.mes (<cell:variable>): New variable.
|
|
(cell:type-alist): Add it.
|
|
(variable?): New function.
|
|
* module/mes/display.mes (display): Handle <variable>.
|
|
|
|
2018-04-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove override hook for read-input-file.
|
|
* src/reader.c (read_input_file_env): Remove override hook for
|
|
read-input-file.
|
|
|
|
2018-03-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Iterative recursive macro expand.
|
|
* src/mes.c (eval_apply): Iterative recursive macro expand.
|
|
* src/posix.c (set_current_input_port): Return previous port.
|
|
* module/mes/catch.mes (%eh): Use core:display.
|
|
* module/mes/display.mes (display-cut, display-cut2): Move macro
|
|
definitions to toplevel.
|
|
|
|
2018-04-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: records.scm: update from upstream.
|
|
* guile/guix/records.scm: Update from upstream.
|
|
|
|
2018-01-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add incremental test suite.
|
|
* check-boot.sh: New file.
|
|
* check.sh: Invoke it.
|
|
* module/srfi/srfi-16.mes: New file.
|
|
* scaffold/boot/00-zero.scm: New file.
|
|
* scaffold/boot/01-true.scm: New file.
|
|
* scaffold/boot/02-symbol.scm: New file.
|
|
* scaffold/boot/03-string.scm: New file.
|
|
* scaffold/boot/04-cons.scm: New file.
|
|
* scaffold/boot/04-quote.scm: New file.
|
|
* scaffold/boot/05-list.scm: New file.
|
|
* scaffold/boot/06-tick.scm: New file.
|
|
* scaffold/boot/07-if.scm: New file.
|
|
* scaffold/boot/08-if-if.scm: New file.
|
|
* scaffold/boot/10-cons.scm: New file.
|
|
* scaffold/boot/11-list.scm: New file.
|
|
* scaffold/boot/12-car.scm: New file.
|
|
* scaffold/boot/13-cdr.scm: New file.
|
|
* scaffold/boot/14-exit.scm: New file.
|
|
* scaffold/boot/15-display.scm: New file.
|
|
* scaffold/boot/16-if-eq-quote.scm: New file.
|
|
* scaffold/boot/20-define-quote.scm: New file.
|
|
* scaffold/boot/20-define-quoted.scm: New file.
|
|
* scaffold/boot/20-define.scm: New file.
|
|
* scaffold/boot/21-define-procedure.scm: New file.
|
|
* scaffold/boot/22-define-procedure-2.scm: New file.
|
|
* scaffold/boot/23-begin.scm: New file.
|
|
* scaffold/boot/24-begin-define.scm: New file.
|
|
* scaffold/boot/25-begin-define-2.scm: New file.
|
|
* scaffold/boot/26-begin-define-later.scm: New file.
|
|
* scaffold/boot/26-define-define.scm: New file.
|
|
* scaffold/boot/27-lambda-define.scm: New file.
|
|
* scaffold/boot/28-define-define.scm: New file.
|
|
* scaffold/boot/29-lambda-define.scm: New file.
|
|
* scaffold/boot/2a-lambda-lambda.scm: New file.
|
|
* scaffold/boot/2b-define-lambda.scm: New file.
|
|
* scaffold/boot/2c-define-lambda-recurse.scm: New file.
|
|
* scaffold/boot/2d-define-lambda-set.scm: New file.
|
|
* scaffold/boot/2e-define-second.scm: New file.
|
|
* scaffold/boot/30-capture.scm: New file.
|
|
* scaffold/boot/31-capture-define.scm: New file.
|
|
* scaffold/boot/32-capture-modify-close.scm: New file.
|
|
* scaffold/boot/33-procedure-override-close.scm: New file.
|
|
* scaffold/boot/34-cdr-override-close.scm: New file.
|
|
* scaffold/boot/35-closure-modify.scm: New file.
|
|
* scaffold/boot/36-closure-override.scm: New file.
|
|
* scaffold/boot/37-closure-lambda.scm: New file.
|
|
* scaffold/boot/38-simple-format.scm: New file.
|
|
* scaffold/boot/40-define-macro.scm: New file.
|
|
* scaffold/boot/41-when.scm: New file.
|
|
* scaffold/boot/42-if-when.scm: New file.
|
|
* scaffold/boot/43-or.scm: New file.
|
|
* scaffold/boot/44-or-if.scm: New file.
|
|
* scaffold/boot/45-pass-if.scm: New file.
|
|
* scaffold/boot/46-report.scm: New file.
|
|
* scaffold/boot/47-pass-if-eq.scm: New file.
|
|
* scaffold/boot/48-let.scm: New file.
|
|
* scaffold/boot/49-macro-override.scm: New file.
|
|
* scaffold/boot/4a-define-macro-define-macro.scm: New file.
|
|
* scaffold/boot/4b-define-macro-define.scm: New file.
|
|
* scaffold/boot/4c-quasiquote.scm: New file.
|
|
* scaffold/boot/50-primitive-load.scm: New file.
|
|
* scaffold/boot/51-module.scm: New file.
|
|
* scaffold/boot/52-define-module.scm: New file.
|
|
* scaffold/boot/53-closure-display.scm: New file.
|
|
* scaffold/boot/60-let-syntax.scm: New file.
|
|
* scaffold/boot/closure.scm: New file.
|
|
* scaffold/boot/compose.scm: New file.
|
|
* scaffold/boot/data/bar.mes: New file.
|
|
* scaffold/boot/data/i.scm: New file.
|
|
* scaffold/boot/data/module.mes: New file.
|
|
* scaffold/boot/foo.scm: New file.
|
|
* scaffold/boot/lambda-star.scm: New file.
|
|
* scaffold/boot/vector.scm: New file.
|
|
* tests/boot.test: New file.
|
|
* tests/boot.test-guile: New file.
|
|
* tests/srfi-16.test: New file.
|
|
* tests/srfi-16.test-guile: New file.
|
|
|
|
2018-02-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Boot from MES_BOOT, boot-0.scm.
|
|
* src/mes.c (load_env): Softcode loading of boot-0.scm from
|
|
environment variabl MES_BOOT.
|
|
* module/mes/boot-00.scm: New file.
|
|
* module/mes/boot-01.scm: New file.
|
|
* module/mes/boot-0.scm: Rename from read-0.mes.
|
|
* module/mes/module.mes: New file.
|
|
|
|
2018-03-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Add -fno-stack-protector for debian.
|
|
* guile/guix/make.scm (%C32-FLAGS): Add -fno-stack-protector.
|
|
|
|
2018-01-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: reader: reader_ prefix; read/write char/string in core.
|
|
* src/posix.c (peek_char, read_char, read_string, unread_char, write_char): New function.
|
|
* src/reader.c: Use reader_ prefix.
|
|
|
|
r# bootstrappable.org
|
|
|
|
2018-01-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: More informative error reporting for number asserts.
|
|
* src/math.c (assert_number): New function. Update assert () users.
|
|
|
|
2018-01-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guile: Resurrect eval/apply in scheme.
|
|
* guile/mes.mes (eval-expand): Short-circuit make-closure.
|
|
* guile/mes.scm (environment): Update.
|
|
|
|
2018-02-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: simple-format: support ~A, ~S.
|
|
* module/mes/display.scm (simple-format): support ~A, ~S.
|
|
|
|
2018-01-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Display and write string and char compliance.
|
|
* src/lib.c (display_helper): Display and write char and string compliance.
|
|
|
|
2018-02-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: display: Support keyword.
|
|
* src/lib.c (display_helper): Support keyword.
|
|
|
|
2018-01-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: display: vector.
|
|
* src/lib.c (display_helper): Display vector.
|
|
|
|
2018-01-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: display: closure names.
|
|
* src/lib.c (display_helper): Display closure names.
|
|
|
|
2018-01-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Rename make-vector to core:make-vector.
|
|
* src/vector.c (make_vector_): Rename from make_vector. Update callers.
|
|
|
|
mes: Better error reporting.
|
|
* src/lib.c (write_error_): New function.
|
|
* src/mes.c (error, check_apply): Use it.
|
|
(append2, set_car_x): Upon error, call error (WAS: assert).
|
|
|
|
Revert "mes: un-defmacro optargs. WIP"
|
|
This reverts commit 5da527c540dc0e1481a010899233b4e806fe37da.
|
|
|
|
2018-01-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: un-defmacro optargs. WIP
|
|
|
|
mes: Test optargs without pmatch.
|
|
* tests/optargs.test: Remove pmatch.
|
|
|
|
mes: Add define-macro*.
|
|
* module/mes/optargs.mes (define-macro*): New macro.
|
|
|
|
2018-01-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Evaluate test of COND only once.
|
|
* module/mes/base-0.mes (cond): Evaluate test of COND only once.
|
|
Fixes cond tests with side effects (Nyacc).
|
|
* tests/base.test ("cond side effect"): Test it.
|
|
|
|
2018-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: #\page is whitespace.
|
|
* module/srfi/srfi-14.mes (char-set:whitespace): Add #\page.
|
|
|
|
mes: #<eof> is not a character.
|
|
* module/mes/display.mes (display):
|
|
* module/mes/type-0.mes (char?): -1 is not a character.
|
|
(eof-object?): New function.
|
|
* tests/base.test ("#<eof>"): Test it.
|
|
* module/mes/scm.mes (eof-object?): Remove.
|
|
(unread-char): Return character (WAS: integer).
|
|
|
|
mes: open-input-string: peek fix.
|
|
* module/mes/guile.mes (open-input-string): Return actual tell.
|
|
* tests/guile.test ("open-input-string peek"): Test it.
|
|
|
|
mes: with-input-from-string: peek fix.
|
|
* module/mes/guile.mes (with-input-from-string): Return actual tell.
|
|
* tests/guile.test ("with-input-from-string peek"): Test it.
|
|
|
|
2018-01-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Resurrect guile-1.8.
|
|
* guile/mescc.scm: Use GUILE_LOAD_COMPILED_PATH instead of -C.
|
|
[guile]: Include syncase.
|
|
* module/language/c99/compiler.scm [guile]: Stub pretty-print-c99.
|
|
Set stack to unlimited.
|
|
* module/language/c99/info.scm [guile]: Include (ice-9 syncase).
|
|
* module/mes/as-i386.scm [guile]: Likewise.
|
|
* module/mes/guile.scm [guile]: Add compose, export it.
|
|
|
|
mes: Add string-drop-right.
|
|
* module/srfi/srfi-13.mes (string-drop-right): New function.
|
|
|
|
2018-01-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: cleanups.
|
|
* guile/mescc.scm: Cleanups.
|
|
* module/language/c99/compiler.mes:
|
|
* module/language/c99/compiler.scm:
|
|
* module/language/c99/info.mes:
|
|
* module/language/c99/info.scm:
|
|
* module/mes/getopt-long.mes:
|
|
* module/mes/optargs.mes:
|
|
* module/mes/optargs.scm:
|
|
* module/mes/repl.mes:
|
|
* module/mes/scm.mes:
|
|
* scripts/mescc.mes:
|
|
|
|
nyacc cpp-debugging, tests
|
|
|
|
mes: getopt-long: fix multi-opt and unclumping.
|
|
* module/mes/getopt-long.scm (remove-if-not): Remove.
|
|
(option-spec): Add value field. Update users.
|
|
(expand-clumped-singles): Simplify, fix.
|
|
(process-options): To get an option's value, use value instead of
|
|
value-policy. Fixes multi-opt.
|
|
* tests/getopt-long.test: New file.
|
|
* make.scm (mes-tests): Add it.
|
|
* check.sh (tests): Add it.
|
|
* tests/getopt-long.test-guile: New symlink.
|
|
|
|
guix: back to 0.80.41 for tinycc.
|
|
guix.scm (nyacc): New variable.
|
|
|
|
2018-01-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Support equal? with arbitrary number of arguments.
|
|
* module/mes/base.mes (equal2?): Rename from equal?.
|
|
(equal?): Implement.
|
|
|
|
mescc: Use records for mes too.
|
|
* module/language/c99/info.mes: Use info.scm records, remove
|
|
simplistic list data structures.
|
|
|
|
mescc.mes: Use write for preprocessing output.
|
|
* scripts/mescc.mes (source->ast): Use core:write instead of pretty-print.
|
|
|
|
mes: Add write, core:write.
|
|
* src/lib.c (display_helper, fdisplay_): Add parameter, write_p.
|
|
Update callers. When write_p: write quoted strings.
|
|
(write_, write_port_): New function.
|
|
* module/mes/read-0.mes (write): New function.
|
|
|
|
mes: gc_safety.
|
|
|
|
check-mescc.sh: run with mes.
|
|
* src/build.sh:
|
|
* src/check-mescc.sh: Run with mes.
|
|
|
|
mes: Add string-null?.
|
|
* module/srfi/srfi-13.mes (string-null?): New function.
|
|
|
|
mes: Add dirname.
|
|
* module/mes/guile.mes (dirname): New function.
|
|
|
|
2018-01-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Add syntax tests.
|
|
* tests/syntax.test: New file.
|
|
* tests/syntax.test-guile: New file.
|
|
|
|
fixup: 1b0696f9 (Jan Nieuwenhuizen 2018-01-01 15:53:13 +0100 40) , (lambda ()
|
|
|
|
2017-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "mes: use array-based stack. WIP: will not survice gc."
|
|
This reverts commit 7fb653f68c2dbf8bc83cce4bd138439c600b538f.
|
|
|
|
2017-12-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: use array-based stack. WIP: will not survice gc.
|
|
* src/mes.c (STACK_SIZE)[MES_ARRAY_STACK]: New variable.
|
|
(g_stack_array): New variable.
|
|
(g_stack): Change type to SCM*.
|
|
* (gc_push_frame)[MES_ARRAY_STACK]: Use g_stack_array, g_stack.
|
|
(gc_peek_frame): Likewise.
|
|
(gc_pop_frame): Likewise.
|
|
* src/gc.c (gc_check): Likewise.
|
|
(gc): Likewise.
|
|
|
|
2017-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Fix assq to improve performance.
|
|
* src/mes.c (assq): Special case eq_p to improve performance.
|
|
|
|
2017-12-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Reimplement records.
|
|
* module/srfi/srfi-9.mes (define-record-type): New macro.
|
|
* AUTHORS: Update.
|
|
* module/mes/record-0.mes: Remove.
|
|
* module/mes/record.mes: Remove.
|
|
* module/srfi/srfi-9-psyntax.mes: Remove.
|
|
* module/srfi/srfi-9.scm: Remove.
|
|
* make.scm: Remove them.
|
|
|
|
mes: Fix display of closure.
|
|
* module/mes/display.mes (display): Drop extra ( at start of *closure*, *circ*.
|
|
* src/lib.c (display_helper): Likewise.
|
|
|
|
2017-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Resurrect define, define-macro in C core.
|
|
* make.scm (bin.gcc, bin.mescc): Use MES_C_READER=1.
|
|
* src/mes.c (scm_symbol_define, scm_symbol_define_macro): New symbol.
|
|
(scm_vm_eval_define): New special.
|
|
(scm_symbol_c_define): New symbol.
|
|
(MAKE_MACRO): New define.
|
|
(eval_apply)[MES_C_DEFINE]: Handle define, define-macro.
|
|
(mes_symbols): Define %c-define for use in read-0.mes.
|
|
* module/mes/read-0.mes: Do not implement full scheme define if %c-define.
|
|
* module/mes/quasiquote.mes (sexp:define, env:define, env:macro): New function.
|
|
(define-macro): New macro. FIXME
|
|
* module/mes/psyntax.mes (define): New macro. FIXME
|
|
|
|
2017-12-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Fix initial display.
|
|
* module/mes/read-0.mes (display): Fix.
|
|
|
|
2017-12-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Fix compile warning in reader.
|
|
* src/reader.c[MES_C_READER]: Declare read_block_comment, read_hash.
|
|
Fixes compile warning.
|
|
|
|
2017-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Allow invoking git mescc.mes from elsewhere.
|
|
* src/mes.c (load_env): Look in MES_PREFIX too. Add debug printing.
|
|
* scripts/mescc.mes: Consider MES_PREFIX.
|
|
* guile/mescc.scm (%prefix): Consider MES_PREFIX.
|
|
* module/mes/base-0.mes (string->list): New function, move from type-0.mes.
|
|
(%moduledir): Consider MES_PREFIX.
|
|
* module/mes/type-0.mes (string->list): Remove.
|
|
|
|
mescc: Output performance hacks: use core:display.
|
|
* src/lib.c (display_): Write to g_stdout (WAS: STDOUT).
|
|
* module/mes/guile.scm (guile): Declare and export core:display core:display-error.
|
|
* module/mes/M1.mes (object->M1): Use core:display and string-append
|
|
instead of format.
|
|
* module/mes/guile.mes (with-input-from-string): Add debugging.
|
|
(open-input-string): Likewise.
|
|
(read-string): Likewise. Re-implement.
|
|
(drain-input): Use read-string.
|
|
|
|
mes: Nyacc support: substring/copy, substring/shared.
|
|
* module/srfi/srfi-13.mes (substring/copy, substring/shared): Define
|
|
to substring.
|
|
|
|
mes: Nyacc support: Read old characters.
|
|
* src/reader.c (read_character)[MES_C_READER]: Support reading old
|
|
characters: #\bel, #\bs, #\vt.
|
|
|
|
mes: resurrect running MesCC: handle \t in strings.
|
|
* src/reader.c (read-string): Handle \t. Fixex M1 output.
|
|
|
|
mescc: Use small, bootstrappable syntax rather than huge psyntax seed.
|
|
* module/nyacc/lex.mes (mes): Use syntax (WAS: psyntax).
|
|
* module/mes/pmatch.mes (mes): Likewise.
|
|
* module/nyacc/lang/c99/parser.mes (srfi-9): Use syntax (WAS: srfi-9-psyntax).
|
|
|
|
mes: Fix for pmatch on bootstrappable syntax-rules.
|
|
* module/mes/pmatch.scm (ppat): Do not use let.
|
|
* tests/pmatch.test ("pmatch nyacc minimal", "pmatch nyacc"): Test it.
|
|
|
|
2017-12-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: M4 support: robustify headers, add sys/signal.h.
|
|
* include/errno.h (ERANGE): New define.
|
|
* include/stdarg.h (size_t): Undefine before typedef.
|
|
* include/stdint.h: Likewise.
|
|
* include/stdio.h: Likewise.
|
|
* include/stdlib.h: Likewise.
|
|
* include/sys/types.h: Likewise.
|
|
* include/string.h: Likewise.
|
|
(ssize_t): Undefine before typedef.
|
|
* include/unistd.h: Likewise.
|
|
(off_t): Undefine before typedef.
|
|
* include/sys/stat.h (struct stat): New stub.
|
|
* include/sys/signal.h: New file.
|
|
|
|
2017-12-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: M4 support: scaffold/tests/82-define.c.
|
|
* scaffold/tests/82-define.c: New file; inspired by M4. Thanks, Ricardo!
|
|
* make.scm ("82-define"): Build it.
|
|
* check-mescc.sh: Add 82-define.
|
|
|
|
mlibc: Tinycc support: Avoid hex.
|
|
* include/00-test.i (main)[__TINYC__]: Do not use $0x.
|
|
|
|
mlibc: Tinycc support: qsort.
|
|
* lib/libc+tcc.c (qswap, qpart): New function
|
|
(qsort): Implement.
|
|
* scaffold/tests/81-qsort.c: Test it.
|
|
* make.scm ("81-qsort"): Build it.
|
|
|
|
2017-12-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: scaffold: misc cleanups.
|
|
* scaffold/tests/44-switch.c (swits): More case labels.
|
|
* scaffold/tests/60-math.c: Discriminate return values.
|
|
* scaffold/tests/77-pointer-assign.c (memset)[__TINYC__]: Remove.
|
|
* scaffold/tests/79-int-array.c (test): Discriminate return values.
|
|
|
|
mlibc: Tinycc support: __udivdi3, __umoddi3.
|
|
* lib/libc+tcc-gcc.c (__udivdi3, __umoddi3): Fix signature, do not
|
|
crash on simple integer devisions.
|
|
|
|
mescc: Tinycc support: Respect word size better.
|
|
* stage0/x86.M1 (movzwl_0x32(%ebp),%eax,movzwl_0x8(%ebp),%eax): New
|
|
define.
|
|
* module/mes/as-i386.mes (i386:push-word-local-de-ref,
|
|
i386:word-local->accu): New function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (push-local-de-ref): Respect word size.
|
|
(ident->accu): Likewise.
|
|
|
|
mlibc: New library layout; remove duplication.
|
|
* lib/libc+tcc-gcc.c: New file: Libc bits for GCC from libc-mes+tcc.c.
|
|
* lib/libc+tcc-mes.c: New file: Libc bits for MesCC from libc-mes+tcc.c.
|
|
* lib/libc+tcc.c: New file: Libc bits from libc-mes+tcc.c.
|
|
* lib/libc.c: New file: Merged from libc-mes.c, libc-gcc.c.
|
|
(abtoi): New function: Rename from _atoi.
|
|
* lib/linux+tcc-gcc.c: New file: Linux bits from libc-gcc+tcc.c.
|
|
* lib/linux+tcc-mes.c: New file: Linux bits from libc-mes+tcc.c.
|
|
* lib/linux-gcc.c: New file: Linux bits from libc-gcc.c.
|
|
* lib/linux-mes.c: New file: Linux bits from libc-mes.c.
|
|
* lib/mini-libc-gcc.c: New file.
|
|
* lib/mini-libc.c: New file: Libc bits from mini-libc-mes.c.
|
|
* lib/mini-linux-gcc.c: New file.
|
|
* lib/mini-linux-mes.c: New file: Linux bits from mini-libc-mes.c.
|
|
* lib/libc-gcc.c: Remove duplication using include now.
|
|
* lib/libc-mes.c: Likewise.
|
|
* lib/mini-libc-mes.c: Likewise.
|
|
* include/stdio.h (puts)[POSIX]: Remomve macro.
|
|
(fputc, fputs)[!POSIX]: New macro.
|
|
(fputc, fputs): Remove declaration.
|
|
* scaffold/tests/7j-strtoull.c (strtoull, test): Use abtoi.
|
|
* src/lib.c (fputs)[__MESC__]: Remove define.
|
|
* guile/guix/make.scm: Update for new library layout.
|
|
* make.scm: Likewise.
|
|
* build.sh: Likewise.
|
|
* install.sh: Likewise.
|
|
|
|
mlibc: Tinycc support: itoab, for debugging.
|
|
* lib/libc-gcc.c (itoab): New function.
|
|
* lib/libc-mes.c (itoab): New function.
|
|
|
|
2017-12-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: prefix string labels with _.
|
|
* module/mes/M1.mes (object->M1): Prefix string lables with _.
|
|
|
|
mescc: prefix local labels with _.
|
|
* module/language/c99/compiler.mes (expr->accu): prefix local labels with _.
|
|
|
|
bootstrap: Update build script.
|
|
* build.sh: Add blood-elf, use -o.
|
|
|
|
mlibc: Mescc-tools support: fix for [v]fprintf.
|
|
* lib/libc-mes+tcc.c (vfprintf): Bugfix: print to fd.
|
|
|
|
2017-11-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: resurrect full reader in C core.
|
|
* module/mes/read-0.mes (defined?): New function.
|
|
(eat-whitespace, read-env, read-word, read-block-comment,
|
|
read-line-comment, read-list, read-character, read-hex, read-octal,
|
|
reader:read-string, lookup, read-hash, read-word): Only define if
|
|
not %c-reader.
|
|
* module/mes/base-0.mes (defined?): Remove.
|
|
* src/mes.c[MES_C_READER]: Set ARENA_SIZE=10000000.
|
|
(scm_symbol_quasiquote scm_symbol_unquote,
|
|
scm_symbol_unquote_splicing, scm_symbol_syntax,
|
|
scm_symbol_quasisyntax, scm_symbol_unsyntax,
|
|
scm_symbol_unsyntax_splicing): New symbol.
|
|
(scm_symbol_c_reader): New symbol.
|
|
(MAKE_KEYWORD)[MES_C_READER]: New define.
|
|
(mes_symbols): Define %c_reader.
|
|
* src/reader.c (read_word_)[MES_C_READER]: Extend to full Scheme
|
|
reader.
|
|
(eat_whitespace)[MES_C_READER]: Likewise.
|
|
(read_block_comment, read_hash, read_word, read_character,
|
|
read_octal, read_hex, append_char, read_string)[MES_C_READER]:
|
|
Likewise.
|
|
* make.scm (bin.gcc,bin.mescc): Define MES_C_READER=1.
|
|
|
|
2017-11-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mescc-tools support: char foo[BAR] = {'a', 'b', 'c'}.
|
|
* stage0/x86.M1 (mov____%al,0x8(%ebp), mov____%al,0x32(%ebp),
|
|
mov____%ax,0x8(%ebp), mov____%ax,0x32(%ebp)): New define.
|
|
* module/mes/as-i386.mes (i386:accu->local+n,i386:byte-accu->local+n,
|
|
i386:word-accu->local+n): New function.
|
|
* module/language/c99/compiler.mes (accu->local+n): New function.
|
|
(initzer->data): Return char as single byte.
|
|
(decl->info): Support char foo[BAR] = {'a', 'b', 'c'}.
|
|
* scaffold/tests/66-local-char-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-11-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: Mescc-tools support: chmod.
|
|
* stage0/x86.M1 (SYS_chmod): New define.
|
|
* lib/libc-gcc.c (chmod): New function.
|
|
* lib/libc-mes.c (chmod): New function.
|
|
|
|
mlibc: GNU Gcc support: setjmp, longjmp.
|
|
* stage0/x86.M1 (jmp____*%ebx): New macro.
|
|
(mov____0x8(%ebp),%ebp): New macro.
|
|
(mov____0x8(%ebp),%esp): New macro.
|
|
* include/setjmp.h (jmp_buf): Redefine as struct.
|
|
* lib/libc-mes+tcc.c (longjmp, setjmp): Implement.
|
|
* scaffold/tests/80-setjmp.c: Test it.
|
|
* make.scm ("80-setjmp"): Build it.
|
|
* .gitignore: Ignore *.tcc-guile.
|
|
|
|
2017-11-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: GNU Gcc support: ferror.
|
|
* lib/libc-mes+tcc.c (ferror): New function.
|
|
* include/stdio.h (ferror): Declare it.
|
|
|
|
2017-11-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Add bootstrap build scripts.
|
|
* build.sh: New file.
|
|
* check-mescc.sh: New file.
|
|
* check.sh: New file.
|
|
* install.sh: New File.
|
|
|
|
2017-11-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
remove obsolete Nyacc link.
|
|
* guile/nyacc: Remove.
|
|
|
|
2017-11-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: mlib/include to include, move mlib to lib.
|
|
* include: Move from mlib/include.
|
|
* lib: Move from mlib.
|
|
* BOOTSTRAP: Update.
|
|
* HACKING: Update.
|
|
* guile/guix/make.scm: Update.
|
|
* make.scm: Update.
|
|
* module/language/c99/compiler.mes: Update.
|
|
|
|
2017-11-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Resurrect running mes tests tests/*.test with Guile.
|
|
* tests/tests/base.test-guile: New file to resurrect running Mes test with Guile.
|
|
* tests/catch.test-guile: Symlink for same purpose.
|
|
* tests/closure.test-guile: Likewise.
|
|
* tests/cwv.test-guile: Likewise.
|
|
* tests/display.test-guile: Likewise.
|
|
* tests/fluids.test-guile: Likewise.
|
|
* tests/guile.test-guile: Likewise.
|
|
* tests/let-syntax.test-guile: Likewise.
|
|
* tests/let.test-guile: Likewise.
|
|
* tests/match.test-guile: Likewise.
|
|
* tests/math.test-guile: Likewise.
|
|
* tests/module.test-guile: Likewise.
|
|
* tests/optargs.test-guile: Likewise.
|
|
* tests/peg.test-guile: Likewise.
|
|
* tests/pmatch.test-guile: Likewise.
|
|
* tests/psyntax.test-guile: Likewise.
|
|
* tests/quasiquote.test-guile: Likewise.
|
|
* tests/read.test-guile: Likewise.
|
|
* tests/record.test-guile: Likewise.
|
|
* tests/scm.test-guile: Likewise.
|
|
* tests/srfi-1.test-guile: Likewise.
|
|
* tests/srfi-13.test-guile: Likewise.
|
|
* tests/srfi-14.test-guile: Likewise.
|
|
* tests/vector.test-guile: Likewise.
|
|
* make.scm (add-guile-test): New function. Use it to run running tests/*.test-guile.
|
|
|
|
2017-11-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: resurrect running MesCC: handle \t in strings.
|
|
* module/mes/read-0.mes (reader:read-string): Handle \t. Fixex M1 output.
|
|
|
|
mes: Nyacc support: with-fluids.
|
|
* module/mes/fluids.mes (with-fluids): New macro.
|
|
* tests/fluids.test ("with-fluids"): Test it.
|
|
|
|
mes: resurrect running MesCC: update info interface.
|
|
* module/language/c99/info.mes (type?, global?, local?): New function.
|
|
(make-global): Remove name parameter.
|
|
* module/nyacc/lang/c99/pprint.mes: New file.
|
|
|
|
2017-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add last.
|
|
* module/srfi/srfi-1.mes (last): New funcion.
|
|
|
|
2017-11-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add reverse-list->string.
|
|
* module/srfi/srfi-13.mes (reverse-list->string): New function.
|
|
|
|
bootstrap: Unbundle necessary M1 sources.
|
|
* mlibc/crt1.M1: Remove.
|
|
* mlibc/libc-mes.M1: Remove.
|
|
* src/mes.M1: Remove.
|
|
|
|
2017-11-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: Mescc-tools support: fix fgetc.
|
|
* mlibc/libc-mes.c (fgetc): Fix from completely fubar.
|
|
|
|
mlibc: Mescc-tools support: strtol: partly implement stub.
|
|
* mlibc/libc-mes+tcc.c (strtol): Partly implement stub.
|
|
|
|
mlibc: Mescc-tools support: getopt, getopt_long.
|
|
* mlibc/getopt.c: Move to ANSI C. Remove GETOPT_COMPAT and
|
|
non-POSIXLY_CORRECT options.
|
|
* mlibc/include/getopt.h: New file.
|
|
* mlibc/libc-gcc+tcc.c: Include getopt.c.
|
|
* mlibc/libc-mes+tcc.c: Likewise.
|
|
|
|
mlibc: Mescc-tools support: import getopt_long.
|
|
* mlibc/getopt.c: Import from gcc-2.0.
|
|
|
|
Revert "mescc: Grok char foo[] parameter."
|
|
This reverts commit c4cc75105db48b550cd515751b766b2e7a88ddc3.
|
|
|
|
mescc: Grok char foo[] parameter.
|
|
* module/language/c99/compiler.mes (function->text+data): Grok char
|
|
foo[] parameter.
|
|
|
|
mescc: Grok char *const foo[];
|
|
* module/language/c99/compiler.mes (ast-strip-const): Grok char *const argv[];
|
|
|
|
mlibc: Mescc-tools support: endianness.
|
|
* mlibc/include/endian.h: New file.
|
|
* mlibc/include/ctype.h[!(__GNUC__ && POSIX)]: Include it.
|
|
* mlibc/include/stdlib.h: Likewise.
|
|
* mlibc/include/sys/types.h: Likewise.
|
|
|
|
mlibc: Mescc-tools support: exit stati.
|
|
* mlibc/include/stdlib.h (EXIT_FAILURE, EXIT_SUCCESS): New define.
|
|
|
|
2017-11-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: cleanup obsolete Nyacc 0.7x compatibility.
|
|
* module/language/c99/compiler.mes (ast-type->type, ast->type
|
|
expr->accu, struct-field, decl->info,): Remove obsolete Nyacc 0.7x
|
|
patterns.
|
|
|
|
guix: Release update.
|
|
* guix.scm (mes): Update commit, hash and version. Add
|
|
'make-git-source-writable stage.
|
|
|
|
Release 0.11.
|
|
* configure (VERSION): Bump to 0.11.
|
|
|
|
2017-11-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release udpate.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.11: New file.
|
|
|
|
2017-11-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: fix for 07-include, thanks rain1!
|
|
* make.scm (add-scaffold-test): New keyword parameter: includes.
|
|
("07-include"): Use it.
|
|
|
|
build: support gcc -m32, thanks rain1!
|
|
* guile/guix/make.scm (%CC32): fallback to %CC.
|
|
(%C32-FLAGS): Add -m32, to suppor gcc -m32.
|
|
(LINK.gcc): Use it.
|
|
|
|
2017-11-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Update necessary M1 sources.
|
|
M1 -f stage0/x86.M1 -f mlibc/crt1.M1 --LittleEndian --Architecture=1 > mlibc/crt1.hex2
|
|
M1 -f stage0/x86.M1 -f mlibc/mini-libc-mes.M1 --LittleEndian --Architecture=1 > mlibc/libc-mes.hex2
|
|
M1 -f stage0/x86.M1 -f src/mes.M1 --LittleEndian --Architecture=1 > src/mes.hex2
|
|
hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f mlibc/crt1.hex2 -f mlibc/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
|
|
exec_enable src/mes-mes
|
|
|
|
* mlibc/libc-mes.M1: Update.
|
|
* src/mes.M1: Udate.
|
|
|
|
2017-11-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: test #include.
|
|
* scaffold/tests/exit-42.i: New file.
|
|
* scaffold/tests/07-include.c: New file.
|
|
* make.scm ("07-include"): Build it.
|
|
|
|
2017-11-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: struct struct array.
|
|
Support
|
|
|
|
struct foo
|
|
{
|
|
struct bar baz[N];
|
|
struct bar bla*[M];
|
|
};
|
|
|
|
* module/language/c99/compiler.mes (expr->accu):
|
|
* scaffold/tests/7n-struct-struct-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-11-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: Tinycc support: support, most syscalls stubbed.
|
|
* mlibc/libc-gcc.c (exit, write)[__TINYC__]: tcc-compatible gcc-style
|
|
asm implementation.
|
|
(read,open,access,brk,fsync)[__TINYC__]: Stub body.
|
|
* mlibc/libc-gcc+tcc.c (close,unlink, lseek, getcwd)[__TINYC__]: Stub
|
|
body.
|
|
* mlibc/libc-mes+tcc.c: Support tinycc.
|
|
* mlibc/include/00-test.i (main) [__TINYC__]: Support tcc.
|
|
|
|
mescc: Tinycc support: empty for.
|
|
* module/language/c99/compiler.mes (test-jump-label->info): Handle
|
|
empty expression.
|
|
* make.scm (add-tcc-test "45_empty_for"): Test it.
|
|
|
|
tinycc: scaffold/main.c: running mes-tcc compiled binary #6.
|
|
* scaffold/main.c (main): Use variable, if, argc, ++, +=, function call to return 42.
|
|
|
|
2017-11-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: scaffold/main.c: running mes-tcc compiled binary #5.
|
|
* scaffold/main.c (main): Use function call and variable to return 42.
|
|
|
|
2017-11-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: scaffold/main.c: running mes-tcc compiled binary #4.
|
|
* scaffold/main.c (main): Use variables to return 42.
|
|
|
|
mescc: Tinycc support: workaround lack of long long support.
|
|
* module/language/c99/compiler.mes (i386:type-alist): Use size=4 for
|
|
long long as a workaround.
|
|
|
|
2017-11-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: refactor expr->accu, expr->accu*, fixes nontrivial struct by value assign.
|
|
* module/language/c99/compiler.mes: (pke): New function.
|
|
(expr->number): Rename from p-expr->number. Update callers.
|
|
(decl->info, init-declr->pointer, struct-field): Several pointeryness fixes.
|
|
(expr->accu*, expr->accu): Remove special-casing for foo.bar,
|
|
foo->bar, foo[bar]. Fixes struct by value assign for non-trival
|
|
expressions.
|
|
(accu->ident, ident-address->accu, ident->accu):
|
|
(base->ident-address, ident->base): Remove.
|
|
* scaffold/tests/7k-for-each-elem.c (test): Test it.
|
|
* scaffold/tests/7c-dynarray.c (test): Test it.
|
|
* scaffold/tests/7m-struct-char-array-assign.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mlibc: errno.h: declare errno without extern.
|
|
* mlibc/include/errno.h: drop extern. Fixes tcc compile.
|
|
|
|
guix: nyacc: Update to 0.82.4.
|
|
* guix.scm (nyacc): Update to 0.82.4.
|
|
|
|
2017-09-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Release update.
|
|
* guix.scm (mes): Update commit, hash and version.
|
|
|
|
Release 0.10.
|
|
* configure (VERSION): Bump to 0.10.
|
|
|
|
doc: Release udpate.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* doc/ANNOUNCE-0.10: New file.
|
|
* BOOTSTRAP: New file.
|
|
* make.scm: Install them.
|
|
|
|
2017-09-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Include necessary M1 sources.
|
|
M1 -f stage0/x86.M1 -f mlibc/crt1.M1 --LittleEndian --Architecture=1 > mlibc/crt1.hex2
|
|
M1 -f stage0/x86.M1 -f mlibc/mini-libc-mes.M1 --LittleEndian --Architecture=1 > mlibc/libc-mes.hex2
|
|
M1 -f stage0/x86.M1 -f src/mes.M1 --LittleEndian --Architecture=1 > src/mes.hex2
|
|
hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f mlibc/crt1.hex2 -f mlibc/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
|
|
exec_enable src/mes-mes
|
|
|
|
* mlibc/crt1.M1: New File.
|
|
* mlibc/libc-mes.M1: New File.
|
|
* src/mes.M1: New File.
|
|
|
|
2017-09-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Bump Nyacc to 0.82.0.
|
|
* guix.scm (nyacc): Bump to 0.82.0.
|
|
|
|
mescc: Support Nyacc-0.81.0.
|
|
* module/language/c99/compiler.mes (ast->info): Handle asm-expr from
|
|
Nyacc 0.81.0.
|
|
|
|
2017-09-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: scaffold/main.c: running tcc-compiled binary #3.
|
|
* scaffold/main.c (main): Remove asm.
|
|
|
|
2017-09-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: struct by value assign.
|
|
* module/language/c99/compiler.mes (expr->accu): warn for unsupported
|
|
sizes.
|
|
* scaffold/tests/7h-struct-assign.c (test): Test it.
|
|
|
|
2017-09-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: scaffold/main.c: running tcc-compiled binary #2.
|
|
* scaffold/main.c (main)[__i386__]: Rename from _start.
|
|
|
|
2017-09-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: compile crt1.c, libc-mesc.c and <input>.c separately.
|
|
* mlibc/crt1.c: New file.
|
|
* mlibc/libc-mes.c (_start): Remove.
|
|
* mlibc/libc-gcc.c (_start): Remove.
|
|
* make.scm (LINK.hex2, bin.mescc): Move from guile/guix/make.scm.
|
|
* guile/guix/make.scm (LINK.hex2, bin.mescc): Remove.
|
|
|
|
2017-09-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: refactor _start.
|
|
* mlibc/libc-mes.c (_start): Refactor.
|
|
(_env): Remove.
|
|
* stage0/x86.M1:
|
|
|
|
2017-08-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tinycc: scaffold/main.c: first running tcc-compiled binary.
|
|
* scaffold/main.c (_start): Exit 42 using asm.
|
|
|
|
2017-08-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: fix *--p = 'x'.
|
|
* module/language/c99/compiler.mes (expr->accu): Respect size in *--p = 'x'.
|
|
* scaffold/tests/23-pointer.c (test): Test it.
|
|
|
|
mescc: Tinycc support: initializer arithmetic.
|
|
* module/language/c99/compiler.mes (p-expr->bool): New function
|
|
(p-expr->number): Support bitwise-and, bitwise-not, cast, cond-expr.
|
|
|
|
core: Add logand, lognot.
|
|
* src/math.c (logand, lognot): New function.
|
|
|
|
mescc: Tinycc support: array of struct of any size.
|
|
* module/language/c99/compiler.mes (accu*value): New function
|
|
(expr->accu*): Use it to support array of struct of any size.
|
|
* scaffold/tests/7l-struct-any-size-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: stdint.h: declare size_t.
|
|
* mlibc/include/stdint.h (size_t)[!__MES_SIZE_T]: Declare.
|
|
|
|
2017-08-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: pointer arithmetic with pointer-variable.
|
|
* module/language/c99/compiler.mes (expr->accu): pointer arithmetic with pointer-variable.
|
|
* scaffold/tests/76-pointer-arithmetic.c (test): Test it.
|
|
* mlibc/include/stdarg.h (va_start): Update for fixed pointer arithmetic.
|
|
|
|
2017-08-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: pointer arithmetic with &variable.
|
|
* module/language/c99/compiler.mes (expr->pointer): Handle ref.
|
|
* scaffold/tests/76-pointer-arithmetic.c: Test it.
|
|
|
|
2017-08-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: pointer arithmetic with variable.
|
|
* module/language/c99/compiler.mes (expr->accu): Support pointer
|
|
arithmetic with variable: p + i, p - i, p += i, p -= i.
|
|
* scaffold/tests/76-pointer-arithmetic.c (test): Test it.
|
|
|
|
mescc: Tinycc support: handle pointerness, siziness for cast foo*.
|
|
* module/language/c99/compiler.mes (expr->pointer): Support cast foo*.
|
|
(expr->size): Likewise.
|
|
* scaffold/tests/7k-for-each-elem.c: Test it
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-08-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: strtoull.
|
|
* mlibc/include/mlibc.h (_atoi): Declare.
|
|
* mlibc/include/ctype.h (isxdigit): Declare.
|
|
* mlibc/libc-gcc.c (isxdigit, _atoi): New function.
|
|
(atoi): Use it.
|
|
* mlibc/libc-mes.c (isxdigit, _atoi): New function.
|
|
(atoi): Use it.
|
|
* scaffold/tests/7j-strtoull.c (test): Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-08-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: snprintf.
|
|
* mlibc/include/stdarg.h (vsprintf): Declare.
|
|
* mlibc/libc-gcc.c (vsprintf): New function.
|
|
(sprintf): Use it.
|
|
* mlibc/libc-mes+tcc.c (snprintf): Implement.
|
|
* mlibc/libc-mes.c (vsprintf): New function
|
|
(sprintf): Use it.
|
|
|
|
2017-08-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: struct.struct.
|
|
* module/language/c99/compiler.mes (field:name):
|
|
(field:pointer):
|
|
(field:size):
|
|
(field:type):
|
|
(field-field):
|
|
(field-offset):
|
|
(struct-field): Support struct.struct.
|
|
* scaffold/tests/7i-struct-struct.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Fix compile warnings.
|
|
* mlibc/include/stdio.h (fdputs): Declare.
|
|
* mlibc/libc-gcc.c (malloc):
|
|
(memcpy): Fix compile warning.
|
|
|
|
mescc: Tinycc support: --*p, ++*p.
|
|
* module/language/c99/compiler.mes (expr->accu): Remove specific --/++.
|
|
(expr->accu*): Support p, *p.
|
|
* scaffold/tests/76-pointer-arithmetic.c (test): Test it.
|
|
|
|
2017-08-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: word array assignment.
|
|
* stage0/x86.M1 (movzwl_(%eax),%eax): New define.
|
|
* module/mes/as-i386.mes (i386:word-mem->accu): New function.
|
|
* module/mes/as-i386.scm: Export it.
|
|
* module/language/c99/compiler.mes (expr->accu): word array assignment.
|
|
(expr->accu*): word array assignment.
|
|
* scaffold/tests/7a-struct-char-array.c (test): Test it.
|
|
|
|
2017-08-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: struct char array assignment.
|
|
* module/language/c99/compiler.mes (expr->accu): struct char array assignment.
|
|
* scaffold/tests/7a-struct-char-array.c (test): Test it.
|
|
|
|
2017-08-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: struct assign by value.
|
|
* module/language/c99/compiler.mes (base->ident): Remove.
|
|
(accu->ident): Use them to support assign of size >4 by value.
|
|
* scaffold/tests/7h-struct-assign.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
* module/mes/as-i386.mes (i386:base->local): Remove.
|
|
(i386:accu*n->local):
|
|
(i386:accu*n->label): New functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* stage0/x86.M1: (mov____%ebx,0x32):
|
|
(mov____%ebx,0x32(%ebp)):
|
|
(mov____%ebx,0x8(%ebp)):
|
|
(mov____%ebx,0x8(%edx)):
|
|
(mov____%ecx,0x32(%ebp)):
|
|
(mov____%ecx,0x8(%ebp)):
|
|
(mov____0x32(%eax),%ebx):
|
|
(mov____0x32(%eax),%ecx):
|
|
(mov____0x8(%eax),%ebx): New define.
|
|
|
|
mescc: Tinycc support: eputc.
|
|
* mlibc/include/stdio.h (eputc): Declare.
|
|
* mlibc/libc-gcc.c (eputc):
|
|
* mlibc/libc-mes.c (eputc): New function.
|
|
|
|
mescc: Move simple main to scaffold.
|
|
* scaffold/main.c (main): Move from doc/examples/main.c
|
|
* make.scm: Build it.
|
|
* README: Update.
|
|
* guile/mescc.scm (main):
|
|
* scripts/mescc.mes (main): Remove fallback doc/examples/main.c
|
|
|
|
mescc: Tinycc support: byte and word struct fields.
|
|
* stage0/x86.M1 (mov____%al,0x8(%edx)):
|
|
(mov____%ax,(%edx)):
|
|
(mov____%ax,0x32(%edx)):
|
|
(mov____%ax,0x8(%edx)):
|
|
(movzbl_0x32(%eax),%eax):
|
|
(movzbl_0x8(%eax),%eax):
|
|
(movzwl_0x32(%eax),%eax):
|
|
(movzwl_0x8(%eax),%eax): New define.
|
|
* module/mes/as-i386.mes (i386:word-accu->base-mem):
|
|
(i386:byte-accu->base-mem+n):
|
|
(i386:word-accu->base-mem+n):
|
|
(i386:byte-mem+n->accu):
|
|
(i386:word-mem+n->accu): New function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (struct-field): Use actual size for
|
|
simple types (WAS: 4).
|
|
(decl->info):
|
|
(expr->accu): Respect byte and word struct field sizes.
|
|
* scaffold/tests/7g-struct-byte-word-field.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: eputs as function for gcc.
|
|
* mlibc/libc-gcc.c (eputs)[POSIX]: New function.
|
|
* mlibc/include/stdio.h (eputs)[POSIX]: Remove define.
|
|
|
|
2017-08-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: fixes for foo.bar[baz].
|
|
* module/language/c99/compiler.mes (expr->accu, expr->accu*): fixes for foo.bar[baz].
|
|
* scaffold/tests/7c-dynarray.c: Test it.
|
|
|
|
mescc: Tinycc support: fixes for foo->bar[baz].
|
|
* module/language/c99/compiler.mes (expr->accu, expr->accu*): fixes
|
|
for foo->bar[baz].
|
|
(expr->pointer): Support i-sel.
|
|
(p-expr->type): Support add, sub, de-ref, ref-to.
|
|
* scaffold/tests/7f-struct-pointer-arithmetic.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: foo.bar[baz], foo->bar[baz] for typedef'd struct bar.
|
|
* module/language/c99/compiler.mes (expr->accu): foo.bar[baz],
|
|
foo->bar[baz] for typedef'd struct bar.
|
|
* scaffold/tests/7c-dynarray.c: Test it.
|
|
|
|
2017-08-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: foo[index]->bar for array bar.
|
|
* module/language/c99/compiler.mes (expr->accu*): foo[index]->bar for array bar.
|
|
* scaffold/tests/7e-struct-array-access.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-08-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "mescc: Tinycc support: workaround for nyacc "\0" bug."
|
|
This reverts commit b160540e221dbeb96908823b5a3504bdbfd7f751.
|
|
|
|
Fixed by: https://lists.gnu.org/archive/html/guile-user/2017-08/msg00007.html
|
|
|
|
2017-08-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: use nyacc 0.80.41.
|
|
* guix.scm (nyacc): use 0.80.41.
|
|
|
|
mescc: Tinycc support: ((unsigned char*)str)[i].
|
|
* module/language/c99/compiler.mes (expr->accu*): Consider size of
|
|
expr array deref.
|
|
* scaffold/tests/7d-cast-char.c: Test it.
|
|
|
|
mescc: Tinycc support: ((unsigned char*)str)[0].
|
|
* module/language/c99/compiler.mes (expr->accu): Consider size of
|
|
expr array deref.
|
|
* stage0/x86.M1 (movzbl_0x32(%ebp),%eax): New define.
|
|
* scaffold/tests/7d-cast-char.c: Test it.
|
|
|
|
mescc: Tinycc support: define __linux__.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Add
|
|
"__linux__=1" to cpp-defs.
|
|
|
|
2017-08-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: strcat.
|
|
* mlibc/libc-mes+tcc.c (strcat): Implement.
|
|
|
|
mescc: Tinycc support: vsnprintf.
|
|
* module/language/c99/compiler.mes (ast-type->type): Support *p++ in test.
|
|
* mlibc/libc-mes+tcc.c (vsnprintf): Implement.
|
|
|
|
mescc: Tinycc support: support foo.bar[baz], foo->bar[baz] for struct bar.
|
|
* module/language/c99/compiler.mes (struct-field): Use negative
|
|
pointer for struct array fields.
|
|
(expr->accu): support: support foo.bar[baz], foo->bar[baz] for struct bar.
|
|
* scaffold/tests/7c-dynarray.c: Test it.
|
|
|
|
mescc: drop naive realloc.
|
|
* mlibc/libc-gcc.c (free, memcpy): Move from libc-mes+tcc.c.
|
|
(realloc): Use realloc from libc-mes+tcc.c
|
|
* mlibc/libc-gcc+tcc.c (free, memcpy, realloc): Remove.
|
|
* mlibc/libc-mes+tcc.c (free, memcpy, realloc): Remove.
|
|
* scaffold/tests/79-int-array.c (test): Update.
|
|
* scaffold/tests/7a-struct-char-array.c (test): Update.
|
|
|
|
2017-07-31 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: ((foo*) p) + n.
|
|
* module/language/c99/compiler.mes init-declr->pointer, expr->pointer,
|
|
expr->size): support: ((foo*) p) + n.
|
|
(expr->accu*): Consider field size for foo.bar[baz].
|
|
* scaffold/tests/7b-struct-int-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-07-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: field size of foo.bar[baz], foo->bar[baz].
|
|
Inspired by a patch from rain1 for foo->bar[baz].
|
|
|
|
* module/language/c99/compiler.mes (expr->accu):
|
|
(expr->accu*): Consider field size for foo.bar[baz].
|
|
* scaffold/tests/7a-struct-char-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
2017-07-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: fwrite.
|
|
* mlibc/libc-mes+tcc.c (fwrite): Implement.
|
|
|
|
mescc: Tinycc support: fclose.
|
|
* mlibc/libc-mes+tcc.c (fclose): Implement.
|
|
|
|
2017-07-30 rain1 <rain1@openmailbox.org>
|
|
|
|
mescc: Tinycc support: fgetc.
|
|
* mlibc/libc-mes.c (fgetc): Implement.
|
|
|
|
mescc: Tinycc support: fprintf.
|
|
* mlibc/libc-mes+tcc.c (fprintf): Implement.
|
|
|
|
mescc: allow complicated enums expressions.
|
|
* module/language/c99/compiler.mes (p-expr->number): Support lshift, rshift, ash.
|
|
(enum-def-list->constants): Refactor using p-expr->number.
|
|
|
|
mescc: support \x00 strings in M1.
|
|
* module/mes/M1.mes (object->m1): Support \x00 strings.
|
|
|
|
2017-07-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: memmove.
|
|
* mlibc/libc-mes+tcc.c (memmove): Implement.
|
|
|
|
mescc: Tinycc support: strrchr.
|
|
* mlibc/libc-mes+tcc.c (strrchr): Implement.
|
|
|
|
mescc: Tinycc support: strchr.
|
|
* mlibc/libc-mes+tcc.c (strchr): Implement.
|
|
|
|
2017-07-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: noisy stubs.
|
|
* mlibc/libc-mes+tcc.c: Noisy stubs.
|
|
|
|
2017-07-30 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: int foo[bar] = {baz,...}.
|
|
* scaffold/tests/79-int-array.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
* module/language/c99/compiler.mes (init-declr->count): New function.
|
|
(decl->info): Support int foo[bar] = {baz,...}.
|
|
|
|
2017-07-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: union.struct.
|
|
* module/language/c99/compiler.mes (decl->info): Support struct inside union.
|
|
* scaffold/tests/78-union-struct.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: fix accu value after comparison.
|
|
* stage0/x86.M1 (setg___%al,, setge__%al, setl___%al, setle__%al): New
|
|
defines.
|
|
* module/mes/as-i386.mes (i386:g?->accu, i386:ge?->accu,
|
|
i386:l?->accu, i386:le?->accu, i386:jumpl, i386:jumple): New functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (expr->accu): Use them to fix accu
|
|
value after comparisons.
|
|
(test-jump-label->info): Update comparison jumps.
|
|
|
|
mescc: Tinycc support: memcmp.
|
|
* mlibc/libc-mes+tcc.c (memcmp): Implement.
|
|
|
|
mescc: Tinycc support: bugfix *++foo,*--foo.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Pre-define NULL.
|
|
(expr->pointer, expr->size): Handle pre/post-inc/dec.
|
|
|
|
mescc: Tinycc support: uniquify strings per compilation unit.
|
|
* module/mes/M1.mes (object->M1): Add file-name to string id.
|
|
|
|
2017-07-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: foo.bar = foo.baz = bla.
|
|
* module/language/c99/compiler.mes (expr->base*): New function.
|
|
(expr->accu): Use it to have value in accu for assignments.
|
|
* scaffold/tests/77-pointer-assign.c (test): Test it.
|
|
* stage0/x86.M1 (mov____%ecx,(%edx), mov___(%eax),%ecx): New define.
|
|
* module/mes/as-i386.mes (accu-mem->base->mem): New function.
|
|
(i386:byte-base->accu-mem+n):
|
|
(i386:byte-base->accu-mem):
|
|
(i386:base-mem->accu-mem):
|
|
(i386:base->accu-mem):
|
|
(i386:value->accu-mem+n):
|
|
(i386:value->accu-mem):
|
|
(i386:accu->base-mem+n):
|
|
(i386:byte-accu->base-mem):
|
|
(i386:accu->base-mem): Rename from accu-address, base-address.
|
|
Update callers.
|
|
* module/mes/as-i386.scm (mes): Update exports.
|
|
|
|
mescc: Tinycc support: workaround for nyacc "\0" bug.
|
|
* module/language/c99/compiler.mes (fix-null): Replace "\nul" with "\0".
|
|
(initzer->data): Use it.
|
|
(expr->global): Use it.
|
|
|
|
mescc: Tinycc support: bugfix foo % bar.
|
|
* stage0/x86.M1 (mov____%edx,%ebx): Typo
|
|
(idiv___%ebx): Replace div____%ebx.
|
|
* module/mes/as-i386.mes (i386:accu/base): Update.
|
|
(i386:accu%base): Update.
|
|
|
|
2017-07-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: fix foo[bar]->baz.
|
|
* module/language/c99/compiler.mes (expr->accu*): Lose one indirection.
|
|
* scaffold/tests/72-typedef-struct-def.c: Test it.
|
|
|
|
2017-07-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: foo *bar[baz].
|
|
* module/language/c99/compiler.mes (decl->info): Support foo *bar[baz].
|
|
* module/language/c99/compiler.mes (push-global): Support push of -2,
|
|
-1. Change signature to take info. Update callers.
|
|
(push-global-address): Change signature to take info. Update callers.
|
|
|
|
mescc: Tinycc support: bugfix foo[bar] = baz, with foo*[].
|
|
* module/language/c99/compiler.mes (expr->accu): Support size for more expressions.
|
|
(expr->pointer):
|
|
(expr->size): Support more expressions.
|
|
* scaffold/tests/77-pointer-assign.c (add0): Test it.
|
|
|
|
mescc: Tinycc support: bugfix *foo = bar.
|
|
* module/language/c99/compiler.mes (base->ident-address): Typo, fixes (non-char*)*x = y.
|
|
* scaffold/tests/77-pointer-assign.c (test): Test it.
|
|
|
|
mescc: Tinycc support: bugfix *(cast)foo = bar.
|
|
* module/language/c99/compiler.mes (expr->accu): Thinko for de-ref assign.
|
|
* stage0/x86.M1: Fix typos.
|
|
* module/mes/as-i386.mes: Update for typos.
|
|
* scaffold/tests/77-pointer-assign.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: pointer arithmetic.
|
|
* module/language/c99/compiler.mes (ident->size, expr->size): New function.
|
|
(expr->accu): Use them for ++,--,add, sub.
|
|
(i386:type-alist): Set void size to 1.
|
|
* scaffold/tests/71-struct-array.c (test):
|
|
* scaffold/tests/76-pointer-arithmetic.c: Test it.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: compile tcc with TCC_IS_NATIVE.
|
|
* mlibc/include/string.h (strcat): Declare.
|
|
* mlibc/libc-mes+tcc.c (dlclose, dlopen, mprotect, sigaction,
|
|
sigemptyset, strcat, vfprintf): Move from libc-gcc+tcc.c.
|
|
* mlibc/libc-gcc+tcc.c: Remove them.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Define __i386__=1.
|
|
(i386:type-alist): Parse `long long int', `unsigned short int',
|
|
`unsigned long long int'.
|
|
(struct-field): Support void**.
|
|
(init-declr->name):
|
|
(init-declr->pointer): Support function declaration.
|
|
|
|
2017-07-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mlibc: Tinycc support: gcc -nostdinc -nostdlib.
|
|
* mlibc/libc-gcc+tcc.c: New file.
|
|
* mlibc/include/dlfcn.h:
|
|
* mlibc/include/errno.h:
|
|
* mlibc/include/signal.h:
|
|
* mlibc/include/sys/mman.h:
|
|
* mlibc/include/sys/time.h: Add tcc declarations.
|
|
|
|
mescc: Tinycc support: malloc,memcpy.
|
|
* mlibc/libc-mes.c (malloc): Rewrite.
|
|
* mlibc/libc-mes+tcc.c (memcpy): Implement.
|
|
|
|
build: support libc-mes+tcc.
|
|
|
|
mescc: Tinycc support: memset.
|
|
* mlibc/libc-mes+tcc.c (memset): Implement.
|
|
|
|
2017-08-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: bump default maximum for M1-strings to 80.
|
|
* module/mes/M1.mes (object->M1): bump default maximum for M1-strings to 80.
|
|
|
|
2017-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Tinycc support: oops, use new realloc.
|
|
* mlibc/libc-mes.c (realloc): Disable naive realloc for libc-mes+tcc.c.
|
|
|
|
mescc: Bugfix: output M1-strings if possible.
|
|
* module/mes/M1.mes (object->M1): Typo. Also disallow \return in M1-strings.
|
|
|
|
guix: Release update.
|
|
* guix.scm (mes): Update commit, hash and version.
|
|
|
|
Release 0.9.
|
|
* configure (VERSION): Bump to 0.9.
|
|
|
|
doc: Release udpate.
|
|
* HACKING: Update.
|
|
* INSTALL: Update.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.9: New file.
|
|
* make.scm: Install it.
|
|
* guix.scm (mescc-tools): Bump to 0.2.
|
|
|
|
build: Install and installed-run fixes.
|
|
* guile/mescc.scm (%datadir,%docdir,%moduledir,%version): Remove.
|
|
* scripts/mescc.mes: Likewise.
|
|
* module/language/c99/compiler.mes: Likewise.
|
|
(%prefix): Prefer environment setting.
|
|
(c99-input->full-ast): Remove unnecessary includes.
|
|
Remove unnecessary defines.
|
|
* make.scm (%scm-files): Add mes/guile.scm.
|
|
(src/mes.gcc, src/mes.mlibc-gcc, src/mes.guile): Update MODULEDIR,
|
|
add -I src.
|
|
* src/mes.c (load_env): Use temporary variable for MODULEDIR concatenation.
|
|
(bload_env): Likewise.
|
|
|
|
mescc: Tinycc support: calloc,malloc,realloc.
|
|
* mlibc/libc-mes+tcc.c (calloc,malloc,realloc): New function.
|
|
|
|
mescc: Tinycc support: bugfix struct.array.
|
|
* module/language/c99/compiler.mes (struct-field): Update pointer
|
|
info.
|
|
(field:name,field:pointer,field:size,field:type): Rely on pointer
|
|
info.
|
|
(field:pointer): New function.
|
|
(expr->accu): Use it.
|
|
* scaffold/tests/71-struct-array.c (test): Test it.
|
|
|
|
mescc: Tinycc support: bugfix struct pointer.
|
|
* module/language/c99/compiler.mes (decl->info): Only set non-pointer struct to -1.
|
|
* scaffold/tests/23-pointer.c (test): Test it.
|
|
|
|
mescc: Tinycc support: more function stack space.
|
|
* module/mes/as-i386.mes (function-locals): Increase local space from
|
|
64 (16 vars) to 2*1025 + 80 (20 vars).
|
|
|
|
mescc: Tinycc support: bugfix for char **pp = *p.
|
|
* module/language/c99/compiler.mes (ptr-declr->pointer): Grok ***.
|
|
(decl->info): Bugfix for char **pp = *p, cleanup.
|
|
* mlibc/libc-mes.c (getenv): Update for bugfix.
|
|
* scaffold/tests/23-pointer.c (test): Test it.
|
|
|
|
mescc: Tinycc support: execvp stub.
|
|
* mlibc/include/unistd.h (execvp): Declare.
|
|
* mlibc/libc-mes+tcc.c (execvp): Add stub.
|
|
|
|
mescc: Tinycc support: remove stub.
|
|
* mlibc/include/stdio.h (remove): Declare.
|
|
* mlibc/libc-mes+tcc.c (remove): Add stub.
|
|
|
|
mescc: Tinycc support: fread stub.
|
|
* mlibc/include/stdio.h (fread): Declare.
|
|
* mlibc/libc-mes+tcc.c (fread): Add stub.
|
|
|
|
mescc: Tinycc support: ftell stub.
|
|
* mlibc/include/stdio.h (ftell): Declare.
|
|
* mlibc/libc-mes+tcc.c (ftell): Add stub.
|
|
|
|
mescc: Tinycc support: fseek stub.
|
|
* mlibc/include/stdio.h (fseek): Declare.
|
|
* mlibc/libc-mes+tcc.c (fseek): Add stub.
|
|
|
|
mescc: Tinycc support: fopen stub.
|
|
* mlibc/include/stdio.h (fopen): Declare.
|
|
* mlibc/libc-mes+tcc.c (fopen): Add stub.
|
|
|
|
mescc: Tinycc support: strstr stub.
|
|
* mlibc/include/string.h (strstr): Declare.
|
|
* mlibc/libc-mes+tcc.c (strstr): Add stub.
|
|
|
|
mescc: Tinycc support: sscanf stub.
|
|
* mlibc/include/stdio.h (sscanf): Declare.
|
|
* mlibc/libc-mes+tcc.c (sscanf): Add stub.
|
|
|
|
mescc: Tinycc support: longjmp, setjump stub.
|
|
* mlibc/include/stdarg.h (longjmp, setjmp): Declare.
|
|
* mlibc/libc-mes+tcc.c (longjmp, setjmp): Add stub.
|
|
|
|
mescc: Tinycc support: function parameters.
|
|
* module/language/c99/compiler.mes (.name): Handle function parameters.
|
|
|
|
mescc: Tinycc support: fflush stub.
|
|
* mlibc/include/stdio.h (fflush): Declare.
|
|
* mlibc/libc-mes+tcc.c (fflush): Add stub.
|
|
|
|
mescc: Tinycc support: vnsprintf stub.
|
|
* mlibc/include/stdarg.h (vnsprintf): Declare.
|
|
* mlibc/libc-mes+tcc.c (vnsprintf): Add stub.
|
|
|
|
mescc: Tinycc support: jump 32.
|
|
* module/mes/as-i386.mes (i386:jump-byte-z): Use jne32 (was: jne8).
|
|
|
|
mescc: Tinycc support: free stub.
|
|
* mlibc/include/stdlib.h (free): Declare.
|
|
* mlibc/libc-mes+tcc.c (free): Add stub.
|
|
|
|
mescc: Tinycc support: strrchr stub.
|
|
* mlibc/include/string.h (strrchr): Declare.
|
|
* mlibc/libc-mes+tcc.c (strrchr): Add stub.
|
|
|
|
mescc: Tinycc support: strtoll stub.
|
|
* mlibc/include/stdlib.h (strtoll): Declare.
|
|
* mlibc/libc-mes+tcc.c (strtoll): Add stub.
|
|
|
|
mescc: Tinycc support: strtoull stub.
|
|
* mlibc/include/stdlib.h (strtoull): Declare.
|
|
* mlibc/libc-mes+tcc.c (strtoull): Add stub.
|
|
|
|
mescc: Tinycc support: strtol stub.
|
|
* mlibc/include/stdlib.h (strtol): Declare.
|
|
* mlibc/libc-mes+tcc.c (strtol): Add stub.
|
|
|
|
mescc: Tinycc support: lseek.
|
|
* mlibc/include/unistd.h (lseek): Declare.
|
|
* stage0/x86.M1 (SYS_lseek): New define.
|
|
* mlibc/libc-mes+tcc.c (lseek): New function.
|
|
|
|
mescc: Tinycc support: fclose stub.
|
|
* mlibc/include/stdio.h (fclose): Declare.
|
|
* mlibc/libc-mes+tcc.c (fclose): Add stub.
|
|
|
|
mescc: Tinycc support: fdopen stub.
|
|
* mlibc/include/stdio.h (fdopen): Declare.
|
|
* mlibc/libc-mes+tcc.c (fdopen): Add stub.
|
|
|
|
mescc: Tinycc support: unlink.
|
|
* mlibc/include/unistd.h (unlink): Declare.
|
|
* stage0/x86.M1 (SYS_unlink): New define.
|
|
* mlibc/libc-mes+tcc.c (unlink): New function.
|
|
|
|
mescc: Tinycc support: fwrite stub.
|
|
* mlibc/include/stdio.h (fwrite): Declare.
|
|
* mlibc/libc-mes+tcc.c (fwrite): Add stub.
|
|
|
|
mescc: Tinycc support: qsort stub.
|
|
* mlibc/include/stdlib.h (qsort): Declare.
|
|
* mlibc/libc-mes+tcc.c (qsort): Add stub.
|
|
|
|
mescc: Tinycc support: getcwd.
|
|
* mlibc/include/unistd.h (getcwd): Declare.
|
|
* stage0/x86.M1 (SYS_getcwd): New define.
|
|
* mlibc/libc-mes+tcc.c (getcwd): New function.
|
|
|
|
mescc: Tinycc support: strchr stub.
|
|
* mlibc/include/string.h (strchr): Declare.
|
|
* mlibc/libc-mes+tcc.c (strchr): Add stub.
|
|
|
|
mescc: Tinycc support: fprintf stub.
|
|
* mlibc/include/stdio.h (fprintf): Declare.
|
|
* mlibc/libc-mes+tcc.c (fprintf): Add stub.
|
|
|
|
mescc: Tinycc support: localtime stub.
|
|
* mlibc/include/time.h (localtime): Declare.
|
|
* mlibc/libc-mes+tcc.c (localtime): Add stub.
|
|
|
|
mescc: Tinycc support: time stub.
|
|
* mlibc/include/time.h (time): Declare.
|
|
* mlibc/libc-mes+tcc.c (time): Add stub.
|
|
|
|
mescc: Tinycc support: snprintf stub.
|
|
* mlibc/include/stdio.h (snprintf): Declare.
|
|
* mlibc/libc-mes+tcc.c (snprintf): Add stub.
|
|
|
|
mescc: Tinycc support: strtoul stub.
|
|
* mlibc/include/stdlib.h (strtoul): Declare.
|
|
* mlibc/libc-mes+tcc.c (strtoul): Add stub.
|
|
|
|
mescc: Tinycc support: memmove stub.
|
|
* mlibc/include/string.h (memcmp): Declare.
|
|
* mlibc/libc-mes+tcc.c (memcmp): Add stub.
|
|
|
|
mescc: Tinycc support: memset stub.
|
|
* mlibc/include/string.h (memset): Declare.
|
|
* mlibc/libc-mes+tcc.c (memset): Add stub.
|
|
|
|
mescc: Tinycc support: memmove stub.
|
|
* mlibc/include/string.h (memmove): Declare.
|
|
* mlibc/libc-mes+tcc.c (memmove): Add stub.
|
|
|
|
mescc: Tinycc support: memcpy stub.
|
|
* mlibc/include/string.h (memcpy): Declare.
|
|
* mlibc/libc-mes+tcc.c (memcpy): Add stub.
|
|
|
|
mescc: Tinycc support: close.
|
|
* stage0/x86.M1 (SYS_close): New define.
|
|
* mlibc/include/unistd.h (close): Declare.
|
|
* mlibc/libc-mes+tcc.c: New file.
|
|
* make.scm: Build and install it.
|
|
|
|
mescc: Tinycc support: arithmetic in initializes.
|
|
* module/language/c99/compiler.mes (p-expr->number): Handle
|
|
bitwise-or, constants.
|
|
(initzer-data): Refactor, use p-expr->number.
|
|
|
|
mescc: Tinycc support: multi-byte [local] offsets.
|
|
* stage0/x86.M1: Add 32bit variants for all 8bit instructions.
|
|
* module/mes/as-i386.mes: Use them, switch on size.
|
|
|
|
mescc: Naming fix.
|
|
* stage0/x86.M1 (je8): Rename from jne8.
|
|
* module/mes/as-i386.mes (i386:jump-byte-z): Update.
|
|
|
|
mescc: Tinycc support: remove warnings for foo (void), foo (...).
|
|
* module/language/c99/compiler.mes (.name, .type): Expect foo (void), foo (...).
|
|
|
|
mescc: Tinycc support: multiple statements in default case.
|
|
* module/language/c99/compiler.mes (clause->info): Support multiple
|
|
statements in default case.
|
|
|
|
mescc: Tinycc support: array[<const-expr>].
|
|
* module/language/c99/compiler.mes (p-expr->number): New function.
|
|
(struct-field, decl->info): Use it to support const expressions in array size.
|
|
|
|
mescc: Use "tag" for tag namespace.
|
|
* module/language/c99/compiler.mes: Use "tag" for tag namespace (WAS: "struct").
|
|
Move enums to "tag" namespace.
|
|
|
|
mescc: Guile eval.c support: headers.
|
|
* mlibc/include/signal.h (sigset_t): New type.
|
|
* mlibc/include/float.h: New file.
|
|
* mlibc/include/stddef.h: New file.
|
|
* mlibc/include/sys/select.h: New file.
|
|
|
|
mescc: Non-Guix support. Thanks rain1!
|
|
* mlibc/include: Neutralize include guards before #include_next.
|
|
Fixes compiling tinycc on Debian GNU/Linux.
|
|
|
|
mescc: Tinycc support: sizeof (struct.field).
|
|
* module/language/c99/compiler.mes (expr->accu): Support sizeof (struct.field).
|
|
|
|
mescc: Tinycc support: struct.union.
|
|
* module/language/c99/compiler.mes (struct-field): Add struct tag to
|
|
struct/union types.
|
|
(field-type, field-size, field-offset, field-field, ast-type->type):
|
|
Ascertain struct tag with type.
|
|
* (expr->accu*): Do not add struct tag.
|
|
* scaffold/tests/75-struct-union.c: Test it.
|
|
* scaffold/tests/71-struct-array.c: Update.
|
|
|
|
mescc: Tinycc support: sizeof ("foo").
|
|
* module/language/c99/compiler.mes (expr->accu): Support sizeof (string).
|
|
|
|
mescc: Tinycc support: struct foo {int bar; int baz} = {0}.
|
|
* module/language/c99/compiler.mes (decl->info): struct foo {int bar; int baz} = {0}.
|
|
* scaffold/tests/72-typedef-struct-def.c (test):
|
|
|
|
mescc: Tinycc support: generalize neg.
|
|
* module/language/c99/compiler.mes (expr->accu): Generalize neg.
|
|
|
|
mescc: Tinycc support: >>=, <<=.
|
|
* module/language/c99/compiler.mes (expr->accu): Support >>= <<=.
|
|
|
|
mescc: Bugfix non-char* *x x[] test.
|
|
* module/language/c99/compiler.mes (expr->pointer): New function.
|
|
(test-jump-label->info): Use it to fix non char* while (*x | x[i]).
|
|
|
|
mescc: Tinycc support: foo[i].bar.baz.
|
|
* module/language/c99/compiler.mes (init-declr->pointer): Use -1 for array.
|
|
(expr->accu): Implement foo[i].bar.baz.
|
|
* scaffold/tests/72-typedef-struct-def.c (test): Test it.
|
|
|
|
mescc: Tinycc support: *global =.
|
|
* module/language/c99/compiler.mes (base->ident-address):
|
|
Support *global = ...
|
|
* scaffold/tests/74-multi-line-string.c: Test it.
|
|
|
|
mescc: Tinycc support: anonymous union.
|
|
* module/language/c99/compiler.mes (field:name): New function.
|
|
(decl->info): Use it.
|
|
(struct-field): Support anonymous union.
|
|
(field:size): Update.
|
|
(field-field): Update.
|
|
(field-offset): Update.
|
|
|
|
mescc: Tinycc support: declare struct tm.
|
|
* mlibc/include/time.h (struct tm): New type.
|
|
|
|
mescc: Tinycc support: ignore [ULL], UL, LL, L.
|
|
* module/language/c99/compiler.mes (cstring->number): Drop suffix.
|
|
|
|
mescc: Tinycc support: ~, ^=.
|
|
* module/mes/as-i386.mes (i386:accu-not): New function.
|
|
(i386:accu-negate): Rename from i386:accu-not.
|
|
* module/mes/as-i386.scm (mes): Export them.
|
|
* module/language/c99/compiler.mes (expr->accu): Support ~, ^=.
|
|
* scaffold/tests/60-math.c (test): Test it.
|
|
* stage0/x86.M1 (not____%eax): New define.
|
|
|
|
mescc: Tinycc support: struct.struct.
|
|
* module/language/c99/compiler.mes (expr->accu): Support &*,
|
|
bar.foo.i, p->foo.i, p->pf->i (*pp)->foo.i, [slightly modified] offsetof.
|
|
* scaffold/tests/72-typedef-struct-def.c (test): Test them.
|
|
|
|
mescc: Tinycc support: ***parameter.
|
|
* module/language/c99/compiler.mes (.name): Support ***parameter.
|
|
|
|
mescc: Tinycc support: bitwise-or initializer.
|
|
* module/language/c99/compiler.mes (initzer->value): New function.
|
|
(initzer->data): Use it to support bitwise-or initializer.
|
|
* scaffold/tests/74-multi-line-string.c (test): Test it.
|
|
|
|
mescc: Tinycc support: char*[] in function.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Add NULL.
|
|
(decl->info): Support char* [] in function scope.
|
|
* scaffold/tests/71-struct-array.c (test) Test it.
|
|
|
|
mescc: Tinycc support: more list initializers.
|
|
* module/language/c99/compiler.mes (init-declr->name): Handle array,
|
|
pointer array.
|
|
(init-declr->pointer): Likewise.
|
|
(decl->info): Generalize list initializers, add pointer variant.
|
|
FIXME: AST-rewriting?
|
|
|
|
mescc: Tinycc support: headers.
|
|
* mlibc/include/string.h (ssize_t): New type.
|
|
* mlibc/include/unistd.h (ssize_t): New type.
|
|
|
|
mescc: Tinycc support: sizeof struct field.
|
|
* module/language/c99/compiler.mes (expr->accu): Sizeof struct field.
|
|
* scaffold/tests/72-typedef-struct-def.c (test): Test it.
|
|
|
|
mescc: Tinycc support: sizeof typename.
|
|
* module/language/c99/compiler.mes (expr->accu): Sizeof typename.
|
|
|
|
mescc: Tinycc support: pre/post-inc/dec more.
|
|
* module/language/c99/compiler.mes (expr-add): New function.
|
|
(expr->pointer): New function.
|
|
(expr->accu): Use it to support broader pre/post-inc/dec..
|
|
* scaffold/tests/72-typedef-struct-def.c (test): Test it.
|
|
|
|
mescc: Tinycc support: comma operator.
|
|
* module/language/c99/compiler.mes (expr->accu): Handle comma operator.
|
|
* scaffold/tests/74-multi-line-string.c (test): Test it.
|
|
|
|
mescc: Tinycc support: assign pointer to struct field.
|
|
* module/language/c99/compiler.mes (expr->accu, expr->accu*): Support
|
|
pointer field selection.
|
|
* scaffold/tests/72-typedef-struct-def.c (test): Test it.
|
|
|
|
mescc: Tinycc support: multi-line strings.
|
|
* module/language/c99/compiler.mes (initzer->data, expr->global):
|
|
Handle multi-line strings.
|
|
* scaffold/tests/74-multi-line-string.c: New file.
|
|
* make.scm (add-scaffold-test): Build it.
|
|
|
|
mescc: Tinycc support: union.
|
|
* scaffold/tests/73-union.c: New file.
|
|
* module/language/c99/compiler.mes (union->type-entry): New
|
|
function.
|
|
(decl->info): Support unions.
|
|
|
|
mescc: Tinycc support: struct.
|
|
* scaffold/tests/72-typedef-struct-def.c: New file.
|
|
* module/language/c99/compiler.mes (decl->info): Struct support for tinycc.
|
|
|
|
mescc: Refactor decl.
|
|
* module/mes/as-i386.mes (i386:mem->base, i386:nop): New functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes:
|
|
* stage0/x86.M1 (nop,mov____(%edx),%edx,movzbl_(%edx),%edx): New defines.
|
|
* scaffold/tests/23-pointer.c: New file.
|
|
* scaffold/tests/t.c: New file.
|
|
* make.scm: Build them.
|
|
* module/language/c99/compiler.mes (init-declr->name): Handle array.
|
|
(init-declr->pointer): Likewise.
|
|
(ident->accu): Simplify.
|
|
(ident->base): Simplify.
|
|
(ident-address->base): Typo.
|
|
(expr->accu): Simplify.
|
|
(decl->info): Simplify.
|
|
* mlibc/libc-mes.c (getenv): Remove superfluous statement.
|
|
|
|
mescc: Use records for Guile: <local>.
|
|
* module/language/c99/info.scm (<local>): New record.
|
|
* module/language/c99/compiler.mes (make-local-entry): Rename from
|
|
make-local. Update callers.
|
|
(local-var?): Rename from local?. Update callers.
|
|
* module/language/c99/info.mes (make-local, local:type, local:pointer,
|
|
local:id): Move from compiler.mes.
|
|
|
|
mescc: Use records for Guile: <global>.
|
|
* module/language/c99/info.scm (<global>): New record.
|
|
* module/language/c99/compiler.mes (make-global-entry): Rename from
|
|
make-global. Update callers.
|
|
* module/language/c99/info.mes (make-global, global:type,
|
|
global:pointer, global:value): Move from compiler.mes.
|
|
|
|
mescc: Use records for Guile: <type>.
|
|
* module/language/c99/info.scm (<type>): New record.
|
|
* module/language/c99/compiler.mes (make-type-entry): Rename from
|
|
make-type. Update-callers.
|
|
* module/language/c99/info.mes (make-type, type:type, type:size,
|
|
type:pointer, type:description): Move from compiler.mes.
|
|
|
|
mescc: Use records for Guile: <info>.
|
|
* module/language/c99/info.scm (<info>): Make immutable record.
|
|
Update users.
|
|
|
|
mescc: Use records for Guile: preparation.
|
|
* module/language/c99/info.mes: New file.
|
|
* module/mes/M1.mes: Use it.
|
|
* scripts/mescc.mes: Use it.
|
|
* module/language/c99/compiler.mes: Use it. (<info>, <types>,
|
|
<constants>, <functions>, <globals>, <locals>, <function>, <text>,
|
|
<break>, <continue>, make, info?, .info, .types, .constants,
|
|
.functions, .globals, .locals, .function, .text, .break, .continue):
|
|
Remove.
|
|
* module/language/c99/info.scm: New file.
|
|
* module/language/c99/compiler.scm: Use it.
|
|
* guile/mescc.scm: Use it.
|
|
* module/mes/M1.scm: Use it.
|
|
|
|
mescc: Refactor decl.
|
|
* module/language/c99/compiler.mes (decl->info, ptr-declr->pointer):
|
|
New function.
|
|
(ast->info): Use decl->info.
|
|
|
|
guix: Update build.
|
|
* guix.scm (mes): Do not strip. Fixes mes binary.
|
|
|
|
build: support Guix.
|
|
* guile/guix/make.scm (link-or-cp): New function.
|
|
(assert-link, store): Use it.
|
|
|
|
build: Add make install.
|
|
* guile/guix/make.scm (method-cp, install, install-target?): New functions.
|
|
* make.scm: Use them.
|
|
|
|
build: Add target list.
|
|
* GNUmakefile (%): Handle all targets.
|
|
* make.scm (main): Show and implement target list.
|
|
|
|
build: Ignore some files.
|
|
.gitignore: Update for make.scm.
|
|
|
|
build: Bugfix for store.
|
|
* guile/guix/make.scm (store): Add each store file only once.
|
|
|
|
build: Resurrect guile-2.0. Thanks rain1!
|
|
* module/mes/guile.scm: New file.
|
|
* module/mes/elf.scm: Include it.
|
|
* module/mes/bytevectors.scm: : Include it.
|
|
* module/mes/as.scm: Include it.
|
|
* module/mes/as-i386.scm: Include it.
|
|
* module/mes/M1.scm: Include it.
|
|
* module/language/c99/compiler.scm: Include it.
|
|
* make.scm: Update.
|
|
|
|
2017-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Non-Guix build robustifications. Thanks, rain1!
|
|
Fix typo in configure, gracefully switch between M0 vs M1, skip
|
|
CC32/i686-unknown-linux-gnu-gcc targets if not available, esp. for
|
|
non-Guix usage.
|
|
|
|
* configure (M1): Declare missing variable.
|
|
* make.scm (main): all-go, clean-go: New targets.
|
|
* GNUmakefile (PHONY_TARGETS): Add them.
|
|
(.config.make): New target.
|
|
* guile/guix/make.scm (%CC32): Set to #f if not found.
|
|
(bin.gcc): Skip if CC not set.
|
|
(check-target?, add-target): Skip if target is not set.
|
|
|
|
2017-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Fix snarf dependencies.
|
|
* guile/guix/make.scm (compile.gcc compile.mescc bin.mescc m1-asm):
|
|
Accept and forward dependencies.
|
|
* make.scm (gcc-snarf-targets): Remove explicit defaults.
|
|
|
|
build: Use released M0 intead of M1.
|
|
|
|
2017-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Import tinycc test suite.
|
|
* make.scm (check-scaffold-tinycc): New target.
|
|
* guile/guix/make.scm (<target>): Add baseline field.
|
|
(method-check): Handle baseline.
|
|
* scaffold/tinycc/00_assignment.c: New file.
|
|
* scaffold/tinycc/00_assignment.expect: New file.
|
|
* scaffold/tinycc/01_comment.c: New file.
|
|
* scaffold/tinycc/01_comment.expect: New file.
|
|
* scaffold/tinycc/02_printf.c: New file.
|
|
* scaffold/tinycc/02_printf.expect: New file.
|
|
* scaffold/tinycc/03_struct.c: New file.
|
|
* scaffold/tinycc/03_struct.expect: New file.
|
|
* scaffold/tinycc/04_for.c: New file.
|
|
* scaffold/tinycc/04_for.expect: New file.
|
|
* scaffold/tinycc/05_array.c: New file.
|
|
* scaffold/tinycc/05_array.expect: New file.
|
|
* scaffold/tinycc/06_case.c: New file.
|
|
* scaffold/tinycc/06_case.expect: New file.
|
|
* scaffold/tinycc/07_function.c: New file.
|
|
* scaffold/tinycc/07_function.expect: New file.
|
|
* scaffold/tinycc/08_while.c: New file.
|
|
* scaffold/tinycc/08_while.expect: New file.
|
|
* scaffold/tinycc/09_do_while.c: New file.
|
|
* scaffold/tinycc/09_do_while.expect: New file.
|
|
* scaffold/tinycc/10_pointer.c: New file.
|
|
* scaffold/tinycc/10_pointer.expect: New file.
|
|
* scaffold/tinycc/11_precedence.c: New file.
|
|
* scaffold/tinycc/11_precedence.expect: New file.
|
|
* scaffold/tinycc/12_hashdefine.c: New file.
|
|
* scaffold/tinycc/12_hashdefine.expect: New file.
|
|
* scaffold/tinycc/13_integer_literals.c: New file.
|
|
* scaffold/tinycc/13_integer_literals.expect: New file.
|
|
* scaffold/tinycc/14_if.c: New file.
|
|
* scaffold/tinycc/14_if.expect: New file.
|
|
* scaffold/tinycc/15_recursion.c: New file.
|
|
* scaffold/tinycc/15_recursion.expect: New file.
|
|
* scaffold/tinycc/16_nesting.c: New file.
|
|
* scaffold/tinycc/16_nesting.expect: New file.
|
|
* scaffold/tinycc/17_enum.c: New file.
|
|
* scaffold/tinycc/17_enum.expect: New file.
|
|
* scaffold/tinycc/18_include.h: New file.
|
|
* scaffold/tinycc/18_include.c: New file.
|
|
* scaffold/tinycc/18_include.expect: New file.
|
|
* scaffold/tinycc/19_pointer_arithmetic.c: New file.
|
|
* scaffold/tinycc/19_pointer_arithmetic.expect: New file.
|
|
* scaffold/tinycc/20_pointer_comparison.c: New file.
|
|
* scaffold/tinycc/20_pointer_comparison.expect: New file.
|
|
* scaffold/tinycc/21_char_array.c: New file.
|
|
* scaffold/tinycc/21_char_array.expect: New file.
|
|
* scaffold/tinycc/22_floating_point.c: New file.
|
|
* scaffold/tinycc/22_floating_point.expect: New file.
|
|
* scaffold/tinycc/23_type_coercion.c: New file.
|
|
* scaffold/tinycc/23_type_coercion.expect: New file.
|
|
* scaffold/tinycc/24_math_library.c: New file.
|
|
* scaffold/tinycc/24_math_library.expect: New file.
|
|
* scaffold/tinycc/25_quicksort.c: New file.
|
|
* scaffold/tinycc/25_quicksort.expect: New file.
|
|
* scaffold/tinycc/26_character_constants.c: New file.
|
|
* scaffold/tinycc/26_character_constants.expect: New file.
|
|
* scaffold/tinycc/27_sizeof.c: New file.
|
|
* scaffold/tinycc/27_sizeof.expect: New file.
|
|
* scaffold/tinycc/28_strings.c: New file.
|
|
* scaffold/tinycc/28_strings.expect: New file.
|
|
* scaffold/tinycc/29_array_address.c: New file.
|
|
* scaffold/tinycc/29_array_address.expect: New file.
|
|
* scaffold/tinycc/30_hanoi.c: New file.
|
|
* scaffold/tinycc/30_hanoi.expect: New file.
|
|
* scaffold/tinycc/31_args.c: New file.
|
|
* scaffold/tinycc/31_args.expect: New file.
|
|
* scaffold/tinycc/32_led.c: New file.
|
|
* scaffold/tinycc/32_led.expect: New file.
|
|
* scaffold/tinycc/33_ternary_op.c: New file.
|
|
* scaffold/tinycc/33_ternary_op.expect: New file.
|
|
* scaffold/tinycc/34_array_assignment.c: New file.
|
|
* scaffold/tinycc/34_array_assignment.expect: New file.
|
|
* scaffold/tinycc/35_sizeof.c: New file.
|
|
* scaffold/tinycc/35_sizeof.expect: New file.
|
|
* scaffold/tinycc/36_array_initialisers.c: New file.
|
|
* scaffold/tinycc/36_array_initialisers.expect: New file.
|
|
* scaffold/tinycc/37_sprintf.c: New file.
|
|
* scaffold/tinycc/37_sprintf.expect: New file.
|
|
* scaffold/tinycc/38_multiple_array_index.c: New file.
|
|
* scaffold/tinycc/38_multiple_array_index.expect: New file.
|
|
* scaffold/tinycc/39_typedef.c: New file.
|
|
* scaffold/tinycc/39_typedef.expect: New file.
|
|
* scaffold/tinycc/40_stdio.c: New file.
|
|
* scaffold/tinycc/40_stdio.expect: New file.
|
|
* scaffold/tinycc/41_hashif.c: New file.
|
|
* scaffold/tinycc/41_hashif.expect: New file.
|
|
* scaffold/tinycc/42_function_pointer.c: New file.
|
|
* scaffold/tinycc/42_function_pointer.expect: New file.
|
|
* scaffold/tinycc/43_void_param.c: New file.
|
|
* scaffold/tinycc/43_void_param.expect: New file.
|
|
* scaffold/tinycc/44_scoped_declarations.c: New file.
|
|
* scaffold/tinycc/44_scoped_declarations.expect: New file.
|
|
* scaffold/tinycc/45_empty_for.c: New file.
|
|
* scaffold/tinycc/45_empty_for.expect: New file.
|
|
* scaffold/tinycc/46_grep.c: New file.
|
|
* scaffold/tinycc/46_grep.expect: New file.
|
|
* scaffold/tinycc/47_switch_return.c: New file.
|
|
* scaffold/tinycc/47_switch_return.expect: New file.
|
|
* scaffold/tinycc/48_nested_break.c: New file.
|
|
* scaffold/tinycc/48_nested_break.expect: New file.
|
|
* scaffold/tinycc/49_bracket_evaluation.c: New file.
|
|
* scaffold/tinycc/49_bracket_evaluation.expect: New file.
|
|
* scaffold/tinycc/50_logical_second_arg.c: New file.
|
|
* scaffold/tinycc/50_logical_second_arg.expect: New file.
|
|
* scaffold/tinycc/51_static.c: New file.
|
|
* scaffold/tinycc/51_static.expect: New file.
|
|
* scaffold/tinycc/52_unnamed_enum.c: New file.
|
|
* scaffold/tinycc/52_unnamed_enum.expect: New file.
|
|
* scaffold/tinycc/54_goto.c: New file.
|
|
* scaffold/tinycc/54_goto.expect: New file.
|
|
* scaffold/tinycc/55_lshift_type.c: New file.
|
|
* scaffold/tinycc/55_lshift_type.expect: New file.
|
|
* scaffold/tinycc/56_btype_excess-1.c: New file.
|
|
* scaffold/tinycc/56_btype_excess-1.expect: New file.
|
|
* scaffold/tinycc/57_btype_excess-2.c: New file.
|
|
* scaffold/tinycc/57_btype_excess-2.expect: New file.
|
|
* scaffold/tinycc/58_function_redefinition.c: New file.
|
|
* scaffold/tinycc/58_function_redefinition.expect: New file.
|
|
* scaffold/tinycc/59_function_array.c: New file.
|
|
* scaffold/tinycc/59_function_array.expect: New file.
|
|
* scaffold/tinycc/60_enum_redefinition.c: New file.
|
|
* scaffold/tinycc/60_enum_redefinition.expect: New file.
|
|
* scaffold/tinycc/61_undefined_enum.c: New file.
|
|
* scaffold/tinycc/61_undefined_enum.expect: New file.
|
|
* scaffold/tinycc/62_enumerator_redefinition.c: New file.
|
|
* scaffold/tinycc/62_enumerator_redefinition.expect: New file.
|
|
* scaffold/tinycc/63_local_enumerator_redefinition.c: New file.
|
|
* scaffold/tinycc/63_local_enumerator_redefinition.expect: New file.
|
|
* scaffold/tinycc/64_macro_nesting.c: New file.
|
|
* scaffold/tinycc/64_macro_nesting.expect: New file.
|
|
* scaffold/tinycc/67_macro_concat.c: New file.
|
|
* scaffold/tinycc/67_macro_concat.expect: New file.
|
|
* scaffold/tinycc/70_floating_point_literals.c: New file.
|
|
* scaffold/tinycc/70_floating_point_literals.expect: New file.
|
|
* scaffold/tinycc/71_macro_empty_arg.c: New file.
|
|
* scaffold/tinycc/71_macro_empty_arg.expect: New file.
|
|
* scaffold/tinycc/72_long_long_constant.c: New file.
|
|
* scaffold/tinycc/72_long_long_constant.expect: New file.
|
|
* scaffold/tinycc/73_arm64.c: New file.
|
|
* scaffold/tinycc/73_arm64.expect: New file.
|
|
* scaffold/tinycc/74_nocode_wanted.c: New file.
|
|
* scaffold/tinycc/74_nocode_wanted.expect: New file.
|
|
* scaffold/tinycc/75_array_in_struct_init.c: New file.
|
|
* scaffold/tinycc/75_array_in_struct_init.expect: New file.
|
|
* scaffold/tinycc/76_dollars_in_identifiers.c: New file.
|
|
* scaffold/tinycc/76_dollars_in_identifiers.expect: New file.
|
|
* scaffold/tinycc/77_push_pop_macro.c: New file.
|
|
* scaffold/tinycc/77_push_pop_macro.expect: New file.
|
|
* scaffold/tinycc/78_vla_label.c: New file.
|
|
* scaffold/tinycc/78_vla_label.expect: New file.
|
|
* scaffold/tinycc/79_vla_continue.c: New file.
|
|
* scaffold/tinycc/79_vla_continue.expect: New file.
|
|
* scaffold/tinycc/80_flexarray.c: New file.
|
|
* scaffold/tinycc/80_flexarray.expect: New file.
|
|
* scaffold/tinycc/81_types.c: New file.
|
|
* scaffold/tinycc/81_types.expect: New file.
|
|
* scaffold/tinycc/82_attribs_position.c: New file.
|
|
* scaffold/tinycc/82_attribs_position.expect: New file.
|
|
* scaffold/tinycc/83_utf8_in_identifiers.c: New file.
|
|
* scaffold/tinycc/83_utf8_in_identifiers.expect: New file.
|
|
* scaffold/tinycc/84_hex-float.c: New file.
|
|
* scaffold/tinycc/84_hex-float.expect: New file.
|
|
* scaffold/tinycc/85_asm-outside-function.c: New file.
|
|
* scaffold/tinycc/85_asm-outside-function.expect: New file.
|
|
* scaffold/tinycc/86_memory-model.c: New file.
|
|
* scaffold/tinycc/86_memory-model.expect: New file.
|
|
* scaffold/tinycc/87_dead_code.c: New file.
|
|
* scaffold/tinycc/87_dead_code.expect: New file.
|
|
* scaffold/tinycc/88_codeopt.c: New file.
|
|
* scaffold/tinycc/88_codeopt.expect: New file.
|
|
* scaffold/tinycc/89_nocode_wanted.c: New file.
|
|
* scaffold/tinycc/89_nocode_wanted.expect: New file.
|
|
* scaffold/tinycc/90_struct-init.c: New file.
|
|
* scaffold/tinycc/90_struct-init.expect: New file.
|
|
* scaffold/tinycc/91_ptr_longlong_arith32.c: New file.
|
|
* scaffold/tinycc/91_ptr_longlong_arith32.expect: New file.
|
|
* scaffold/tinycc/92_enum_bitfield.c: New file.
|
|
* scaffold/tinycc/92_enum_bitfield.expect: New file.
|
|
* scaffold/tinycc/93_integer_promotion.c: New file.
|
|
* scaffold/tinycc/93_integer_promotion.expect: New file.
|
|
* scaffold/tinycc/COPYING: New file.
|
|
* scaffold/tinycc/LICENSE: New file.
|
|
|
|
include
|
|
|
|
2017-07-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Split-up Mescc scaffold test.
|
|
* make.scm (check-scaffold, check-scaffold-tests): New targets.
|
|
* mlibc/include/00-test.i: New file.
|
|
* mlibc/include/30-test.i: New file.
|
|
* mlibc/mini-libc-mes.c (puts): New function.
|
|
* scaffold/tests/00-exit-0.c: : New file.
|
|
* scaffold/tests/01-return-0.c: : New file.
|
|
* scaffold/tests/02-return-1.c: : New file.
|
|
* scaffold/tests/03-call.c: : New file.
|
|
* scaffold/tests/04-call-0.c: : New file.
|
|
* scaffold/tests/05-call-1.c: : New file.
|
|
* scaffold/tests/06-call-!1.c: : New file.
|
|
* scaffold/tests/10-if-0.c: : New file.
|
|
* scaffold/tests/11-if-1.c: : New file.
|
|
* scaffold/tests/12-if-==.c: : New file.
|
|
* scaffold/tests/13-if-!=.c: : New file.
|
|
* scaffold/tests/14-if-goto.c: : New file.
|
|
* scaffold/tests/15-if-!f.c: : New file.
|
|
* scaffold/tests/16-if-t.c: : New file.
|
|
* scaffold/tests/20-while.c: : New file.
|
|
* scaffold/tests/21-char[].c: : New file.
|
|
* scaffold/tests/22-while-char[].c: : New file.
|
|
* scaffold/tests/30-strlen.c: : New file.
|
|
* scaffold/tests/31-eputs.c: : New file.
|
|
* scaffold/tests/32-compare.c: : New file.
|
|
* scaffold/tests/33-and-or.c: : New file.
|
|
* scaffold/tests/34-pre-post.c: : New file.
|
|
* scaffold/tests/35-compare-char.c: : New file.
|
|
* scaffold/tests/36-compare-arithmetic.c: : New file.
|
|
* scaffold/tests/37-compare-assign.c: : New file.
|
|
* scaffold/tests/38-compare-call.c: : New file.
|
|
* scaffold/tests/40-if-else.c: : New file.
|
|
* scaffold/tests/41-?.c: : New file.
|
|
* scaffold/tests/42-goto-label.c: : New file.
|
|
* scaffold/tests/43-for-do-while.c: : New file.
|
|
* scaffold/tests/44-switch.c: : New file.
|
|
* scaffold/tests/45-void-call.c: : New file.
|
|
* scaffold/tests/50-assert.c: : New file.
|
|
* scaffold/tests/51-strcmp.c: : New file.
|
|
* scaffold/tests/52-itoa.c: : New file.
|
|
* scaffold/tests/53-strcpy.c: : New file.
|
|
* scaffold/tests/54-argv.c: : New file.
|
|
* scaffold/tests/60-math.c: : New file.
|
|
* scaffold/tests/61-array.c: : New file.
|
|
* scaffold/tests/63-struct-cell.c: : New file.
|
|
* scaffold/tests/64-make-cell.c: : New file.
|
|
* scaffold/tests/65-read.c: : New file.
|
|
* scaffold/tests/66-struct-array.c: : New file.
|
|
* scaffold/t.c: Remove.
|
|
* scaffold/t-tcc.c: Remove.
|
|
|
|
mescc: Avoid warnings in recursve functions.
|
|
* module/language/c99/compiler.mes (expr->accu): Avoid warnings in recursve functions.
|
|
|
|
mescc: undefine __GNUC__.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Remove
|
|
__GNUC__=0. Should help compiling pcc, libguile/eval.c.
|
|
|
|
2017-07-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support stdarg.
|
|
* mlibc/include/stdarg.h (va_list): New type.
|
|
(va_start, va_arg, va_end, va_copy): New macro.
|
|
(vprintf): New declaration.
|
|
* mlibc/libc-mes.c (vprintf): New function.
|
|
(printf): Rewrite using vprintf.
|
|
* module/language/c99/compiler.mes (expr->accu, expr->accu*): Handle
|
|
any array. Limitation: element size must be 4/sizeof (expression).
|
|
(make-type): Add value pointer to type.
|
|
(type:type, type:size, type:pointer, type:description): New functions.
|
|
(ast->info): Handle typedef with pointer.
|
|
|
|
2017-07-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Remove make.
|
|
* GNUmakefile: trivial convenience-frontend to ./make.scm
|
|
* make/*.make: Remove.
|
|
* */*.make: Remove.
|
|
|
|
2017-07-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Produce M1 output instead of hex2.
|
|
Use: ./make.scm [TARGET]
|
|
./make.scm check
|
|
|
|
* stage0/x86.M1: New file.
|
|
* mlibc/mini-libc-mes.c (exit, write): Use M1 instead of .byte.
|
|
* mlibc/libc-mes.c (_start, exit, read, write, open, access, brk,
|
|
fsync, printf): Use M1 instead of .byte.
|
|
* module/mes/as-i386.mes: Use M1.
|
|
* module/mes/make.scm: New file.
|
|
* make.scm: New file.
|
|
* guile/guix/records.scm: New File.
|
|
* guile/guix/shell-utils.scm: New file.
|
|
* module/mes/M1.mes: Rename from hex2.mes.
|
|
* module/mes/M1.scm: Rename from hex2.scm.
|
|
* scripts/mescc.mes: Update callers.
|
|
* guile/mescc.scm: Update callers.
|
|
|
|
2017-06-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add headers for guile:eval.c.
|
|
* mlibc/include/alloca.h: New file.
|
|
* mlibc/include/stdint.h: New file.
|
|
* mlibc/include/inttypes.h: Remove definitionss, include stdint.h.
|
|
|
|
mescc: Add headers for 8cc.
|
|
* mlibc/include/libgen.h: New file.
|
|
* mlibc/include/locale.hh: New file.
|
|
* mlibc/include/stdbool.h: New file.
|
|
* mlibc/include/stdnoreturn.h: New file.
|
|
* mlibc/include/time.h: Add time_t.
|
|
|
|
2017-06-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Add missing module.
|
|
* guix.scm: Use (guix download). Fixes compilation with mescc-tools included.
|
|
|
|
2017-06-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix: Add mescc-tools.
|
|
* guix.scm (mescc-tools): New variable. Fixes using guix.scm. Thanks paroneayea!
|
|
|
|
2017-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.8.
|
|
* configure (VERSION): Bump.
|
|
|
|
build: Release update.
|
|
* configure (main): Make hex2 required.
|
|
* guix.scm (mes): Add mescc-tools to propagated-inputs. Update commit, hash.
|
|
|
|
2017-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* NEWS: Update.
|
|
* INSTALL: Update.
|
|
* HACKING: Update.
|
|
* doc/ANNOUNCE-0.8: New file.
|
|
|
|
2017-06-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove ELF creation, handled by hex2 now.
|
|
* module/language/c99/compiler.scm (make-global, global:type,
|
|
global:pointer, global:value): Move from elf-util.mes
|
|
* module/mes/as.mes: New file.
|
|
* module/mes/as-i386.mes: Use it.
|
|
* module/mes/as-i386.scm: Use it.
|
|
* module/mes/elf-util.mes: Remove.
|
|
* module/mes/elf.mes (elf32-addr, elf32-half, elf32-off, elf32-word,
|
|
make-elf, write-any, object->elf): Remove
|
|
(hex2->elf): New function with dummy implementation.
|
|
* module/mes/elf.scm: Update exports.
|
|
* module/mes/hex2.mes (object->elf): New function.
|
|
* module/mes/hex2.scm: Export it.
|
|
|
|
mescc: Produce object files in hex2 format, remove hex3.
|
|
* GNUmakefile (HEX2_FLAGS): New variable.
|
|
* make/mescc-guile.make ($(OUT)/$(TARGET)): Use HEX2 for linking.
|
|
* make/mescc-mes.make ($(OUT)/$(TARGET)): Likewise.
|
|
* guile/mescc.scm (main): Remove hex3 support.
|
|
* scripts/mescc.mes (main): Likewise.
|
|
* stage0/elf32-0header.hex2: New file, merging of elf32.hex and elf32-header.hex2.
|
|
* stage0/elf-0footer.hex2: New file.
|
|
* stage0/elf32-header.hex2: Rename from elf32-header-exit-42.hex2,
|
|
repurpose as generic debug heder.
|
|
* stage0/elf32-footer-single-main.hex2: Rename from elf32-footer-exit-42.hex2,
|
|
repurpose as generic debug footer for single-main source.
|
|
* stage0/exit-42.c: New file.
|
|
* stage0/stage0.make ($(OUT)/0exit-42): Test 0header, 0footer.
|
|
($(OUT)/exit-42.guile): Test generic debug header, footer.
|
|
* stage0/elf32.hex2: Remove.
|
|
|
|
2017-06-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Add stage0 hex2 test.
|
|
* configure (HEX2): Check for hex2 from MESCC_tools.
|
|
* INSTALL: Mention it.
|
|
* GNUmakefile (SUBDIRS): Add stage0.
|
|
* make/check-cc.make: New file.
|
|
* make/check.make: Remove CC-not-empty guard.
|
|
* scaffold/scaffold.make: Update CC check targets.
|
|
|
|
2017-06-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
stage0: Move to-be-generated part of body to footer.
|
|
* stage0/elf32-footer-exit-42.hex2: Add ELF_str, ELF_sym from body.
|
|
* stage0/elf32-body-exit-42.hex2: Remove ELF_str, ELF_sym.
|
|
|
|
2017-06-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
stage0: Leverage label>base in stage0 gdb header.
|
|
* stage0/elf32-header-exit-42.hex2: Replace calculated addresses with label>base.
|
|
* stage0/elf32-body-exit-42.hex2: Likewise.
|
|
|
|
stage0: Move stage0's section-headers before text.
|
|
* stage0/elf32-header-exit-42.hex2: Add section-headers.
|
|
* stage0/elf32-body-exit-42.hex2: Update.
|
|
* stage0/elf32-footer-exit-42.hex2: Remove section-headers.
|
|
|
|
2017-06-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
stage0: Add stage0 hex2 gdb header and footer example.
|
|
* stage0/elf32-header-exit-42.hex2: New file.
|
|
* stage0/elf32-footer-exit-42.hex2: New file.
|
|
|
|
2017-06-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove jump calculation, use labels: rename jumps.
|
|
* module/mes/as-i386.mes (i386:jump, i386:jump-byte-z, i386:jump-g,
|
|
i386:jump-ge, i386:jump-nc, i386:jump-ncz, i386:jump-nz,
|
|
i386:jump-z): Rename from i386:jump-label*.
|
|
* module/mes/as-i386.scm (mes): Update exports.
|
|
* module/language/c99/compiler.mes (ast->info): Update callers.
|
|
|
|
mescc: Remove jump calculation, use labels: remove offset-jumps.
|
|
* module/mes/as-i386.mes (i386:XXjump, i386:Xjump, i386:Xjump-c,
|
|
i386:Xjump-cz, i386:Xjump-g, i386:Xjump-ge, i386:Xjump-l,
|
|
i386:Xjump-le, i386:Xjump-nc, i386:Xjump-ncz, i386:Xjump-ncz",
|
|
i386:Xjump-nz, i386:Xjump-z, i386:jump, i386:jump-byte-nz,
|
|
i386:jump-byte-z, i386:jump-c, i386:jump-cz, i386:jump-le,
|
|
i386:jump-nc, i386:jump-ncz, i386:jump-nz, i386:jump-z,
|
|
i386:test-jump-z): Remove.
|
|
* module/mes/as-i386.scm: Remove export.
|
|
|
|
2017-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove jump calculation, use labels: cleanup.
|
|
* module/language/c99/compiler.mes (test->jump->info): Remove.
|
|
|
|
2017-06-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove jump calculation, use labels: switch.
|
|
* module/language/c99/compiler.mes (expr->accu): Refactor (switch ...).
|
|
(clause->info): Refactor.
|
|
|
|
2017-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove jump calculation, use labels: and, or.
|
|
* module/language/c99/compiler.mes (expr->accu): Refactor (and
|
|
...), (or ...).
|
|
|
|
mescc: Remove jump calculation, use labels: if.
|
|
* module/language/c99/compiler.mes (ast->info): Refactor (if ...)
|
|
using test-jump-label->info.
|
|
|
|
mescc: Remove jump calculation, use labels: for.
|
|
* module/language/c99/compiler.mes (ast->info): Refactor (for ...)
|
|
using test-jump-label->info.
|
|
|
|
mescc: Remove jump calculation, use labels: do while.
|
|
* module/language/c99/compiler.mes (ast->info): Refactor (do-while
|
|
...) using test-jump-label->info.
|
|
|
|
mescc: Remove jump calculation, use labels: ?.
|
|
* module/language/c99/compiler.mes (ast->info): Refactor (cond-expr
|
|
...) using test-jump-label->info.
|
|
|
|
mescc: Support continue in while.
|
|
* module/language/c99/compiler.mes (make): Add continue field.
|
|
(.continue): New function.
|
|
(clone): Support continue field.
|
|
(ast->info): Support continue.
|
|
* scaffold/t.c (test): Test it.
|
|
|
|
mescc: Remove jump calculation, use labels: while.
|
|
* module/language/c99/compiler.mes (ast->info): Refactor (while ...)
|
|
using test-jump-label->info.
|
|
|
|
mescc: Remove jump calculation, use labels: prepare.
|
|
* module/language/c99/compiler.mes (test-jump-label->info): New
|
|
function.
|
|
* module/mes/as-i386.mes (i386:jump-label-z,i386:jump-label-byte-z,
|
|
i386:jump-label-g, i386:jump-label-ge,i386:jump-label-nz): New
|
|
functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
|
|
mescc: Remove duplication of string globals.
|
|
* module/language/c99/compiler.mes (expr->global): Curry-in globals.
|
|
Update callers.
|
|
(initzer->global): Likewise.
|
|
|
|
2017-06-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Unify labels.
|
|
* module/language/c99/compiler.mes: Use (#:address label) (#local
|
|
label) (#:relative label) thoughout.
|
|
* module/mes/elf-util.mes (add-s:-prefix, drop-s:-prefix): Remove.
|
|
(function->text): Update.
|
|
* module/mes/hex2.mes (write-hex2): Update.
|
|
|
|
mescc: Write object files in hex2 or hex3 format.
|
|
* stage0/elf32.hex2: New file.
|
|
* module/mes/hex2.mes: New file.
|
|
* module/mes/hex2.scm: New file.
|
|
* module/language/c99/compiler.mes: Eradicate object lamdas.
|
|
(current-eval, dec-xhex, function:-object->text, object->elf,
|
|
object->objects, merge-objects, alist-add): Remove.
|
|
* module/mes/elf.mes (object->elf): New function, move from compiler.mes.
|
|
* module/mes/elf.scm: Export it.
|
|
* guile/mescc.scm (parse-opts): Add -g.
|
|
(main): Use it.
|
|
* scripts/mescc.mes: Likewise.
|
|
* scripts/mescc-guile.make (MESCC.scm, MESLD.scm): Add -g flag.
|
|
* scripts/mescc-mes.make (MESCC.mes, MESLD.mes): Likewise.
|
|
* scaffold/m.c: Add proper includes.
|
|
* scaffold/argv.c: New file.
|
|
* scaffold/hello.c: Simplify.
|
|
* scaffold/micro-mes.c: Add proper includes.
|
|
* scaffold/t.c: Add proper includes.
|
|
|
|
2017-06-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: %moduledir ends with /.
|
|
* make/install.make (MODULEDIR): Append /.
|
|
(install): Remove /.
|
|
* src/mes.c (load_env, bload_env): Update.
|
|
|
|
2017-06-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Put _start at top of mlibc.
|
|
* mlibc/libc-mes.c (_start): Move to top.
|
|
* mlibc/mini-libc-mes.c (_start): Likewise.
|
|
* module/mes/elf-util.mes (function-prefix): Update for _start == 0.
|
|
(function-offset): Likewise.
|
|
|
|
mes: Add list-index.
|
|
* module/srfi/srfi-1.scm (list-index): New function.
|
|
|
|
2017-06-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Bugfix add prepocess dependency on snarfing mes.
|
|
* src/src.make ($(OUT)/$(DIR)/mes.guile-E, $(OUT)/$(DIR)/mes.mes-E):
|
|
Depend on mes snarfing.
|
|
|
|
2017-06-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Support for non-Guix[SD]: cater for missing CC/CC32 compilers.
|
|
* make/check.make: Skip if CC is not set.
|
|
* make/check-mlibc.make: New file.
|
|
* scaffold/scaffold.make: Use it for mlibc targets.
|
|
* tinycc/tinycc.make: Skip mlibc targets if CC32 not set.
|
|
|
|
mescc: Support for non-Guix[SD] builds.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Cater for
|
|
C_INCLUDE_PATH not set. Fixes non-Guix[SD] builds.
|
|
|
|
build: Support for non-Guix[SD]: make CC/CC32 optional in configure too.
|
|
* configure (optional): New global.
|
|
(BUILD_TRIPLET): Use Guile value.
|
|
(check-version): Add keyword argument #:optional.
|
|
(main): Make CC optional (--with-courage). Only check for stdio.h,
|
|
limits.h if CC is found.
|
|
Make CC32 check optional.
|
|
* scripts/scripts.make: Skip if CC is not set.
|
|
|
|
2017-06-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Bugfix for merging objects.
|
|
* mlibc/libc-mes.c (main): Declare.
|
|
* mlibc/mini-libc-mes.c (g_stdin): Define.
|
|
(main): Declare.
|
|
* module/language/c99/compiler.mes (alist-add): Thinko. Fixes merging
|
|
objects when first declares function of next.
|
|
|
|
2017-06-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix hash: 0fvzr1ai2rmi46zdi5b2bdjb6s8ip78mkmsk02yxl46rajmp2pb1
|
|
|
|
Release 0.7.
|
|
* configure (VERSION): Bump.
|
|
|
|
doc: Release update.
|
|
* AUTHORS: Remove module/nyacc.
|
|
* HACKING: Release uppdate.
|
|
* NEWS: Release uppdate.
|
|
* doc/ANNOUNCE-0.7: New file.
|
|
|
|
guix: mes.git: Add git hash to version.
|
|
* guix.scm (mes.git): Add git hash to version.
|
|
|
|
mescc: move include into share/mlibc, allows installing alongside gcc.
|
|
* mlibc: Rename from libc.
|
|
* HACKING: Update for name change.
|
|
* make/bin.make: Likewise.
|
|
* make/mescc-guile.make: Likewise.
|
|
* make/mescc-mes.make: Likewise.
|
|
* scaffold/scaffold.make: Likewise.
|
|
* make/install.make: Likewise.
|
|
(install): Install mlibc into share/mlibc.
|
|
|
|
2017-06-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Handle any const, by ignoring.
|
|
* module/language/c99/compiler.mes (ast-strip-const): New function.
|
|
(c99-input->ast): Use it.
|
|
(type->size, type->description, ast->info): Remove const handling.
|
|
|
|
2017-05-31 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support array in struct.
|
|
* module/language/c99/compiler.mes: (field:size, field-offset): New
|
|
functions. Update callers, use them throughout.
|
|
(ast->info): Support declaration of struct and typedef'ed struct
|
|
variable with array fields.
|
|
(expr->accu, expr->accu*): Support foo.bar[baz], foo->bar[baz].
|
|
* scaffold/t-tcc.c: Test it.
|
|
|
|
2017-05-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Skip gcc, mlibc, guile or mes builds using CC=, CC32=, GUILE= or MES=.
|
|
* GNUmakefile (build-scripts): New target
|
|
(HELP_TOP): Mention it.
|
|
* configure (main): Write GUILE_FOR_BUILD.
|
|
* make/bin-mlibc.make: Skip if CC32 is not set.
|
|
* make/bin.make: Skip if CC is not set.
|
|
* make/install.make (install): Only install $(OUT)/mes.mes if
|
|
MES_BOOTSTRAP is set.
|
|
* make/mescc-guile.make: Skip if GUILE is not set.
|
|
* make/mescc-mes.make: Skip if MES is not set.
|
|
* HACKING: write something about
|
|
|
|
core: Always include reader.c, drop binary read-0-32.mo dependency.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Remove
|
|
obsolete __NYACC__ and MES_FULL defines.
|
|
* src/mes.c [!MES_FULL]: Include reader-mes.h.
|
|
(mes_builtins) [!MES_FULL]: Include reader.mes.i, reader.me.environment.i.
|
|
[!MES_FULL]: Include reader.c.
|
|
(main) [!MES_FULL]: By default call load_env, only call bload_env
|
|
when --load is supplied. WAS: Always bload read-0-32.mo.
|
|
* src/reader.c (__end_of__mes_): Remove.
|
|
(dump): Remove option of dumping tiny test program.
|
|
* make/mescc-mes.make ($(OUT)/$(TARGET), mescc.mes-ccompile,
|
|
mescc.mes.c-compile-E): Depend on $(OUT)/mes, scripts/mes.
|
|
* src/src.make (mes.guile): Remove module/mes/read-32-0 dependency.
|
|
Do not build $(OUT)/mes.mes.
|
|
* module/module.make (module/mes/read-0.mo, module/mes/read-0-32.mo,
|
|
module/mes/tiny-0-32.mo): Remove targets.
|
|
(CLEAN): Do not add them. Neither install $(OUT)/mes.mes.
|
|
* .gitignore: Remove exceptions for them.
|
|
* make/install.make (install): Do not install them.
|
|
* HACKING: Update info about creating module/mes/read-32-0.mo.
|
|
* scaffold/mini-mes.c: Remove.
|
|
* scaffold/tiny-mes.c: Remove.
|
|
* scaffold/cons-mes.c: Remove.
|
|
* scaffold/scaffold.make (tiny-mes.libc, tiny-mes.guile, tiny-mes.mes,
|
|
mini-mes.libc, mini-mes.guile, mini-mes.mes): Reemove targets.
|
|
|
|
2017-05-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add missing builtins.
|
|
* module/language/c99/compiler.mes (i386:type-alist): Add missing
|
|
builtins. TODO: identify and handle unsigned.
|
|
|
|
2017-05-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support typedef and many TCC declaration variants.
|
|
* module/language/c99/compiler.mes (ast->info): Register typedefs in types.
|
|
(enum-def-list->constants): Support addition and substraction in
|
|
enum field values.
|
|
(get-type): New function. Use throughout.
|
|
|
|
mescc: Handle comments anywhere.
|
|
* module/language/c99/compiler.mes (c99-input->full-ast): Rename from c99-input->full-ast.
|
|
(ast-strip-comment, c99-input->ast): New functions.
|
|
(ast->info): Remove comment exceptions.
|
|
|
|
mescc: Support anonymous enums.
|
|
* module/language/c99/compiler.mes (enum-def-list->constants): New function.
|
|
(ast->info): Support anonymous enum.
|
|
|
|
2017-05-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: C99 header files and declaraions.
|
|
* libc/include/assert.h (assert_fail):
|
|
* libc/include/stdio.h:
|
|
+int eputs (char const* s);
|
|
+int fputs (char const* s);
|
|
+int puts (char const* s);
|
|
+int putchar (int c);
|
|
+int fputc (int c, int fd);
|
|
+int getchar ();
|
|
* libc/include/stdlib.h:
|
|
+char* getenv (char const* s)
|
|
+int atoi (char const *s);
|
|
+int *malloc (size_t);
|
|
+int *realloc (int *p, int size);
|
|
* libc/include/unistd.h (access):
|
|
* src/lib.c (display_helper):
|
|
* src/mes.c (read_input_file_env):
|
|
* src/posix.c: Include unistd.h.
|
|
|
|
guix: Update from Guix.
|
|
* guix.scm (mes): Update from Guix.
|
|
|
|
2017-05-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Use separate preprocessing stage for mescc.
|
|
* make/mescc-guile.make (mescc.scm-c-preprocess, (mescc.scm-compile-E):
|
|
New defines.
|
|
[!MESC_DIRECT]Compile .o via separate preprocessed .E stage.
|
|
|
|
mescc: support -E.
|
|
* guile/mescc.scm (parse-opts): Add -E.
|
|
(source->ast): New function.
|
|
(main): Use it.
|
|
* scripts/mescc.mes (parse-opts): Add -E.
|
|
(source->ast): New function.
|
|
(main): Use it.
|
|
|
|
2017-05-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor mlibc compilation.
|
|
* libc/libc-mes.c: New file. Contents from module/mes/libc.mes, module/mes/libc-i386.mes.
|
|
* libc/libc-gcc.c: Rename from libc/mlibc.c, include libc/mstart.c
|
|
* libc/mstart.c: Remove.
|
|
* module/mes/libc-i386.mes: Remove.
|
|
* module/mes/libc-i386.scm: Remove.
|
|
* module/mes/libc.mes: Remove.
|
|
* module/mes/libc.scm: Remove.
|
|
* GNUmakefile (CFLAGS): Include libc-gcc.c (WAS: mlibc.c).
|
|
* make/bin-mlibc.make (C_FLAGS): Remove start.c include.
|
|
* make/mescc-guile.make: Rewrite using compile, link.
|
|
* make/mescc-mes.make: Likewise.
|
|
* scaffold/m.c: Update.
|
|
|
|
2017-05-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: support -c, -o.
|
|
* module/language/c99/compiler.mes: Throughout: quote lambda's.
|
|
(current-eval): New function.
|
|
Thanks Andy!
|
|
(object->list): New function. Update callers.
|
|
(c99-input->info): Dump a.o.
|
|
(initzer->non-const, function:object->list): New functions.
|
|
(info:object->list): New function.
|
|
(c99-input->elf): Call it.
|
|
* module/mes/as-i386: Throughout: quote lambda's.
|
|
* scripts/mescc.mes (main): Rewrite.
|
|
* guile/mescc.scm (main): Likewise.
|
|
|
|
2017-05-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Bugifx for number->string radix > 10.
|
|
* module/mes/scm.mes (number->string): Bugfix for `10' -> hex/radix > 10.
|
|
|
|
2017-05-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Simplify read-string.
|
|
* module/mes/guile.mes (read-string): Simplify, probably fix even.
|
|
|
|
mescc: Remove LALR C frontend prototype.
|
|
* module/language/c/compiler.mes: Remove.
|
|
* module/language/c/lexer.mes: Remove.
|
|
* module/language/c/parser.mes: Remove.
|
|
|
|
mes: Add negate.
|
|
* module/mes/scm.mes (negate): New function.
|
|
|
|
2017-05-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add current-output-port, open-output-file, set-current-output-port.
|
|
* libc/include/fcntl.h: Declare it. Add some fcntl defines.
|
|
* libc/include/stdio.h: Remove fcntl defines, Declare g_stdout.
|
|
* module/language/c99/compiler.mes (c99-input->ast): Define O_WRONLY, O_RDWR.
|
|
* module/mes/guile.mes (with-output-to-file, with-output-to-port): New functions.
|
|
* src/posix.c (current_output_port, open_output_file,
|
|
set_current_output_port): New functions.
|
|
* libc/mlibc.c (open): Add optional mode parameter.
|
|
* module/mes/libc-i386.mes (i386:open): Forward third parameter.
|
|
* scaffold/mini-mes.c (main): Init g_stdout.
|
|
* src/mes.c (main): Likewise.
|
|
|
|
mes: Support octal numbers in reader.
|
|
* module/mes/read-0.mes (read-octal): New function.
|
|
(read-word): Use it.
|
|
* tests/read.test: Test it.
|
|
|
|
2017-05-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes: Add getopt-long.
|
|
* module/mes/getopt-long.scm: New file, imported from Guile-1.8,
|
|
* module/mes/getopt-long.mes: Include it.
|
|
* AUTHORS: Mention it.
|
|
|
|
mes: Add string-rindex.
|
|
* module/srfi/srfi-13.mes (string-rindex): New function.
|
|
|
|
mes: Support predicate with string-index.
|
|
* module/srfi/srfi-13.mes (string-index): Support predicate.
|
|
|
|
mes: Add string-suffix?
|
|
* module/mes/scm.mes (string-prefix?): Refactor.
|
|
(string-suffix?): New function.
|
|
|
|
2017-05-27 Jeremiah Orians <jeremiah@pdp10.guru>
|
|
|
|
Purging binary blobs
|
|
* mes.mes: Remove.
|
|
* module/mes/read-0-32.mo: Remove.
|
|
|
|
2017-05-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Update.
|
|
* AUTHORS: Remove module/nyacc.
|
|
|
|
2017-05-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: typo
|
|
|
|
guix hash: 0qqywk3siyhf08v7xac08lqldklrqfndlp495wgy6ii9fn93197k
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.6.
|
|
* configure (VERSION): Bump.
|
|
|
|
2017-05-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Release update.
|
|
* NEWS: Update.
|
|
|
|
2017-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Run 33/55 tests of ../tinycc/tests/test2 if avaiable.
|
|
* make/check-tinycc.make: New file.
|
|
* tinycc/tinycc.make: New file.
|
|
* GNUmakefile (SUBDIRS): Add tinycc.
|
|
|
|
2017-05-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Support i686, support development for arm.
|
|
* configure (CC32): Accept arm-* as 32 bit compiler.
|
|
(check-compile-header-c, check-header-c): New functions.
|
|
(parse-opts): New option: --with-courage.
|
|
(main): Check for platform, stdio.h, limits.h.
|
|
|
|
2017-05-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Minimal support for short.
|
|
* module/language/c99/compiler.mes (i386:type-alist): Add short.
|
|
|
|
mescc: Add strcpy.
|
|
* libc/include/string.h (strcpy): Declare.
|
|
* libc/mlibc.c (strcpy): New function.
|
|
* module/mes/libc.mes (strcpy): New function.
|
|
(libc): Add it.
|
|
* scaffold/t.c (string_test): Test it.
|
|
|
|
mescc: Enhance sizeof support.
|
|
* module/language/c99/compiler.mes (expr->accu): Support sizeof (simple-type),
|
|
sizeof (var).
|
|
|
|
mescc: Support void return.
|
|
* module/language/c99/compiler.mes (ast-info): Support `return'.
|
|
|
|
2017-05-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Unbundle.
|
|
* configure (check-version): Use keyword parameters, add #:command
|
|
parameter.
|
|
(main): Check for Nyacc.
|
|
* INSTALL: Mention Nyacc as dependency.
|
|
* make/guile.make (all-go): Compile in guile dir.
|
|
* module/module.make (SCM_FILES): Remove Nyacc filters.
|
|
* module/nyacc/BUGS: Remove.
|
|
* module/nyacc/ChangeLog: Remove.
|
|
* module/nyacc/README: Remove.
|
|
* module/nyacc/README.nyacc: Remove.
|
|
* module/nyacc/bison.scm: Remove.
|
|
* module/nyacc/export.scm: Remove.
|
|
* module/nyacc/import.scm: Remove.
|
|
* module/nyacc/lalr.scm: Remove.
|
|
* module/nyacc/lalr2.scm: Remove.
|
|
* module/nyacc/lang/c99/README: Remove.
|
|
* module/nyacc/lang/c99/body.scm: Remove.
|
|
* module/nyacc/lang/c99/cpp.scm: Remove.
|
|
* module/nyacc/lang/c99/cppmach.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/c99act.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/c99tab.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/c99xact.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/c99xtab.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/cppact.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.d/cpptab.scm: Remove.
|
|
* module/nyacc/lang/c99/mach.scm: Remove.
|
|
* module/nyacc/lang/c99/parser.scm: Remove.
|
|
* module/nyacc/lang/c99/pprint.scm: Remove.
|
|
* module/nyacc/lang/c99/util1.scm: Remove.
|
|
* module/nyacc/lang/c99/util2.scm: Remove.
|
|
* module/nyacc/lang/c99/xparser.scm: Remove.
|
|
* module/nyacc/lang/calc/parser.scm: Remove.
|
|
* module/nyacc/lang/util.scm: Remove.
|
|
* module/nyacc/lex.scm: Remove.
|
|
* module/nyacc/parse.scm: Remove.
|
|
* module/nyacc/util.scm: Remove.
|
|
|
|
mes: Consider GUILE_LOAD_PATH for include-from-path.
|
|
* module/mes/guile.scm (include-from-path): New macro.
|
|
|
|
mescc: Bugfixes for local char[].
|
|
* module/language/c99/compiler.mes (push-ident): Cater for local arrays.
|
|
(expr->accu): Avoid post-inc/post-dec twice on rhs of assignment.
|
|
Fix size lookup for local char arrayns.
|
|
|
|
2017-05-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Update to 0.78.
|
|
|
|
mes: Add srfi-16 to Nyacc Guile support.
|
|
* module/mes/guile.mes: Include srfi-16 for Nyacc.
|
|
|
|
mes: Basic support for string-index.
|
|
* module/srfi/srfi-13.mes (string-index): New function.
|
|
* tests/srfi-13.test ("string-index"): Test it.
|
|
|
|
mes: Support #\cr short form in reader.
|
|
* module/mes/read-0.mes (read-character): Support #\cr short form for #\return.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
mes: Support case-lambda.
|
|
* module/srfi/srfi-16.scm: New file.
|
|
* AUTHORS: Mention it.
|
|
* module/srfi/srfi-16.mes: New file.
|
|
|
|
mescc: Enhance enum support.
|
|
* module/language/c99/compiler.mes (ast->info): Support enum variable
|
|
declaration. Respect field value overrides.
|
|
|
|
mescc: Support binary constants.
|
|
* module/language/c99/compiler.mes (cstring->number): Support binary 0bxxx values.
|
|
* scaffold/t.c (math_test): Test it.
|
|
|
|
mescc: Support ==, != as expression value.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (expr->accu): Set accu to 0/1 for eq, ne.
|
|
* module/mes/as-i386.mes (i386:nz->accu, i386:z->accu,
|
|
i386:accu<->stack): New functions.
|
|
* scaffold/t.c (math_test): Test it.
|
|
|
|
mescc: Support &, ^.
|
|
* module/mes/as-i386.mes (i386:accu-and-base, i386:accu-xor-base): New functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (expr->accu): Support bitwise-and, bitwise-xor.
|
|
|
|
mescc: Support struct pointers.
|
|
* module/language/c99/compiler.mes (expr->accu): Support
|
|
&struct.field, struct->field.
|
|
(ast->info): Support struct *foo = &bar;
|
|
* scaffold/t.c (struct_test): Test it.
|
|
|
|
mescc: Support struct definition with variable declaration.
|
|
* module/language/c99/compiler.mes (ast->info): Support `struct foo {} bar;'.
|
|
|
|
mescc: Support void functions.
|
|
* module/language/c99/compiler.mes (function->info): Add return if
|
|
missing. Fixes calling void functions (and functions where return
|
|
is missing).
|
|
* scaffold/t.c (void_func): Test it.
|
|
|
|
mescc: Bugfix for break in switch not in compound.
|
|
* module/language/c99/compiler.mes (clause->jump-info): Rename from
|
|
case->jump-info.
|
|
(statements->clauses): New function.
|
|
(ast->info): Use it. Fixes switch statement with break in a case
|
|
outside of a compound.
|
|
* scaffold/t.c (swits): Test it.
|
|
|
|
2017-05-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Enhance [int/pointer] array support.
|
|
* module/language/c99/compiler.mes (p-expr->type): Handle array-ref
|
|
with any index.
|
|
(ast->info): Support plain array declerations.
|
|
(expr->accu): For size == 4, assume value in accu. Fixes int/pointer arrays.
|
|
* scaffold/t.c: Test it.
|
|
|
|
2017-05-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Enhance struct support.
|
|
* module/language/c99/compiler.mes (expr->accu): Remove struct scm
|
|
hardcoding.
|
|
(p-expr->type): New function.
|
|
(ast->info): Support struct variable declaration without
|
|
initializer. Set struct type for all struct declarations.
|
|
|
|
2017-05-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix itoa for negative numbers, using workaround.
|
|
* module/mes/libc.mes (itoa): Avoid `sign = x < 0;' FIXME, todo.
|
|
* scaffold/t.c (test): Test it.
|
|
|
|
2017-05-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support regular C99 compile, headers + mlibc.
|
|
* libc/include/assert.h: New file.
|
|
* libc/include/ctype.h: New file.
|
|
* libc/include/errno.h: New file.
|
|
* libc/include/fcntl.h: New file.
|
|
* libc/include/limits.h: New file.
|
|
* libc/include/mlibc.h: New file.
|
|
* libc/include/stdio.h: New file.
|
|
* libc/include/stdlib: New file.
|
|
* libc/include/string.h: New file.
|
|
* libc/include/unistd.h: New file.
|
|
* libc/mlibc.c: Remove declarations.
|
|
* make/bin.make (INCLUDES): Factor out standard includes.
|
|
* make/bin-mlibc.make: New file.
|
|
* scaffold/scaffold.make: Use it.
|
|
* src/src.make: Use it.
|
|
* module/language/c99/compiler.mes (ast-info): Handle more function declarations.
|
|
* scaffold/cons-mes.c: Remove mlibc definitionsa and mlibc.c include.
|
|
Instead include <mlibc.h>.
|
|
* scaffold/hello.c: Likewise.
|
|
* scaffold/m.c: Likewise.
|
|
* scaffold/malloc.c: Likewise.
|
|
* scaffold/micro-mes.c: Likewise.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
* scaffold/t.c: Likewise.
|
|
* scaffold/tiny-mes.c: Likewise.
|
|
* src/gc.c: Likewise.
|
|
* src/lib.c: Likewise.
|
|
* src/math.c: Likewise.
|
|
* src/mes.c: Likewise.
|
|
* src/posix.c: Likewise.
|
|
* src/reader.c: Likewise.
|
|
|
|
2017-05-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support list of initializers.
|
|
* module/language/c99/compiler.mes (ast->info): Support list of initializers.
|
|
|
|
2017-05-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Basic printf support.
|
|
* module/mes/libc-i386.mes (i386:va-arg): New function.
|
|
* module/mes/libc-i386.scm (mes): Export it.
|
|
* module/mes/libc.mes (printf): New function.
|
|
(libc): Add it.
|
|
* libc/include/stdio.h: New file.
|
|
* module/language/c99/compiler.mes (c99-input->ast): Add libc/include
|
|
to include path.
|
|
(ast-info): Handle (skip) ellipsis in function declaration.
|
|
|
|
guix: Update from Guix.
|
|
* guix.scm: Use version from Guix.
|
|
* make/install.make (update-hash): Update version for new Guix meme.
|
|
|
|
make: Recompile .go too when included mes is touched.
|
|
* build-aux/compile-all.scm (scm->mes): New function.
|
|
(file-needs-compilation?): Use it to hackishly respect (include-[from-path] "<>.mes")
|
|
|
|
2017-05-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Resolve MODULEDIR confusion. Fixes mes installation.
|
|
* make/install.make (GUILEDIR): New variable. Was MODULEDIR.
|
|
(MODULEDIR): Mes' module dir.
|
|
* guile/mescc.scm: Update.
|
|
* src/mes.c (load_env, bload_env): Update.
|
|
|
|
2017-05-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix hash: 01m8n7zk4f1ryd61dj589zarx09vbi7fc5f8m1x5zfk6r7l0zja2
|
|
|
|
guix.scm: Remove erroneous system restriction.
|
|
* guix.scm (mes): Remove second erroneous system restriction.
|
|
|
|
2017-04-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.5.
|
|
* configure (VERSION): Bump.
|
|
|
|
bootstrap: Regenerate.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
doc: Release update.
|
|
* AUTHORS: Mention Nyacc and GuixSD.
|
|
* NEWS: Update.
|
|
* README: Update.
|
|
* doc/ANNOUNCE-0.5 New file.
|
|
* HACKING: Add pointers, update TODO/DONE.
|
|
|
|
2017-04-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Regenerate.
|
|
* mes.mes: Regenerate.
|
|
|
|
2017-04-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Parse mlibc early, show progress.
|
|
* module/mes/libc.mes (_start, strlen, getchar, assert_fail, ungetc,
|
|
putchar, fputc, eputs, fputs, puts, strcmp, itoa, isdigit, atoi,
|
|
malloc, realloc, strncmp, c:getenv): Change to function, add
|
|
progress. Update callers.
|
|
* module/language/c99/compiler.mes (c99-input->info): Compile libc separately.
|
|
* guile/mescc.scm: Update progress.
|
|
* scripts/mescc.mes: Update progress.
|
|
|
|
2017-04-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Regenerate.
|
|
* mes.mes: Regenerate.
|
|
|
|
2017-04-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Set argv for mescc too.
|
|
* src/mes.c (main)[!__MESC__]: Remove branch.
|
|
|
|
bootstrap: Regenerate.
|
|
* mes.mes: Regenerate.
|
|
|
|
2017-04-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Avoid duplication of globals.
|
|
* module/language/c99/compiler.mes (globals:add-string): New function.
|
|
(expr->arg): Use it to avoid globals duplication.
|
|
(expr->accu): Do not pre-add globals.
|
|
|
|
mescc: Fix global creation in AND/OR clause.
|
|
* module/language/c99/compiler.mes (test->jump->info): Retain globals
|
|
created in AND/OR test.
|
|
|
|
2017-04-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Move some debugging to MES_DEBUG=2.
|
|
* module/mes/base-0.mes (load): Add ;;;.
|
|
* src/gc.c (gc_flip): Test on g_debug > 1.
|
|
(gc): Likewise.
|
|
* src/mes.c (mes_builtins): Likewise.
|
|
(main): Likewise.
|
|
* src/reader.c (dump): Likewise.
|
|
|
|
mescc: Add atoi.
|
|
* libc/mlibc.c (atoi): New function.
|
|
* module/mes/libc.mes (atoi): New function.
|
|
(libc): Add it.
|
|
|
|
mescc: Add getenv.
|
|
* module/mes/libc-i386.mes (i386:_start): Push environment pointer.
|
|
* module/mes/libc.mes (g_environment): New global.
|
|
(_env): New function.
|
|
(_start): Use it to set g_environment.
|
|
(getenv): New function.
|
|
* lib/mlibc.c (strncmp): New function.
|
|
(getenv): Implement.
|
|
* lib/mstart.c (_start): Set g_environment.
|
|
* module/mes/libc.mes (strncmp): New function.
|
|
(libc): Add it.
|
|
* scaffold/t.c: (array_ref): Test it.
|
|
|
|
mescc: Support pointer arrays and some arithmetic.
|
|
* module/language/c99/compiler.mes (.name): Support **; handle type size.
|
|
(.statements): Likewise.
|
|
(push-local-de-ref): Likewise.
|
|
(push-ident-de-ref): Likewise.
|
|
(expr->arg): Likewise.
|
|
(ident->accu): Likewise.
|
|
(base->ident-address): Likewise.
|
|
(ident-add): Likewise.
|
|
(expr->accu): Likewise.
|
|
(decl->type): Likewise.
|
|
(formal->text): Likewise.
|
|
(int->global, ident-address->accu, ident-address->base): New functions.
|
|
(ast->info): Support *, *[] ** declarations.
|
|
(push-local-de-de-ref, push-ident-de-de-ref): New functions.
|
|
* module/mes/as-i386.mes (i386:push-byte-local-de-ref): Rename from
|
|
i386:push-local-de-ref. Update callers.
|
|
(i386:push-local-de-ref, i386:push-byte-local-de-de-ref,
|
|
i386:accu-mem-add): New functions.
|
|
* module/mes/as-i386.scm (mes): Export them.
|
|
* scaffold/t.c (array_test): Test it.
|
|
|
|
2017-04-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Regenerate.
|
|
* mes.mes: Regenerate.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
2017-04-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add access?
|
|
* libc/mlibc.c (access): New function.
|
|
* module/mes/libc-i386.mes (i386:access): New function.
|
|
(i386:libc): Add it.
|
|
* src/posix.c (access_p): New function.
|
|
* module/mes/posix.mes: New file.
|
|
* module/mes/base-0.mes (mes): Include it.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
2017-04-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
bootstrap: Regenerate
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
2017-04-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Refactor.
|
|
* GNUmakefile (OUT,QUIET,SUBDIRS): New variables.
|
|
include make/common.make
|
|
* .gitignore: Remove toplevel targets.
|
|
* build-aux/compile-all.scm: Import from GNU Guix.
|
|
* configure (gulp-pipe): Check exit status. Actually test for CC,
|
|
CC32.
|
|
* make/bin.make: New file.
|
|
* make/check.make: New file.
|
|
* make/clean.make: New file.
|
|
* make/common.make: New file.
|
|
* make/compile.make: New file.
|
|
* make/guile.make: New file.
|
|
* make/mescc-guile.make: New file.
|
|
* make/mescc-mes.make: New file.
|
|
* make/reset.make: New file.
|
|
* lib/mlibc.c: Rename from top.
|
|
* lib/start.c: Rename from top.
|
|
* module/module.make: New file.
|
|
* scaffold/scaffold.make: New file.
|
|
* scripts/scripts.make: New file.
|
|
* src/mes.c: Rename from top.
|
|
* src/src.make: New file.
|
|
* src/mes.c: Rename from top.
|
|
* src/gc..c: Rename from top.
|
|
* src/lib.c: Rename from top.
|
|
* src/posix.c: Rename from top.
|
|
* src/reader.c: Rename from top.
|
|
* src/vector.c: Rename from top.
|
|
* tests/tests.make: New file.
|
|
|
|
2017-04-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove gc scaffolding.
|
|
* tests/gc-0.test: Remove.
|
|
* tests/gc-1.test: Remove.
|
|
* tests/gc-2.test: Remove.
|
|
* tests/gc-2a.test: Remove.
|
|
* tests/gc-3.test: Remove.
|
|
* tests/gc-4.test: Remove.
|
|
* tests/gc-5.test: Remove.
|
|
* tests/gc-6.test: Remove.
|
|
* tests/gc.test:Remove.
|
|
|
|
mescc: Add fsync.
|
|
* module/mes/libc-i386.mes (i386:fsync): New function.
|
|
(i386:libc): Export it.
|
|
* mlibc.c (fsync): New function.
|
|
|
|
2017-04-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core/mini-mes: Merge merge mes.c and mini-mes.c.
|
|
* mes.c:
|
|
* scaffold/mini-mes.c:
|
|
* gc.c:
|
|
* GNUmakefile:
|
|
|
|
mescc: Allow usage of const by ignoring.
|
|
* module/language/c99/compiler.mes (ast->info): Support const
|
|
declarations (by ignoring them).
|
|
* lib.c (display_helper)[!__GNUC__]: Remove branch.
|
|
* posix.c (write_byte)[!__GNUC__]: Likewise.
|
|
|
|
HACKING: Removed __MESC__ workarounds.
|
|
* HACKING: Update pointer.
|
|
|
|
mescc: Support break in while.
|
|
* module/language/c99/compiler.mes (make): Add break field.
|
|
(.break): New function.
|
|
(clone): Support break field.
|
|
(ast->info): Support break.
|
|
* scaffold/t.c (test): Test it.
|
|
* scaffold/mini-mes.c (lookup_symbol_): Use it; remove goto workaround.
|
|
|
|
2017-04-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor switch.
|
|
* module/language/c99/compiler.mes (case->jump-info): Refactor.
|
|
Support multiple case statements.
|
|
* scaffold/t.c (swits): Test it.
|
|
* lib.c (display_helper)[__NYACC__]: Remove branch.
|
|
|
|
2017-04-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mini-mes: Merge with mes.c: lib.c, math.c, posix.c.
|
|
* mes.c: Include math.c after posix.c.
|
|
(assert_defined, check_formals, check_apply, load_env,
|
|
bload_env): Move from lib.c
|
|
* scaffold/mini-mes.c: Include mini-lib.h, lib.c., mini-math.h,
|
|
math.c, mini-posix.h, posix.c.
|
|
(greater_p, less_p, is_p, minus, plus, divide, modulo, multiply,
|
|
logior, ash): Remove.
|
|
(ungetchar, peekchar, peek_byte, read_byte, write_byte,
|
|
string_to_cstring, getenv_, open_input_file, current_input_port,
|
|
set_current_input_port, force_output): Remove.
|
|
(mes_builtins): include mini-lib.i, mini-lib.environment.i.
|
|
mini-math.i, mini-math.environment.i mini-posix.i,
|
|
mini-posix.environment.i.
|
|
* GNUmakefile (guile-mini-mes): Add dependencies.
|
|
|
|
mescc: Refactor assignment.
|
|
* module/language/c99/compiler.mes (expr->accu): Refactor assignment.
|
|
Support multiple operators.
|
|
* scaffold/t.c (math_test): Test it.
|
|
* scaffold/mini-mes.c (minus, divide, modulo, multiply,
|
|
logior)[!__GNUC__]: Remove branch.
|
|
|
|
2017-04-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Factor-out array-ref.
|
|
* module/language/c99/compiler.mes: Factor-out array-ref.
|
|
|
|
mescc: Refactor expr->base.
|
|
* module/language/c99/compiler.mes (expr->base): Rename from
|
|
expr->+base. Use throughout.
|
|
|
|
mescc: Refactor binary operators.
|
|
* module/language/c99/compiler.mes (binop->accu): Rename from
|
|
compare->accu. Update callers.
|
|
(expr->accu): Use it for binary operators.
|
|
* scaffold/t.c (math_test): Test it.
|
|
|
|
mescc: Factor-out append-text.
|
|
* module/language/c99/compiler.mes: Use append-text throughout.
|
|
|
|
mescc: Factor-out wrap-as.
|
|
* module/language/c99/compiler.mes (wrap-as): Rename from wrap. Use throughout.
|
|
|
|
mescc: Refactor comparisons.
|
|
* module/language/c99/compiler.mes (compare->accu, append-text, wrap):
|
|
New functions.
|
|
(expr->accu): Use them to implement construct like 1 == inc (0).
|
|
* scaffold/t.c (math_test): Test them.
|
|
|
|
2017-04-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
HACKING: Removed gc.c, vector.c mescc workarounds.
|
|
* HACKING: Update pointer and recipe.
|
|
|
|
mescc: Refactor array ref.
|
|
* module/language/c99/compiler.mes (expr->accu, expr->accu*): Remove
|
|
duplication, use expression as array index.
|
|
* scaffold/t.c (struct_test): Test it.
|
|
* vector.c (vector_length, list_to_vector)[!__GNUC__]: Remove branch.
|
|
|
|
mescc: Refactor expressions.
|
|
* module/language/c99/compiler.mes (expr->accu, ast->info): Remove
|
|
duplication, separate concerns.
|
|
|
|
2017-04-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor pre/post inc/dec.
|
|
* module/language/c99/compiler.mes: Refactor pre/post inc/dec.
|
|
|
|
bootstrap: Regenerate.
|
|
* mes-mini-mes: Regenerate.
|
|
* module/mes/read-0-32.mes: Regenerate.
|
|
|
|
mescc: function call.
|
|
* module/language/c99/compiler.mes (expr->accu): Move function call
|
|
from ast->info.
|
|
|
|
mescc: Support expression as lhs array index.
|
|
* module/language/c99/compiler.mes (expr->accu): Treat array index as expression.
|
|
* scaffold/t.c (struct_test): Test it.
|
|
* gc.c (gc_copy)[!__GNUC__]: Remove branch.
|
|
* vector.c (list_to_vector)[!__GNUC__]: Likewise.
|
|
|
|
2017-04-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Remove duplication.
|
|
* module/language/c99/compiler.mes (expr->arg): Use expr->accu for
|
|
most expressions.
|
|
|
|
scripts: Support --help, --version.
|
|
* guile/mescc.scm: Support --help, --version.
|
|
* scripts/mescc.mes: Likewise.
|
|
* scripts/repl.mes: Likewise.
|
|
|
|
2017-04-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Do not quote list of strings.
|
|
* module/mes/display.mes (display): Check value of write?, fixes
|
|
quoting display string.
|
|
|
|
mescc: Do not return ELF text.
|
|
* module/language/c99/compiler.mes (info->exe): Do not return ELF text.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Update Guix build and install.
|
|
* guix.scm (%source-dir): New variable.
|
|
(git-file?): New function.
|
|
(mes): Use them to simplify building/installing from git.
|
|
* make/install.make (READMES): Add INSTALL, README.
|
|
* (install): Install mescc.scm and read-0-32.mo.
|
|
|
|
bootstrap: Regenerate.
|
|
* mes-mini-mes: First self-hosting binary.
|
|
|
|
HACKING: scripts/mescc.mes scaffold/mini-mes runs.
|
|
* HACKING: Update pointer and recipe.
|
|
|
|
mini-mes: Fix for assq.
|
|
* scaffold/mini-mes.c (assq): Use eq_p iso ==. Fixes
|
|
tests/display.test ("write alarm").
|
|
|
|
core: Use 0.25% safety region.
|
|
* gc.c (gc_up_arena): Up GC_SAFETY too.
|
|
* scripts/repl.mes: Remove MES_ARENA override.
|
|
|
|
bootstrap: Regenerate.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
core: Remove append.
|
|
* lib.c (append): Remove.
|
|
* scaffold/mini-mes.c (append): Remove.
|
|
* module/mes/base-0.mes (append): New function.
|
|
* module/mes/read-0.mo: Regenerate.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
test: Add test for append-map.
|
|
* tests/srfi-1.test ("append-map"): New test.
|
|
|
|
2017-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Check gc free harder.
|
|
* gc.c (gc_check): New fuction.
|
|
* mes.c (eval_apply): Use it.
|
|
|
|
mescc: Fix by value assignment from array-of struct entry.
|
|
* module/language/c99/compiler.mes (expr->accu): Fix by value
|
|
assignment from array-of struct entry.
|
|
* scaffold/t.c (struct_test): Test it.
|
|
* vector.c (make_vector, list_to_vector, vector_to_list): Use it;
|
|
remove workarounds.
|
|
* gc.c (gc_copy): Likewise.
|
|
|
|
core: Fix flush for _POSIX_SOURCE.
|
|
* posix.c (write_byte, force_output)[_POSIX_SOURCE]: Use FILE*
|
|
functions. Fixes repl.mes.
|
|
|
|
core: Increase MAX_ARENA_SIZE and GC safety.
|
|
* mes.c (MAX_ARENA_SIZE): Double to 40000000.
|
|
(GC_SAFETY): Set to 10000 cells (WAS: 1000).
|
|
* scaffold/mini-mes.c (MAX_ARENA_SIZE, GC_SAFETY): Likewise.
|
|
* gc.c (gc)[MES_DEBUG]: Also print safety area.
|
|
|
|
HACKING: scripts/mescc.mes scaffold/t.c runs.
|
|
|
|
core: Increase GC safety.
|
|
* mes.c (GC_SAFETY): Set to 1000 cells (WAS: 100).
|
|
* scaffold/mini-mes.c (GC_SAFETY): Likewise.
|
|
|
|
HACKING: scripts/mescc.mes scaffold/tiny-mes.c runs.
|
|
|
|
HACKING: scripts/mescc.mes scaffold/cons-mes.c runs.
|
|
|
|
test: Add nyacc cpp match tests; two fail.
|
|
* tests/match.test ("match nyacc 0", "match nyacc 1"): New tests.
|
|
("match nyacc simple", "match nyacc tkl0"): New tests; FAIL with Mes.
|
|
(report): Set failure expectation to 2 for Mes.
|
|
* HACKING: Add to bugs.
|
|
|
|
scm: Support test failure expectation.
|
|
* module/mes/test.mes (result): Take second argument to mean expected
|
|
failure count.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Evaluate arguments of OR only once.
|
|
* module/mes/base.mes (or): Evaluate arguments only once.
|
|
* module/mes/read-0.mes (or): Likewise.
|
|
* tests/base.test ("or only once"): Test it.
|
|
* module/mes/read-0-32.mo: Regenerate.
|
|
|
|
2017-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Have char-set-contains? strictly return boolean.
|
|
* module/srfi/srfi-14.mes (char-set-contains?): Return #t rather than
|
|
memq result.
|
|
|
|
scm: Fix bug in assq-set!
|
|
* module/mes/scm.mes (assq-set!): Bugfix.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Add c????r.
|
|
* module/mes/base-0.mes (caar, cadr, cdar, cddr, map): Remove. Update callers.
|
|
* module/mes/base.mes (): Remove.
|
|
* module/mes/base.mes (cadadr, cddadr, cdddar): New function.
|
|
|
|
2017-03-31 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Add access?
|
|
* module/mes/guile.mes (access?): New dummy function. Fixes Nyacc's #include.
|
|
|
|
2017-03-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Add Roamdmap.
|
|
* HACKING: Add roadmap.
|
|
|
|
2017-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Add open-input-string, read-string.
|
|
* module/mes/guile.mes (open-input-string, read-string): New functions.
|
|
* tests/guile.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
build: Cleanup, use gcc-specific snarfing.
|
|
* .gitignore: Ignore *.o-32, mes-mini-mes.
|
|
* scripts/nyacc-calc.mes: Remove.
|
|
* scripts/nyacc.mes: Remove.
|
|
* scripts/paren.mes: Remove.
|
|
* make/install.make (install): Remove them.
|
|
p* module/mes/mes-0.mes: Remove.
|
|
* module/mes/loop-0.mes: Remove.
|
|
* build-aux/mes-snarf.scm (main): Add --mini option.
|
|
* GNUmakefile (mini-mes): Use it.
|
|
|
|
2017-03-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Fix error message when macro is missing.
|
|
* mes.c (scm_vm_eval_check_func): New symbol.
|
|
(eval_apply): In eval, evaluate car before evlis. Fixes error
|
|
message when macro match is missing in (match ... (car x)).
|
|
(mes_symbols): Add cell_call_with_values, cell_current_module to environment.
|
|
* scaffold/mini-mes.c (eval_apply): Likewise.
|
|
|
|
2017-03-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Add pmatch tests.
|
|
* tests/pmatch.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
2017-03-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: prefix globals.
|
|
|
|
2017-03-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Bugfix display of named characters: add port.
|
|
* module/mes/display.mes (display): Typo, add port.
|
|
|
|
nyacc: Add missing (mes pmatch) include.
|
|
* module/nyacc/lang/c99/cpp.mes (mes): Include (mes pmatch).
|
|
|
|
2017-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Use pmatch rather than match for cpp.
|
|
* module/nyacc/lang/c99/cpp.scm (nyacc lang c99 cpp): Import (system
|
|
base pmatch) rather than (ice-9 match).
|
|
(rtokl->string): Rewrite using pmatch.
|
|
|
|
2017-03-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Bugfix drain-input.
|
|
* module/mes/guile.mes (drain-input): Bugfix: return string.
|
|
|
|
scm: Add assoc-set!
|
|
* module/mes/scm.mes (assoc-set!): New function.
|
|
* tests/scm.test ("assoc-set!", "assoc-set! new"): New tests.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Add compose.
|
|
* module/mes/scm.mes (compose): New function.
|
|
* tests/scm.test ("compose"): New test.
|
|
|
|
scm: Support reading negative hex numbers.
|
|
* module/mes/read-0.mes (read-hex): Support negative hex numbers.
|
|
* tests/math.test ("#x-10"): New test.
|
|
* tests/read.test: Add test.
|
|
|
|
scm: Support map4.
|
|
* module/mes/base-0.mes (map): Remove. Update callers.
|
|
* module/mes/base.mes (map): Support map4.
|
|
|
|
nyacc: Add simple split-cppdef for Mes.
|
|
* module/nyacc/lang/c99/body.scm: Add non-regexp split-cppdef for Mes.
|
|
|
|
scm: Add with-throw-handler hack.
|
|
* module/mes/catch.mes (with-throw-handler): Add hack for Nyacc 0.75
|
|
|
|
scm: Add list->char-set.
|
|
* module/srfi/srfi-14.mes (list->char-set): New function.
|
|
* tests/srfi-14.test ("list->char-set!"): Test it.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mini-mes: Debugging to stderr.
|
|
* scaffold/mini-mes.c (error, bload_env, main): Send debug info to
|
|
stderr.
|
|
|
|
throw/catch dinges: URG
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scripts: Allow running with any mes.
|
|
* scripts/mescc.mes: Run $MES if set, default to ../scripts/mes.
|
|
* scripts/repl.mes: Likewise.
|
|
|
|
mini-mes: Include and enable gc.
|
|
* scaffold/mini-mes.c: Set MES_GC=1.
|
|
(ARENA_SIZE)[MES_GC]: Reduce to 10,000 cells (WAS: 1,000,000,000
|
|
chars).
|
|
(g_news): New global.
|
|
(NTYPE, NCAR, NVALUE, NLENGTH, NCDR, NVECTOR): New macros.
|
|
(mes_symbols)[MES_GC]: Call gc_init_news.
|
|
(mes_builtins): Include gc.i, gc.environment.i.
|
|
|
|
2017-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mini-mes: Workarounds for gc.c.
|
|
* gc.c (gc_copy)[!__GNUC__]: Avoid by value assignment from array-of
|
|
struct entry.
|
|
* scaffold/mini-mes.c (gc_init_cells): Workarounds.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Prepare gc.c for mescc, non-POSIX_SOURCE.
|
|
* mes.c (NLENGTH, NVALUE, NVECTOR): New macros.
|
|
(mes_builtins): Add comment on .i include order.
|
|
* module/language/c99/compiler.mes (mescc): Add define _POSIX_SOURCE=0.
|
|
* gc.c (gc_up_arena, gc_flip, gc_loop, gc)[!_POSIX_SOURCE]: Use eputs
|
|
rather than fprintf.
|
|
(gc_loop): Use CAR, TYPE, NVECTOR rather than .car, .type, .vector.
|
|
* gc.c (gc_up_arena)[!_POSIX_SOURCE]: Add non-POSIX mlib.c
|
|
implementation.
|
|
|
|
mescc: Bugfix for realloc.
|
|
* module/mes/libc.mes (realloc): Thinko.
|
|
|
|
2017-03-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Bugfix for neg.
|
|
* module/language/c99/compiler.mes (expr->accu): Fix neg.
|
|
* scaffold/t.c (math_test): Test it.
|
|
* scaffold/mini-mes.c (ash): Remove workaround.
|
|
|
|
mescc: Support rshift, have guile-mini-mes pass math test.
|
|
* module/mes/as-i386.mes (i386:accu>>base): New function.
|
|
* module/mes/as-i386.scm (mes): Export it.
|
|
* module/language/c99/compiler.mes (expr->accu): Support rshift.
|
|
* scaffold/t.c (math_test): Test it.
|
|
* scaffold/mini-mes.c (ash): Use it.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test: Enable vector read test.
|
|
* tests/read.test: Enable vector read test.
|
|
|
|
2017-03-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mini-mes: Support vectors.
|
|
* scaffold/mini-mes.c (REF, MAKE_REF): New macro.
|
|
Include vector.h, vector.c.
|
|
(mes_builtins): Include vector.i, vector.environment.i.
|
|
|
|
mini-mes: Workarounds for vector.c.
|
|
* vector.c (make_vector, vector_set_x, list_to_vector)[!__GNUC__]: Avoid
|
|
by value assignment from array-of struct entry.
|
|
|
|
core: prepare vector.c for mescc.
|
|
* vector.c (make_vector, vector_set_x, vector_to_list): Use REF, VALUE
|
|
rather than .ref, .value.
|
|
|
|
mini-mes: Fully remove reader from core.
|
|
* scaffold/mini-mes.c (lookup_): Remove.
|
|
* mes.c: Likewise.
|
|
* reader.c (lookup_): Enable.
|
|
* mlib.c (putc): New function.
|
|
* module/mes/libc.mes (putc): New function.
|
|
|
|
2017-03-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support bitwise or.
|
|
* module/mes/as-i386.mes (i386:accu-or-base): New function.
|
|
* module/mes/as-i386.scm: Export it.
|
|
* module/language/c99/compiler.mes (expr->accu): Use it; support bitwise or.
|
|
* scaffold/t.c (math_test): Test it.
|
|
* scaffold/mini-mes.c (logior): Use it.
|
|
|
|
mescc: Lshift support non-fixed shift value.
|
|
* module/mes/as-i386.mes (i386:accu<<base): New function.
|
|
* module/mes/as-i386.scm: Export it.
|
|
* module/language/c99/compiler.mes (expr->accu): Use it.
|
|
* scaffold/t.c (math_test): Test it.
|
|
|
|
mescc: Use signed integer comparison.
|
|
* module/language/c99/compiler.mes (test->jump->info):
|
|
* module/mes/as-i386.mes (i386:Xjump-le, i386:Xjump-g, i386:Xjump-l,
|
|
i386:Xjump-ge): New functions.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* scaffold/t.c (math_test): Test them.
|
|
* tests/scm.test ("iota -1"): Enable for mesc.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Run module/base-0.mes.
|
|
* gc.c: New file.
|
|
* vector.c: New file.
|
|
* mes.c: Remove vector and gc functions, include vector.c, gc.c.
|
|
* GNUmakefile (mes.o): Add gc, vector dependencies.
|
|
* scaffold/mini-mes.c (eval_apply): Support primitive-load through
|
|
read_input_file.
|
|
(getenv_, open_input_file, current_input_port,
|
|
set_current_input_port force_output, exit_, values, arity_, xassq,
|
|
is_p, minus, plus, divide, modulo multiply, logior, ash): New function.
|
|
(mes_symbols): Add symbols %gnuc, %mesc.
|
|
* scaffold/mini-mes.c (): New functions.
|
|
* scaffold/b-0.mes: New file.
|
|
* scaffold/t-0.mes: New file.
|
|
|
|
test: Allow running with any mes.
|
|
* test/base.test: Run $MES if set, default to ../scripts/mes.
|
|
* tests/base.test: Likewise.
|
|
* tests/catch.test: Likewise.
|
|
* tests/closure.test: Likewise.
|
|
* tests/cwv.test: Likewise.
|
|
* tests/display.test: Likewise.
|
|
* tests/fluids.test: Likewise.
|
|
* tests/gc-0.test: Likewise.
|
|
* tests/gc-1.test: Likewise.
|
|
* tests/gc-2.test: Likewise.
|
|
* tests/gc-2a.test: Likewise.
|
|
* tests/gc-3.test: Likewise.
|
|
* tests/gc-4.test: Likewise.
|
|
* tests/gc-5.test: Likewise.
|
|
* tests/gc-6.test: Likewise.
|
|
* tests/gc.test: Likewise.
|
|
* tests/let-syntax.test: Likewise.
|
|
* tests/let.test: Likewise.
|
|
* tests/match.test: Likewise.
|
|
* tests/math.test: Likewise.
|
|
* tests/module.test: Likewise.
|
|
* tests/optargs.test: Likewise.
|
|
* tests/peg.test: Likewise.
|
|
* tests/psyntax.test: Likewise.
|
|
* tests/quasiquote.test: Likewise.
|
|
* tests/read.test: Likewise.
|
|
* tests/record.test: Likewise.
|
|
* tests/scm.test: Likewise.
|
|
* tests/srfi-1.test: Likewise.
|
|
* tests/srfi-13.test: Likewise.
|
|
* tests/srfi-14.test: Likewise.
|
|
* tests/vector.test: Likewise.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm+test: Factor-out math and vector.
|
|
* module/mes/base-0.mes (quotient): Remove.
|
|
* module/mes/scm.mes (quotient): Add.
|
|
* tests/scm.test: Remove arithmetic/math tests.
|
|
* tests/math.test: New file.
|
|
* GNUmakefile (TESTS): Add it
|
|
|
|
2017-03-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Have ungetc remember 2 positions.
|
|
* doc/examples/t.c (read_test): Test it.
|
|
* doc/examples/mini-mes.c:
|
|
* mlibc.c (getchar, ungetc): Support 2 ungetc positions.
|
|
* module/mes/libc.mes (getchar, ungetc): Likewise.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add brk, naive malloc.
|
|
* scaffold/mini-mes.c (gc_init_cells): Use malloc to init g_cells.
|
|
* scaffold/malloc.c: New file.
|
|
* GNUmakefile (malloc, guile-malloc): New targets.
|
|
* module/mes/libc-i386.mes (i386:brk): New function.
|
|
(i386:libc): Add it.
|
|
* mlibc.c (brk): New function.
|
|
(malloc): Use it.
|
|
(realloc): New function.
|
|
* module/mes/libc.mes (malloc, realloc): New functions.
|
|
|
|
2017-03-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Struct fixes.
|
|
* module/language/c99/compiler.mes (expr->arg, expr->accu, ast->info):
|
|
Fixes for struct assignment.
|
|
|
|
2017-03-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add missing defines.
|
|
* module/language/c99/compiler.mes (mescc): Set STDIN, STDOUT, STDERR,
|
|
INT_MIN, INT_MAX.
|
|
|
|
mini-mes: Update display_.
|
|
* doc/examples/mini-mes.c (display_): Add separator, nicer recursion.
|
|
* mes.c (display_): Update.
|
|
|
|
mescc: Struct by value assignment fixes.
|
|
* module/language/c99/compiler.mes (ast->info): Remove g_function
|
|
hardcoding, fix struct assignment.
|
|
* doc/examples/t.c (struct_test): Test it.
|
|
|
|
mescc: Fix struct field comparison.
|
|
* module/language/c99/compiler.mes (expr->accu, ast->info): Some
|
|
push/pop fixes, fixes struct field comparisons.
|
|
* doc/examples/t.c (struct_test): Test it.
|
|
|
|
mescc: Run full scheme reader read-0.mes.
|
|
* lib.c (load_env)[MINI_MES]: Load full reader, module/mes/read-0.mes.
|
|
* GNUmakefile (module/mes/read-0-32.mo): Update dependency.
|
|
* module/mes/mini-0.mes: Remove.
|
|
* doc/examples/t.c (struct_test):
|
|
* module/mes/read-0-32.mo: New file: bootstrap binary reader.
|
|
|
|
mescc: Mini-mes (gcc-compiled) runs read-0.mes.
|
|
* module/language/c99/compiler.mes (expr->accu): Add mul.
|
|
(test->jump->info): Add le, ge.
|
|
(ast->info): Support int and char* initialization at top level.
|
|
* module/mes/as-i386.mes (i386:accu*base, i386:Xjump-cz,
|
|
i386:Xjump-ncz): New function.
|
|
* module/mes/as-i386.scm: Export them.
|
|
* doc/examples/t.c (test): Test them.
|
|
* module/mes/libc.mes (ungetc): New function.
|
|
(getchar): Support it.
|
|
(assert_fail, isdigit): New functions.
|
|
(libc): Export them.
|
|
* module/mes/mini-0.mes: Load full reader.
|
|
* mlibc.c (ungetc): New function.
|
|
(getchar): Support it.
|
|
(assert_fail, isdigit): New functions.
|
|
* mes.c (list length error lookup_ getchar ungetchar peekchar
|
|
peek_byte read_byte unread_byte greater_p less_p): Move functions
|
|
needed to run read-0.mes into core.
|
|
* doc/examples/mini-mes.c: Likewise.
|
|
* lib.c (length, error): Comment-out.
|
|
* math.c (greater_p, less_p): Comment-out.
|
|
* posix.c: (getchar, ungetchar, peekchar, peek_byte, read_byte,
|
|
unread_byte): Comment-out.
|
|
* reader.c (lookup_): Comment-out.
|
|
|
|
2017-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Cleanup mini-mes build and test.
|
|
* GNUmakefile (guile-cons-mes guile-m guile-main guile-micro-mes
|
|
guile-mini-mes guile-t guile-tiny-mes): New targets.
|
|
(clean): Clean them.
|
|
* .gitignore: Ignore them.
|
|
* HACKING: Update.
|
|
* scaffold/tiny-mes.c (bload_env): Read module/mes/tiny-0-32.mo.
|
|
* scaffold/cons-mes.c (simple_bload_env): Likewise.
|
|
* lib.c (dump)[MES_TINY]: Write crafted dump: module/mes/tiny-0-32.mo.
|
|
(load_env): Read module/mes/mini-0.mes.
|
|
(bload_env): Read module/mes/read-0-32.mo.
|
|
* module/mes/mini-0.mes: New file.
|
|
* module/mes/tiny-0.mes : New file.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor libc.
|
|
* GNUmakefile (mini-mes): Add include.
|
|
* mlibc.c: New file: libc bits for GNUC -nostdlib.
|
|
* mstart.c: New file: _start for GNUC -nostdlib.
|
|
* scaffold/cons-mes.c: Remove GNUC libc bits.
|
|
* scaffold/m.c: Likewise.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
* scaffold/t.c: Likewise.
|
|
* scaffold/tiny-mes.c: Litkewise.
|
|
* module/language/c99/compiler.mes (libc, i386:libc): Remove.
|
|
* module/language/c99/compiler.scm
|
|
* module/mes/libc-i386.mes: Remove assembly bits.
|
|
(_start): New function.
|
|
* module/mes/libc-i386.scm: Export it, remove assembly exports.
|
|
* module/mes/as-i386.mes: New file: assembly bits from libc-i386.mes.
|
|
* module/mes/as-i386.scm: New file: export them.
|
|
* module/mes/libc.mes (libc,_start): New functions from compiler.mes.
|
|
* module/mes/libc.scm: Export them.
|
|
|
|
2017-03-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor ret.
|
|
* module/mes/libc-i386.mes (i386:ret): Refactor.
|
|
* module/language/c99/compiler.mes (ast->info): Use it.
|
|
|
|
2017-03-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Cache text generation.
|
|
* module/mes/elf-util.mes (functions->text): Add cache.
|
|
|
|
mescc: Refactor function-offset.
|
|
* module/mes/elf-util.mes (function-offset): Recurse down. Factor 5
|
|
speedup on mini-mes.c.
|
|
|
|
mescc: Cache data-offset too.
|
|
* module/mes/elf-util.mes (data-offset): Add cache.
|
|
|
|
mescc: Support assignment with comparison.
|
|
* module/language/c99/compiler.mes (expr->accu): Handle assignment -> accu.
|
|
* doc/examples/t.c (test): Test it.
|
|
* doc/examples/mini-mes.c (eval_apply): Use it.
|
|
|
|
mescc: Support assignment test.
|
|
* module/language/c99/compiler.mes (test->jump->info): Handle assignment.
|
|
* doc/examples/t.c (test): Test it.
|
|
|
|
2017-03-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix simple value tests.
|
|
* module/language/c99/compiler.mes (test->jump->info): Test accu
|
|
before jumping. Fixes simple value tests.
|
|
|
|
mescc: Struct by value.
|
|
* build-aux/mes-snarf.scm (symbol->names, function->header,
|
|
function->environment): Remove struct by value assignment
|
|
workarounds.
|
|
* module/language/c99/compiler.mes (ast->info): Remove struct by value
|
|
assignment debug printing.
|
|
|
|
mescc: Support generic initializer.
|
|
* module/language/c99/compiler.mes (ast->info): Support generic
|
|
declaration using initializer. Supports struct field initializer.
|
|
* doc/examples/t.c (struct_test): Test it.
|
|
* doc/examples/mini-mes.c (call_lambda, eval_apply, write_byte,
|
|
display_): Use it. (call_lambda): (eval_apply,
|
|
list_of_char_equal_p): Use it.
|
|
|
|
mescc: Remove last hardcodings for identifiers.
|
|
* module/language/c99/compiler.mes (ident->accu, ident->base):
|
|
Use local:ptr, type->size to remove hard coding of functionx, c1.
|
|
(expr->accu): Use type->size to remove hard coding of size byte.
|
|
(decl->type): Also handle typename, bail out if type not found.
|
|
(type->size): Print identifier and and bail out if type not found.
|
|
(formal:ptr): New function.
|
|
(formals->locals): Use it to set pointer value of parameter. WAS: 0.
|
|
(ast->info): Remove functionx hardcoding.
|
|
(getchar): Rename c1 to c.
|
|
* doc/examples/t.c: Test it.
|
|
|
|
mescc: Support function call with enum value.
|
|
* doc/examples/mini-mes.c: Remove debug printing.
|
|
* module/language/c99/compiler.mes (push-global, push-local,
|
|
push-global-address, push-local-address, push-local-de-ref): Return
|
|
list of lambda.
|
|
(push-ident): Support push constant. Fixes mini-mes,
|
|
cstring_to_list.
|
|
* doc/examples/t.c (test): Test it.
|
|
|
|
2017-03-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fix d-sel comparisons.
|
|
* module/language/c99/compiler.mes (ast->info): Save base while
|
|
computing accu. Fix comparison using d-sel in second argument.
|
|
* doc/examples/t.c: Test it.
|
|
* doc/examples/mini-mes.c (assq): Use it.
|
|
|
|
mescc: Fix for character array s[0].
|
|
* module/language/c99/compiler.mes (expr->arg, expr->accu, ast->info):
|
|
Use type size to calculate index.
|
|
* doc/examples/t.c: Test it.
|
|
* doc/examples/mini-mes.c (cstring_to_list): Simplify.
|
|
|
|
2017-03-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support mini-mes running scheme program with builtins.
|
|
Mini-mes, compiled with either gcc or mescc, now runs a memory dump of
|
|
this mini-0.mes program
|
|
|
|
(begin
|
|
(write-byte (make-cell 0 0 65))
|
|
(write-byte (make-cell 0 0 66))
|
|
(write-byte (make-cell 0 0 67))
|
|
(write-byte (make-cell 0 0 10))
|
|
#f)
|
|
|
|
when read and dumped by (gcc-compiled) mes-32.
|
|
|
|
* build-aux/mes-snarf.scm: FIXES ..collapse?
|
|
* module/language/c99/compiler.mes (ast->info): Bail out on unhandled
|
|
declarations. Was: verbosely skip.
|
|
|
|
2017-03-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support [for] itoa.
|
|
* module/mes/libc-i386.mes (i386:accu%base): New function.
|
|
* module/mes/libc-i386.scm: Export it.
|
|
* module/language/c99/compiler.mes (expr->accu): Use it to support mod.
|
|
* doc/examples/t.c (itoa): New function.
|
|
(test): Test it.
|
|
* doc/examples/mini-mes.c (itoa)[!__GNUC__]: New function.
|
|
|
|
mescc: Support do .. while.
|
|
* module/language/c99/compiler.mes (ast->info): Support do-while.
|
|
* doc/examples/t.c (test): Test it.
|
|
|
|
2017-03-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core+mini-mes: Replace manual snippets by snarfed includes.
|
|
* build-aux/mes-snarf.scm (symbol->source, function->header,
|
|
function->source, function->environment): Add workarounds to
|
|
avoid struct-copy initializers.
|
|
* GNUmakefile (mini-mes): Snarf symbols and functions.
|
|
* scaffold/mini-mes.c: Include mini-mes.h, mini-mes.symbols.h,
|
|
mini-mes.symbols.i, mini-mes.i, mini-mes.environment.i.
|
|
Add snarfable symbol/special definitions.
|
|
(type_t): Prefix all types with `T', update users.
|
|
(assert_defined, gc_push_frame, gc_peek_frame, gc_init_cells): Mark
|
|
as internal.
|
|
* mes.c (type_t): Prefix all types with `T', update users.
|
|
* scaffold/mini-mes.c (eq_p, type_, car_, cdr_,
|
|
list_of_char_equal_p, lookup_macro, write_byte): New functions (from
|
|
mes.c).
|
|
(assq): Add debugging, workaround.
|
|
|
|
2017-03-05 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: removed start from lalr-spec -- not needed
|
|
|
|
2017-03-04 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working javascript interpreter in guile
|
|
|
|
2017-03-03 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: lex fixes for char-lit
|
|
|
|
2017-03-02 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: cleaned up documentation
|
|
|
|
2017-03-01 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working on C99 UG as a memo
|
|
|
|
2017-02-28 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.76.5
|
|
|
|
nyacc: fixed bug in pretty-print-c99 wrt i-sel
|
|
|
|
2017-02-25 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: merge from 0.76.4
|
|
|
|
2017-02-24 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.76.4
|
|
|
|
2017-02-23 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.76.3
|
|
|
|
nyacc: more bugs in cpp tokl->string
|
|
|
|
nyacc: new release 0.76.2
|
|
|
|
nyacc: fixed more CPP issues
|
|
|
|
2017-02-22 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.76.1
|
|
|
|
nyacc: fixed C99 CPP to deal with numbers correctly
|
|
|
|
2017-02-20 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: merge master 0.76.0
|
|
|
|
2017-02-19 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.76.0
|
|
|
|
nyacc: worked c99/util2.scm udecl->mspec
|
|
|
|
nyacc: new release 0.75.6
|
|
|
|
nyacc: fixed some c99/util2 items
|
|
|
|
2017-02-17 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: merged in 0.75.5 from master and inc version
|
|
|
|
nyacc: new release 0.75.5
|
|
|
|
nyacc: new release 0.74.4
|
|
|
|
nyacc: minor cpp fixes
|
|
|
|
2017-02-16 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: merge from 0.75.3
|
|
|
|
nyacc: new release 0.75.3
|
|
|
|
nyacc: new release 0.75.2
|
|
|
|
nyacc: new release 0.75.1
|
|
|
|
nyacc: new release 0.74.0
|
|
|
|
nyacc: I think cpp is working now
|
|
|
|
2017-02-15 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working cpp now, I hope
|
|
|
|
2017-02-12 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: CPP not yet working for file mode
|
|
|
|
2017-02-11 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working on cpp issues
|
|
|
|
2017-02-05 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: C99 CPP for code is better
|
|
|
|
2017-01-20 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: starting to work on reframing
|
|
|
|
2017-01-19 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: more CPP fixes
|
|
|
|
2017-01-17 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: redesign lang/c99/cppbocy.scm:scan-cpp-input
|
|
|
|
2017-03-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support goto in while body.
|
|
* module/language/c99/compiler.mes (ast->info): Support goto in while
|
|
body.
|
|
* doc/examples/t.c (test): Test it.
|
|
|
|
2017-03-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core+mini-mes: Move function name to struct function.
|
|
* module/language/c99/compiler.mes (expr->arg): Handle char arguments.
|
|
* doc/examples/cons-mes.c (struct function): Add name field.
|
|
* doc/examples/mini-mes.c: Likewise.
|
|
(mes_builtins): Update.
|
|
* mes.c: Likewise.
|
|
* build-aux/mes-snarf.scm: Update.
|
|
|
|
2017-03-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support strings in struct initialization.
|
|
* module/mes/elf-util.mes (add-s:-prefix, drop-s:-prefix): New functions.
|
|
* module/mes/elf-util.scm: Export them.
|
|
* module/language/c99/compiler.mes (string->global): Add `s:' prefix
|
|
to global strings. Update users.
|
|
(expr->arg): Update.
|
|
(expr->accu): Handle string expressions.
|
|
(initzer->global): New function.
|
|
(struct-field): Handle string field.
|
|
* doc/examples/t.c: Test it.
|
|
* doc/examples/mini-mes.c: Use it.
|
|
|
|
dun!
|
|
|
|
2017-03-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Display sexps better.
|
|
* module/mes/elf.mes (make-elf): Only display data sections smaller
|
|
than 200 bytes.
|
|
* doc/examples/mini-mes.c (simple_bload_env): Read mini-0-32.mes.
|
|
* doc/examples/cons-mes.c (display_): Support symbols and specials.
|
|
* doc/examples/tiny-mes.c: Likewise.
|
|
* lib.c:
|
|
* mes.c:
|
|
|
|
2017-03-06 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Compile all of mini-mes.
|
|
* module/language/c99/compiler.mes (case->jump-info): Support single statement.
|
|
* module/mes/elf-util.mes (function-prefix): Workaround for reversed
|
|
functions. FIXME!
|
|
* module/mes/elf.mes:
|
|
* scaffold/mini-mes.c (type_t): Rename FUNCTION to TFUNCTION for Nyacc.
|
|
Add missing symbols.
|
|
(eval_apply): Uncomment most.
|
|
* scaffold/tiny-mes.c:
|
|
* scaffold/cons-mes.c: Remove cruft.
|
|
|
|
2017-03-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support struct assignment.
|
|
* module/mes/libc-i386.mes (i386:base-address->accu-address,
|
|
i386:accu+n, i386:base+n): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (ast->info): Use them.
|
|
* doc/examples/t.c: Test them.
|
|
* doc/examples/cons-mes.c: Drop workarounds.
|
|
* doc/examples/mini-mes.c: Likewise.
|
|
* mes.c:
|
|
|
|
mescc: Fix add, sub, lshift.
|
|
* module/language/c99/compiler.mes (expr->accu): Fix add, sub, lshift.
|
|
* doc/examples/t.c: Test them.
|
|
* doc/examples/cons-mes.c:
|
|
* doc/examples/mini-mes.c:
|
|
|
|
2017-02-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support any expression as arg.
|
|
* module/language/c99/compiler.mes (expr->arg): Also push parameter,
|
|
always return info.
|
|
(ast->info): Loop over args. Fixes using function calls in arguments.
|
|
* module/mes/libc-i386.mes (i386:push-arg): Remove.
|
|
(i386:call, i386:call-accu): Remove arguments parameter.
|
|
* doc/examples/t.c: Test it.
|
|
|
|
2017-03-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Rename expr->accu*.
|
|
* module/language/c99/compiler.mes (expr->accu*): Rename from expr->accuX.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Fixes for goto.
|
|
* module/mes/libc-i386.mes (XXjump): New function.
|
|
* module/mes/libc-i386.scm: Export it.
|
|
* module/language/c99/compiler.mes (case->jump-info, ast->info): Use it.
|
|
* scaffold/t.c: Test it.
|
|
* GNUmakefile (cons-mes): New target.
|
|
* scaffold/cons-mes.c: New file.
|
|
* scaffold/mini-mes.c:
|
|
|
|
2017-02-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Mini-mes runs (cons 0 1) dump.
|
|
* module/mes/libc-i386.mes (i386:Xjump-z, i386:Xjump-c,
|
|
i386:Xjump-nc): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (case->jump-info, test-jump->info,
|
|
ast->info): Use them.
|
|
* doc/examples/t.c: Test it.
|
|
* doc/examples/mini-mes.c: Run it.
|
|
|
|
2017-01-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Run mini-mes.
|
|
* .gitignore: Ignore tiny-mes and tiny .mo's.
|
|
* doc/examples/tiny-mes.c: Simplify.
|
|
* doc/examples/mini-mes.c: Use simplifications from tiny-mes.
|
|
* doc/examples/t.c (read_test, struct_test): New functions.
|
|
(test): Add tests for arena, g_cells globals.
|
|
* module/mes/elf-util.mes (dec->hex): New function.
|
|
(lambda/label->list): Add text-address parameter. Update callers.
|
|
* module/language/c99/compiler.mes (make, info, clone): Add init field.
|
|
(.init): New function.
|
|
(ident->accu): Add exceptions for globals.
|
|
* module/mes/elf-util.scm: Export it.
|
|
* module/mes/libc-i386.mes (i386:accu->base-ref,
|
|
i386:byte-accu->base-ref, i386:accu->base-ref+n,
|
|
i386:accu->global-ref, i386:global-ref->accu, i386:global-ref->base,
|
|
i386:global-add, i386:global->accu):, i386:local-ref->accu,
|
|
i386:local-ptr->accu, i386:local-ptr->base): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
2017-01-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Add gdb assembly debugging info.
|
|
* HACKING: Add gdb assembly debugging info.
|
|
|
|
2017-01-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
doc: Add fosdem talk.
|
|
* .gitignore: Ignore beamer/tex stuff.
|
|
* doc/fosdem/fosdem.org: New file.
|
|
* doc/fosdem/GuixSD.png: New file.
|
|
* doc/fosdem/LISP-1-5-page-13-bottom.png: New file.
|
|
* doc/fosdem/LISP-1.5-page-13-bottom.png: New file.
|
|
* doc/fosdem/LISP-1.5-page-13.pdf: New file.
|
|
* doc/fosdem/LISP-1.5-page-13.png: New file.
|
|
* doc/fosdem/beamercolorthemeX.sty: New file.
|
|
* doc/fosdem/beamerthemeX.sty: New file.
|
|
* doc/fosdem/bootstrap-graph.png: New file.
|
|
* doc/fosdem/egg.jpeg: New file.
|
|
* doc/fosdem/egg.png: New file.
|
|
* doc/fosdem/egg.xcf: New file.
|
|
* doc/fosdem/fosdem.pdf: New file.
|
|
* doc/fosdem/fsb-logo-guile-guix-gnu.png: New file.
|
|
* doc/fosdem/fsb-logo-guile-guix-gnu.xcf: New file.
|
|
* doc/fosdem/fsb-logo-guile-guix-mes.png: New file.
|
|
* doc/fosdem/fsb-logo-guile-guix-mes.xcf: New file.
|
|
* doc/fosdem/fsb-logo.png: New file.
|
|
* doc/fosdem/guix-build-bootstrap-tarballs.log: New file.
|
|
* doc/fosdem/html.sty: New file.
|
|
* doc/fosdem/mes.png: New file.
|
|
* doc/fosdem/mes.xcf: New file.
|
|
|
|
mescc: bugfix: arg as function call.
|
|
* module/language/c99/compiler.mes (expr->arg):
|
|
|
|
2017-01-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mini-mes: gcc: run (cons 0 1).
|
|
|
|
2017-01-15 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.74.3
|
|
|
|
nyacc: CPP working better now
|
|
|
|
2017-01-14 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: something working
|
|
|
|
nyacc: still debugginug
|
|
|
|
2017-01-12 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working # and ## I think, but lots of debug output too
|
|
|
|
2017-01-11 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: exceptions worked on.. still need to fix #
|
|
|
|
nyacc: new release 0.74.2
|
|
|
|
nyacc: fixed C99 use of 'defined XYZ' (no parens)
|
|
|
|
nyacc: merged master
|
|
|
|
nyacc: working on fixes
|
|
|
|
2017-01-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Read and display sexp dumped by mes.
|
|
* lib.c (dump)[MES_HACK]: Dump small hello-world sexp, to be handled by
|
|
* doc/examples/tiny-mes.c (display_): New function.
|
|
* module/mes/libc-i386.mes (i386:accu->base, i386:mem->accu,
|
|
i386:mem+n->accu): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* GNUmakefile (mes-32): New target.
|
|
|
|
2017-01-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support global pointer assignments.
|
|
* module/mes/libc-i386.mes (base->accu-ref, local-ref->base): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (base->ident-ref, ident-ref->base):
|
|
New functions.
|
|
|
|
mescc: Add data as loadable ELF section.
|
|
* module/mes/elf.mes (make-elf): Add data as loadable section too.
|
|
|
|
mescc: Support switch.
|
|
* module/language/c99/compiler.mes (case->jump-info): New function.
|
|
(ast->info): Use it.
|
|
* doc/examples/t.c (swits): Test it.
|
|
|
|
2017-01-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Handle enums.
|
|
* module/language/c99/compiler.mes (<types>, <constants>): New slots for info.
|
|
(make, clone): Add them.
|
|
(.types, .constants): New accessors.
|
|
|
|
mescc: Update for.
|
|
* module/language/c99/compiler.mes (ast->info): Rewrite for to use
|
|
test->jump->info.
|
|
|
|
2017-01-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Add string-delete.
|
|
* module/srfi/srfi-13.mes (string-delete): New function.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Add open/read C-tests.
|
|
* scaffold/m.c: New file.
|
|
* scaffold/tiny-mes.c: New file.
|
|
* GNUmakefile (m, tiny-mes): New targets.
|
|
* scaffold/micro-mes.c: Update gcc-libc bits.
|
|
* scaffold/mini-mes.c: Likewise.
|
|
|
|
2017-01-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Support ?.
|
|
* module/language/c99/compiler.mes (ast->info): Support cond-expr.
|
|
* scaffold/t.c (test): Test it.
|
|
|
|
mescc: Support open, read.
|
|
* module/mes/libc-i386.mes (i386:write): Fix comment.
|
|
(i386:open, i386:read): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* module/language/c99/compiler.mes (i386:libc): Add them.
|
|
(getchar, putchar): New libc functions.
|
|
(libc): Add them.
|
|
|
|
mescc: Support globals.
|
|
* module/language/c99/compiler.mes (write-any): Catch writing of
|
|
procedure and give more debug information.
|
|
(ref-local, ref-global): Remove.
|
|
(push-global-ref, push-global, push-ident-ref): New functions.
|
|
(push-ident): New function.
|
|
(expr->arg): Use them.
|
|
(ident->accu, ident->accu, accu->ident, value->ident, ident->base):
|
|
Take info parameter, also handle globals.
|
|
(ident-address->accu, ident->global, cstring->number): New functions.
|
|
(ast->info): Update.
|
|
* module/mes/libc-i386.mes (i386:ret-local): Remove.
|
|
(i386:push-global-ref): Rename from i386:ref-global.
|
|
(i386:push-local): Rename from i386:ref-local.
|
|
(i386:value->local): Rename from i386:local-assign.
|
|
(i386:push-global, i386:push-local-ref, i386:value->global,
|
|
i386:local-address->accu): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
2017-01-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Small ELF tweaks allowing debugging with gdb.
|
|
* module/mes/elf.mes (make-elf): Change note section to comment. Fixes
|
|
readelf. Add SHF-ALLOC to .text and .data.
|
|
|
|
2017-01-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Handle && in if and while.
|
|
* scaffold/t.c (test): Add strcmp tests.
|
|
* module/language/c99/compiler.mes (expr->arg):
|
|
(test->jump->info): New function.
|
|
(ast->info): Use it.
|
|
* module/mes/libc-i386.mes (i386:global->accu):
|
|
(i386:base-mem->accu): Rename from i386:mem->accu.
|
|
(i386:byte-base-mem->accu): Rename from i386:base-mem->accu.
|
|
(i386:accu-not, i386:global->accu, i386:xor-accu): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
2017-01-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Proper support for i++,++i,i--,--i.
|
|
* module/language/c99/compiler.mes (ast->info): Bugfix: locals.
|
|
Add i--, --i. Properly support i++, ++i.
|
|
* module/mes/libc-i386.mes (i386:function-locals): Support 8 local vars.
|
|
* scaffold/t.c (test): Test it.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Beginning of expression and test template.
|
|
* scaffold/t.c: New file.
|
|
* GNUmakefile (mescc-check, t-check): New targets.
|
|
* module/language/c99/compiler.mes (write-any): Catch weirdness.
|
|
(make): Add <function> slot.
|
|
(.function): New accessor.
|
|
(clone): Handle it.
|
|
(function->info): Set it.
|
|
(ast->info): Make tests generic in if, for, while. Add goto, label,
|
|
!, ==, !=, -, &&.
|
|
* module/mes/elf-util.mes (lambda/label->list): New function.
|
|
(text->list): Use it.
|
|
(functions->text, function-prefix): New function.
|
|
(function-offset): Use it.
|
|
(label-offset): New function.
|
|
* module/mes/elf-util.scm (mes): Export them.
|
|
* module/mes/elf.mes (make-elf): Use text->list.
|
|
* module/mes/libc-i386.mes (eputs, puts): Remove.
|
|
(i386:byte-base-sub): Rename from sub-byte-base.
|
|
(i386:byte-jump-z): Rename from i386:Xjump-byte-z.
|
|
(i386:byte-mem->accu): Rename from i386:Xmem-byte->accu.
|
|
(i386:byte-mem->base): Rename from i386:Xmem-byte->base.
|
|
(i386:accu->local, i386:accu-non-zero?, i386:accu-zero?,
|
|
i386:base-sub, i386:byte-sub-base, i386:jump-c, i386:jump-cz,
|
|
i386:jump-nc, i386:jump-ncz, i386:byte-mem->base, i386:sub-base,
|
|
i386:test-accu, i386:test-base, i386:test-jump-z, i386:value->base,
|
|
i386:xor-zf): New functions.
|
|
|
|
2017-01-05 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Have micro-mes use strcmp to print help.
|
|
* doc/examples/micro-mes.c (main): Add --help.
|
|
* module/language/c99/compiler.mes (info?): New function.
|
|
(expr->accu): Handle function call and sub.
|
|
(ast->info): Handle if not, and, de-ref, eq, sub, return f ().
|
|
* module/mes/libc-i386.mes (i386:accu-zero?, i386:Xmem-byte->accu,
|
|
i386:Xmem-byte->base, i386:jump-byte-nz, i386:jump-byte-z,
|
|
i386:test-byte-base, i386:Xjump-byte-z, i386:sub-byte-base): New
|
|
functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
mescc: Compile specific for loop.
|
|
* module/language/c99/compiler.mes (ast->info): Handle for, pre-inc.
|
|
* GNUmakefile (main): New target.
|
|
* doc/examples/main.c:
|
|
(exit, write, strlen,puts)[__GNUC__]: New functions; import from micro-mes.c
|
|
(_start): New function.
|
|
|
|
2017-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Refactor compiler.
|
|
* module/language/c99/compiler.mes (make, clone): Lightweight functional
|
|
GOOPS-like list-based info structure.
|
|
(make-text+globals+locals): Remove.
|
|
(ast->info): Rename from statement->text+globals+locals, refactor.
|
|
Update callers.
|
|
(function->info): Rename from function->globals, refactor. Update
|
|
callers.
|
|
(ast-list->info): New function.
|
|
|
|
2017-01-07 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Fix psyntax/keyword/optargs interaction bug.
|
|
* module/mes/psyntax-0.mes (self-evaluating?): Add keyword?.
|
|
* module/mes/pmatch.mes (mes): Add missing psyntax dependency.
|
|
* module/mes/optargs.scm (rest-arg->keyword-binding-list): Make error
|
|
messages non-constant.
|
|
* tests/optargs.test ("clone <info>"): New test.
|
|
|
|
2017-01-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Compile file supplied on command line.
|
|
* scripts/mecc.mes: Pass (command-line) to main.
|
|
|
|
nyacc: Add cpp to c99 mes module.
|
|
* module/nyacc/lang/c99/parser.mes: Include (nyacc lang c99 cpp).
|
|
|
|
mescc: Rename symbols to globals.
|
|
* module/language/c99/compiler.mes:
|
|
|
|
mescc: Have micro-mes use if not to segfault.
|
|
* module/language/c99/compiler.mes (write-any): Check explicitly on
|
|
number?, report error otherwise.
|
|
(statement->text+symbols+locals): Remove statement-offset.
|
|
Handle compounds. Handle very specific if.
|
|
(function->symbols): Remove unused text-offset.
|
|
* doc/examples/micro-mes.c (main): If argc > 1 print argv1. Fixes
|
|
segfault :-)
|
|
* module/mes/elf-util.mes (symbols->text): Loop rather than map,
|
|
feed text-offset.
|
|
* module/mes/libc-i386.mes (i386:local-test, i386:jump-le): New
|
|
functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
mescc: Have micro-mes print argv.
|
|
* module/language/c99/compiler.mes (expr->arg): Bugfix argv: Use
|
|
size=4 (int).
|
|
(statement->text+symbols+locals): Bugfixes: array-ref, initialize with
|
|
immediate, initialize with local.
|
|
(formals->locals): Bugfix: formals counted down from -1 [WAS: down to
|
|
-1].
|
|
* module/mes/libc-i386.mes (i386:call): Reverse args pushes to match
|
|
formals index changes.
|
|
(i386:write): Update for changed formals push order.
|
|
(i386:mem->accu, i386:value->accu): New functions.
|
|
* module/mes/libc-i386.scm (mes): Export them.
|
|
* doc/examples/micro-mes.c (eputs, puts, fputs): Make identical with
|
|
mescc's implementations.
|
|
(main): Print argv[0] and (unconditionally; crash if not given) argv[1].
|
|
|
|
mescc: Have micro-mes print argc.
|
|
* module/language/c99/compiler.mes (accu->ident): New function.
|
|
(statement->text+symbols+locals): Use it to implement initialization
|
|
with immediate, local.
|
|
(_start): Call main with argc,argv [WAS: 0,0].
|
|
* module/mes/libc-i386.mes (i386:push-accu, i386:accu->local): New
|
|
functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
* doc/examples/micro-mes.c (main): Return argc as exit status.
|
|
|
|
mescc: Support literal .byte in asm ().
|
|
* module/language/c99/compiler.mes (expr->arg): Handle array-ref (int
|
|
only).
|
|
(byte->hex, asm->hex): New functions.
|
|
(statement->text+symbols+locals): Use it to implement asm ().
|
|
|
|
mescc: Remove data section from disassembly.
|
|
* module/mes/elf.mes (make-elf): Remove executable bit from data.
|
|
|
|
2017-01-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Formals, local variables.
|
|
* module/language/c99/compiler.mes (statement->text+symbols+locals):
|
|
Rename from statement->text+symbols. Handle locals.
|
|
(formals->text): Add proper function preamble.
|
|
(formals->locals): Add formals as locals.
|
|
(expr->accu, ident->accu, ident->base, ident-ref, global-ref): New
|
|
functions.
|
|
(strlen, eputs, fputs, puts): New functions.
|
|
(libc): New variable.
|
|
(i386:libc): Rename from libc. Remove eputs and puts.
|
|
* module/mes/libc-i386.mes (i386:eputs, i386:puts: Remove.
|
|
(i386:call, i386:ret): Handle locals as argument.
|
|
(i386:function-locals, i386:function-preamble, i386:jump,
|
|
i386:local->accu, i386:local-add, i386:local-assign,
|
|
i386:local->base, i386:ref-global, i386:ref-local, i386:ret-local,
|
|
i386:mem-byte->accu, i386:test-jump, i386:write): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
mescc: Nicer functions/parameters.
|
|
* module/mes/libc-i386.mes (eputs, exit, puts): Save stack pointer,
|
|
fill parameter registers from stack.
|
|
* module/language/c99/compiler.mes (formal->text): Fill parameter
|
|
registers from stack memory.
|
|
(formals->text): Save stack pointer.
|
|
|
|
mini-mes: Parse with Nyacc.
|
|
* doc/examples/mini-mes.c: Parse with Nyacc.
|
|
|
|
2017-04-02 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Scaffolding of Nyacc compile experiments.
|
|
* scaffold/micro-mes.c: New file.
|
|
* scaffold/mini-mes.c: New file.
|
|
* GNUmakefile (mini-mes, micro-mes): New targets.
|
|
* .gitignore: Ignore them.
|
|
|
|
mescc: Nyacc updates, factor-out elf-util.
|
|
* module/mes/bytevectors.mes
|
|
* module/mes/elf-util.mes: New file.
|
|
* module/mes/elf.mes: Use it.
|
|
(make-elf): Generate symbol-table string-table.
|
|
* module/mes/elf-util.scm: New file.
|
|
* module/mes/elf.scm: Use it.
|
|
* module/language/c99/compiler.mes: Include it.
|
|
* module/language/c99/compiler.scm: Include it.
|
|
* module/mes/libc-i386.mes (call, eputs, exit, puts): New functions.
|
|
* module/mes/libc-i386.scm: Export them.
|
|
|
|
2016-12-31 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: Use Nyacc frontend.
|
|
* module/language/c99/compiler.mes: New file.
|
|
* module/language/c99/compiler.scm: Include it.
|
|
* module/mes/elf.mes: Move (mes-use-module) into cond-expand.
|
|
* module/mes/elf.scm: New file.
|
|
* module/mes/libc-i386.scm: New file.
|
|
* module/nyacc/lang/c99/parser.mes: Add missing module includes.
|
|
* module/nyacc/lang/util.mes: Add missing module include.
|
|
* scripts/mescc.mes: Use Nyacc.
|
|
* guile/mescc.scm: New file.
|
|
* GNUmakefile (guile-mescc): Run it.
|
|
|
|
2017-01-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Avoid xpath's shadowing of filter.
|
|
* module/sxml/xpath.scm (xpath:filter): Rename from filter. Fixes
|
|
shadowing of core filter.
|
|
|
|
2017-01-09 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: fixes didn't get in in 0.74.0
|
|
|
|
nyacc: ugh. fixes did not take, why?
|
|
|
|
2017-01-08 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.74.0
|
|
|
|
nyacc: minor fixes
|
|
|
|
nyacc: lots of C99/CPP fixes. now more robust for code mode
|
|
|
|
nyacc: lots of fixes to make CPP more robust; now need to test
|
|
|
|
2017-01-06 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: updates for cpp-ok/not-ok
|
|
|
|
2017-01-02 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: fixed c99/CPP bug: need to skip space before lparen
|
|
|
|
nyacc: have something working for in-place include
|
|
|
|
2017-01-01 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: working on cpp-include fix
|
|
|
|
2016-12-31 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: creating fixes for 0.73.0
|
|
|
|
2016-12-26 Matt Wette <matt.wette@gmail.com>
|
|
|
|
nyacc: new release 0.73.0
|
|
|
|
nyacc: misc updates; see ChangeLog
|
|
|
|
2016-12-03 Matt Wette <mwette@nautilus.championbroadband.com>
|
|
|
|
nyacc: multiple fixes
|
|
|
|
2016-08-09 Matt Wette <matthew.wette@verizon.net>
|
|
|
|
nyacc: starting devel on 0.72.0
|
|
|
|
2016-12-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Move README.nyacc.
|
|
* module/nyacc/README.nyacc: Moved from README.nyacc.
|
|
|
|
nyacc: Add README.nyacc.
|
|
* README.nyacc: New file.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
tests: Move (ice-9 syncase) into cond-expand.
|
|
* tests/psyntax.mes: Move (ice-9 syncase) into cond-expand. Fixes
|
|
guile-2 deprecation messages.
|
|
|
|
2017-03-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Move (ice-9 syncase) into cond-expand.
|
|
* module/nyacc/lalr.scm: Move (ice-9 syncase) into cond-expand. Fixes
|
|
guile-2 deprecation messages.
|
|
* module/nyacc/lang/c99/cpp.scm: Likewise.
|
|
* module/nyacc/lang/c99/parser.scm: Likewise.
|
|
* module/nyacc/lex.scm: Likewise.
|
|
|
|
2017-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Move GNUisms inside #if.
|
|
* mes.c: Move GNUisms inside #if, add Nyacc #ifs.
|
|
(tmp_num2, tmp_num3): Remove.
|
|
(make_tmps): Update.
|
|
(g_free): Make simple int. Update users.
|
|
* lib.c: Update users.
|
|
* build-aux/mes-snarf.scm (GCC?): New switch to enable GNU extensions.
|
|
|
|
2017-01-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
repl: Fix expand in repl.
|
|
* module/mes/repl.mes (repl): Fix expand. Remove sc-expand.
|
|
|
|
2017-01-03 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm: Error throws rather than hard exit.
|
|
* module/mes/read-0.mes (read-character, read-string): Call error.
|
|
* module/mes/scm.mes (error): Call core:error instead of exit.
|
|
(syntax-error): Likewise.
|
|
* module/mes/repl.mes (repl): Move read into catch.
|
|
|
|
2016-12-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
repl: Use exception handling.
|
|
* module/mes/repl.mes (repl): Use catch to prevent exit upon error.
|
|
|
|
core: Throw exceptions rather than asserts.
|
|
* lib.c (error): Throw instead of assert.
|
|
(check_formals, check_apply): Update.
|
|
* mes.c (scm_symbol_unbound_variable, scm_symbol_not_a_pair,
|
|
scm_symbol_system_error, scm_symbol_wrong_number_of_args,
|
|
scm_symbol_wrong_type_arg, scm_symbol_unbound_variable): New symbols.
|
|
(car, cdr, set_cdr_x, set_env_x, eval_apply, gc_up_arena): Update.
|
|
|
|
core+scm: Implement exception handling.
|
|
* mes.c (scm_symbol_throw): New symbol.
|
|
* module/mes/catch.scm (catch, throw): Implement [WAS: syntactic sugar].
|
|
(make-exception, exception?, exception-key, exception-args): Remove.
|
|
* tests/catch.test ("catch", "catch 22"): Add tests.
|
|
* module/mes/base-0.scm: Include it.
|
|
|
|
Revert "core: Display me debuggor CPS+CC."
|
|
This reverts commit 6c327b5bdceae6fc59ac8cce4aed99ea0a491846.
|
|
|
|
2016-12-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Display me debuggor CPS+CC.
|
|
Having display in the core is handy for debugging.
|
|
This is a courtesy commit intended to prevent bitrot.
|
|
|
|
* GNUmakefile (mes.o): Depend on display.
|
|
* mes.c: Include display.
|
|
* display.c: New file.
|
|
|
|
2016-12-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Add continuations, call/cc.
|
|
* mes.c (type_t): Add CONTINUATION.
|
|
(scm_t): Add continuation;
|
|
(scm_call_with_current_continuation): New symbol.
|
|
(scm_symbol_call_with_current_continuation): New special.
|
|
(g_continuations): New global
|
|
(CONTINUATION): New field accessor.
|
|
(MAKE_CONTINUATION): New make_cell helper.
|
|
(car_): Update.
|
|
(eval_apply): Implement call/cc.
|
|
* module/mes/display.mes (display): Handle continuations.
|
|
* module/mes/type-0.mes (<cell:continuation>): New type.
|
|
(cell-type-alist): Add it.
|
|
(continuation?): New function.
|
|
* tests/base.test ("call/cc"): New test.
|
|
|
|
core: Rewrite eval_apply in continuation passing style.
|
|
* mes.c (scm_vm_evlis, scm_vm_evlis2, scm_vm_evlis3, scm_vm_apply,
|
|
scm_vm_apply2, scm_vm_eval, scm_vm_eval_set_x, scm_vm_eval_macro,
|
|
scm_vm_eval2, scm_vm_macro_expand, scm_vm_begin,
|
|
scm_vm_begin_read_input_file, scm_vm_begin2, scm_vm_if,
|
|
scm_vm_if_expr, scm_vm_call_with_values, scm_vm_call_with_values2,
|
|
scm_vm_return): New specials.
|
|
(scm_vm_eval_car, scm_vm_eval_cdr, scm_vm_eval_cons,
|
|
scm_vm_eval_null_p)[PRIMITIVE-EVAL]: New specials.
|
|
(eval_apply_t, g_target): Remove.
|
|
(push_cc): New function.
|
|
(eval_apply): Rewrite.
|
|
(vm_call, eval_env, apply_env, eval_env, macro_expand_env, begin_env,
|
|
call_with_values_env): Remove.
|
|
* posix.c (stderr_): Update.
|
|
* reader.c (read_input_file_env): Update.
|
|
* module/mes/base-0.mes: Update.
|
|
|
|
2017-01-04 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Support radix for string->number, number->string.
|
|
* module/mes/scm.mes (string->number, number->string): Support radix.
|
|
|
|
Add string-take, string-drop.
|
|
* module/srfi/srfi-13.mes (string-take, string-drop): New functions.
|
|
|
|
core: Stderr_ also print numbers.
|
|
* posix.c (stderr_): Handle numbers.
|
|
|
|
Bugfixes bytevectors.
|
|
* math.c (modulo): Modulo of negative value correctly.
|
|
* module/mes/bytevectors.mes (bytevector-u32-native-set!):
|
|
(bytevector-u16-native-set!): Use ash instead of quotient.
|
|
|
|
Append-map: handle multiple list.
|
|
* module/srfi/srfi-1.mes (append-map): Add optional rest argument.
|
|
|
|
core: Move GNUisms inside #if.
|
|
* mes.c: Move GNUisms inside #if, add Nyacc #ifs.
|
|
(tmp_num2, tmp_num3): Remove.
|
|
(make_tmps): Update.
|
|
(g_free): Make simple int. Update users.
|
|
* lib.c: Update users.
|
|
* build-aux/mes-snarf.scm (GCC?): New switch to enable GNU extensions.
|
|
|
|
Add drain-input.
|
|
* module/mes/guile.mes (drain-input): New function.
|
|
|
|
Bugfix for reading #\*eof* character.
|
|
* module/mes/read-0.mes (read-character): Bugfix for #\*eof*.
|
|
|
|
core: Expose command line.
|
|
* mes.c (scm_symbol_argv): New symbol
|
|
(main): Use it to add argv to environment.
|
|
* module/mes/base.mes (command-line): New function.
|
|
|
|
Include srfi-13 in base.
|
|
* module/mes/base-0.mes: Include srfi-13.
|
|
|
|
Add filter-map.
|
|
* module/srfi/srfi-1.mes (filter-map): New function.
|
|
|
|
Add srfi-1:iota.
|
|
* module/srfi/srfi-1.mes (iota,srf-1:iota): New function.
|
|
|
|
Add pretty-print from Guile.
|
|
* module/mes/pretty-print.scm: Import.
|
|
* module/mes/pretty-print.mes: Include it.
|
|
* AUTHORS: Mention it.
|
|
|
|
Add make-string, object->string.
|
|
* module/mes/guile.mes (make-string, object->string): New functions.
|
|
|
|
Add list-set!, string-set!
|
|
* module/mes/scm.mes (list-set!, string-set!): New functions.
|
|
|
|
Fix core:car, core:cdr for specials.
|
|
* mes.c (car_, cdr_): Return special. Fixes string->list, returning nil.
|
|
* tests/scm.test ("string-length", "string->list"): New tests.
|
|
|
|
core: Add continuation on stack.
|
|
* mes.c (r3): New stack variable.
|
|
(mes_g_stack): Initialize it.
|
|
(gc_push_frame): Add it.
|
|
(gc_peek_frame): Set it.
|
|
|
|
core: Uniformize calling of apply.
|
|
* mes.c (eval_apply): Have apply take one argument, like all other vm
|
|
functions: r1; cons of function f and argument list x. Sorry John.
|
|
(r2): Repurpose as save/load register. Update users.
|
|
(r3): Remove.
|
|
(vm_call): Remove p2. Update callers.
|
|
|
|
core: Refactor stack handling.
|
|
* mes.c (gc_pop_frame, gc_push_frame): New Functions.
|
|
(gc_frame, gc_stack): Remove.
|
|
(vm_call): Update callers.
|
|
* lib.c (dump, bload_env): Update callers.
|
|
|
|
Add simple-format.
|
|
* module/mes/display.mes (simple-format, format): New functions.
|
|
|
|
Display: If possible, show name of closure.
|
|
* module/mes/display.mes (display): Lookup closure's name and display it.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Update documentation.
|
|
* doc/ANNOUNCE-0.4: New file.
|
|
* NEWS: Typo.
|
|
|
|
guix hash: 1jpm8m8y2dqsl3sc6flf8da4rpdrqh6zgr2mghzjw0lg34v1r21j
|
|
|
|
Release 0.4.
|
|
* configure (VERSION): Bump.
|
|
|
|
Remove hardcoded duplication of version.
|
|
* GNUmakefile (CPPFLAGS): Include VERSION.
|
|
* mes.c (main): Use it. Add --dump and --load to --help.
|
|
(scm_symbol_mes_prefix, scm_symbol_mes_version): New sybols.
|
|
(mes_symbols): Use them to set prefix and version.
|
|
* module/mes/base-0.mes (effective-version): Use %version.
|
|
* module/mes/repl.mes (welcome): Likewise.
|
|
|
|
2016-12-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Update documentation.
|
|
* HACKING: Update status, some ideas where to go next.
|
|
* NEWS: Update status.
|
|
* README: Update.
|
|
* doc/ANNOUNCE: Move from top.
|
|
* doc/ANNOUNCE-2: Likewise.
|
|
* doc/ANNOUNCE-0.3: New file.
|
|
|
|
make: Install nyacc scripts too.
|
|
* make/install.make (install): Add scripts/nyacc.mes, scripts/nyacc-calc.mes.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "core: Display me debuggor."
|
|
This reverts commit 53ec23a0edcfdcb7dd4e32277e5a24e0a8fab5dd.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Display me debuggor.
|
|
Having display in the core is handy for debugging.
|
|
This is a courtesy commit intended to prevent bitrot.
|
|
|
|
* GNUmakefile (mes.o): Depend on display.
|
|
* mes.c: Include display.
|
|
* display.c: New file.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "core: FAT_C_READER: Show your speed."
|
|
This reverts commit 5a9b9ac36bd33e497272b287ab1f0db715e01d38.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: FAT_C_READER: Show your speed.
|
|
scripts/nyacc.mes runs in 4s rather than 18s with fat C reader.
|
|
This is a courtesy commit intended to prevent bitrot.
|
|
|
|
* mes.c (quasiquote, unquote, unquote_splicing, syntax, quasisyntax,
|
|
unsyntax, unsyntax_splicing): Add symbols.
|
|
* reader.c (char_eof, char_nul, char_alarm, char_backspace, char_tab,
|
|
char_newline, char_vtab, char_page, char_return,
|
|
char_space)[FAT_C_READER]: New global variables.
|
|
(make_keyword, read_block_comment, read_character, read_hex,
|
|
append_char, read_string, fat_c_lookup_, fat_c_eat_whitespace,
|
|
fat_c_read_word): New functions.
|
|
(eat_whitespace_, read_word_, lookup_)[FAT_C_READER]: Add hook.
|
|
|
|
2016-12-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Refactor reader.
|
|
* module/mes/read-0.mes (read-hash): New function.
|
|
(read-word): Use it.
|
|
(eat-whitespace): Rewrite.
|
|
(display): Minimal implementation through core.
|
|
* lib.c (stderr_): Support printing of strings while booting.
|
|
|
|
core: Remove c3+r abbreviatons.
|
|
* lib.c (caaar, caadr, caddr, cdadr, cadar, cddar, cdddr, cadddr):
|
|
Remove.
|
|
* mes.c: Rewrite callers
|
|
* module/mes/read-0.mes: Rewrite callers.
|
|
* module/mes/base.mes (caaar, caadr, caddr, cdadr, cadar, cddar, cdddr,
|
|
cadddr): New function.
|
|
|
|
core: Move dump, load, bload to lib.c.
|
|
* lib.c (dump, load, bload): Move from mes.c
|
|
* mes.c (dump, load, bload): Remove.
|
|
|
|
core: Add getenv, verbose module loading on MES_DEBUG.
|
|
* mes.c (MAKE_REF, MAKE_STRING): Oops, remove stray semicolon.
|
|
* posix.c (getenv_): New function.
|
|
* module/mes/base-0.mes (load): Use it to switch on MES_DEBUG=1.
|
|
(mes-use-module): Remove commented-out code.
|
|
|
|
core: Add some error checking.
|
|
* lib.c (length): Return -1 for non-proper lists.
|
|
(error): New function.
|
|
(assert_defined): Use it.
|
|
(check_formals, check_apply): New functions.
|
|
* mes.c (car, cdr, set_cdr_x, set_env_x, eval_apply): Add error check.
|
|
* srfi/srfi-1.mes (member): New function.
|
|
* tests/srfi-1.tests ("member"): New test.
|
|
|
|
core: Move reader and posix functions from mes.c
|
|
* mes.c (getchar, ungetchar, peekchar, peek_byte, read_byte,
|
|
unread_byte, write_byte, read_input_file_env_, read_input_file_env):
|
|
Remove.
|
|
* posix.c (getchar, ungetchar, peekchar, peek_byte, read_byte,
|
|
unread_byte, write_byte): Move from mes.c.
|
|
* reader (read_input_file_env_, read_input_file_env): Move from mes.c.
|
|
|
|
core: Remove unused symbols.
|
|
* mes.c (scm_symbol_noexpand, scm_symbol_syntax,
|
|
scm_symbol_quasisyntax, scm_symbol_unsyntax,
|
|
scm_symbol_unsyntax_splicing, scm_symbol_quasiquote,
|
|
scm_symbol_unquote, scm_symbol_unquote_splicing, scm_symbol_define,
|
|
scm_symbol_define_macro): Remove.
|
|
|
|
Add write, add display test, some fixes.
|
|
* mes.c (write_byte): Rename from write_char.
|
|
* module/mes/display.mes (display): Fixes for write: char, closure, procedure.
|
|
(write-char, write, with-output-to-string): New functions.
|
|
* tests/read.test: Include base-0 to see some output.
|
|
* tests/display.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
core: Remove display.
|
|
* posix.c (stderr_): New function.
|
|
* display.c: Remove.
|
|
* mes.c: Remove includes. Use stderr_ instead of display_.
|
|
(gc_loop): Preserve function's name.
|
|
(arity_): New function.
|
|
* GNUmakefile (mes.o): Remove dependency on display.
|
|
* module/mes/read-0.mes: Use core:stderr instead of display, newline.
|
|
(newline): New function.
|
|
* module/mes/base-0.mes: Use core:stderr instead of display.
|
|
Include (mes display).
|
|
* module/mes/display.mes: New file.
|
|
* lib.c (assert_defined): Move from mes.c.
|
|
(string_to_cstring): Move from posix.c
|
|
* build-aux/mes-snarf.scm (function-environment): Initialize function
|
|
name with scheme string.
|
|
|
|
Import srfi-26 from Guile.
|
|
* module/srfi/srfi-26.scm: Import.
|
|
* module/srfi/srfi-26.mes: Include it.
|
|
* AUTHORS: Mention it.
|
|
|
|
2016-12-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove symbol_to_list, char_to_integer, integer_to_char.
|
|
* mes.c (symbol_to_list, char_to_integer, integer_to_char): Remove
|
|
* module/mes/read-0.mes (symbol->list, integer->char,
|
|
symbol->keyword): New function.
|
|
(read-word): Use symbol->keyword.
|
|
* module/mes/type-0.mes (char->integer): New function.
|
|
* module/mes/scm.mes (keyword->symbol): New function.
|
|
|
|
core: Remove string.c.
|
|
* string.c: Remove.
|
|
* mes.c (eval_apply): Remove caller.
|
|
* GNUmakefile (mes.o): Remove dependency on string.
|
|
* module/mes/psyntax-0.mes (eval): Handle "noexpand".
|
|
* module/mes/type-0.mes (string->symbol, symbol->list, symbol->string):
|
|
New function.
|
|
|
|
core: Remove number_to_string.
|
|
* string.c (number_to_string): Remove.
|
|
* module/mes/scm.mes (number->string): New function.
|
|
|
|
core: Remove substring.
|
|
* string.c (substring): Remove.
|
|
* module/mes/scm.mes (substring): New function.
|
|
|
|
core: Remove string_length.
|
|
* module/mes/scm.mes (string-length): New function.
|
|
|
|
core: Remove list_to_string.
|
|
* string.c (list_to_string): Remove.
|
|
* module/mes/read-0.mes (list->string): New function.
|
|
* module/mes/scm.mes (list->string): Remove.
|
|
|
|
core: Remove string-append.
|
|
* string.c (string_append): Remove.
|
|
* module/mes/type-0.mes (string-append): New function.
|
|
* module/mes/base-0.mes: Include type-0 without using string-append.
|
|
|
|
core: Remove string.
|
|
* string.c (string): Remove.
|
|
* module/mes/type-0.mes (string): New function.
|
|
|
|
Add exit.
|
|
* lib.c (exit_): Rename from builtin_exit.
|
|
* module/mes/scm.mes (list): Remove.
|
|
|
|
core: Remove last_pair, list_ref, string_ref.
|
|
* lib.c (last_pair, list_ref): Remove.
|
|
* string.c (string_ref): Remove.
|
|
* module/mes/type-0.mes (string->list): New function.
|
|
* module/mes/scm.mes (string-ref): New function.
|
|
|
|
core: Make closure real type.
|
|
* display.c (display_helper):
|
|
* mes.c (type_t): Add CLOSURE.
|
|
(scm_t): Add closure.
|
|
(CLOSURE): New macro.
|
|
(eval_apply:apply): Update.
|
|
(eval_apply:eval): Remove closure special-casing.
|
|
(gc_loop): Handle CLOSURE.
|
|
* module/mes/read-0.mes: Update types.
|
|
* module/mes/type-0.mes: Update types.
|
|
* display.c (display): Update.
|
|
* module/mes/fluids.mes (env:escape-closure): Check for '*closure.
|
|
|
|
core: Remove quote, quasiquote, quasisyntax.
|
|
* mes.c (quote, quasiquote, quasisyntax): Remove.
|
|
|
|
core: Remove make_lambda.
|
|
* mes.c (make_lambda): Remove.
|
|
|
|
core: Remove type.c.
|
|
* module/mes/type-0.mes: Resurrect.
|
|
* module/mes/base-0.mes: Include it.
|
|
* module/mes/read-0.mes (not, pair?, atom?): New functions.
|
|
* type.c: Remove.
|
|
* mes.c: Remove callers.
|
|
* GNUmakefile (mes.o): Remove dependency on type.
|
|
|
|
core: Remove gc_show.
|
|
* mes.c (gc_show): Remove.
|
|
|
|
core: Remove add_environment.
|
|
* mes.c (add_environment): Remove. Update callers.
|
|
(scm_symbol_dot): New global.
|
|
|
|
core: Remove make_string.
|
|
* mes.c (MAKE_STRING): New macro.
|
|
(make_string): Remove. Update callers.
|
|
* string.c: Update callers.
|
|
|
|
core: Remove make_ref.
|
|
* mes.c (MAKE_REF): New macro.
|
|
(make_ref): Remove. Update callers.
|
|
|
|
core: Remove make_char.
|
|
* mes.c (MAKE_CHAR): New macro.
|
|
(make_char): Remove. Update callers.
|
|
* reader.c (peek_char, read_char, unread_char): Remove.
|
|
* module/mes/scm.mes (peek-char, read-char, unread-char): New function.
|
|
|
|
core: Remove make_number.
|
|
* mes.c (MAKE_NUMBER): New macro.
|
|
(tmp_num_, tmp_num_2): New function.
|
|
(make_number): Remove. Update callers.
|
|
|
|
Remove make_function.
|
|
* mes.c (make_function): Remove.
|
|
|
|
core: Remove make_keyword.
|
|
* mes.c (make_keyword): Remove.
|
|
* module/mes/read-0.mes (<cell:keyword>): New global.
|
|
(read-word): Use it with make_cell instead fo make-keyword.
|
|
* strting.c (symbol_to_keyword): Use make_cell instead of make_keyword.
|
|
|
|
core: Remove make_macro.
|
|
* module/mes/read-0.mes (<macro>): New global.
|
|
(env:macro): Use it with make_cell instead of make_macro.
|
|
* mes.c (make_macro): Remove.
|
|
* type.c (car_): Rename from mes_car.
|
|
(cdr_): Rename from mes_cdr.
|
|
|
|
core: Simplify lookup.
|
|
* reader.c (lookup_): Rename from lookup. Remove all lookups except
|
|
for numbers and symbols. Update callers.
|
|
* mes.c (make_symbol_): Rename from internal_make_symbol. Update
|
|
callers.
|
|
* module/mes/read-0.mes (lookup): New function.
|
|
(read-word): Remove all lookup calls, except for numbers and symbols.
|
|
|
|
Remove lookup-char.
|
|
* reader.c (lookup_char): Remove.
|
|
* module/mes/read-0.mes (lookup-char): Remove.
|
|
(read-word): Rewrite using quote.
|
|
|
|
core: Cleanup symbol initialization and lookup.
|
|
* build-aux/mes-snarf.scm (symbol->names): New function
|
|
(function->environment): Initialize symbol.
|
|
(generate-includes): Also write .symbol-names.i.
|
|
* mes.c (mes_symbols): Include it. Remove internal_lookup_symbol.
|
|
* display.c (display): Handle display of nil in symbol list.
|
|
* reader.c (internal_lookup_symbol): Remove name-fu.
|
|
|
|
2016-12-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove most of reader.
|
|
* reader.c (append_char, read_block_comment, read_character, read_hex,
|
|
read_string): Remove.
|
|
(eat_whitespace, read_word)[READER]: Remove.
|
|
* mes.c (list_to_symbol): New function.
|
|
* module/mes/read-0.mes (list->symbol, read-character, read-hex,
|
|
read-string): New functions.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Refactor reader.
|
|
* module/mes/read-0.mes (eat-whitespace): More efficient ordering/peeking.
|
|
* module/mes/read-0.mes (read-word): Handle tab.
|
|
|
|
2016-12-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Disable reader.
|
|
* mes.c (READER): Switch off.
|
|
* module/mes/read-0.mes (eat-whitespace): Handle #;.
|
|
|
|
core: Do some tail call elimination.
|
|
* mes.c (eval_apply): Use goto instead of return.
|
|
|
|
core: One big eval_apply.
|
|
* mes.c (eval_apply): New function.
|
|
(eval_apply_t): New type.
|
|
(g_target): New global.
|
|
(vm_evlis, vm_apply_env, vm_eval_env, vm_expand_macro_env,
|
|
vm_begin_env, vm_if_env, vm_call_with_values_env): Remove. Update callers.
|
|
(macro_expand_env): Rename from expand_macro_env.
|
|
* guile/mes.mes: Update callers.
|
|
* module/mes/base-0.mes: Likewise.
|
|
* module/mes/mes-0.mes: Likewise.
|
|
* module/mes/psyntax-1.mes: Likewise.
|
|
* module/mes/repl.mes: Likewise.
|
|
|
|
core: Remove vm_call_lambda.
|
|
* mes.c (vm_call_lambda): Remove.
|
|
(call_lambda): Use begin_env.
|
|
|
|
Support PEG from Guile.
|
|
* module/mes/peg.mes: New file.
|
|
* module/mes/peg/cache.scm: New file.
|
|
* module/mes/peg/codegen.scm: New file.
|
|
* module/mes/peg/simplify-tree.scm: New file.
|
|
* module/mes/peg/string-peg.scm: New file.
|
|
* module/mes/peg/using-parsers.scm: New file.
|
|
* tests/peg.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
Support pmatch from Guile.
|
|
* module/mes/pmatch.scm: New file.
|
|
* module/mes/pmatch.mes: New file.
|
|
* AUTHORS: Mention it.
|
|
|
|
Use include-from-path for psyntax.pp.
|
|
* module/mes/psyntax.pp: Rename from module/mes/psyntax-pp.mes.
|
|
* module/mes/psyntax.mes: Update.
|
|
* AUTHORS: Update.
|
|
|
|
Use include-from-path for upstream.
|
|
* module/mes/lalr.scm: Rename from module/mes/lalr.upstream.mes.
|
|
* module/mes/lalr.mes: Update.
|
|
* module/mes/match.scm: Rename from module/mes/match.upstream.mes.
|
|
* module/mes/match.mes: Update.
|
|
* module/mes/optargs.scm: Rename from module/mes/optargs.upstream.mes.
|
|
* module/mes/optargs.mes: Update.
|
|
* module/mes/quasisyntax.scm: Rename from module/mes/quasisyntax.upstream.mes.
|
|
* module/mes/quasisyntax.mes: Update.
|
|
* module/srfi/srfi-1.scm: Rename from module/srfi/srfi-1.upstream.mes.
|
|
* module/srfi/srfi-1.mes: Update.
|
|
* module/srfi/srfi-9.scm: Rename from module/srfi/srfi-9.upstream.mes.
|
|
* module/srfi/srfi-9.mes: Update.
|
|
* AUTHORS: Update.
|
|
|
|
2016-12-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add string-copy, string=, string=?, char<?, char>?, char<=?, char>=?.
|
|
* module/srfi/srfi-13.mes: New file.
|
|
* module/mes/scm.mes (char<?, char>?, char<=?, char>=?): New function.
|
|
* module/srfi/srfi-13.mes: New file.
|
|
* tests/srfi-13.test: New file.
|
|
* string.c (string_to_symbol): Handle "".
|
|
|
|
2016-12-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Remove quasiquote, quasisyntax.
|
|
* quasiquote.c: Remove.
|
|
* mes.c: Remove callers.
|
|
* GNUmakefile (mes.o): Remove dependency on quasiquote.
|
|
|
|
core: Disable quasiquote.
|
|
* mes.c (QUASIQUOTE): Switch off.
|
|
* tests/read.test: Remove quasiquote tests.
|
|
|
|
Refactor quasiquote.
|
|
* module/mes/quasiquote.mes (quasiquote): Refactor.
|
|
* tests/quasiquote.test: Add tests.
|
|
|
|
core: Bugfix append with one argument.
|
|
* mes.c (append): Handle one argument.
|
|
* tests/base.test ("append", "append 0" ... "append 5"): New tests.
|
|
|
|
core: Do macro expansion only once.
|
|
* mes.c (vm_eval_env): I will expand this macro only once.
|
|
|
|
2016-12-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add psyntax-based quasisyntax.
|
|
* module/mes/quasisyntax.upstream.mes: Import from Guile.
|
|
* AUTHORS: Mention it.
|
|
* module/mes/quasisyntax.mes: New file.
|
|
* module/mes/psyntax.mes: Include it.
|
|
|
|
core: Remove define.
|
|
* base-0.mes (cons*): Refactor.
|
|
* module/mes/read-0.mes: Implement define, define-macro using macros.
|
|
* define.c: Remove.
|
|
* mes.c: Remove callers.
|
|
* GNUmakefile (mes.o): Remove dependency on define.
|
|
|
|
2016-12-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
nyacc: Support enhanced Guile-1.8.
|
|
* module/nyacc/lalr.scm: Export process-spec, reserved?. Use optargs, syncase.
|
|
* module/nyacc/lex.scm: Use optargs, syncase.
|
|
* module/nyacc/parse.scm: Use optargs.
|
|
* module/nyacc/util.scm: Use optargs.
|
|
* module/nyacc/lang/util.scm: Use optargs.
|
|
* module/nyacc/lang/c99/cpp.scm: Use syncase.
|
|
* module/nyacc/lang/c99/parser.scm: Use optargs, syncase.
|
|
|
|
2016-12-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Nyacc example scripts: support Guile-1.8.
|
|
|
|
2016-12-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add Nyacc example scripts.
|
|
* guile/nyacc-calc.scm: New file.
|
|
* guile/nyacc.scm: New file.
|
|
* scripts/nyacc-calc.mes: New file.
|
|
* scripts/nyacc.mes: New file.
|
|
* GNUmakefile (mes-check, guile-check): Run them.
|
|
|
|
nyacc: Add mes modules.
|
|
* module/nyacc/lang/c99/cpp.mes
|
|
* module/nyacc/lang/c99/parser.mes
|
|
* module/nyacc/lang/calc/parser.mes
|
|
* module/nyacc/lang/util.mes
|
|
* module/nyacc/lex.mes
|
|
* module/nyacc/parse.mes
|
|
* module/nyacc/util.mes
|
|
|
|
nyacc: Use standard \return rather than \cr.
|
|
|
|
2016-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Import Nyacc 0.72.0.
|
|
* module/nyacc: Import module/nyacc.
|
|
|
|
2016-12-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Import psyntax from Guile-1.8: R7RS with-ellipsis.
|
|
* GNUmakefile (psyntax-import): New target.
|
|
* module/mes/psyntax.ss: Import.
|
|
* module/mes/psyntax-pp.mes: Import.
|
|
* NEWS: Mention it.
|
|
|
|
2016-12-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Prepare for psyntax-6.3..7.3 support.
|
|
* module/mes/psyntax-0.mes (ormap): New function.
|
|
(eval): New function.
|
|
(remprop): New function.
|
|
($sc-put-cte, $make-environment, environment?, syntax->list,
|
|
syntax->vector, literal-identifier=?, $syntax-dispatch, eval-when):
|
|
New variable.
|
|
|
|
2016-12-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add abs.
|
|
* module/mes/scm.mes (abs): New function.
|
|
|
|
core: Bugfix unread_byte.
|
|
* mes.c (unread_byte): Return SCM value instead of stray int.
|
|
|
|
Add ash.
|
|
* math.c (ash): New function.
|
|
* tests/scm.test (ash, ash -1): New tests.
|
|
|
|
Support (sxml xpath) for Nyacc c99.
|
|
* module/sxml/xpath.mes: New file.
|
|
* module/sxml/xpath.upstream.mes: Import from Guile.
|
|
* AUTHORS: Mention it.
|
|
|
|
Partial (rnrs arithmetic bitwise) support for Nyacc c99.
|
|
* module/rnrs/arithmetic/bitwise.mes: New file.
|
|
|
|
Nicer closure and builtin procedure display.
|
|
* display.c (display): Show closure as procedure with formal
|
|
parameters. Display ariry as fake parameters with builtin.
|
|
|
|
Add string->number.
|
|
* module/mes/scm.mes (string->number): New function.
|
|
|
|
Add unless.
|
|
* module/mes/scm.mes (unless): New syntax.
|
|
|
|
Add iota.
|
|
* module/mes/scm.mes: (iota): New function.
|
|
* tests/scm.test (iota, iota 0, iota -1): New tests.
|
|
|
|
Partial srfi-43 support for Nyacc.
|
|
* module/srfi/srfi-43.mes: New file.
|
|
|
|
Partial srfi-14 support for Nyacc.
|
|
* module/srfi/srfi-14.mes: New file.
|
|
* tests/srfi-14.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
Add delete, delq, vector-copy.
|
|
* module/mes/scm.mes (filter, delete, delq, vector-copy): New functions.
|
|
|
|
Add negative?, positive?, zero?, 1+ 1-.
|
|
* module/mes/scm.mes (negative?, positive?, zero?, 1+, 1-): New functions.
|
|
|
|
Add missing srfi-1 functions for Nyacc.
|
|
* module/srfi/srfi-1.scm (fold, fold-right, remove, append-reverse,
|
|
remove!): New functions.
|
|
* tests/srfi-1.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
* module/srfi/srfi-1.upstream.mes: Import bits from Guile-1.8.
|
|
* AUTHORS: Mention it.
|
|
|
|
Add even?, odd?.
|
|
* module/mes/scm.mes (even?, odd?): New function.
|
|
|
|
Bugfix: for-each with two lists.
|
|
* module/mes/scm.mes (for-each): Fix for two lists. Always return *unspecified*.
|
|
|
|
Add and=>.
|
|
* module/mes/base.scm (and=>): New function.
|
|
|
|
Add eqv?.
|
|
* module/mes/base.scm (eqv?): New function.
|
|
|
|
2016-12-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Closure is not a pair.
|
|
* module/mes/base.mes (closure_p, mes_car, mes_cdr): New function.
|
|
(pair_p): Closure is not a pair.
|
|
* NEWS: Mention it.
|
|
* psyntax-0.mes (self-evaluating?): Add closure?.
|
|
|
|
Bugfix: support map^3.
|
|
* module/mes/base-0.scm (map): Support third list, add more visible
|
|
error when used with 4 or more list.
|
|
|
|
2016-12-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Resurrect quasisyntax support.
|
|
* mes.c (the_unsyntaxers): New symbol.
|
|
(mes_builtins)[QUASISYNTAX]: Initialize it, add to environment.
|
|
* quasiquote.c (add_unsyntaxers): Use it.
|
|
(vm_eval_quasisyntax): New function.
|
|
(eval_quasisyntax): Use it.
|
|
|
|
2016-12-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add psyntax-based srfi-9.
|
|
* module/srfi/srfi-9-psyntax.mes: New file.
|
|
|
|
Add support for including Guile files.
|
|
* module/mes/guile.mes: New file.
|
|
* module/mes/pretty-print.mes: New file.
|
|
|
|
Support include and include-from-path.
|
|
* module/mes/base-0.mes (include, include-from-path): New function.
|
|
|
|
Support backslash in string.
|
|
* reader.c (read_string): Handle '\\'.
|
|
* tests/read.test: Add it.
|
|
|
|
Support #\alarm, #\vtab.
|
|
* mes.c (char_alarm): New variable.
|
|
(char_vtab): Rename from char_vt.
|
|
* reader.c (read_character): Add alarm, update vtab.
|
|
* display.c (display): Likewise.
|
|
* module/language/c/lexer.mes (read-string): Use vtab.
|
|
|
|
Support non-nested #| |# comment.
|
|
* module/mes/read-0.mes (read-word, read-block-comment): Implement #|.
|
|
* reader.c (read_word, read_block_comment)[READER]: Likewise.
|
|
* tests/read.test: Test it.
|
|
* NEWS: Mention it.
|
|
|
|
Support #; comment.
|
|
* module/mes/read-0.mes (read-word): Implement #;.
|
|
* reader.c (read_word)[READER]: Likewise.
|
|
* tests/read.test: Test it.
|
|
* NEWS: Mention it.
|
|
|
|
2016-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Minimal syntactic exception support.
|
|
* module/mes/catch.mes: New file.
|
|
* tests/catch.test: New file.
|
|
* GNUmakefile (TEST): Add it.
|
|
|
|
Minimal syntactic fluids support.
|
|
* module/mes/fluids.mes: New file.
|
|
* tests/fluids.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
Add string-prefix?, symbol-prefix, symbol-append.
|
|
* module/mes/scm.mes (string-prefix?, symbol-prefix, symbol-append):
|
|
New function,
|
|
|
|
Add list-head, list-tail.
|
|
* module/mes/scm (list-head, list-tail): New function.
|
|
|
|
core: Bugfix number-based-cells: allow displaying (current-module).
|
|
* display.c (display): Handle cell_symbol_quote as symbol.
|
|
|
|
2016-12-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Make guile switchable in GNUmakefile.
|
|
* GNUmakefile (GUILE): New variable. Update users.
|
|
* guile/mes-0.scm (mes?, guile-1.8?, guile-2?): New variables.
|
|
* module/mes/base.mes (guile?): Remove.
|
|
* module/mes/base-0.mes (effective-version, mes?, guile?, guile-1.8?,
|
|
guile-2?): New variables.
|
|
* tests/cwv.test: Support Guile 1.8.
|
|
|
|
2016-12-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Resurrect guile-mescc with guile-2.1.5.
|
|
* scripts/include.mes: Grep all files.
|
|
* GNUmakefile (mescc.cat): Update for mes-use-module; list all toplevel inputs.
|
|
* module/language/c/lexer.mes: Use (system base lalr).
|
|
* module/language/c/parser.mes: Likewise.
|
|
* module/language/c/compiler.mes: Likewise. Remove encoding on output port.
|
|
* scripts/mescc.mes: Remove BROKEN comment.
|
|
|
|
2016-12-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
optargs guile
|
|
|
|
2016-12-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Support Guile optargs.
|
|
* module/mes/optargs.upstream.mes: Import latest non-syntax-case
|
|
version from Guile.
|
|
* AUTHORS: Add it.
|
|
* module/mes/optargs.scm: New file.
|
|
* tests/optargs.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
* NEWS: Update.
|
|
|
|
Support => in cond.
|
|
* module/mes/base-0.mes (cond): Support =>.
|
|
* module/mes/rea-0.mes (cond): Update.
|
|
* NEWS: Update.
|
|
|
|
core: Support keywords.
|
|
* display.c (display): Handle keyword.
|
|
* mes.c (type_t): Add KEYWORD.
|
|
(eq_p): Handle it.
|
|
(make_keyword): New function.
|
|
* reader.c (lookup): Use it.
|
|
* type.c (keyword_p): New function.
|
|
* NEWS: Update.
|
|
|
|
Handle form-feed.
|
|
* module/mes/read-0.mes (eat-whitespace, read-word): Handle form-feed.
|
|
* reader.c (eat_whitespace, read_word): Likewise.
|
|
|
|
2016-12-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
core: Make symbols constants.
|
|
* mes.c (apply_env,eval_env): Rewrite using switch.
|
|
* build-aux/mes-snarf.scm (symbol->header): Define constants.
|
|
(symbol->source): Only update g_free and init cells.
|
|
|
|
2016-12-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Extend Scheme reader, reduce C reader dependency.
|
|
* mes.c (bload_env): Mark as internal.
|
|
(load_env): Likewise. Load Scheme reader from source. Remove dumping.
|
|
(dump): New function.
|
|
* (vm_begin_env): Allow for gc while read_input_file_env.
|
|
(mes_builtins): Add *dot*.
|
|
(read_input_file_env)[!READER]: Invoke read-input-file.
|
|
* module/mes/read-0.mes (read-env): New function.
|
|
(read-word): Support quasisyntax.
|
|
Remove usage of ' thoughout.
|
|
* module/mes/repl.mes (repl): Use read instead of read-env.
|
|
* guile/mes.scm (environment): Add *dot*.
|
|
* guile/reader.mes: Update.
|
|
* NEWS: Update.
|
|
|
|
Silence garbage collector.
|
|
* GNUmakefile: unexport MES_DEBUG.
|
|
|
|
Update README.
|
|
* README: Add a paragraph with current status.
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guix hash: 0nbdjvmsyarp4vfg3r9hhhnabv11z1b7isw4g09x3kjd0r1lx0mh
|
|
|
|
Release 0.3.
|
|
* configure (VERSION): Bump to 0.3.
|
|
* mes.c (main): Likewise.
|
|
* module/mes/repl.mes: Likewise.
|
|
|
|
Update Mes in Guile.
|
|
* guile/mes.scm: Update for guile-2.2.
|
|
* guile/mes.mes: Update from module/mes/mes-0.mes.
|
|
* guile/reader.mes: Update from module/mes/read-0.mes.
|
|
|
|
Resurrect Mes in Guile.
|
|
* guile/mes.mes: New file, from the archives.
|
|
* guile/mes.scm: Updates.
|
|
|
|
Avoid garbage returns.
|
|
* posix.c (set-current-input-port): Return current-input-port.
|
|
(force_output): Return scm_unspecified.
|
|
|
|
Update documentation.
|
|
* README: Add make targets.
|
|
* INSTALL: Add guix.
|
|
* HACKING: Add info on sc.
|
|
|
|
core: Resurrect QUASIQUOTE=0.
|
|
* mes.c (mes_builtins) [!QUASIQUOTE]: Do not add unquoters.
|
|
* module/mes/base-0.mes (push!, pop!, load, mes-use-module): Rewrite
|
|
without quasiquote.
|
|
* module/mes/quasiquote.mes (quasiquote): Rewrite using if, and.
|
|
* module/srfi/srfi-0 (cond-expand): Rewrite without quasiquote.
|
|
|
|
Add loadable modules.
|
|
* module/mes/base-0.mes (mes-use-module): Implement.
|
|
* module/mes: Update users.
|
|
* HACKING: Update.
|
|
* NEWS: Update.
|
|
* configure (main): Use shell expansion for prefix.
|
|
* make/install.make (install): Substitute prefix.
|
|
|
|
Use syntax rather than psyntax.
|
|
* module/language/c/parser.mes: Switch to syntax.
|
|
* module/language/paren.mes: Likewise
|
|
* scripts/mescc.mes: Likewise
|
|
* scripts/paren.mes: Likewise
|
|
* scripts/repl.mes: Likewise
|
|
* tests/let-syntax.test: Likewise
|
|
* tests/match.test: Likewise
|
|
* tests/record.test: Likewise
|
|
|
|
Resurrect syntax.mes.
|
|
* module/mes/syntax.mes: New file.
|
|
* AUTHORS: List it.
|
|
|
|
core: use FIXED_PRIMITIVES rather than environment cache.
|
|
* cache.c: Remove.
|
|
* define.c: Remove callers.
|
|
* mes.c: Likewise.
|
|
(vm_eval_env) [FIXED_PRIMITIVES]: Hardcode car, cdr, cons, null_p.
|
|
* GNUmakefile: Update.
|
|
|
|
core: Set max arena size.
|
|
* mes.c (MAX_ARENA_SIZE): New global.
|
|
(gc): Use it.
|
|
|
|
core: Make arena size configurable.
|
|
* mes.c (main): Read MES_ARENA.
|
|
* scripts/repl.mes: Set MES_ARENA to 5000000 if not already set.
|
|
Fixes repl startup.
|
|
|
|
core: Grow gc arena gradually.
|
|
* mes.c: (gc_up_arena): New function.
|
|
(gc): Use it when possible.
|
|
(gc_init_cells, gc_init_news): New function.
|
|
(mes_symbols): Use them.
|
|
|
|
core: gc bugfixes.
|
|
* mes.c (make_tmps): New function.
|
|
(make_symbols, gc): Use it.
|
|
(vm_call_with_values_env): New vm function.
|
|
(call-with-values): Call it.
|
|
(eval_env): Do not call eval_env inline.
|
|
* define.c (vm_define_env): Use r2 rather than local name.
|
|
(g_symbols): Rename from symbols.
|
|
|
|
core: Split-off cache, display, reader.
|
|
* mes.c: Remove cache, display, reader functions.
|
|
* cache.c: New file.
|
|
* display.c: New file.
|
|
* reader.c: New file.
|
|
|
|
Add reader in Scheme.
|
|
* module/mes/read-0.mes: New file.
|
|
* mes.c (char_to_integer, integer_to_char, null_p): Move to core.
|
|
(peek_byte, read_byte, unread_byte): New function.
|
|
(main): --dump, --load: New option.
|
|
* lib.c (char_to_integer, integer_to_char): Remove.
|
|
* NEWS: Update.
|
|
|
|
core: Cleanup cells.
|
|
* mes.c: Use accessors rather than g_cell[] access throughout.
|
|
|
|
core: Add function indirection.
|
|
* mes.c (functions): New array.
|
|
(scm_t): Change function pointer to index.
|
|
(make_cell): Handle function.
|
|
(call): Update for function change.
|
|
(display_): Likewise.
|
|
(make_function): New function.
|
|
* build-aux/mes-snarf.scm (function->source): Update declarations.
|
|
(function->environment): New function.
|
|
|
|
core: Number based cells.
|
|
* mes.c (scm_t): Change car, string, ref, cdr, macro, vector into g_cell index
|
|
[WAS]: scm_t pointer.
|
|
* define.c: Update.
|
|
* lib.c: Update.
|
|
* math.c: Update.
|
|
* posix.c: Update.
|
|
* quasiquote.c: Update.
|
|
* string.c: Update.
|
|
* type.c: Update.
|
|
* build-aux/mes-snarf.mes Update.
|
|
* tests/gc-4.test: New test.
|
|
* tests/gc-5.test: New test.
|
|
* tests/gc-6.test: New test.
|
|
|
|
core: Integrate garbage collector/jam scraper.
|
|
* mes.c (r0, r1, r2, r3, stack): New globals.
|
|
(gc_loop): Handle MACRO and SCM.
|
|
(gc_copy): Handle FUNCTION, allow for pre-allocated SCM and SYMBOL.
|
|
(assq): Flag any BROKEN_HEARTs.
|
|
(vm_call): New function. Enables moving C stack to GC stack.
|
|
(evlis_env, apply_env, eval_env, expand_macro_env, begin_env,
|
|
if_env): Use vm_call-indirection.
|
|
(call_lambda): New function.
|
|
(vm_apply_env): Rename from apply_env. Remove parameters, instead
|
|
use r1, r2 and r0.
|
|
(vm_evlis_env, vm_eval_env, vm_expand_macro_env, vm_begin_env,
|
|
vm_if_env): Likewise.
|
|
(acons): New function.
|
|
(mes_environment) [!MES_FULL, MES_MINI]: Add cpp switches to create minimally
|
|
filled environment, for debugging.
|
|
(main): Print free value at exit.
|
|
* define.c (define_env): Use vm_call-indirection.
|
|
(vm_define_env): Rename from define_env.
|
|
* quasiquote.c (eval_quasiquote): Use vm_call-indirection.
|
|
(vm_eval_quasiquote): Rename from eval_quasiquote.
|
|
* tests/gc-2.test: New test.
|
|
tests/gc-2a.test: New test.
|
|
tests/gc-3.test: New test.
|
|
|
|
Add sicp garbage example: tests/gc-1.test.
|
|
|
|
core: Make using GC in switchable, set to off; on dumps core.
|
|
|
|
core: Add garbage collector/jam collector experiment.
|
|
* mes.c (gc, gc_loop, gc_copy, gc_move, gc_relocate_car,
|
|
gc_relocate_cdr, gc_flip): New function.
|
|
* tests/gc-0.test: New file.
|
|
|
|
Add mes gc test setup.
|
|
* tests/gc.test: New file.
|
|
|
|
guix hash: 09axqivywpw0l9lm7pk1ncp6690vfv658z731z674ih73yqs5qma
|
|
|
|
Release 0.2.
|
|
* configure (VERSION): Bump to 0.2.
|
|
* mes.c (main): Likewise.
|
|
* module/mes/repl.mes: Likewise.
|
|
|
|
Update NEWS.
|
|
|
|
test: Run psyntax before record.
|
|
* GNUmakefile (TESTS): Run psyntax before record.
|
|
|
|
test: Add psyntax closure tests.
|
|
* tests/closure.test (closure 7, closure 8, closure 9): New test.
|
|
|
|
core: Show more info on apply error.
|
|
* mes.c (apply_env): Be more specific about what cannot be applied.
|
|
|
|
test: Add toplevel begin define test.
|
|
* tests/base.test (top begin define): New test.
|
|
|
|
core: Bugfix: report name of undefined variable.
|
|
* mes.c (assert_defined): Add variable as parmeter, print it. Update
|
|
callers.
|
|
|
|
core: Use switch in display_helper.
|
|
*mes (display_helper): Use switch.
|
|
|
|
core: Refactor eval.
|
|
* mes.c (eval_env): Rename from builtin_eval, Update callers. Use switch.
|
|
|
|
core: One SCM type for function.
|
|
* mes.c (function_t): New struct.
|
|
(type): One type for function.
|
|
(call): Refactor.
|
|
* build-aux/mes-snarf.mes: Use arity annotation. WAS: args. Update
|
|
annotations.
|
|
|
|
core: Cleanup macro expansion.
|
|
* mes.c (builtin_eval): Call expand_macro_env after handling primitives.
|
|
(expand_macro_env): Include syntax-case expansion, remove skipping
|
|
of primitives.
|
|
(sc_expand_env): Remove.
|
|
|
|
core: Factor-out assert_defined.
|
|
* mes.c (assert_defined): New function.
|
|
(set_env_x): Use it.
|
|
(builtin_eval): Use it.
|
|
|
|
Implement load.
|
|
* mes.c (symbol_primitive_load): New symbol.
|
|
(builtin_eval): Use it to implement primitive-load.
|
|
* module/mes/base-0.mes (push!, pop!): New macro.
|
|
(load): New macro.
|
|
* tests/data/load.scm: New file.
|
|
* tests/base.test (load): New test.
|
|
|
|
posix: Implement open-input-file.
|
|
* posix.c: New file.
|
|
* mes.c: Include posix.environment.h, posix.environment.i, posix.environment.c.
|
|
(read_input_file_env): Rename from read_file_env. Update
|
|
callers.
|
|
(load_env): Rename from load_file_env. Update callers.
|
|
* GNUmakefile (mes.o): Add posix.c, posix.environment.h,
|
|
posix.environment.i dependencies.
|
|
|
|
core: Support switching of input stream.
|
|
* mes.c (g_stdin): New global.
|
|
(getchar): New function, use g_stdin.
|
|
(ungetchar): Use g_stdin.
|
|
(main): Initialize g_stdin to stdin.
|
|
|
|
Update documentation wrt syntax-case.
|
|
* HACKING: Update wrt syntax-case.
|
|
* NEWS: Likewise.
|
|
* README: Likewise.
|
|
* guix.scm: Likewise.
|
|
|
|
Update AUTHORS.
|
|
* AUTHORS: Include information on lalr, match and psyntax.
|
|
|
|
Finalize psyntax integration.
|
|
* mes.c (sc_expand_env): Exclude primitives, expand native macros.
|
|
(symbol_expand_macro): New symbol.
|
|
* module/mes/psyntax-0.mes (properties-alist): New function.
|
|
* module/mes/psyntax-1.mes: Set expand-macro.
|
|
(define-syntax, syntax-rules, let-syntax): Remove macro.
|
|
* module/language/c/parser.mes: Use psyntax modules, remove syntax module.
|
|
* module/language/paren.mes: Likewise.
|
|
* scripts/repl.mes: Likewise.
|
|
* tests/match.test: Likewise.
|
|
* tests/record.test: Likewise.
|
|
* tests/psyntax.test (define-syntax swap!): Add test.
|
|
* module/mes/let-syntax.mes: Remove.
|
|
* module/mes/syntax.mes: Remove.
|
|
|
|
core: Quoted internals are symbols.
|
|
* mes.c (begin_env): Rename from begin. Update callers.
|
|
(scm_begin, scm_if, scm_define, scm_set_x): Rename from symbol_*.
|
|
(symbol_begin, symbol_define, symbol_if, scm_lambda, scm_set_x): New symbols.
|
|
(mes_environment): Add them to environment, SYMBOL->SCM.
|
|
* define.c (define_env): Rename from define. Update callers.
|
|
* build-aux/mes-snarf.scm: Shadow internals (SCM) by their symbol.
|
|
|
|
test: More values, call-with-values tests.
|
|
* tests/cwv.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
* tests/scm.test: Remove value and call-with-values tests.
|
|
|
|
psyntax: More tests.
|
|
* tests/psyntax.test: Add tests.
|
|
|
|
core: Fix quasisyntax reading.
|
|
* mes.c (readword): Avoid unspecified behaviour in comma list.
|
|
|
|
test: Add new macros.
|
|
* module/mes/test.mes (pass-if-equal, expect-fail): New macros.
|
|
|
|
repl: Add sc-expand meta command, include syntax-case.
|
|
* module/mes/repl.mes (,sc-expand): New meta command.
|
|
* scripts/repl.mes: Include psyntax-0, psyntax-1, psyntax. Not used as
|
|
basis for match yet.
|
|
|
|
Add syntax-case based syntax-rules.
|
|
* module/mes/psyntax-1.mes (syntax-rules): New syntax transformer,
|
|
based on syntax-case.
|
|
(define-syntax-rule): New macro.
|
|
(let-syntax): New macro, for syntax-case.
|
|
* tests/let-syntax.test: Switch to syntax-case.
|
|
* tests/psyntax.test: Add syntax-rules and syntax-rule test.
|
|
|
|
Bugfix include.mes: skip commented modules.
|
|
* scripts/include.mes: Make regexp more strict.
|
|
|
|
Initial psyntax integration.
|
|
* mes.c (sc_expand_env): New function.
|
|
(builtin_eval): Use it.
|
|
* module/mes/psyntax-0.mes: New file.
|
|
* module/mes/psyntax-1.mes: New file.
|
|
* tests/psyntax.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
psyntax: Add missing (interaction-environment) to eval.
|
|
* module/mes/psyntax.mes: Add (interaction-environment) to eval.
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Import psyntax from Guile-1.3a.
|
|
* module/mes/psyntax.mes: New file.
|
|
* module/mes/psyntax.ss: New file.
|
|
|
|
commit 230c435383087a1e6ad60d9c98d3ec75dd2c3e49
|
|
Author: Mikael Djurfeldt <djurfeldt@nada.kth.se>
|
|
Date: Tue Aug 19 01:28:50 1997 +0000
|
|
|
|
* syncase.scm: New file: Guile-adaption for syntax-case macros.
|
|
psyntax.pp, psyntax.ss: Syntax-case macros, portable version 2 by
|
|
R. Kent Dybvig, Oscar Waddell, Bob Hieb and Carl Bruggeman
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Exit upon error.
|
|
* module/mes/scm.mes (error): Add exit 1.
|
|
|
|
Mescc: avoid `if'.
|
|
* module/language/c/lexer.mes (keywords): Produce `If'.
|
|
* module/language/c/parser.mes (c-parser): Use `If.'
|
|
|
|
core: Add compile time switch for quasisyntax.
|
|
* mes.c [QUASISYNTAX]: New switch. Default off.
|
|
(builtin_eval) [QUASISYNTAX]: Handle syntax, unsyntax, quasisyntax.
|
|
* quasiquote.c (syntax, unsyntax, unsyntax_splicing, eval_quasisyntax,
|
|
add_unsyntaxers) [QUASISYNTAX]: Available only.
|
|
|
|
More error handling on apply_env.
|
|
* mes.c (apply_env): Assert if applying *unspecified*.
|
|
|
|
Bugfix assq_ref_cache for running without environment cache.
|
|
* mes.c (assq_ref_cache) [!ENV_CACHE]: Return *undefined* if nothing
|
|
found.
|
|
|
|
Error handling on failing set!.
|
|
* mes.c (set_env_x): Produce error message [WAS: dump core].
|
|
|
|
Simplify toplevel read.
|
|
* mes.c (read_file_env): Rename from read_file.
|
|
(load_file_env): New function.
|
|
(main): Use it.
|
|
|
|
boot: fix ignored.
|
|
* module/mes/loop-0.mes: Wrap read-file in begin.
|
|
* module/mes/mes-0.mes: Remove ignored.
|
|
|
|
Implement apply with multiple arguments.
|
|
* module/mes/base-0.mes (apply): Handle multiple arguments.
|
|
* tests/base.test: (apply, apply 1, apply 2): New test.
|
|
|
|
Fix values.
|
|
* mes.c (call): Respect any other non-value arguments.
|
|
* tests/scm.test (values, values 2, values 3, call-with-values): New test.
|
|
|
|
Define garbage collector/jam collector primitives.
|
|
* mes.c (make_cell): New primitive alongside make_vector for allocation.
|
|
(cons, make_char, make_macro, make_number, make_ref,
|
|
internal_make_symbol, make_vector): Use it.
|
|
|
|
Implement strings and symbols as list of characters [WAS: c-string].
|
|
* mes.c (scm_t): Add string field.
|
|
(make_string, internal_lookup_symbol, internal_make_symbol,
|
|
make_symbol, lookup, readword): Take scm*. Update callers.
|
|
(display_helper): Support string field.
|
|
(append_char): New function.
|
|
(readstring): Use it. Produce scm*.
|
|
(cstring_to_list): New function.
|
|
(add_environment, internal_make_symbol): Use it.
|
|
(list_of_char_equal_p): New function.
|
|
(internal_lookup_symbol): Use it.
|
|
* lib.c (list_ref): New function.
|
|
* string.c (string_ref): Use it.
|
|
(string, string_append, string_length, substring, number_to_string,
|
|
string_to_symbol, symbol_to_string): Update to list-of-characters
|
|
implementation.
|
|
|
|
Environment cache bugfix for define.
|
|
* define.c (define): Invalidate cache. Fixes vector test.
|
|
* GNUmakefile (mes-check, guile-check): Use set -e. Fixes skipping over errors.
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Introduce reference type, use vectors of SCM.
|
|
* mes.c (type): Add REF.
|
|
(scm_t): Add ref, change vector to *scm_t. Update users.
|
|
(alloc): New function.
|
|
(cons, make_char, make_macro, make_number, make_string,
|
|
internal_make_symbol, make_vector): Use it.
|
|
(make_ref): New function.
|
|
(vector_entry): New function.
|
|
(make_vector, list_to_vector, vector_set_x): Use it.
|
|
(vector_ref): Dereference REF entry.
|
|
(display_helper): Handle REF.
|
|
* lib.c (vector_to_list): Handle REF.
|
|
* type.c (ref_p): New function.
|
|
* tests/vector.test (vector list): New test.
|
|
|
|
Bugfix vector-ref.
|
|
|
|
* mes.c (vector-ref): Make copies of simple values. Fixes lalr.
|
|
* tests/vector.test (vector-set! 3): New test.
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Guile gc experiment: remove global scan variable.
|
|
|
|
Guile gc experiment: add garbage collection.
|
|
|
|
Guile gc experiment: add lists and display.
|
|
* guile/gc.scm (gc-nil, gc-null?, gc-list, gc-display, make-symbol):
|
|
New function.
|
|
|
|
Guile gc experiment: add pairs.
|
|
* guile/gc.scm (cell-type, cell-index, gc-cons, gc-car, gc-cdr): New
|
|
function.
|
|
|
|
Guile gc experiment.
|
|
guile/gc.scm: New file.
|
|
|
|
Revert "Speedup boot eval/apply."
|
|
This reverts commit 6326b3103156fd79cd7bebbb351194626cc8a64b.
|
|
|
|
Speedup boot eval/apply.
|
|
* module/mes/mes-0.scm (apply-env, evlis, eval-expand,
|
|
eval-quasiquote): use IF iso COND: factor 3.
|
|
(apply-env): Use lambda iso let: another 30%.
|
|
|
|
guix hash: 115jycdz8i1r5sj2fsjqcrh456mayxzaykb8cxxxc3wxfkj8nagf
|
|
|
|
2016-11-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Release 0.1.
|
|
* configure (VERSION): Bump to 0.1.
|
|
* mes.c (main): Likewise.
|
|
* module/mes/repl.mes: Likewise.
|
|
|
|
Documentation update.
|
|
* HACKING: Target is R6RS-like, at least having syntax-case.
|
|
* README: Likewise.
|
|
* guix.scm: Likewise.
|
|
|
|
2016-10-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Avoid gratuitous consing with begin and quasiquote.
|
|
* mes.c (apply_env, main): Call begin rather than eval with cons'ed
|
|
symbol begin.
|
|
* module/mes/mes-0.mes (apply-env): Likewise.
|
|
* quasiquote.c (add_unquoters): cons global unquoters rather than
|
|
creating it fresh.
|
|
* module/mes/mes-0.mes (add-unquoters): Likewise.
|
|
|
|
2016-10-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove dead code.
|
|
* mes.c (mes_environment): Remove dead code.
|
|
|
|
Move other post-boot and derived functions to lib.c.
|
|
* mes.c (c*r, length, last_pair, builtin_list, vector_to_list,
|
|
integer_to_char, char_to_integer, builtin_exit): Move to lib.c.
|
|
* lib.c: New file.
|
|
* GNUmakefile (mes.o): Depend on lib snarf output.
|
|
|
|
Move strings to string.c.
|
|
* mes.c (string, string_append, list_to_string, string_length,
|
|
string_ref, substring, number_to_string, string_to_symbol,
|
|
symbol_to_string): Move to string.c
|
|
* string.c: New file.
|
|
* GNUmakefile (mes.o): Depend on string snarf output.
|
|
|
|
Move arithmetic functions to math.c.
|
|
* mes.c (greater_p, less_p, is_p, minus, divide, modulo, multiply,
|
|
logior): Move to math.c.
|
|
* math.c: New file.
|
|
* GNUmakefile (mes.o): Depend on math snarf output.
|
|
|
|
Move define, define-macro to define.c.
|
|
* mes.c (define, define-macro): Move to define.c
|
|
* define.c: New file.
|
|
* GNUmakefile (mes.o): Depend on define snarf output.
|
|
|
|
Move quasiquote to quasiquote.c.
|
|
* mes.c (unquote, unquote_splicing, syntax, unsyntax,
|
|
unsyntax_splicing, eval_quasiquote, eval_quasisyntax, add_unquoters,
|
|
add_unsyntaxers): Move to quasiquote.c
|
|
* quasiquote.c: New file.
|
|
* GNUmakefile (mes.o): Depend on quasiquote snarf output.
|
|
|
|
Move optional type predicates to type.c.
|
|
* mes.c (char_p, macro_p, number_p, pair_p, string_p, symbol_p,
|
|
vector_p, builtin_p, boolean_p): Move to type.c
|
|
* type.c: New file.
|
|
* GNUmakefile (mes.o): Depend on type snarf output.
|
|
* module/mes/loop-0.mes (cond, map, let, or, and not, evlis-env,
|
|
apply-env, eval-expand, uquote, add-unquoters, eval,
|
|
expand-macro-env, eval-begin-env, eval-if-env, sexp:define,
|
|
env:define, env:macro): Move to mes-0.mes.
|
|
* module/mes/mes-0.mes: New file.
|
|
* module/mes/type-0.mes: New file.
|
|
* scripts/include.mes: If BOOT, also include mes-0.mes. If TYPE0,
|
|
also include type-0.mes.
|
|
|
|
2016-12-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Update NEWS.
|
|
* NEWS: Note specials fix and booting with smaller core.
|
|
|
|
2016-10-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Generate C header and includes using snarfing.
|
|
* mes.c: Move specific renames and n-args to alist annotation.
|
|
* build-aux/mes-snarf.scm: New file.
|
|
* GNUmakefile (mes.environment.h): Use it.
|
|
(mes.h): Remove.
|
|
(clean): Update.
|
|
(mes.o): New dependency rule.
|
|
* .gitignore: Update.
|
|
|
|
2016-10-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "Flip sign of cached symbols: only search cache if symbol is cached."
|
|
This reverts commit cef058be0d6ef5322f74e644bbcd96f1725c6327.
|
|
|
|
2016-10-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Flip sign of cached symbols: only search cache if symbol is cached.
|
|
* mes.c (cache_save): Flip sign when caching and invalidating.
|
|
(cache_invalidate): Flip sign when invalidating.
|
|
|
|
2016-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
named let-fu FIXME
|
|
|
|
2016-10-21 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
boot: fix builtin? tests.
|
|
* tests/scm.test: Test primitives, not eval.
|
|
|
|
Environment cache heuristicts.
|
|
* mes.c (ENV_HEAD): New define.
|
|
(assq_ref_cache): Use it.
|
|
|
|
boot: support apply.
|
|
* module/mes/loop-0.mes (eval-env): Add clause for apply-env.
|
|
|
|
boot: Remove label support from Scheme.
|
|
* module/mes/loop-0.scm (apply-env): Remove label clause.
|
|
|
|
boot: vector support.
|
|
* mes.c (make_vector): Change to scm interface.
|
|
(temp_number): New global.
|
|
(list_to_vector): Use it.
|
|
* module/mes/scm.mes (c:make-vector): New function.
|
|
* tests/scm.test: Remove vector tests.
|
|
* tests/vector.test: New file.
|
|
* GNUmakefile (TESTS): Add it.
|
|
|
|
Avoid let* in scm.mes.
|
|
* module/mes/scm.mes (case, max, min): Avoid let*.
|
|
|
|
2016-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
loop-0: define and, let and cache-invalidate-range.
|
|
|
|
boot: support quasiquote in eval.
|
|
* module/mes/loop-0.mes (eval-env): Add quasiquote support.
|
|
|
|
2016-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove evcon from loop-0.
|
|
* module/mes/loop-0.mes (loop-0): Handle define-macro.
|
|
(cond): New macro.
|
|
(eval-env-expand): Remove 'cond clause.
|
|
(evcon): Remove.
|
|
|
|
2016-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Switch fat-c/boot using environment variable BOOT.
|
|
* GNUmakefile: check for BOOT, set CFLAGS.
|
|
* mes.c: Remove hardcoded BOOT define.
|
|
* scripts/include.mes: include loop-0 when BOOT is set.
|
|
|
|
2016-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Implement eval/apply in Scheme.
|
|
* module/mes/loop-0.mes: New file.
|
|
* module/mes/mes.mes: Remove
|
|
|
|
2016-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Reduce eval/apply in core, extend in Scheme.
|
|
* mes.c (eval_env_)[BOOT]: Rename from eval_env. Remove define, defin-macro.
|
|
(eval_env): New function.
|
|
(make_macro): Swap parameter ordering.
|
|
(apply_env)[BOOT]: Support label.
|
|
|
|
2016-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Avoid adding top of environment to cache.
|
|
* mes.c (assq_ref_cache): Only consider caching symbols deeper than
|
|
4*CACHE_SIZE depth. 50% speedup.
|
|
|
|
Implement environment cache.
|
|
* mes.c (cache_save, cache_lookup, cache_invalidate,
|
|
cache_invalidate_range): Implement cache for environment.
|
|
(assq_ref_cache): New function, perform cached lookups.
|
|
(builtin_eval,lookup_macro): Use it.
|
|
(set_cdr_x): Invalidate cache.
|
|
(set_x): Likewise.
|
|
(apply_env): Likewise.
|
|
|
|
2016-10-20 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Introduce SCM type for special symbols.
|
|
* GNUmakefile (mes.h): Also export SCM to symbols.i
|
|
* mes.c: Introduce SCM type for special symbols.
|
|
(builtin_eval): Rename from eval_env. Update callers.
|
|
* module/mes/base-0.mes (eval): Remove.
|
|
* module/mes/repl.mes (repl): Use eval.
|
|
|
|
Remove static primitives hack.
|
|
* mes.c (internal_primitive_p, internal_p, lookup_primitive,
|
|
mes_primitives): Remove.
|
|
|
|
2016-10-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Refactor primitives lookup.
|
|
* mes.c (lookup_primitive_): Rename from internal_lookup_primitive,
|
|
use scm-compatible signature.
|
|
(lookup): Update caller.
|
|
(eval_env): Check for builtins first.
|
|
|
|
2016-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove unused symbol.
|
|
* mes.c (symbol_cond): Remove.
|
|
|
|
Add report to closure test.
|
|
* tests/closure.test: Add report.
|
|
|
|
Remove dead code from let.mes.
|
|
* module/mes/let.mes (simple-let, named-let, let): Remove dead code.
|
|
|
|
Avoid cons* in base.
|
|
* module/mes/base-0.mes (cond, simple-let, let): Rewrite without cons*.
|
|
* module/mes/base.mes (or): Likewise.
|
|
|
|
Differentiate apply asserts.
|
|
* mes.c (apply_env): Split bool assert into bool, number and string.
|
|
|
|
Add display tag for builtin procedures.
|
|
* mes.c (display_helper): Show builtin functions as #<procedure ...>.
|
|
|
|
2016-10-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove macro expansion from apply.
|
|
mes.c (apply_env): Remove macro expansion.
|
|
|
|
2016-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add paredit workaround in scripts.
|
|
* scripts/elf.mes: Add paredit parsing comment.
|
|
* scripts/repl.mes: Likewise.
|
|
|
|
make tests standalone executable.
|
|
* tests/closure.test: Add shebang and boot-0 include.
|
|
* tests/let-syntax.test: Likewise.
|
|
* tests/let.test: Likewise.
|
|
* tests/match.test: Likewise.
|
|
* tests/quasiquote.test: Likewise.
|
|
* tests/record.test: Likewise.
|
|
* tests/scm.test: Likewise.
|
|
* GNUmakefile (mes-check): Run tests by exec'ing.
|
|
|
|
make clean: remove symbols.i.
|
|
* GNUmakefile (clean): remove symbols.i.
|
|
|
|
Update documentation.
|
|
* HACKING: Describe (mes-use-modules).
|
|
* NEWS: Update.
|
|
|
|
Add --help, --version.
|
|
* mes.c (main): Handle --help, --version.
|
|
* scripts/include.mes: Handle --help.
|
|
* scripts/elf.mes: Pass any arguments on to mes.
|
|
* scripts/mescc.mes: Likewise.
|
|
* scripts/paren.mes: Likewise.
|
|
* scripts/repl.mes: Likewise.
|
|
|
|
guix hash: 0g6lcms2hv1i8hdkfh2xz0g7jmsayisr7bcwkp47blkbapqpzpsf
|
|
|
|
Update guix hash.
|
|
* make/install.make (update-hash): New target.
|
|
* guix.scm: Prepare for update.
|
|
|
|
2016-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add installation instructions.
|
|
* INSTALL: New file.
|
|
|
|
Add guix.scm package recipe.
|
|
* guix.scm: New file.
|
|
|
|
2016-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Prepare for 0.1 release: update READMEs.
|
|
* NEWS: New file.
|
|
* AUTHORS: Add info about files taken from Scheme48.
|
|
* HACKING: Update with info from TODO.
|
|
* TODO: Remove.
|
|
|
|
2016-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Prepare for 0.1 release: make install.
|
|
* make/install.make (install): Install documentation.
|
|
|
|
Prepare for 0.1 release: installable scripts.
|
|
* scripts/mes: New symlink.
|
|
* scripts/elf.mes: Use it.
|
|
* scripts/mescc.mes: Likewise, read all mes modules with include.mes.
|
|
* scripts/paren.mes: Likewise.
|
|
* scripts/repl.mes: Likewise.
|
|
|
|
2016-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Prepare for 0.1 release: gnu-build-system.
|
|
* configure: New file.
|
|
* make/install.make: New file.
|
|
* .gitignore: Ignore generated files.
|
|
* build-aux/gitlog-to-changelog: New file.
|
|
|
|
2016-10-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Prepare for 0.1 release: new directory structure.
|
|
* scripts/elf.mes: New file.
|
|
* scripts/include.mes: New file.
|
|
* scripts/mescc.mes: New file.
|
|
* scripts/paren.mes: New file.
|
|
* scripts/repl.mes: New file.
|
|
* doc/examples/main.c: Move from ./main.c.
|
|
* module/mes/base-0.mes: Move from ./base0.mes.
|
|
* module/mes/base.mes: Move from top.
|
|
* module/mes/elf.mes: Likewise.
|
|
* module/mes/let-syntax.mes: Likewise.
|
|
* module/mes/let.mes: Likewise.
|
|
* module/mes/mes.mes: Likewise.
|
|
* module/mes/quasiquote.mes: Likewise.
|
|
* module/mes/repl.mes: Likewise.
|
|
* module/mes/scm.mes: Likewise.
|
|
* module/mes/syntax.mes: Likewise.
|
|
* module/mes/lalr-0.mes: Move from lib/lalr.mes.
|
|
* module/mes/lalr.mes: Move from lib/lalr.scm.
|
|
* module/mes/match.mes: Move from lib/match.scm.
|
|
* module/mes/record-0.mes: Move from lib/record.mes.
|
|
* module/mes/record.mes: Move from lib/record.scm.
|
|
* module/mes/test.mes: Move flom lib/.
|
|
* module/rnrs/bytevectors.mes: Move from lib/rnrs.
|
|
* module/srfi/srfi-0.mes: Move from lib/srfi.
|
|
* module/srfi/srfi-1.mes: Likewise.
|
|
* module/srfi/srfi-9.mes: Likewise.
|
|
* module/language/c/lexer.mes: Move from ./c-lexer.scm.
|
|
* module/language/c/parser.mes: Move from ./mescc.scm.
|
|
* module/language/c/compiler.mes: New file, split from parser.mes.
|
|
* module/language/paren.mes: Move from ./paren.scm.
|
|
* module/mes/libc-i386.mes: New file, split from elf.mes.
|
|
* tests/base.test: Move from test/.
|
|
* tests/closure.test: Likewise.
|
|
* tests/let-syntax.test: Likewise.
|
|
* tests/let.test: Likewise.
|
|
* tests/match.test: Likewise.
|
|
* tests/quasiquote.test: Likewise.
|
|
* tests/record.test: Likewise.
|
|
* tests/scm.test: Likewise.
|
|
* hello.S: Remove.
|
|
* hello.c: Remove.
|
|
* loop2.mes: Remove.
|
|
* test/foo.test: Remove.
|
|
|
|
2016-10-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Remove evcon (Sorry John).
|
|
* mes.c (evcon): Remove, remove callers.
|
|
* base0-if.mes (cond): Rename from disabled-cond.
|
|
|
|
Support quasisyntax.
|
|
* mes.c (eval_quasisyntax, add_unsyntaxers): New functions.
|
|
(eval_env): Use them.
|
|
|
|
2016-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add REPL.
|
|
* mes.c (expand_macro_env, force_output): New function. Use STRING_MAX
|
|
for string buffers throughout. (eval_env, eval_begin_env): Rename
|
|
from eval, eval_begin. Update callers.
|
|
* repl.mes: New file.
|
|
* base.mes (list?): Move from scm.mes.
|
|
* scm.mes (eval, apply, primitive-eval, expand-macro): New function.
|
|
* GNUmakefile: New repl target.
|
|
|
|
2016-10-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Avoid 90% of cdr'ing environment, assuming static primitives.
|
|
* mes.c (internal_primitive_p)[STATIC_PRIMITIVES: New function.
|
|
(lookup_macro)[STATIC_PRIMITIVES]: Use it.
|
|
(internal_lookup_primitive)[STATIC_PRIMITIVES]: New function.
|
|
(lookup)[STATIC_PRIMITIVES]: Use it.
|
|
(mes_primitives)[STATIC_PRIMITIVES]: New function.
|
|
(main): Use it.
|
|
* base0-if.mes (disabled-cond): Rename from xcond.
|
|
* GNUmakefile: Add commented profiling CFLAGS.
|
|
|
|
2016-10-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Do not use quasiquote in base0.
|
|
* base0.scm (defined?): Rewrite without quasiquote.
|
|
|
|
2016-10-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add procedure? to base.
|
|
* base.mes (procedure?): Move from scm.mes.
|
|
|
|
2016-10-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
speedup: use ->car etc.
|
|
|
|
2016-10-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Avoid out-of-spec strncat usage.
|
|
mes.c (readword): Use character assignment instead of strncat. Fixes
|
|
Valgrind nit.
|
|
|
|
Discern between primitive atoms and symbols.
|
|
* mes.c (internal_symbol_p): New function.
|
|
(eval): Use it.
|
|
|
|
2016-10-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
resurrect mescc.
|
|
|
|
cleanup and doc update.
|
|
|
|
syntax.mes: silence syntax error.
|
|
|
|
test/scm.test: update.
|
|
|
|
2016-10-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
test/match.test: pass.
|
|
|
|
2016-10-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
lib/match: ugly hygiene hack. FIXME.
|
|
|
|
let-syntax.mes: implement.
|
|
|
|
2016-10-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
speedup: use ->car etc.
|
|
|
|
use IF as primitive, drop using cond/evcon only option.
|
|
|
|
c++ type-safety.
|
|
|
|
assq: use while instead of recursion.
|
|
|
|
mes.c: uniquify symbols.
|
|
|
|
mes-check: separate target.
|
|
|
|
2016-09-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Updates to README, TODO.
|
|
|
|
2016-08-14 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc.scm: compile simple, well-behaved for-loop.
|
|
|
|
elf.mes: for loop.
|
|
|
|
mescc.scm: print two strings.
|
|
|
|
2016-08-13 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc.scm: first a.out produced from main.c.
|
|
|
|
lib/match.scm: import.
|
|
|
|
lib/srfi/srfi-1.scm: add append-map, filter, find.
|
|
|
|
elf.mes: make-elf.
|
|
|
|
elf.mes: use elf32-* remove set!.
|
|
|
|
elf.mes: remove text-free, softcode data-offset.
|
|
|
|
elf.mes: put marker in note section.
|
|
|
|
Revert "elf.mes: drop .note section."
|
|
This reverts commit b2b5b73b91308407ec82a5ba658aca025512c542.
|
|
|
|
elf.mes: drop .note section.
|
|
|
|
elf.mes: softcode more.
|
|
|
|
mes.c: implement string->list.
|
|
|
|
elf.mes: compute text-free, text-offset.
|
|
|
|
lib/rnrs/bytevectors.scm: minimal rnrs bytevectors.
|
|
|
|
elf.mes: separate-out text, text-free and data sections.
|
|
|
|
2016-08-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
resurrect guile-mescc, use write-int and (current-error-port) iso `2'.
|
|
|
|
2016-09-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Revert "mes.c: use single malloc with arena."
|
|
This reverts commit 38c364faeff430a5ee28f402d24b073f6bf9a548.
|
|
|
|
2016-08-12 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes.c: use single malloc with arena.
|
|
|
|
elf.mes: a.out runs.
|
|
|
|
elf.mes: error-free header, no program yet.
|
|
|
|
elf.mes: readelf -h a.out shows some info.
|
|
|
|
mescc/elf.mes: write minimal ELF header.
|
|
|
|
mes.c: display, newline: take optional port; add write-char, read hex #xXX.
|
|
|
|
remove debug output to stdout.
|
|
|
|
2016-07-27 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
syntax-if.mes: TODO.
|
|
|
|
Use IF iso COND as primitive; keep COND primitive as option.
|
|
|
|
let.scm: cleanups.
|
|
|
|
2016-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
macro hax0rz
|
|
|
|
Revert "lib/lalr-debug.scm"
|
|
This reverts commit 084d1bea33d45f0653cdc6bef44dc295faef6b72.
|
|
|
|
lib/lalr-debug.scm
|
|
|
|
quasiquote.mes: disable, too slow.
|
|
|
|
2016-07-25 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
split-up test suite, implement quasiquote in scheme.
|
|
|
|
2016-07-26 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
hello.c, hello.S: hello world target for C compiler.
|
|
|
|
2016-07-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mescc: mes parses simplest main with lalr.
|
|
|
|
scm.mes: add port-location dummies.
|
|
|
|
mes.c: add set-cdr, substring, string-ref.
|
|
|
|
mes.c: support whitespace characters.
|
|
|
|
mescc.scm: parse simple main.c.
|
|
|
|
TODO/HACKING: update: lalr/paren.scm runs.
|
|
|
|
mes.c: when reading `EOF', defer read control to program.
|
|
|
|
mes.c, scm.c: add read-char, peek-char, char=?, char-alphabetic?.
|
|
|
|
scm.mes: add list-ref.
|
|
|
|
mes.c: add logior.
|
|
|
|
scm.mes: add expt.
|
|
|
|
scm.mes: remainder.
|
|
|
|
scm.mes: implement do.
|
|
|
|
scm.mes: add max, min.
|
|
|
|
<=, >=: take multiple arguments.
|
|
|
|
mes.c: add quotient and modulo.
|
|
|
|
mes.c: less_p, greater_p, is_p: take multiple arguments.
|
|
|
|
mes.c: display_helper fix for vector.
|
|
|
|
scm.mes: make-vector: fix fill.
|
|
|
|
paren.scm revert
|
|
|
|
mes.c: fix apply.
|
|
|
|
fix for-each.
|
|
|
|
lalr paren test
|
|
|
|
2016-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
ADD .gitignore.
|
|
|
|
lib/lalr.scm
|
|
|
|
2016-07-24 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes.c: grok #\tab.
|
|
|
|
2016-07-23 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes.c: add syntax, quasisyntax to reader....
|
|
|
|
srfi-9 records!
|
|
|
|
mes.c: refactor begin and closures. Fixes bugs/top.mes.
|
|
|
|
bugs/top.mes: document toplevel begin bug; probable reason for record/syntax-case failure.
|
|
|
|
check: resurrect guile-check.
|
|
|
|
mes.c: remove hacks
|
|
|
|
trying to get records up....WIP
|
|
|
|
srfi-9
|
|
|
|
lib/record.scm: import.
|
|
|
|
lib/srfi/srfi-0.scm: add.
|
|
|
|
mes.c: barf on unknown symbols.
|
|
|
|
syntax.mes: update from scheme48-1.1.
|
|
|
|
Add header to syntax.mes MERGE
|
|
|
|
scm.mes: add last-pair.
|
|
|
|
test.mes: enable vector tests for mes.
|
|
|
|
2016-07-22 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
scm.mes: add assq-set!, assq-ref.
|
|
|
|
Update documentation, remove old bug files, move bugs into bugs/.
|
|
|
|
mes.c: add new macro type, junk *macro* hack.
|
|
|
|
mes.c: store actual environment with closures.
|
|
|
|
fix closure 5
|
|
|
|
2016-07-19 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes.c: store enviroment depth in closures. Fixes c1, c3 and more.
|
|
|
|
mes.c: move begin_env into eval, decruft.
|
|
|
|
2016-07-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
fix some tests.
|
|
|
|
test: hack: show expected/actual
|
|
|
|
remove booting into mes (would need VM), boot.mes; rewrite test.mes.
|
|
|
|
c0.mes, c1.mes: update.
|
|
|
|
2016-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
unquoting fix.
|
|
|
|
no closuring in macro body...
|
|
|
|
add equal?, member, for-each.
|
|
|
|
closures: mostly supported...
|
|
|
|
syntax.mes: more debugging.
|
|
|
|
mes.c: single-statement body lambda closures.
|
|
|
|
c0.mes: simpler bug.
|
|
|
|
TODO: update
|
|
|
|
closure.mes: document mes closure bug.
|
|
|
|
mes.c: add boolean_p.
|
|
|
|
mes.c: fix symbol? for nil.
|
|
|
|
test.mes: disable call-with-values test, prints too much debugging.
|
|
|
|
mes.c: evcon: support clause without cdr. Fixes or.
|
|
|
|
add simple <=, >= and list?.
|
|
|
|
scm.mes: and: bugfix, return #f for (and #f 1 2 3).
|
|
|
|
syntax.mes: use cond iso if. rode harink
|
|
|
|
hax0rz..ugh + next name? test in macro.mes.
|
|
|
|
mes.c: another macro clue-bat in apply. now macro.mes equals guile -s macro.mes.
|
|
|
|
mes.c: begin_env: bugfix, keep going in body after set!
|
|
|
|
mes.c: bugfix for eval_quasiquote: stay in quasiquote mode after next quote.
|
|
|
|
2016-07-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
guile runs macro-based mes:define-syntax, mes runs but yields *undefined*.
|
|
|
|
support define-macro inside eval (i.e., inside define-macro)
|
|
|
|
mes.c: move define, define-macro into begin_env, remove loop. fixes inner defines.
|
|
|
|
define-syntax...
|
|
|
|
2016-10-18 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
syntax...
|
|
|
|
2016-07-16 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
implement variable-argument and, or.
|
|
|
|
implement let loop.
|
|
|
|
cleanup let, let*, letrec
|
|
|
|
implement unquote-splicing, cleanup some macros
|
|
|
|
update macro, fix andmap.
|
|
|
|
add scheme apply, rename apply-> apply_env.
|
|
|
|
syntax.mes: experiments...
|
|
|
|
support cond without match, define-macro x (lambda)).
|
|
|
|
2016-07-11 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
*unspecified* harder.
|
|
|
|
add number->string, string->symbol, symbol->string.
|
|
|
|
add procedure?
|
|
|
|
add variable argument append.
|
|
|
|
+,-,*,/: take n arguments.
|
|
|
|
add call-with-values, values.
|
|
|
|
add memq/memv.
|
|
|
|
rename assoc to assq.
|
|
|
|
add vectors.
|
|
|
|
2016-07-10 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
add length.
|
|
|
|
remove disabled code.
|
|
|
|
add chars.
|
|
|
|
add strings.
|
|
|
|
TODO: new file.
|
|
|
|
add begin.
|
|
|
|
add letrec.
|
|
|
|
fix for set! inside lambda.
|
|
|
|
add not, if.
|
|
|
|
add +,/,*,=.
|
|
|
|
loop2.mes: separate from scm.mes.
|
|
|
|
ignore
|
|
|
|
add set!.
|
|
|
|
2016-07-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
snarf scm functions and environment.
|
|
|
|
eval: disarm lambda.
|
|
|
|
map: support two lists.
|
|
|
|
add simple map.
|
|
|
|
fix evlis argumuent execution order.
|
|
|
|
add let*.
|
|
|
|
reader: handle whitespace and comments inside lists.
|
|
|
|
move mes language additions to scm.mes.
|
|
|
|
hack to print (current-module).
|
|
|
|
mes.c, mes.mes: support quasiquote, unquote.
|
|
|
|
boot.mes: generate from mes.mes, scm.mes, test.mes.
|
|
|
|
2016-07-08 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
mes.c: support `.' and add let.
|
|
|
|
boot.mes: support macros, add and, or.
|
|
|
|
2016-05-29 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
boot.mes: boostrap into mes.
|
|
|
|
2016-07-09 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Leave pure LISP.
|
|
* GNUmakefile: New file.
|
|
* mes.c: Lots of work.
|
|
* mes.mes: New file, split-off from mes.scm.
|
|
(builtin, number): New function.
|
|
(apply): Use them.
|
|
* mes.test: New file.
|
|
* scm.mes: New file, split-off from mes.scm.
|
|
|
|
Add LISP interpreter in C.
|
|
mes.c: New file.
|
|
|
|
2016-05-28 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Add Guile version of John McCarthy's Maxwell Equations of Software.
|
|
* .gitignore: New file.
|
|
* AUTHORS: Idem.
|
|
* COPYING: Idem.
|
|
* README: Idem.
|
|
* mes.scm: Idem.
|
|
|
|
2016-05-15 Jan Nieuwenhuizen <janneke@gnu.org>
|
|
|
|
Initial.
|
|
-*- org -*-
|
|
|
|
#+TITLE: ChangeLog
|
|
|
|
Copyright © 2016,2017,2018 Jan (janneke) 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.
|
|
|
|
Normally a ChangeLog is generated at "make dist" time and available in
|
|
source tarballs.
|