mes.git
4 years agoMove optional type predicates to type.c.
Jan Nieuwenhuizen [Sat, 22 Oct 2016 10:16:19 +0000 (12:16 +0200)]
Move optional type predicates to type.c.

* mes.c (char_p, macro_p, number_p, pair_p, string_p, symbol_p,
  vector_p, builtin_p, boolean_p): Move to type.c
* type.c: New file.
* GNUmakefile (mes.o): Depend on type snarf output.
* module/mes/loop-0.mes (cond, map, let, or, and not, evlis-env,
  apply-env, eval-expand, uquote, add-unquoters, eval,
  expand-macro-env, eval-begin-env, eval-if-env, sexp:define,
  env:define, env:macro): Move to mes-0.mes.
* module/mes/mes-0.mes: New file.
* module/mes/type-0.mes: New file.
* scripts/include.mes: If BOOT, also include mes-0.mes.  If TYPE0,
  also include type-0.mes.

4 years agoUpdate NEWS.
Jan Nieuwenhuizen [Mon, 12 Dec 2016 19:31:41 +0000 (20:31 +0100)]
Update NEWS.

* NEWS: Note specials fix and booting with smaller core.

4 years agoGenerate C header and includes using snarfing.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 20:44:50 +0000 (22:44 +0200)]
Generate C header and includes using snarfing.

* mes.c: Move specific renames and n-args to alist annotation.
* build-aux/mes-snarf.scm: New file.
* GNUmakefile (mes.environment.h): Use it.
  (mes.h): Remove.
  (clean): Update.
  (mes.o): New dependency rule.
* .gitignore: Update.

4 years agoRevert "Flip sign of cached symbols: only search cache if symbol is cached."
Jan Nieuwenhuizen [Sat, 22 Oct 2016 16:13:37 +0000 (18:13 +0200)]
Revert "Flip sign of cached symbols: only search cache if symbol is cached."

This reverts commit cef058be0d6ef5322f74e644bbcd96f1725c6327.

4 years agoFlip sign of cached symbols: only search cache if symbol is cached.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 18:44:18 +0000 (20:44 +0200)]
Flip sign of cached symbols: only search cache if symbol is cached.

* mes.c (cache_save): Flip sign when caching and invalidating.
  (cache_invalidate): Flip sign when invalidating.

4 years agonamed let-fu FIXME
Jan Nieuwenhuizen [Thu, 20 Oct 2016 22:00:05 +0000 (00:00 +0200)]
named let-fu FIXME

4 years agoboot: fix builtin? tests.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 09:14:33 +0000 (11:14 +0200)]
boot: fix builtin? tests.

* tests/scm.test: Test primitives, not eval.

4 years agoEnvironment cache heuristicts.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 08:43:32 +0000 (10:43 +0200)]
Environment cache heuristicts.

* mes.c (ENV_HEAD): New define.
  (assq_ref_cache): Use it.

4 years agoboot: support apply.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 08:41:29 +0000 (10:41 +0200)]
boot: support apply.

* module/mes/loop-0.mes (eval-env): Add clause for apply-env.

4 years agoboot: Remove label support from Scheme.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 08:39:13 +0000 (10:39 +0200)]
boot: Remove label support from Scheme.

* module/mes/loop-0.scm (apply-env): Remove label clause.

4 years agoboot: vector support.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 08:51:09 +0000 (10:51 +0200)]
boot: vector support.

* mes.c (make_vector): Change to scm interface.
  (temp_number): New global.
  (list_to_vector): Use it.
* module/mes/scm.mes (c:make-vector): New function.
* tests/scm.test: Remove vector tests.
* tests/vector.test: New file.
* GNUmakefile (TESTS): Add it.

4 years agoAvoid let* in scm.mes.
Jan Nieuwenhuizen [Fri, 21 Oct 2016 08:52:59 +0000 (10:52 +0200)]
Avoid let* in scm.mes.

* module/mes/scm.mes (case, max, min): Avoid let*.

4 years agoloop-0: define and, let and cache-invalidate-range.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 22:02:24 +0000 (00:02 +0200)]
loop-0: define and, let and cache-invalidate-range.

4 years agoboot: support quasiquote in eval.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 21:33:35 +0000 (23:33 +0200)]
boot: support quasiquote in eval.

* module/mes/loop-0.mes (eval-env): Add quasiquote support.

4 years agoRemove evcon from loop-0.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 17:50:07 +0000 (19:50 +0200)]
Remove evcon from loop-0.

