yasi

Timeline
Login

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