mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-23 20:15:05 +02:00
Updated
This commit is contained in:
parent
9f72e6699d
commit
9124eb712f
2 changed files with 13 additions and 17 deletions
22
FEATURES.md
22
FEATURES.md
|
@ -4,35 +4,35 @@ R<sup>7</sup>RS Compliance
|
||||||
|
|
||||||
Section | Status | Comments
|
Section | Status | Comments
|
||||||
------- | ------ | ---------
|
------- | ------ | ---------
|
||||||
2.2 Whitespace and comments | |
|
2.2 Whitespace and comments | Partial | No datum or block comments
|
||||||
2.3 Other notations | |
|
2.3 Other notations | |
|
||||||
2.4 Datum labels | |
|
2.4 Datum labels | No |
|
||||||
3.1 Variables, syntactic keywords, and regions | |
|
3.1 Variables, syntactic keywords, and regions | |
|
||||||
3.2 Disjointness of types | |
|
3.2 Disjointness of types | Yes |
|
||||||
3.3 External representations | |
|
3.3 External representations | |
|
||||||
3.4 Storage model | | No immutable types at this time.
|
3.4 Storage model | | No immutable types at this time.
|
||||||
3.5 Proper tail recursion | Yes |
|
3.5 Proper tail recursion | Yes |
|
||||||
4.1 Primitive expression types | |
|
4.1 Primitive expression types | |
|
||||||
4.2 Derived expression types | |
|
4.2 Derived expression types | |
|
||||||
4.3 Macros | |
|
4.3 Macros | |
|
||||||
5.1 Programs | |
|
5.1 Programs | Yes |
|
||||||
5.2 Import declarations | |
|
5.2 Import declarations | |
|
||||||
5.3 Variable definitions | |
|
5.3 Variable definitions | Partial | `define-values` is not implemented yet.
|
||||||
5.4 Syntax definitions | |
|
5.4 Syntax definitions | |
|
||||||
5.5 Record-type 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 |
|
5.7 The REPL | Yes |
|
||||||
6.1 Equivalence predicates | | `eqv?` is not implemented, it is just an alias to `eq?`
|
6.1 Equivalence predicates | Yes | `eqv?` is not implemented, it is just an alias to `eq?`
|
||||||
6.2 Numbers | |
|
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.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.4 Pairs and lists | Yes | `member` functions are predicates, `member` and `assoc` do not accept `compare` argument.
|
||||||
6.5 Symbols | Yes |
|
6.5 Symbols | Yes |
|
||||||
6.6 Characters | Partial | No unicode support, `char-ci` predicates are not implemented.
|
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.8 Vectors | Yes |
|
||||||
6.9 Bytevectors | |
|
6.9 Bytevectors | |
|
||||||
6.10 Control features | |
|
6.10 Control features | |
|
||||||
6.11 Exceptions | |
|
6.11 Exceptions | Partial | Need to check against r7rs
|
||||||
6.12 Environments and evaluation | |
|
6.12 Environments and evaluation | Partial |
|
||||||
6.13 Input and output | |
|
6.13 Input and output | |
|
||||||
6.14 System interface | |
|
6.14 System interface | |
|
||||||
|
|
8
TODO
8
TODO
|
@ -28,16 +28,12 @@ Working TODO list:
|
||||||
- GC improvements
|
- GC improvements
|
||||||
- is dhalloc limit good enough?
|
- is dhalloc limit good enough?
|
||||||
- should expand size of heap if there is not enough room to fit all the "kept" objects
|
- 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
|
- eval
|
||||||
there is no concept of macro expansion, probably other deficiencies as well
|
there is no concept of macro expansion, probably other deficiencies as well
|
||||||
almost certainly will break when running the self-hosted compiler...
|
almost certainly will break when running the self-hosted compiler...
|
||||||
|
no, I think this is ok. may want to unify macros with compiler side though
|
||||||
- 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).
|
|
||||||
|
|
||||||
- support for application of pure varargs functions, EG:
|
- support for application of pure varargs functions, EG:
|
||||||
((lambda test (write test)) 1 2 3 4)
|
((lambda test (write test)) 1 2 3 4)
|
||||||
|
|
Loading…
Add table
Reference in a new issue