diff --git a/FEATURES.md b/FEATURES.md index e46b9416..9596d491 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -4,35 +4,35 @@ R7RS Compliance Section | Status | Comments ------- | ------ | --------- -2.2 Whitespace and comments | | +2.2 Whitespace and comments | Partial | No datum or block comments 2.3 Other notations | | -2.4 Datum labels | | +2.4 Datum labels | No | 3.1 Variables, syntactic keywords, and regions | | -3.2 Disjointness of types | | +3.2 Disjointness of types | Yes | 3.3 External representations | | 3.4 Storage model | | No immutable types at this time. 3.5 Proper tail recursion | Yes | 4.1 Primitive expression types | | 4.2 Derived expression types | | 4.3 Macros | | -5.1 Programs | | +5.1 Programs | Yes | 5.2 Import declarations | | -5.3 Variable definitions | | +5.3 Variable definitions | Partial | `define-values` is not implemented yet. 5.4 Syntax definitions | | 5.5 Record-type definitions | | -5.6 Libraries | | +5.6 Libraries | Partial | Support is "good enough" but need to make it more robust 5.7 The REPL | Yes | -6.1 Equivalence predicates | | `eqv?` is not implemented, it is just an alias to `eq?` -6.2 Numbers | | +6.1 Equivalence predicates | Yes | `eqv?` is not implemented, it is just an alias to `eq?` +6.2 Numbers | Partial | Integers and reals are supported, but most numeric functions are missing at this time. 6.3 Booleans | Yes | `#true` and `#false` are not recognized by parser. 6.4 Pairs and lists | Yes | `member` functions are predicates, `member` and `assoc` do not accept `compare` argument. 6.5 Symbols | Yes | 6.6 Characters | Partial | No unicode support, `char-ci` predicates are not implemented. -6.7 Strings | | +6.7 Strings | Partial | Many functions are missing. Need to sync up with r7rs. 6.8 Vectors | Yes | 6.9 Bytevectors | | 6.10 Control features | | -6.11 Exceptions | | -6.12 Environments and evaluation | | +6.11 Exceptions | Partial | Need to check against r7rs +6.12 Environments and evaluation | Partial | 6.13 Input and output | | 6.14 System interface | | diff --git a/TODO b/TODO index 523ebc74..3b68f70b 100644 --- a/TODO +++ b/TODO @@ -28,16 +28,12 @@ Working TODO list: - GC improvements - is dhalloc limit good enough? - should expand size of heap if there is not enough room to fit all the "kept" objects + get a test case for this, should be simple enough to write a program that exhausts memory - eval there is no concept of macro expansion, probably other deficiencies as well almost certainly will break when running the self-hosted compiler... - - - stack traces - not required but may be essential - if we can record function names in cgen, then it is not too much - of a stretch to create a circular buffer of string ptr's and then - add to this buffer each time a function is called. then print the - buffer out in the default exception handler (or such). + no, I think this is ok. may want to unify macros with compiler side though - support for application of pure varargs functions, EG: ((lambda test (write test)) 1 2 3 4)