* module/mes/loop-0.mes (loop-0): Handle define-macro.
 (cond): New macro.
 (eval-env-expand): Remove 'cond clause.
 (evcon): Remove.

4 years agoSwitch fat-c/boot using environment variable BOOT.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 20:03:17 +0000 (22:03 +0200)]
Switch fat-c/boot using environment variable BOOT.

* GNUmakefile: check for BOOT, set CFLAGS.
* mes.c: Remove hardcoded BOOT define.
* scripts/include.mes: include loop-0 when BOOT is set.

4 years agoImplement eval/apply in Scheme.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 16:53:31 +0000 (18:53 +0200)]
Implement eval/apply in Scheme.

* module/mes/loop-0.mes: New file.
* module/mes/mes.mes: Remove

4 years agoReduce eval/apply in core, extend in Scheme.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 16:43:33 +0000 (18:43 +0200)]
Reduce eval/apply in core, extend in Scheme.

* mes.c (eval_env_)[BOOT]: Rename from eval_env.  Remove define, defin-macro.
  (eval_env): New function.
  (make_macro): Swap parameter ordering.
  (apply_env)[BOOT]: Support label.

4 years agoAvoid adding top of environment to cache.
Jan Nieuwenhuizen [Wed, 19 Oct 2016 22:21:06 +0000 (00:21 +0200)]
Avoid adding top of environment to cache.

* mes.c (assq_ref_cache): Only consider caching symbols deeper than
  4*CACHE_SIZE depth.  50% speedup.

4 years agoImplement environment cache.
Jan Nieuwenhuizen [Wed, 19 Oct 2016 22:11:48 +0000 (00:11 +0200)]
Implement environment cache.

* mes.c (cache_save, cache_lookup, cache_invalidate,
  cache_invalidate_range): Implement cache for environment.
  (assq_ref_cache): New function, perform cached lookups.
  (builtin_eval,lookup_macro): Use it.
  (set_cdr_x): Invalidate cache.
  (set_x): Likewise.
  (apply_env): Likewise.

4 years agoIntroduce SCM type for special symbols.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 17:19:32 +0000 (19:19 +0200)]
Introduce SCM type for special symbols.

* GNUmakefile (mes.h): Also export SCM to symbols.i
* mes.c: Introduce SCM type for special symbols.
  (builtin_eval): Rename from eval_env.  Update callers.
* module/mes/base-0.mes (eval): Remove.
* module/mes/repl.mes (repl): Use eval.

4 years agoRemove static primitives hack.
Jan Nieuwenhuizen [Thu, 20 Oct 2016 07:37:14 +0000 (09:37 +0200)]
Remove static primitives hack.

* mes.c (internal_primitive_p, internal_p, lookup_primitive,
  mes_primitives): Remove.

4 years agoRefactor primitives lookup.
Jan Nieuwenhuizen [Wed, 19 Oct 2016 05:22:15 +0000 (07:22 +0200)]
Refactor primitives lookup.

* mes.c (lookup_primitive_): Rename from internal_lookup_primitive,
  use scm-compatible signature.
  (lookup): Update caller.
  (eval_env): Check for builtins first.

4 years agoRemove unused symbol.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 18:05:51 +0000 (20:05 +0200)]
Remove unused symbol.

* mes.c (symbol_cond): Remove.

4 years agoAdd report to closure test.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 17:10:16 +0000 (19:10 +0200)]
Add report to closure test.

* tests/closure.test: Add report.

4 years agoRemove dead code from let.mes.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 17:11:14 +0000 (19:11 +0200)]
Remove dead code from let.mes.

* module/mes/let.mes (simple-let, named-let, let): Remove dead code.

4 years agoAvoid cons* in base.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 06:24:47 +0000 (08:24 +0200)]
Avoid cons* in base.

* module/mes/base-0.mes (cond, simple-let, let): Rewrite without cons*.
* module/mes/base.mes (or): Likewise.

4 years agoDifferentiate apply asserts.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 07:21:49 +0000 (09:21 +0200)]
Differentiate apply asserts.

* mes.c (apply_env): Split bool assert into bool, number and string.

4 years agoAdd display tag for builtin procedures.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 07:08:42 +0000 (09:08 +0200)]
Add display tag for builtin procedures.

* mes.c (display_helper): Show builtin functions as #<procedure ...>.

4 years agoRemove macro expansion from apply.
Jan Nieuwenhuizen [Mon, 17 Oct 2016 16:26:07 +0000 (18:26 +0200)]
Remove macro expansion from apply.

