Jan Nieuwenhuizen
7603ee1f31
build: Do not assume /bin/sh, basename/dirname.
...
* install.sh: Do not assume /bin/sh, basename/dirname.
* scripts/diff.scm: Likewise.
2018-05-23 20:32:37 +02:00
Jan Nieuwenhuizen
0ba240a4e0
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.
2018-05-23 18:41:57 +02:00
Jan Nieuwenhuizen
6ab7d2cee7
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.
2018-05-23 18:41:57 +02:00
Jan Nieuwenhuizen
a4110e55bb
build: Install naive diff.
...
* scripts/diff.scm: Move from build-aux.
* install.sh: Install it.
* build-aux/tests.sh: Update location.
2018-05-23 18:41:57 +02:00
Jan Nieuwenhuizen
c6d666bd67
build: Update configure.
...
* configure: Update.
2018-05-21 00:06:39 +02:00
Jan Nieuwenhuizen
98ccaceb25
mes: Remove debugging.
...
* module/mes/module.mes (mes-load-module-env): Remove debugging.
2018-05-02 22:52:31 +02:00
Jan Nieuwenhuizen
a1a5145a1a
build: Use ../mes-seed/refresh.sh, ../tinycc-seed/refresh.sh.
...
* GNUmakefile (seed): Use ../mes-seed/refresh.sh, ../tinycc-seed/refresh.sh.
2018-05-10 16:35:49 +02:00
Jan Nieuwenhuizen
62bd70cfb6
mescc: Guile fixes.
...
* scripts/mescc: Set GODIR. Add module as expression to Mes
invokation. Remove explicit (second) call to main.
2018-05-04 10:12:34 +02:00
Jan Nieuwenhuizen
95fdfb2261
test: Use diff -ub for tinycc tests.
...
* build-aux/diff.scm: Support -b.
* build-aux/test.sh: Use it.
2018-05-18 18:34:58 +02:00
Jan Nieuwenhuizen
cac2ba7b06
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-04 21:24:39 +02:00
Jan Nieuwenhuizen
aa7cca0032
build: configure: Handle VAR=VALUE. Update help.
...
* configure: Handle VAR=VALUE. Update help.
2018-05-06 08:46:32 +02:00
Jan Nieuwenhuizen
ba17eeeefe
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.
2018-05-03 20:32:06 +02:00
Jan Nieuwenhuizen
ad88aaa5be
build: Rebuild after build from seed.
...
* build-aux/build-mes.sh: Rebuild after build from seed.
2018-05-03 09:30:03 +02:00
Jan Nieuwenhuizen
81ed6564cf
mescc: Use file-name as global prefix.
...
* module/mes/M1.mes (object->M1): Add file-name parameter.
2018-05-03 09:01:00 +02:00
Jan Nieuwenhuizen
99718a8b7a
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.
2018-05-02 23:11:27 +02:00
Jan Nieuwenhuizen
f8eaebf713
mescc: Fix dumping of strings > M1_STRING_MAX.
...
* module/mes/M1.mes (object->M1): Skip opening quote.
2018-05-02 15:53:37 +02:00
Jan Nieuwenhuizen
6d3fee91b9
Revert "core: length: Check parameter."
...
This reverts commit 1f52ed35c66febcce16e06868e803a39be7eda41.
2018-04-30 20:47:05 +02:00
Jan Nieuwenhuizen
ec85612ac4
core: length: Check parameter.
...
* src/mes.c (length): Check parameter.
2018-04-30 19:31:00 +02:00
Jan Nieuwenhuizen
98417537a2
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-05-01 16:50:29 +02:00
Jan Nieuwenhuizen
a937d18c38
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-29 18:38:57 +02:00
Jan Nieuwenhuizen
3e6319058a
core: Use length__.
...
* src/mes.c (check_formals): Use length__.
2018-04-30 21:17:10 +02:00
Jan Nieuwenhuizen
664289c50f
mes-snarf: Support running with Mes.
...
* build-aux/mes-snarf.scm: Support running with Mes.
2018-04-29 07:56:52 +02:00
Jan Nieuwenhuizen
1b0089111f
mes: Support -C and -L for Guile compatibility.
...
* module/mes/boot-0.scm): Support -C and -L for Guile compatibility.
Signed-off-by: Jan Nieuwenhuizen <janneke@gnu.org>
2018-04-29 19:06:11 +02:00
Jan Nieuwenhuizen
4ca4e9a6ff
mes: Support -e,--main option.
...
* module/mes/boot-0.scm: Support -e,--main option.
2018-04-29 18:37:00 +02:00
Jan Nieuwenhuizen
08d6c24263
mes: Upgrade Guile module support.
...
* module/mes/boot-0.scm (define-module): New macro with minimal Guile support.
(use-modules): New macro.
2018-04-29 18:35:22 +02:00
Jan Nieuwenhuizen
a2e9a6925c
mes: Add srfi-8.
...
* module/srfi/srfi-8.mes: New file.
2018-04-29 23:31:22 +02:00
Jan Nieuwenhuizen
8d866b6441
mes: string-join: Handle empty list.
...
* module/mes/boot-0.scm (string-join): Handle empty list.
2018-04-29 18:34:21 +02:00
Jan Nieuwenhuizen
b209378fca
mes: Add basename.
...
* module/mes/posix.mes (basename): New function.
2018-04-29 18:33:14 +02:00
Jan Nieuwenhuizen
4dfe6e00cc
mes: Add delete-duplicates.
...
* module/srfi/srfi-1.mes (delete-duplicates): New function.
2018-04-29 18:32:35 +02:00
Jan Nieuwenhuizen
75db8bed91
mes: filter-map: Handle two lists.
...
* module/srfi/srfi-1.mes (filter-map): Handle two lists, add error
when called with three or more.
2018-04-29 18:29:26 +02:00
Jan Nieuwenhuizen
56ef2f3f2d
mes: Add string-replace.
...
* module/srfi/srfi-13.mes (string-replace): New function.
* tests/srfi-13.test ("string-replace"): Test it.
2018-04-29 18:27:29 +02:00
Jan Nieuwenhuizen
563d1d92f9
mes: Add string-map.
...
* module/srfi/srfi-13.mes (string-map): New function.
* tests/srfi-13.test ("string-map"): Test it.
2018-04-29 18:26:46 +02:00
Jan Nieuwenhuizen
59d4d90a90
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"):
2018-04-29 18:24:29 +02:00
Jan Nieuwenhuizen
3c9b5f433d
mes: Add string-contains.
...
* module/srfi/srfi-13.mes (string-contains): New function.
* tests/srfi-13.test ("string-contains"): Test it.
("string-contains not"):
2018-04-29 18:21:52 +02:00
Jan Nieuwenhuizen
1f216444f6
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.
2018-04-29 18:15:04 +02:00
Jan Nieuwenhuizen
41fe739463
core: reverse!: Handle empty list.
...
* src/mes.c (reverse_x_): Handle empty list.
* tests/scm.test ("reverse! ()"): Test it.
2018-04-29 18:14:01 +02:00
Jan Nieuwenhuizen
dc24a7f76f
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.
2018-04-29 17:48:38 +02:00
Jan Nieuwenhuizen
c20ef52f6f
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.
2018-04-29 16:17:07 +02:00
Jan Nieuwenhuizen
8911af4aa8
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.
2018-04-29 13:22:02 +02:00
Jan Nieuwenhuizen
a56d5e3efe
core: Fix gc_up_arena for x86_64.
...
* src/gc.c (gc_): Fix gc_up_arena for x86_64.
2018-04-29 12:04:18 +02:00
Jan Nieuwenhuizen
865e72ae8a
core: Fix compile warnings.
...
* src/posix.c: Include sys/stat.h.
(chmod): Return cell_unspecified.
* include/stdlib.h: Typo.
2018-04-29 12:02:23 +02:00
Jan Nieuwenhuizen
5f7f2c9894
mlibc: Declare chmod.
...
* include/sys/stat.h (mode_t, chmod): Declare.
2018-04-29 12:01:25 +02:00
Jan Nieuwenhuizen
4ff63354a7
guix: Update mes to 0.13.
...
* guix.scm (mes): Update to 0.13.
(mes.git): Likewise.
2018-04-28 13:49:44 +02:00
Jan Nieuwenhuizen
1fdccefe02
Release 0.13.
...
* configure (VERSION): Bump to 0.13.
2018-04-27 23:57:42 +02:00
Jan Nieuwenhuizen
6e32754a98
doc: Release udpate.
...
* BOOTSTRAP: Update.
* HACKING: Update.
* NEWS: Update.
* README: Update.
* doc/ANNOUNCE-0.13: New file.
2018-04-22 00:45:00 +02:00
Jan Nieuwenhuizen
c6fecdc353
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.
2018-04-27 23:47:31 +02:00
Jan Nieuwenhuizen
2cc6f166db
core: Add chmod.
...
* src/posix.c (chmod_): New function.
2018-04-27 23:31:45 +02:00
Jan Nieuwenhuizen
e3b929aa87
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-25 08:35:05 +02:00
Jan Nieuwenhuizen
e628b311d6
mescc: Create less garbage when dumping M1.
...
* module/mes/M1.mes (display-join): New function.
* (object->M1): Use it.
2018-04-24 07:26:27 +02:00
Jan Nieuwenhuizen
18d143aa62
core: last_pair: Move to core.
...
* src/lib.c (last_pair): New function.
* module/mes/scm.mes (last-pair): Remove.
2018-04-24 07:00:35 +02:00