cyclone/TODO
Justin Ethier c9fa2410cf Done
2016-04-26 23:54:37 -04:00

112 lines
3.4 KiB
Text

Initiatives:
add rename support to library syntax, start by looking at lib:exports.
will need a way of compiling this into the library, and for progs/libs importing the library (although
those may just be able to simply each rename to refer to the renamed identifier)
Tier 0:
- FFI
- want to create an example program (lib?) that does something interesting, like make a cURL request
for that, will need to be able to include the appropriate C header(s), and link to the appropriate C libraries
- Library support
Import sets (importing libraries, section 5.2):
supported:
- library name
not supported (not these are defined recursively, and can be nested):
- only
- except
- rename
- prefix
Tier 1:
- Performance - most likely need CPS optimization and closure elimination
- pass larceny benchmarks (will require some bugfixes):
TODO: sboyer finishes in a reasonable amount of time now, but the collector's memory growth is
not being limited. need to test, but I think disabling the growth code after collection
is throwing off the collector's memory ratios and causing each major collection to first
'bump' gc_grow_heap. anyway, need to figure this out
benchmarks that do not finish due to
missing features:
- gcbench.scm - Needed to manually import (srfi 9)
- mbrotZ.scm - No complex library
- read0.scm - needs open-input-string
- scheme.scm - Problem with (macro?) being a primitive and defined in application code
- slatex.scm - Need to handle more than one "args" argument to apply
crashes:
- compiler.scm - Needs to be able to dynamically grow symbol table. needed to hardcode symbol table to 20x its size to be able to generate the C file. Then C file cannot compile; there may be issues with defining functions with the same name as a primitive.
OK if test errors out if outputs directory is missing, chibi does the same thing.
List of all benchmarks, along with comments if they are failing:
- ack.scm
- array1.scm
- browse.scm
- bv2string.scm
- cat.scm
- compiler.scm - Issues with symbol table and possibly lexical scoping
- conform.scm
- cpstak.scm
- ctak.scm
- deriv.scm
- destruc.scm
- diviter.scm
- divrec.scm
- dynamic.scm
- earley.scm
- equal.scm
- fft.scm
- fibc.scm
- fibfp.scm
- fib.scm
- gcbench.scm - Needed to manually import (srfi 9)
- graphs.scm
- lattice.scm
- matrix.scm
- mazefun.scm
- maze.scm
- mbrot.scm
- mbrotZ.scm - No complex library
- mperm.scm
- nboyer.scm
- nqueens.scm
- ntakl.scm
- nucleic.scm
- paraffins.scm
- parsing.scm
- peval.scm
- pi.scm
- pnpoly.scm
- primes.scm
- puzzle.scm
- quicksort.scm
- ray.scm
- read0.scm - needs open-input-string
- read1.scm
- sboyer.scm
- scheme.scm - Problem with (macro?) being a primitive and defined in application code
- simplex.scm
- slatex.scm - Need to handle more than one "args" argument to apply
- string.scm
- sum1.scm
- sumfp.scm
- sum.scm
- tail.scm
- takl.scm
- tak.scm
- triangl.scm
- wc.scm
Tier 2:
- srfi 18 - more complex threading examples (probably can wait)
- api documentation (can wait?)
- online docs via read-the-docs?
- higher priority issues (need to be resolved, but can wait?)
- revisit macro hygiene issues
- library issues (name conflicts and limited feature set)