mes.c (apply_env): Remove macro expansion.

4 years agoAdd paredit workaround in scripts.
Jan Nieuwenhuizen [Mon, 17 Oct 2016 16:24:40 +0000 (18:24 +0200)]
Add paredit workaround in scripts.

* scripts/elf.mes: Add paredit parsing comment.
* scripts/repl.mes: Likewise.

4 years agomake tests standalone executable.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 15:34:51 +0000 (17:34 +0200)]
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.

4 years agomake clean: remove symbols.i.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 12:57:30 +0000 (14:57 +0200)]
make clean: remove symbols.i.

* GNUmakefile (clean): remove symbols.i.

4 years agoUpdate documentation.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 12:00:40 +0000 (14:00 +0200)]
Update documentation.

* HACKING: Describe (mes-use-modules).
* NEWS: Update.

4 years agoAdd --help, --version.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 11:45:24 +0000 (13:45 +0200)]
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.

4 years agoguix hash: 0g6lcms2hv1i8hdkfh2xz0g7jmsayisr7bcwkp47blkbapqpzpsf
Jan Nieuwenhuizen [Tue, 18 Oct 2016 22:36:08 +0000 (00:36 +0200)]
guix hash: 0g6lcms2hv1i8hdkfh2xz0g7jmsayisr7bcwkp47blkbapqpzpsf

4 years agoUpdate guix hash.
Jan Nieuwenhuizen [Tue, 18 Oct 2016 21:50:09 +0000 (23:50 +0200)]
Update guix hash.

* make/install.make (update-hash): New target.
* guix.scm: Prepare for update.

4 years agoAdd installation instructions.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 09:24:41 +0000 (11:24 +0200)]
Add installation instructions.

* INSTALL: New file.

4 years agoAdd guix.scm package recipe.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 09:27:39 +0000 (11:27 +0200)]
Add guix.scm package recipe.

* guix.scm: New file.

4 years agoPrepare for 0.1 release: update READMEs.
Jan Nieuwenhuizen [Sat, 15 Oct 2016 09:54:24 +0000 (11:54 +0200)]
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.

4 years agoPrepare for 0.1 release: make install.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 06:14:50 +0000 (08:14 +0200)]
Prepare for 0.1 release: make install.

* make/install.make (install): Install documentation.

4 years agoPrepare for 0.1 release: installable scripts.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 06:00:04 +0000 (08:00 +0200)]
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.

4 years agoPrepare for 0.1 release: gnu-build-system.
Jan Nieuwenhuizen [Sat, 15 Oct 2016 22:34:23 +0000 (00:34 +0200)]
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.

4 years agoPrepare for 0.1 release: new directory structure.
Jan Nieuwenhuizen [Wed, 12 Oct 2016 21:40:11 +0000 (23:40 +0200)]
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.

4 years agoRemove evcon (Sorry John).
Jan Nieuwenhuizen [Sat, 15 Oct 2016 09:56:18 +0000 (11:56 +0200)]
Remove evcon (Sorry John).

* mes.c (evcon): Remove, remove callers.
* base0-if.mes (cond): Rename from disabled-cond.

4 years agoSupport quasisyntax.
Jan Nieuwenhuizen [Sat, 15 Oct 2016 23:41:07 +0000 (01:41 +0200)]
Support quasisyntax.

* mes.c (eval_quasisyntax, add_unsyntaxers): New functions.
  (eval_env): Use them.

4 years agoAdd REPL.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 07:44:52 +0000 (09:44 +0200)]
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.

4 years agoAvoid 90% of cdr'ing environment, assuming static primitives.
Jan Nieuwenhuizen [Wed, 12 Oct 2016 19:14:06 +0000 (21:14 +0200)]
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.

4 years agoDo not use quasiquote in base0.
Jan Nieuwenhuizen [Sun, 16 Oct 2016 07:21:17 +0000 (09:21 +0200)]
Do not use quasiquote in base0.

* base0.scm (defined?): Rewrite without quasiquote.

4 years agoAdd procedure? to base.
Jan Nieuwenhuizen [Wed, 12 Oct 2016 20:58:35 +0000 (22:58 +0200)]
Add procedure? to base.

* base.mes (procedure?): Move from scm.mes.

4 years agospeedup: use ->car etc.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 15:00:32 +0000 (17:00 +0200)]
speedup: use ->car etc.

