Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 most recent check-ins
2014-02-28
| ||
05:38 | Improve read_string() Leaf check-in: c672fd13e0 user: martin tags: trunk | |
00:02 | Simplify read_symbol() just using fscanf(). check-in: 3a170fd493 user: martin tags: trunk | |
2014-02-27
| ||
02:57 | Sort specials alphabetically. check-in: 9d80c1f603 user: martin tags: trunk | |
00:51 | Move special form implementations from primitives.c to eval.c check-in: 22654b85e4 user: martin tags: trunk | |
00:37 | t -> true_symbol, f -> false_symbol. check-in: 6275487288 user: martin tags: trunk | |
2014-02-16
| ||
20:14 | Make set() clearer. check-in: b5c5d459fd user: martin tags: trunk | |
18:31 | Simplify env.c a bit. mk_rib() -> add_rib(). check-in: f64385430b user: martin tags: trunk | |
14:32 | Lose precomp_lookups, it'd need to handle cond's else cases and just got tired of it; Added tests for cond and define; Bring back fexp's and base macros on them; let/let*/letrec return and add support for (define (function args) ...) sugar. check-in: ccb951d84e user: martin tags: trunk | |
2014-02-11
| ||
07:21 | More verbose names (str() -> get_string(), ...) and make it easier to change symbol table size (in case the code's ever used elsewhere). check-in: e7e04f5335 user: martin tags: trunk | |
06:18 | Clean up/comment precomp_lookups a bit, use more verbose names in struct obj_. check-in: 256b53ce18 user: martin tags: trunk | |
04:16 | Rename "seed" -> "yasi", Yet Another Scheme Interpreter. Only name I can think of that doesn't seem to be taken... check-in: 47aed2e0e4 user: martin tags: trunk | |
2014-02-10
| ||
03:48 | Lose -pedantic, -Weverything already includes it. check-in: e6defa8de4 user: martin tags: trunk | |
2014-02-08
| ||
17:40 | Squelch remaining warnings, revert precomp to using bindings. check-in: 3aa30512ec user: martin tags: trunk | |
17:13 | Don't return val in symtable_add. check-in: 4dfc3ab243 user: martin tags: trunk | |
2014-02-07
| ||
23:00 | Previous commit was clobbered somehow, symtable_add() is void again. check-in: 92740ebfa3 user: martin tags: trunk | |
22:57 | gcc->clang; c89->c99; Change how tail calls are handled; Lose fexp/macro until I get around to seeing why they cared (and, probably, macro's just permanently gone); symtable now uses FNV hash rather than simple additive; clean up a bunch of warnings from clang's -Weverything (mostly making casts explicit); precomp_lookups just inlines the fn rather than its binding (again). check-in: fa28c9b5d7 user: martin tags: trunk | |
2014-02-03
| ||
22:39 | Change symtable_add() return to void; Whitespace. check-in: 72810f4097 user: martin tags: trunk | |
21:53 | Sanitize symbol table API. check-in: de38a32a11 user: martin tags: trunk | |
2014-01-30
| ||
01:05 | More work on precomp_lookups(). check-in: 86d0bedb5e user: martin tags: trunk | |
2014-01-27
| ||
13:06 | precomp_lookups() not break some internal defines ( ((lambda (x) (define car cdr) (car x)) (cons 1 2)) => 2); (gc) reports live/dead stats; indent run check-in: 6d667656ba user: martin tags: trunk | |
2014-01-26
| ||
03:22 | Inline objects into GC records. check-in: 176a83201c user: martin tags: trunk | |
00:30 | Symbol table now a hash table rather than just a linked list. check-in: 268ef75c16 user: martin tags: trunk | |
2013-07-12
| ||
22:06 | eval() never returns tail_call so don't check in begin(); make macro calls replace themselves with their expansion check-in: 04f342e836 user: martin tags: trunk | |
02:40 | Rename string= -> string=?; Add string, string-length, string-ref, string-ci=?, string-copy. check-in: c7d5b10b7e user: martin tags: trunk | |
2013-07-11
| ||
23:30 | Reorganize definitions/prototypes and add more assertions for primitives; Add set-car!/set-cdr!; Lose puts check-in: 90e493ab14 user: martin tags: trunk | |
16:30 | Add string= check-in: 3aade4f204 user: martin tags: trunk | |
2013-07-10
| ||
18:53 | Have display/write return nil. check-in: c7d1b17c4c user: martin tags: trunk | |
2013-07-09
| ||
14:54 | Read/write #\newline, #\space; write '() rather than nil; rename sym_add/sym_remove to symtable_add/symtable_remove; remove last uses of err.h; add char? and macro?; have set() check for failure from lookup(). check-in: 43a121708d user: martin tags: trunk | |
2013-07-07
| ||
23:46 | Add macro test check-in: b488753fbd user: martin tags: trunk | |
22:53 | Add tests for let/let*/letrec; reimplement them via macro. check-in: c3b860651e user: martin tags: trunk | |
22:22 | Add macros. check-in: 583cd9f5aa user: martin tags: trunk | |
17:36 | Add support for characters (no #\newline, #\space, etc... yet) check-in: a6551914e9 user: martin tags: trunk | |
17:18 | Add read_dot(), handle floats without a leading 0, and bring back depth tracking in read.c check-in: 46380833e5 user: martin tags: trunk | |
2013-07-06
| ||
22:11 | Lose begin_symbol and use begin_prim in eval.c; simplify makefile, sprinkle around more assert()s; handle argless and/or. check-in: 5e87cf9c8c user: martin tags: trunk | |
18:31 | Simplify vector_to_list; move pred_* to primitives.c, rename them to prim_*_p, specials renamed prim_* -> spec_*, rename any other primitives lacking prim_ prefix; Add type checking macros in types.h; Add more type assertions to primitives. check-in: 29380c5fc8 user: martin tags: trunk | |
15:57 | Welcome 0.1.4 check-in: be53e63c37 user: martin tags: trunk, SEED_O_1_4 | |
15:55 | Gensym uses rand() and takes an optional symbol or string arg. check-in: f6c5acdd6d user: martin tags: trunk | |
2013-07-03
| ||
23:21 | Add back error checking for var lookups; let unquote-splicing take multiple args; add gensym, eqv? equal? and let exit take an arg; fix let (named let was broken). check-in: 0720e1f49b user: martin tags: trunk | |
05:45 | Convert numbers from ints to doubles; shuffle and/or into eval and have them tailcall their last arg if they didn't already return. check-in: a158b895b4 user: martin tags: trunk | |
2013-07-02
| ||
02:38 | More work on free var lookups. check-in: 8e824f5acd user: martin tags: trunk | |
2013-07-01
| ||
17:29 | Continue work on free var lookups. Grind went from minutes to seconds. Like the free list in GC it's probably enough of a gain to be worth leaving in despite the additional complexity. check-in: c4800c26d7 user: martin tags: trunk | |
04:39 | Start work on making free var lookups faster during closure applications. check-in: 08c0d948fd user: martin tags: trunk | |
2013-06-30
| ||
04:16 | Nicer error reporting for apply/cond, replace extern denv with static hash_env_symbol, add static copy of begin symbol since cond uses it now. check-in: f0a8ada857 user: martin tags: trunk | |
02:24 | Simplify eval(). check-in: 7a773d6c93 user: martin tags: trunk | |
2013-06-29
| ||
23:00 | Fix begin(). check-in: 1bbedfe700 user: martin tags: trunk | |
22:03 | Simplify eval.c more. check-in: 093e228d60 user: martin tags: trunk | |
17:03 | Make reader not fail with -DNDEBUG; start simplifying eval. check-in: 38129668f1 user: martin tags: trunk | |
2013-06-28
| ||
22:39 | More use of get_type(), add and use set_type(). check-in: 976d07eff1 user: martin tags: trunk | |
14:36 | Add & use abstrations for handling types and marks; rename type enum to sexp_type; add an exit primitive check-in: 2255fcbf82 user: martin tags: trunk | |
2013-06-26
| ||
21:44 | Add let/let*/letrec. Much easier with quasiquote. check-in: a1fc67cd62 user: martin tags: trunk, SEED_0_1_3 | |