Jan Nieuwenhuizen
d0addb3e99
Remove dead code from let.mes.
...
* module/mes/let.mes (simple-let, named-let, let): Remove dead code.
2016-10-18 19:11:14 +02:00
Jan Nieuwenhuizen
4ff96673c7
Avoid cons* in base.
...
* module/mes/base-0.mes (cond, simple-let, let): Rewrite without cons*.
* module/mes/base.mes (or): Likewise.
2016-10-18 08:24:47 +02:00
Jan Nieuwenhuizen
2a8d3c57b7
Differentiate apply asserts.
...
* mes.c (apply_env): Split bool assert into bool, number and string.
2016-10-18 09:21:49 +02:00
Jan Nieuwenhuizen
b9bbac3d0c
Add display tag for builtin procedures.
...
* mes.c (display_helper): Show builtin functions as #<procedure ...>.
2016-10-18 09:08:42 +02:00
Jan Nieuwenhuizen
0eae7674b6
Remove macro expansion from apply.
...
mes.c (apply_env): Remove macro expansion.
2016-10-17 18:26:07 +02:00
Jan Nieuwenhuizen
3098f84e9e
Add paredit workaround in scripts.
...
* scripts/elf.mes: Add paredit parsing comment.
* scripts/repl.mes: Likewise.
2016-10-19 00:36:12 +02:00
Jan Nieuwenhuizen
d18e50a569
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.
2016-10-19 00:36:12 +02:00
Jan Nieuwenhuizen
219a8cdfbb
make clean: remove symbols.i.
...
* GNUmakefile (clean): remove symbols.i.
2016-10-19 00:36:12 +02:00
Jan Nieuwenhuizen
1e59009102
Update documentation.
...
* HACKING: Describe (mes-use-modules).
* NEWS: Update.
2016-10-19 00:36:12 +02:00
Jan Nieuwenhuizen
ac4b1eed3f
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.
2016-10-19 00:36:12 +02:00
Jan Nieuwenhuizen
c5aa93d67b
guix hash: 0g6lcms2hv1i8hdkfh2xz0g7jmsayisr7bcwkp47blkbapqpzpsf
2016-10-19 00:36:08 +02:00
Jan Nieuwenhuizen
b5af238305
Update guix hash.
...
* make/install.make (update-hash): New target.
* guix.scm: Prepare for update.
2016-10-18 23:50:09 +02:00
Jan Nieuwenhuizen
ac6fb6feed
Add installation instructions.
...
* INSTALL: New file.
2016-10-16 11:24:41 +02:00
Jan Nieuwenhuizen
7e4736f3d0
Add guix.scm package recipe.
...
* guix.scm: New file.
2016-10-16 11:27:39 +02:00
Jan Nieuwenhuizen
2001183928
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-15 11:54:24 +02:00
Jan Nieuwenhuizen
6d64e55500
Prepare for 0.1 release: make install.
...
* make/install.make (install): Install documentation.
2016-10-16 08:14:50 +02:00
Jan Nieuwenhuizen
323e78b190
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-16 08:00:04 +02:00
Jan Nieuwenhuizen
3128c4b976
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-16 00:34:23 +02:00
Jan Nieuwenhuizen
d114634203
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-12 23:40:11 +02:00
Jan Nieuwenhuizen
bd2b81755a
Remove evcon (Sorry John).
...
* mes.c (evcon): Remove, remove callers.
* base0-if.mes (cond): Rename from disabled-cond.
2016-10-15 11:56:18 +02:00
Jan Nieuwenhuizen
83970245e5
Support quasisyntax.
...
* mes.c (eval_quasisyntax, add_unsyntaxers): New functions.
(eval_env): Use them.
2016-10-16 01:41:07 +02:00
Jan Nieuwenhuizen
2715e241e5
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-16 09:44:52 +02:00
Jan Nieuwenhuizen
422b6e6ce9
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-12 21:14:06 +02:00
Jan Nieuwenhuizen
6948629c27
Do not use quasiquote in base0.
...
* base0.scm (defined?): Rewrite without quasiquote.
2016-10-16 09:21:17 +02:00
Jan Nieuwenhuizen
dd271be218
Add procedure? to base.
...
* base.mes (procedure?): Move from scm.mes.
2016-10-12 22:58:35 +02:00
Jan Nieuwenhuizen
1bb3d1de11
speedup: use ->car etc.
2016-10-08 17:00:32 +02:00
Jan Nieuwenhuizen
c5e3e3818d
Avoid out-of-spec strncat usage.
...
mes.c (readword): Use character assignment instead of strncat. Fixes
Valgrind nit.
2016-10-11 18:50:14 +02:00
Jan Nieuwenhuizen
513bd09f76
Discern between primitive atoms and symbols.
...
* mes.c (internal_symbol_p): New function.
(eval): Use it.
2016-10-11 07:10:01 +02:00
Jan Nieuwenhuizen
c506880a14
resurrect mescc.
2016-10-10 23:54:48 +02:00
Jan Nieuwenhuizen
7ff86c393f
cleanup and doc update.
2016-10-10 23:24:44 +02:00
Jan Nieuwenhuizen
bf02fa7f07
syntax.mes: silence syntax error.
2016-10-10 22:44:42 +02:00
Jan Nieuwenhuizen
c6ce1662e4
test/scm.test: update.
2016-10-10 22:42:05 +02:00
Jan Nieuwenhuizen
2e1685dc2d
test/match.test: pass.
2016-10-11 18:51:30 +02:00
Jan Nieuwenhuizen
c38ae1ebc5
lib/match: ugly hygiene hack. FIXME.
2016-10-10 20:53:42 +02:00
Jan Nieuwenhuizen
d3fab554d5
let-syntax.mes: implement.
2016-10-10 22:55:37 +02:00
Jan Nieuwenhuizen
a265f933d8
speedup: use ->car etc.
2016-10-08 17:00:32 +02:00
Jan Nieuwenhuizen
4514be76d9
use IF as primitive, drop using cond/evcon only option.
2016-10-08 16:54:59 +02:00
Jan Nieuwenhuizen
7c759e0670
c++ type-safety.
2016-10-08 10:14:17 +02:00
Jan Nieuwenhuizen
e504998b03
assq: use while instead of recursion.
2016-10-08 08:47:23 +02:00
Jan Nieuwenhuizen
509bf3956e
mes.c: uniquify symbols.
2016-10-08 08:41:30 +02:00
Jan Nieuwenhuizen
3ff385ce6d
mes-check: separate target.
2016-10-08 08:38:29 +02:00
Jan Nieuwenhuizen
cd84c337f1
Updates to README, TODO.
2016-09-25 12:50:00 +02:00
Jan Nieuwenhuizen
e1eeaf979a
mescc.scm: compile simple, well-behaved for-loop.
2016-08-14 14:42:52 +02:00
Jan Nieuwenhuizen
76ff664dab
elf.mes: for loop.
2016-08-14 14:02:09 +02:00
Jan Nieuwenhuizen
04eb0609cd
mescc.scm: print two strings.
2016-08-14 09:06:09 +02:00
Jan Nieuwenhuizen
2c7f26dbe6
mescc.scm: first a.out produced from main.c.
2016-08-14 01:44:42 +02:00
Jan Nieuwenhuizen
85f3d40e71
lib/match.scm: import.
2016-08-14 01:40:55 +02:00
Jan Nieuwenhuizen
da27cf183a
lib/srfi/srfi-1.scm: add append-map, filter, find.
2016-08-14 01:40:45 +02:00
Jan Nieuwenhuizen
a3e5461952
elf.mes: make-elf.
2016-08-13 22:43:55 +02:00
Jan Nieuwenhuizen
9fe124a4bf
elf.mes: use elf32-* remove set!.
2016-08-13 22:21:59 +02:00