Commit Graph

8 Commits

Author SHA1 Message Date
Jan Nieuwenhuizen 4d5c055488
mescc: Mes C Library: Add M2-Planet support. WIP
* lib/m2/abtol.c: New file.
* lib/m2/access.c: New file.
* lib/m2/atoi.c: New file.
* lib/m2/chmod.c: New file.
* lib/m2/clock_gettime.c: New file.
* lib/m2/dup.c: New file.
* lib/m2/dup2.c: New file.
* lib/m2/eputs.c: New file.
* lib/m2/execv.c: New file.
* lib/m2/execve.c: New file.
* lib/m2/exit.c: New file.
* lib/m2/fdputc.c: New file.
* lib/m2/fork.c: New file.
* lib/m2/getcwd.c: New file.
* lib/m2/getenv.c: New file.
* lib/m2/isatty.c: New file.
* lib/m2/memchr.c: New file.
* lib/m2/memcmp.c: New file.
* lib/m2/memcpy.c: New file.
* lib/m2/memset.c: New file.
* lib/m2/mes_open.c: New file.
* lib/m2/ntoab.c: New file.
* lib/m2/open.c: New file.
* lib/m2/read.c: New file.
* lib/m2/setenv.c: New file.
* lib/m2/strcmp.c: New file.
* lib/m2/strcpy.c: New file.
* lib/m2/strlen.c: New file.
* lib/m2/strncmp.c: New file.
* lib/m2/time.c: New file.
* lib/m2/unlink.c: New file.
* lib/m2/waitpid.c: New file.
* lib/m2/write.c: New file.
2019-10-26 20:48:45 +02:00
Jan Nieuwenhuizen 02ef80a19a
core: Split-out symbols.c.
* src/mes.c (init_symbol, mes_symbols): Move to ..
* src/symbols.c: New file.
* simple.make: Add it.
* src/eval.c (assert_defined): Likewise.
* include/mes/mes.h: Declare init_symbols.
2019-10-26 20:00:17 +02:00
Jan Nieuwenhuizen 8ece7dca3c
core: Split-out display.c.
* src/lib.c (display_helper, display_, display_error_, display_port_,
write_, write_error_, write_port_, fdisplay_): Move to ..
* src/display.c: New file.
* simple.make: Add it.
* src/eval.c (assert_defined): Likewise.
2019-10-26 20:00:17 +02:00
Jan Nieuwenhuizen b24327dab1
core: Split-out eval-apply.c.
* src/mes.c (check_formals, check_apply, pairlis, set_car_x, set_cdr_x,
set_env_x, call_lambda, make_closure_, make_variable_, macro_get_handle,
get_macro, macro_set_x, push_cc, add_formals, formal_p,
expand_variable_, expand_variable, apply_builtin, eval_apply, apply):
Move to ..
* src/eval-apply.c: New file.
* simple.make: Add it.
* src/eval.c (assert_defined): Likewise.
2019-10-26 20:00:17 +02:00
Jan Nieuwenhuizen b391ca3894
core: Use assert_msg.
* src/mes.c: Use assert_msg instead of assert.
* src/gc.c: Likewise.
* src/hash.c: Likewise.
* src/lib.c: Likewise.
* src/math.c: Likewise.
* src/module.c: Likewise.
* src/posix.c: Likewise.
* src/reader.c: Likewise.
* src/string.c: Likewise.
* src/struct.c: Likewise.
* src/vector.c: Likewise.
* simple.make (LIB_SOURCES): Add lib/mes/assert_msg.c.
2019-10-26 19:41:00 +02:00
Jan Nieuwenhuizen ea4c39da65
core: Prepare for M2-Planet: mes.c.
Rewrite C-constructs not supported by M2-Planet, such as

    foo ? bar : baz;       -> if (foo) bar; else baz;
    static char foo[1024]  -> __func_buf = malloc (1024); ... char *foo = __func_buf;
    *foo                   -> foo[0]
    foo++                  -> foo = foo + 1   TODO: pointer arithmetic
    foo += 1;              -> foo = foo + 1
    for (int foo = ;       -> int foo; for (foo=
    if (foo)               -> if (foo != 0)
    if (!foo)              -> if (foo == 0)
    ;                      -> 0;
    // ...                 -> /* ... */

* src/mes.c: Rewrite C constructs not supported by M2-Planet.
* include/mes/mes.h (__execl_c_argv, __getcwd_buf, __open_boot_buf,
__open_boot_file_name, __setenv_buf, __reader_read_char_buf): Declare
buffers.
(init): Initialize them.
* include/mes/macros.h(__M2_PLANET__): Temporary M2 macros.
2019-10-26 19:40:58 +02:00
Jan Nieuwenhuizen b7dbdc670f
core: Split-out builtins.c.
* src/mes.c make_builtin_type, make_builtin, builtin_name,
builtin_arity, builtin_function, builtin_p, builtin_printer,
init_builtin, mes_builtins): Move to ..
* src/builtins.c: New file.
* build-aux/build-mes.sh (mes_sources): Add it.
* build-aux/snarf.sh: Likewise.
* include/mes/builtins.h: Remove constants.
* include/mes/mes.h: Add prototypes.
* include/mes/constants.h (cell_symbol_test): Rename from cell_test.
* simple.make: New file.
2019-10-26 19:40:57 +02:00
Jan Nieuwenhuizen 13a4a2d849
build: simple.make.
* simple.make: New file.
2019-10-26 19:40:57 +02:00