4 years agoAvoid out-of-spec strncat usage.
Jan Nieuwenhuizen [Tue, 11 Oct 2016 16:50:14 +0000 (18:50 +0200)]
Avoid out-of-spec strncat usage.

mes.c (readword): Use character assignment instead of strncat.  Fixes
Valgrind nit.

4 years agoDiscern between primitive atoms and symbols.
Jan Nieuwenhuizen [Tue, 11 Oct 2016 05:10:01 +0000 (07:10 +0200)]
Discern between primitive atoms and symbols.

* mes.c (internal_symbol_p): New function.
 (eval): Use it.

4 years agoresurrect mescc.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 21:54:48 +0000 (23:54 +0200)]
resurrect mescc.

4 years agocleanup and doc update.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 21:24:44 +0000 (23:24 +0200)]
cleanup and doc update.

4 years agosyntax.mes: silence syntax error.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 20:44:42 +0000 (22:44 +0200)]
syntax.mes: silence syntax error.

4 years agotest/scm.test: update.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 20:42:05 +0000 (22:42 +0200)]
test/scm.test: update.

4 years agotest/match.test: pass.
Jan Nieuwenhuizen [Tue, 11 Oct 2016 16:51:30 +0000 (18:51 +0200)]
test/match.test: pass.

4 years agolib/match: ugly hygiene hack. FIXME.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 18:53:42 +0000 (20:53 +0200)]
lib/match: ugly hygiene hack. FIXME.

4 years agolet-syntax.mes: implement.
Jan Nieuwenhuizen [Mon, 10 Oct 2016 20:55:37 +0000 (22:55 +0200)]
let-syntax.mes: implement.

4 years agospeedup: use ->car etc.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 15:00:32 +0000 (17:00 +0200)]
speedup: use ->car etc.

4 years agouse IF as primitive, drop using cond/evcon only option.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 14:54:59 +0000 (16:54 +0200)]
use IF as primitive, drop using cond/evcon only option.

4 years agoc++ type-safety.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 08:14:17 +0000 (10:14 +0200)]
c++ type-safety.

4 years agoassq: use while instead of recursion.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 06:47:23 +0000 (08:47 +0200)]
assq: use while instead of recursion.

4 years agomes.c: uniquify symbols.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 06:41:30 +0000 (08:41 +0200)]
mes.c: uniquify symbols.

4 years agomes-check: separate target.
Jan Nieuwenhuizen [Sat, 8 Oct 2016 06:38:29 +0000 (08:38 +0200)]
mes-check: separate target.

4 years agoUpdates to README, TODO. announce-2
Jan Nieuwenhuizen [Sun, 25 Sep 2016 10:50:00 +0000 (12:50 +0200)]
Updates to README, TODO.

4 years agomescc.scm: compile simple, well-behaved for-loop.
Jan Nieuwenhuizen [Sun, 14 Aug 2016 12:42:52 +0000 (14:42 +0200)]
mescc.scm: compile simple, well-behaved for-loop.

4 years agoelf.mes: for loop.
Jan Nieuwenhuizen [Sun, 14 Aug 2016 12:02:09 +0000 (14:02 +0200)]
elf.mes: for loop.

4 years agomescc.scm: print two strings.
Jan Nieuwenhuizen [Sun, 14 Aug 2016 07:06:09 +0000 (09:06 +0200)]
mescc.scm: print two strings.

4 years agomescc.scm: first a.out produced from main.c.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 23:44:42 +0000 (01:44 +0200)]
mescc.scm: first a.out produced from main.c.

4 years agolib/match.scm: import.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 23:40:55 +0000 (01:40 +0200)]
lib/match.scm: import.

4 years agolib/srfi/srfi-1.scm: add append-map, filter, find.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 23:40:45 +0000 (01:40 +0200)]
lib/srfi/srfi-1.scm: add append-map, filter, find.

4 years agoelf.mes: make-elf.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 20:43:55 +0000 (22:43 +0200)]
elf.mes: make-elf.

4 years agoelf.mes: use elf32-* remove set!.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 20:21:59 +0000 (22:21 +0200)]
elf.mes: use elf32-* remove set!.

4 years agoelf.mes: remove text-free, softcode data-offset.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 17:19:52 +0000 (19:19 +0200)]
elf.mes: remove text-free, softcode data-offset.

4 years agoelf.mes: put marker in note section.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 16:57:49 +0000 (18:57 +0200)]
elf.mes: put marker in note section.

