Janneke Nieuwenhuizen
73acbc37b1
m2: Add new style x86_64 defines to support M2-Planet 1.11.0.
...
* lib/m2/x86_64/x86_64_defs.M1: Add new M1 defines.
2023-11-05 09:36:26 +01:00
Jan (janneke) Nieuwenhuizen
189ea8eb9d
x86_64: build: Cater for M2-Planet.
...
* build-aux/cflags.sh: Set cc_cpu.
* build-aux/config.sh.in (cc_cpu): Export.
* build-aux/export.make (cc_cpu): Likewise.
* kaem.arm (cc_cpu): New variable.
* kaem.x86 (cc_cpu): New variable.
* kaem.run (cc_cpu): New variable. Define __<cc_cpu>__.
* scaffold/argv.kaem (cc_cpu): Likewise. Define __linux__
* scaffold/global-array.kaem (cc_cpu): Likewise.
* scaffold/hello.kaem (cc_cpu): Likewise.
* scaffold/local-array.kaem (cc_cpu): Likewise.
* scaffold/local-static-array.kaem (cc_cpu): Likewise.
* scaffold/main.kaem (cc_cpu): Likewise.
* scaffold/read.kaem (cc_cpu): Likewise.
* kaem.x86_64: New file.
lib/m2/x86_64/ELF-x86_64.hex2,
lib/m2/x86_64/x86_64_defs.M1: New files, imported from M2Libc.
lib/linux/x86_64-mes-m2/_exit.c,
lib/linux/x86_64-mes-m2/_write.c,
lib/linux/x86_64-mes-m2/crt1.M1,
lib/linux/x86_64-mes-m2/crt1.c,
lib/linux/x86_64-mes-m2/syscall.c: New files, adapted for M2-Planet
calling convention from ...
* lib/linux/x86_64-mes-mescc: ... here.
* build-aux/build.sh.in: Also allow kaem build for x86_64.
* include/mes/lib-mini.h[__M2__]: Define as sizeof (void*).
* include/mes/mes.h[__M2__](M2_CELL_SIZE): Define as sizeof (struct scm).
* lib/x86_64-mes/x86_64.M1 (add____$i8,%rbp, mov____%rdi,%rbp): New
defines.
* src/posix.c (TIME_UNITS_PER_SECOND): Cater for 64bit M2-Planet.
2023-11-05 09:36:26 +01:00
Janneke Nieuwenhuizen
002dc6253a
build: Generate reproducible doc/version.texi.
...
* build-aux/GNUmakefile.in (doc/version.texi): Use timestamp from git.
2023-11-05 09:36:11 +01:00
Janneke Nieuwenhuizen
b6bad13883
build: Help help2man generate reproducible man-pages.
...
* build-aux/GNUmakefile.in (SOURCE_DATE_EPOCH): New variable.
2023-11-05 09:36:11 +01:00
Janneke Nieuwenhuizen
6aa77fe162
DRAFT lib: tests: 17-compare-unsigned-le: Add case from 7s-unsigned-compare.
...
* lib/tests/scaffold/17-compare-unsigned-le.c: Add case from
7s-unsigned-compare; rewrite to avoid gcc-optimize.
2023-11-05 09:36:11 +01:00
Janneke Nieuwenhuizen
a0c9c0aedb
DRAFT lib: tests: 17-compare-unsigned-short-le.c: Avoid gcc optimize.
...
* lib/tests/scaffold/17-compare-unsigned-short-le.c (main): Change
comparison with immediate to comparison with variable.
2023-11-05 09:36:11 +01:00
Janneke Nieuwenhuizen
0f0dad6436
DRAFT lib: tests: 17-compare-unsigned-char-le.c: Avoid gcc optimize.
...
* lib/tests/scaffold/17-compare-unsigned-char-le.c (main): Change
comparison with immediate to comparison with variable.
2023-11-05 09:36:11 +01:00
Ekaitz Zarraga
2be2de827f
lib: tests: Add 17-compare-rotated.
...
* lib/tests/scaffold/17-compare-rotated.c: Add file.
* build-aux/check-mescc.sh (mes_tests): Add it.
2023-11-05 09:36:11 +01:00
Ekaitz Zarraga
4134285e8e
lib: tests: Add 16-cast.
...
* lib/tests/scaffold/16-cast.c: Add file.
* build-aux/check-mescc.sh (mes_tests): Add it.
2023-11-05 09:36:11 +01:00
Janneke Nieuwenhuizen
96ad09dbfd
lib: tests: 63-struct-cell: Avoid segfault by array overflow with gcc >= 10.
...
* lib/tests/scaffold/63-struct-cell.c (g_functions]: Use size 3.
2023-08-29 22:07:01 +02:00
Janneke Nieuwenhuizen
addecda4fe
guix: mes.git: Add gdb.
...
* guix/git/mes.scm (mes.git)[native-inputs]: Add gdb.
2023-08-28 09:43:57 +02:00
Janneke Nieuwenhuizen
102fe7dc58
mescc: Remove duplicate include.
...
* module/mescc/preprocess.scm (mescc): Remove second (nyacc lang c99
parser) include.
2023-08-27 10:05:33 +02:00
Ekaitz Zarraga
721a06fc0b
tests: Make tests/vector.test compatible with Guile.
...
* mes/module/mes/type-0.mes (unspecified?): New function.
* tests/vector.test (make-vector): Use it to test equality rather than
rely on string comparison.
2023-08-27 10:05:20 +02:00
Ekaitz Zarraga
294d8a9737
mes: iota: Make compatible with Guile.
...
* mes/module/mes/scm.mes (iota): Throw exception when n < 0.
* tests/scm.test: Import (mes catch).
("iota -1"): Rewrite with exception handling.
2023-08-27 10:05:17 +02:00
Ekaitz Zarraga
ff02777236
mes: Add %program to mes-compatibility for Guile.
...
This fixes running scaffold/boot/gc.scm with Guile.
* module/mes/guile.scm (%program): Define and export.
2023-08-24 15:28:35 +02:00
Ekaitz Zarraga
d5ba672301
build: Fix typo causing tcc tests being skipped.
...
* build-aux/check-mescc.sh (TESTS): Use $tcc_tests instead of $tcc_test.
2023-08-24 14:58:35 +02:00
Janneke Nieuwenhuizen
8e75c00c7b
repl: Fix include, load, use MODULE, and mes-use-module.
...
Reported by Irvise via IRC.
* mes/module/mes/repl.mes (repl)[load-env, mes-load-module-env]: New
inner defines.
[use]: Use mes-load-module-env, do not return content of module.
Special-case 'include' and 'load'.
2023-07-08 15:10:05 +02:00
Janneke Nieuwenhuizen
5850531ae9
core: Set compiler for M2-Planet.
...
This is a follow-up to commit
7a6505be6e
build: Cater for M2-Planet.
* src/mes.c (mes_environment)[__M2__]: Set compiler to "m2c".
2023-07-08 15:10:05 +02:00
Janneke Nieuwenhuizen
ab9946d8ef
lib/tests: Initialize local variable.
...
Reuported by Andrius Štikonas <andrius@stikonas.eu> via IRC.
* lib/tests/assert/50-assert.c (main): Initialize local f.
* lib/tests/scaffold/21-char-array.c (main): Likewise.
2023-07-08 15:10:05 +02:00
Janneke Nieuwenhuizen
00720c8d5f
mes: Define R_OK as 4.
...
Reported by fossy via IRC.
* mes/module/mes/posix.mes (R_OK): Define as 4.
2023-07-08 15:10:05 +02:00
Efraim Flashner
8aa28acb4f
build: Fix typo.
...
* build-aux/GNUmakefile.in (X86_ARCH_HEADERS): Fix typo
2023-07-08 15:10:05 +02:00
Emily Trau
c20f6ac025
lib: Define O_TMPFILE for GNU make 4.4.1.
...
* include/fcntl.h (O_TMPFILE): New define.
2023-07-08 15:10:05 +02:00
Janneke Nieuwenhuizen
ad7ce36b5b
build: Drop support for mescc-tools 0.5.2.
...
* build-aux/build-scaffold.sh (stage0_cpu_flag): Remove. Update users.
* build-aux/cflags.sh (stage0_arch): Remove.
* build-aux/config.sh.in (numbered_arch): Remove.
* configure (main): Remove check for numbered-arch?. Remove
substitution of @numbered-arch@.
* configure.sh (numbered_arch): Likewise.
* module/mescc.scm (%numbered-arch?): Remove.
(parse-opts): Remove support for --numbered-arch?
* module/mescc/mescc.scm (mescc:compile): Remove alignment exception for
numbered-arch?.
(infos->hex2): Likewise.
(arch-get-architecture): Remove support for numbered-arch?.
* scripts/mescc.in (numbered_arch): Remove.
* scripts/mescc.scm.in (%numbered-arch?): Remove.
("%numbered_arch"): Remove.
2023-05-03 14:52:25 +02:00
Janneke Nieuwenhuizen
1a1fbfd36c
DRAFT doc: Update for 0.25.
...
* doc/images/gcc-mesboot-graph.dot: Regenerate.
* doc/mes.texi (Introduction): Whitespace fixes.
(Full Source Bootstrap): Mention deployment in Guix.
(Requirements): Update M2-Planet to 1.10.0.
(Bootstrap Requirements): Likewise.
(The Mes Bootstrap Process): Update Reduced Binary Bootstrap to Full
Source Bootstrap. Update next priority. Add deployments.
(Bootstrapping): Add tagline for "Invoking mesar".
(Full Source Bootstrap Deployments): New subsection.
2023-05-03 08:04:32 +02:00
Andrius Štikonas
ad18345687
core: Fix a typo in comment.
...
* src/gc.c (gc_init): Fix typo.
2023-05-03 08:04:32 +02:00
Andrius Štikonas
762200b65a
m2: Add new style x86 defines to support M2-Planet 1.11.0.
...
* lib/m2/x86/x86_defs.M1: Add new M1 defines.
2023-05-03 08:04:32 +02:00
Jan (janneke) Nieuwenhuizen
640bdd027b
lib: __assert_fail: Remove M2-Planet workarounds.
...
* lib/mes/__assert_fail.c (__assert_fail): Use *file, *function.
2023-05-03 08:04:32 +02:00
Jan (janneke) Nieuwenhuizen
6bc6e8354e
lib: linux: Add wait4.
...
* lib/linux/waitpid.c (waitpid): Factor-out wait4 call to...
* lib/linux/wait4.c: ...new file here.
* include/sys/wait.h (wait4): Add prototype. Include sys/resource.h.
* include/sys/resource.h (struct rusage): Remove gratuitous "int" for
M2-Planet.
* build-aux/configure-lib.sh (libc_SOURCES): Add it.
* kaem.run,
simple.make (M2_SOURCES),
simple.sh: Likewise. Also add resource.h.
2023-05-03 08:04:32 +02:00
Jan (janneke) Nieuwenhuizen
cbea14f843
core: Move M2_PTR_SIZE, M2_CELL_SIZE to include file.
...
* lib/posix/getenv.c (M2_PTR_SIZE),
lib/posix/setenv.c (M2_PTR_SIZE): Move definition...
* include/mes/lib-mini.h (M2_PTR_SIZE): ...here.
* src/gc.c (M2_CELL_SIZE),
src/symbol.c (M2_CELL_SIZE),
src/test/gc.c (M2_CELL_SIZE),
src/vector.c (M2_CELL_SIZE): Move definition...
* include/mes/mes.h (M2_CELL_SIZE): ...here.
2023-05-03 08:04:32 +02:00
Jan (janneke) Nieuwenhuizen
7725574935
kaem: Add kaem.arm and kaem.x86.
...
* kaem.arm,
kaem.x86: New files.
2023-05-03 08:04:32 +02:00
Jan (janneke) Nieuwenhuizen
dad460189f
kaem.run: Remove --bootstrap-mode.
...
* include/linux/arm/syscall.h,
include/linux/x86/syscall.h,
include/mes/constants.h: Remove CONSTANTs.
* lib/m2/open.c: Move to...
* lib/linux/open.c: ...here. Update to make gcc-compatible.
* scaffold/argv.kaem: Update accordingly.
* lib/linux/lseek.c (_leek, lseek): Suport M2-Planet.
* lib/linux/_open3.c (_open3): Fix cast.
* lib/linux/waitpid.c (waitpid): Suport M2-Planet.
* lib/m2/getcwd.c (PATH_MAX): Remove CONSTANT.
* lib/m2/isatty.c (TCGETS): Remove CONSTANT.
* lib/mes/ntoab.c: Support M2-Planet.
* lib/posix/getcwd.c (__getcwd_buf): Remove.
* lib/posix/getenv.c (M2_PTR_SIZE)[__M2__]: Update to #define.
* lib/posix/setenv.c: Likewise.
* lib/stub/__raise.c (SIGABRT): Remove CONSTANT.
* src/core.c (error): Use __M2__ instead of __M2_PLANET__.
* src/gc.c (M2_CELL_SIZE)[__M2__]: Update to #define. Support
non-bootstrap-mode.
* src/symbol.c: Likewise.
* src/vector.c: Likewise.
* src/posix.c: Likewise.
(__raise): Move to...
* include/mes/lib-cc.h (__raise): ...this new file to avoid M2-Planet crash.
* include/sys/types.h: Include it.
* lib/mes/div.c (__raise): Remove prototype.
[__TINYC__ || SYSTEM_LIBC] (__raise): Remove macro.
* include/mes/lib.h (__raise)[SYSTEM_LIBC]: Remove prototype.
* kaem.run: Remove --botstrap-mode. Update source list accordingly.
* simple.make (M2_PLANET_FLAGS): Remove --bootstrap-mode.
* simple.make (M2_SOURCES, M2_PLANET_INCLUDES): Update source list
accordingly.
* include/sys/types.h (EOF): Move to...
* include/mes/lib-cccc.h (EOF): ...here, and...
* include/m2/types.h (EOF): ...here, to avoid M2-Planet crash.
2023-05-03 08:03:48 +02:00
Jan (janneke) Nieuwenhuizen
e354d912ef
lib: posix/open: Support M2-Planet.
...
* lib/posix/open.c (open)[__M2__]: New function.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
6ec74a34c4
lib: linux/_open3: Support M2-Planet.
...
* lib/linux/_open3.c (_open3): Use function casting. Also call
__ungetc_init.
* lib/stub/__buffered_read.c: New file.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
4d4e6959e9
kaem: read: Remove --bootstrap-mode.
...
* include/mes/lib.h[__M2__](__call_at_exit,abtod,dtoab,ultoa,
* include/sys/types.h[__M2__]: Fall back to unsigned instead of using
unsigned long.
* include/stdio.h[__M2__](fprintf, fscanf, printf, snprintf, sprintf,
sscanf): Hide prototypes.
* lib/stdlib/exit.c (exit)[__M2__]: Hide call to __call_at_exit.
* lib/linux/read.c (read)[__M2__]: Hide debugging.
* lib/linux/malloc.c (malloc)[__M2__]: Hide alignment.
__mesabi_umod, __mesabi_udiv, __mesabi_uldiv): Hide prototypes.
* scaffold/argv.kaem: Use them together with lib/mes/lib-mini.h instead of
lib/mes/* specializations. Remove --bootstrap-mode from M2-Planet call.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
2a759f904d
kaem: argv: Remove --bootstrap-mode.
...
* scaffold/argv.kaem: Use lib/mes/lib-mini.h instead of lib/m2/lib.h.
Remove --bootstrap-mode from M2-Planet call.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
fda2e4b9fc
kaem: hello: Remove --bootstrap-mode.
...
* include/mes/lib-mini.h: Remove M2 bootstrap constants.
[__M2__](size_t): Fall-back to unsigned instead of unsigned long.
* scaffold/hello.kaem: Use it instead of lib/m2/lib.h. Remove
--bootstrap-mode from M2-Planet call.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
468a9c7cd8
kaem: main: Remove --bootstrap-mode.
...
* scaffold/main.kaem: Remove --bootstrap-mode from M2-Planet call.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
37e8093bbb
guix: m2-planet: Update to 1.10.0.
...
* guix/git/mes.scm (m2-planet): Update to 1.10.0.
[supported-systems]: Add riscv32-linux, riscv64-linux.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
402b024982
lib: mes/write: Rename from mes/mini-write.c
...
* lib/mes/mini-write.c: Move to...
* lib/mes/write.c: ...here.
* build-aux/configure-lib.sh,
kaem.run,
scaffold/argv.kaem,
scaffold/global-array.kaem,
scaffold/hello.kaem,
scaffold/local-array.kaem,
scaffold/local-static-array.kaem,
scaffold/read.kaem,
simple.make,
simple.sh: Update accordingly.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
29341f5783
build: Cater for colliding basename in C sources.
...
This is a follow-up to commit
f785f8d560
build: Fix --with-bootstrap build.
* build-aux/cc.sh: Retain directory name in object file name.
* build-aux/bootstrap.sh.in: Likewise. Compile crt1.c from local
directory.
* build-aux/build-lib.sh: Likewise.
* build-aux/build.sh.in: Remove globals.o hack.
2023-05-02 10:22:45 +02:00
Jan (janneke) Nieuwenhuizen
e428c17cc5
lib/m2: Update syscall includes.
...
This is a follow-up to commit
bc1fa57851
lib: stat: Use SYS_stat64 for 32bit platforms.
* lib/m2/chmod.c: Update to <arch/syscall.sh>.
* lib/m2/clock_gettime.c: Likewise.
* lib/m2/read.c: Likewise.
2023-05-02 10:22:01 +02:00
Jan (janneke) Nieuwenhuizen
c656bab1fd
doc: Post-release update.
...
* build-aux/GNUmakefile.in (--previous-version): Update to 0.24.2.
* doc/announce/ANNOUNCE-0.24.2: Run `make sum-announce'.
2023-02-13 12:11:01 +01:00
Jan (janneke) Nieuwenhuizen
1608f9f38a
guix: mes: Update to 0.24.2.
...
* guix/git/mes.scm (mes)[source]: Update to 0.24.2.
2023-02-13 12:09:36 +01:00
Jan (janneke) Nieuwenhuizen
7562330ec7
build: Release 0.24.2.
...
* configure (VERSION): Bump to 0.24.2.
* configure.sh (VERSION): Likewise.
* src/symbol.c (MES_VERSION): Likewise.
* mes/module/mes/repl.mes (welcome): Update copyright years.
2023-02-13 09:22:39 +01:00
Jan (janneke) Nieuwenhuizen
f0182ecf97
build: Update release procedure.
...
* build-aux/GNUmakefile.in: Add `./configure' stage before creating
tarball.
2023-02-13 09:27:52 +01:00
Jan (janneke) Nieuwenhuizen
56fed8d65e
doc: Update `ROADMAP'.
...
* ROADMAP (release 0.x, unsorted): Add Guile module support, Gash on
Mes, Guile as a Guix FSB dependency.
2023-02-13 09:18:57 +01:00
Jan (janneke) Nieuwenhuizen
c824c62f85
doc: Add `ANNOUNCE-0.24.2'.
...
* doc/announce/ANNOUNCE-0.24.2: New file.
2023-02-13 09:15:37 +01:00
Jan (janneke) Nieuwenhuizen
029a891d4e
doc: Update `NEWS'.
...
* NEWS (Changes in 0.24.2 since 0.24.1): New section.
2023-02-13 07:19:16 +01:00
Jan (janneke) Nieuwenhuizen
43fe67e2f9
lib: Fix compile warnings.
...
* lib/linux/read.c (read): Add casts.
* lib/linux/signal.c (signal): Likewise.
* lib/stdio/vfscanf.c: Include stdlib.h.
(vfscanf): Add cast.
* lib/stdlib/mbstowcs.c (mbstowcs): Add cast.
2023-02-12 23:02:24 +01:00
R. Masters
b28f42de07
lib: Support uppercase hex conversions.
...
Uppercase hex number conversions fail for abtol, strtol, strtoul,
strtoull, atoi, and abtod.
The following patch fixes it. This allows tcc to handle assembly
language, which is necessary to build the Fiwix kernel as part of the
kernel bootstrapping in progress for the live-bootstrap project.
* lib/ctype/isxdigit.c (isxdigit): Also allow A-F.
* lib/mes/abtol.c (abtol): Also cater for A-F.
2023-01-31 08:22:49 -08:00