Jan Nieuwenhuizen
|
6af0b49f09
|
core: Add string-length.
* src/strings.c (string_length): New function.
* mes/module/mes/scm.mes (string-length): Remove.
|
2018-11-15 23:51:29 +01:00 |
|
Jan Nieuwenhuizen
|
819b32e61c
|
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-15 23:09:56 +01:00 |
|
Jan Nieuwenhuizen
|
149f2a3e51
|
core: String as array of bytes.
* src/strings.c: New file.
* src/mes.c: Use it. Update users.
|
2018-11-11 16:25:36 +01:00 |
|
Jan Nieuwenhuizen
|
2e97dc1250
|
mescc: Move mecmp to libc.
* lib/libc.c: Include mecmp.c.
* lib/libc+tcc.c: Remove mecmp.c include.
|
2018-11-25 16:09:31 +01:00 |
|
Jan Nieuwenhuizen
|
3e87e9de3c
|
mescc: Move memchr to libc.
* lib/libc.c: Include memchr.c.
|
2018-11-16 00:01:18 +01:00 |
|
Jan Nieuwenhuizen
|
c9a3fe68ec
|
test: Use write instead of display.
* module/mes/test.scm (seq?, sequal?, seq2?, sless?, sequal2?): Use
write for expected, actual.
|
2018-11-15 17:10:03 +01:00 |
|
Jan Nieuwenhuizen
|
75655793d4
|
core: struct_set_: Oops typo.
* src/struct.c (struct_set_x_): Oops, remove indirection.
|
2018-11-14 08:16:58 +01:00 |
|
Jan Nieuwenhuizen
|
0be3bea141
|
mes: Remove copy of make-string.
* mes/module/mes/guile.mes (make-string): Remove copy.
|
2018-11-14 08:19:01 +01:00 |
|
Jan Nieuwenhuizen
|
614bfeb3b8
|
mescc: Compile fixes.
* include/libmes-mini.h[WITH_GLIBC]: Do not declare strlen, write, types.
|
2018-11-14 13:07:59 +01:00 |
|
Jan Nieuwenhuizen
|
e27e7af055
|
mes: Oops, %moduledir debug info.
* mes/module/mes/boot-0.scm.in: Oops, %moduledir debug info.
|
2018-11-11 14:47:14 +01:00 |
|
Jan Nieuwenhuizen
|
17aeba8dc7
|
build: configure: Support Mes.
* configure: Support Mes.
|
2018-11-11 10:38:02 +01:00 |
|
Jan Nieuwenhuizen
|
fb8a6f3408
|
mes; Add read-line.
* mes/module/mes/guile.mes (read-line): New function.
|
2018-11-11 16:57:58 +01:00 |
|
Jan Nieuwenhuizen
|
c61c6866b5
|
mes: dirname: Fix for absolute file names.
* mes/module/mes/guile.mes (dirname): Fix absolute files.
|
2018-11-11 10:15:12 +01:00 |
|
Jan Nieuwenhuizen
|
e0a2d540f4
|
mes: Add file-exists?.
* mes/module/mes/guile.mes (file-exists?): New function.
|
2018-11-11 10:14:50 +01:00 |
|
Jan Nieuwenhuizen
|
e95c5742be
|
mes: Add with-error-to-file.
* mes/module/mes/guile.mes (with-error-to-file): New function.
|
2018-11-11 10:14:10 +01:00 |
|
Jan Nieuwenhuizen
|
9da1fd92b6
|
mes: Add string-downcase, string-upcase, string-tokenize.
* mes/module/srfi/srfi-13.mes (string-downcase, string-upcase,
string-tokenize): New function.
|
2018-11-11 10:00:04 +01:00 |
|
Jan Nieuwenhuizen
|
9543962ece
|
mes: Add char-downcase, char-upcase.
* mes/module/srfi/srfi-14.mes (char-downcase, char-upcase): New
function.
|
2018-11-11 10:10:43 +01:00 |
|
Jan Nieuwenhuizen
|
b7f5e1a8f9
|
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.
|
2018-11-11 10:09:41 +01:00 |
|
Jan Nieuwenhuizen
|
b9534cb287
|
mes: Add char-set-adjoin, char-set-complement.
* mes/module/srfi/srfi-14.mes (char-set-adjoin, char-set-complement):
New function.
|
2018-11-11 10:08:03 +01:00 |
|
Jan Nieuwenhuizen
|
1f1fa33eaa
|
mes: system*: Support redirection.
* mes/module/mes/posix.mes (system*): Support redirection.
|
2018-11-11 10:00:50 +01:00 |
|
Jan Nieuwenhuizen
|
d2cba60eb4
|
core: read_string: Allow for gc.
* src/posix.c (read_char): Add optional port parameter.
(read_string): Allow for gc.
|
2018-11-11 10:17:50 +01:00 |
|
Jan Nieuwenhuizen
|
af328a444a
|
core: Add delete_file.
* src/posix.c (delete_file): New function.
|
2018-11-11 11:03:03 +01:00 |
|
Jan Nieuwenhuizen
|
35c8408df4
|
core: Add dup, dup2.
* src/posix.c (dup_, dup2_): New function.
|
2018-11-11 10:18:50 +01:00 |
|
Jan Nieuwenhuizen
|
7c63d3df47
|
core: Add getcwd.
* src/posix.c (getcwd_): New function.
|
2018-11-11 10:16:19 +01:00 |
|
Jan Nieuwenhuizen
|
7d2e0f1215
|
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.
|
2018-11-11 10:04:03 +01:00 |
|
Jan Nieuwenhuizen
|
331a0c29e6
|
core: Assert g_free in alloc.
* src/mes.c (alloc): Assert g_free.
|
2018-11-11 10:01:49 +01:00 |
|
Jan Nieuwenhuizen
|
82df50eae9
|
mescc: unlink: Move to libc.
* lib/linux/libc.c (unlink): New function.
* lib/linux/tcc.c (unlink): Remove.
|
2018-11-11 11:00:42 +01:00 |
|
Jan Nieuwenhuizen
|
e660665dfd
|
mescc: dup, dup2: Move to libc.
* lib/linux/libc.c (dup, dup2): New function.
* lib/linux/gnu.c (dup, dup2): Remove.
|
2018-11-11 10:13:01 +01:00 |
|
Jan Nieuwenhuizen
|
6e2f941573
|
mescc: getcwd: Move to libc.
* lib/linux/libc.c (getcwd): New function.
* lib/linux/tcc.c (getcwd): Remove.
|
2018-11-11 10:12:19 +01:00 |
|
Jan Nieuwenhuizen
|
68441476e0
|
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-10 08:32:42 +01:00 |
|
Jan Nieuwenhuizen
|
9ecc11ee52
|
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-09 21:26:10 +01:00 |
|
Jan Nieuwenhuizen
|
6b5ac57602
|
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-06 20:29:35 +01:00 |
|
Jan Nieuwenhuizen
|
172879360e
|
mescc: Add missing define.
* lib/x86-mes/x86.M1: Add missing define.
|
2018-11-09 16:56:54 +01:00 |
|
Jan Nieuwenhuizen
|
cd70c63a40
|
mescc: Exit if library cannot be found.
* module/mescc/mescc.scm (arch-find): Exit upon failure.
|
2018-11-08 14:46:46 +01:00 |
|
Jan Nieuwenhuizen
|
aa8fd3da9e
|
mescc: Accept -O, --std, -x.
* scripts/mescc.in (parse-opts): Accept -O, --std, -x.
|
2018-11-08 14:07:27 +01:00 |
|
Jan Nieuwenhuizen
|
21887b9a8e
|
mescc: Support -dumpmachine.
* scripts/mescc.in (parse-opts): Support -dumpmachine.
|
2018-11-08 22:41:20 +01:00 |
|
Jan Nieuwenhuizen
|
3d528b0257
|
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-22 18:33:40 +02:00 |
|
Jan Nieuwenhuizen
|
5d8e44de2c
|
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.
|
2018-10-21 12:04:25 +02:00 |
|
Jan Nieuwenhuizen
|
06bf0fd6a3
|
mes: Add ceil, floor, round, inexact->exact.
* mes/module/mes/scm.mes (ceil, floor, round, inexact->exact,
exact->inexact): New function.
|
2018-10-21 12:07:06 +02:00 |
|
Jan Nieuwenhuizen
|
0e1d98963c
|
mes: read-string: Take optional port argument.
* src/posix.c (read_string): Take optional port argument.
* mes/module/mes/guile.mes (read-string): Remove.
|
2018-10-21 12:00:00 +02:00 |
|
Jan Nieuwenhuizen
|
d6660a5d83
|
core: eval_apply: Order gotos according to frequency.
* src/mes.c (eval_apply): Order gotos according to frequency.
|
2018-10-21 08:50:45 +02:00 |
|
Jan Nieuwenhuizen
|
fc78b41a10
|
Revert "core: eval_apply profile."
This reverts commit d61e6be0b18459a8e3c262eab448b428dc81937a.
|
2018-10-21 08:43:35 +02:00 |
|
Jan Nieuwenhuizen
|
a048a452e5
|
core: eval_apply profile.
* src/mes.c: Poor man's eval_apply profile.
|
2018-10-21 08:25:07 +02:00 |
|
Jan Nieuwenhuizen
|
9d1d85e041
|
core: Fix displaying of closure.
* src/lib.c (display_helper): Fix displaying of closure.
|
2018-10-20 20:01:45 +02:00 |
|
Jan Nieuwenhuizen
|
00dc02757b
|
mes: Print backtrace upon exception.
* mes/module/mes/catch.mes (display-backtrace,
frame-function): New function.
(%eh): Use them.
|
2018-10-20 18:24:37 +02:00 |
|
Jan Nieuwenhuizen
|
a233287c07
|
core: Set procedure in stack frame.
* src/mes.c (eval_apply): Set procedure in stack frame.
|
2018-10-20 18:27:13 +02:00 |
|
Jan Nieuwenhuizen
|
c2c361bf1a
|
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.
|
2018-10-20 18:23:20 +02:00 |
|
Jan Nieuwenhuizen
|
094bdac0bd
|
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-20 14:18:04 +02:00 |
|
Jan Nieuwenhuizen
|
ddb74e0a4a
|
core: Use hash table for symbols.
* src/mes.c (mes_symbols): Use hash table for symbols. Update users.
|
2018-10-18 18:50:09 +02:00 |
|
Jan Nieuwenhuizen
|
8e2a688a8c
|
core: Use assert before failure exit.
* src/mes.c (error): Use assert before failure exit. Helps debugging.
|
2018-10-19 23:01:59 +02:00 |
|