4 years agoRevert "elf.mes: drop .note section."
Jan Nieuwenhuizen [Sat, 13 Aug 2016 16:46:22 +0000 (18:46 +0200)]
Revert "elf.mes: drop .note section."

This reverts commit b2b5b73b91308407ec82a5ba658aca025512c542.

4 years agoelf.mes: drop .note section.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 16:42:53 +0000 (18:42 +0200)]
elf.mes: drop .note section.

4 years agoelf.mes: softcode more.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 16:42:38 +0000 (18:42 +0200)]
elf.mes: softcode more.

4 years agomes.c: implement string->list.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 16:42:11 +0000 (18:42 +0200)]
mes.c: implement string->list.

4 years agoelf.mes: compute text-free, text-offset.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 13:27:02 +0000 (15:27 +0200)]
elf.mes: compute text-free, text-offset.

4 years agolib/rnrs/bytevectors.scm: minimal rnrs bytevectors.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 15:05:29 +0000 (17:05 +0200)]
lib/rnrs/bytevectors.scm: minimal rnrs bytevectors.

4 years agoelf.mes: separate-out text, text-free and data sections.
Jan Nieuwenhuizen [Sat, 13 Aug 2016 08:32:07 +0000 (10:32 +0200)]
elf.mes: separate-out text, text-free and data sections.

4 years agoresurrect guile-mescc, use write-int and (current-error-port) iso `2'.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 23:07:26 +0000 (01:07 +0200)]
resurrect guile-mescc, use write-int and (current-error-port) iso `2'.

4 years agoRevert "mes.c: use single malloc with arena."
Jan Nieuwenhuizen [Sun, 25 Sep 2016 08:13:09 +0000 (10:13 +0200)]
Revert "mes.c: use single malloc with arena."

This reverts commit 38c364faeff430a5ee28f402d24b073f6bf9a548.

4 years agomes.c: use single malloc with arena.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 22:58:00 +0000 (00:58 +0200)]
mes.c: use single malloc with arena.

4 years agoelf.mes: a.out runs.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 14:38:59 +0000 (16:38 +0200)]
elf.mes: a.out runs.

4 years agoelf.mes: error-free header, no program yet.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 13:54:15 +0000 (15:54 +0200)]
elf.mes: error-free header, no program yet.

4 years agoelf.mes: readelf -h a.out shows some info.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 13:10:05 +0000 (15:10 +0200)]
elf.mes: readelf -h a.out shows some info.

4 years agomescc/elf.mes: write minimal ELF header.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 12:17:55 +0000 (14:17 +0200)]
mescc/elf.mes: write minimal ELF header.

4 years agomes.c: display, newline: take optional port; add write-char, read hex #xXX.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 12:17:20 +0000 (14:17 +0200)]
mes.c: display, newline: take optional port; add write-char, read hex #xXX.

4 years agoremove debug output to stdout.
Jan Nieuwenhuizen [Fri, 12 Aug 2016 10:06:59 +0000 (12:06 +0200)]
remove debug output to stdout.

5 years agosyntax-if.mes: TODO.
Jan Nieuwenhuizen [Wed, 27 Jul 2016 10:16:44 +0000 (12:16 +0200)]
syntax-if.mes: TODO.

5 years agoUse IF iso COND as primitive; keep COND primitive as option.
Jan Nieuwenhuizen [Wed, 27 Jul 2016 06:49:45 +0000 (08:49 +0200)]
Use IF iso COND as primitive; keep COND primitive as option.

5 years agolet.scm: cleanups.
Jan Nieuwenhuizen [Wed, 27 Jul 2016 05:35:57 +0000 (07:35 +0200)]
let.scm: cleanups.

5 years agomacro hax0rz
Jan Nieuwenhuizen [Tue, 26 Jul 2016 22:32:30 +0000 (00:32 +0200)]
macro hax0rz

5 years agoRevert "lib/lalr-debug.scm"
Jan Nieuwenhuizen [Tue, 26 Jul 2016 22:05:02 +0000 (00:05 +0200)]
Revert "lib/lalr-debug.scm"

This reverts commit 084d1bea33d45f0653cdc6bef44dc295faef6b72.

5 years agolib/lalr-debug.scm
Jan Nieuwenhuizen [Tue, 26 Jul 2016 21:34:00 +0000 (23:34 +0200)]
lib/lalr-debug.scm

5 years agoquasiquote.mes: disable, too slow.
Jan Nieuwenhuizen [Tue, 26 Jul 2016 21:22:32 +0000 (23:22 +0200)]
quasiquote.mes: disable, too slow.