mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-14 00:07:36 +02:00
Cleaning up completed and triaged items
This commit is contained in:
parent
d354c4afb7
commit
10a0ec990e
1 changed files with 0 additions and 94 deletions
94
TODO
94
TODO
|
@ -1,42 +1,12 @@
|
||||||
Initiatives:
|
Initiatives:
|
||||||
|
|
||||||
Tier 0:
|
Tier 0:
|
||||||
- CPS optimization - goal is to improve performance through CPS optimization and closure elimination
|
|
||||||
Phases:
|
|
||||||
1) use an AST to represent code instead of direct scheme.
|
|
||||||
the first benefit to this is to allow each lambda to be assigned a
|
|
||||||
unique ID. there may be other benefits.
|
|
||||||
for now, probably only need an AST node for each type of object that
|
|
||||||
will benefit from it
|
|
||||||
2) build an analysis database to collect information on the code,
|
|
||||||
see chicken internals for ideas
|
|
||||||
3) perform optimizations on the CPS using analysis information
|
|
||||||
4) code size and performance comparison between this and baseline (the master branch, for now)
|
|
||||||
|
|
||||||
- Performance
|
- Performance
|
||||||
1) Can we replace alists in any places with hashtables? Will want to measure any improvements obtained this way
|
1) Can we replace alists in any places with hashtables? Will want to measure any improvements obtained this way
|
||||||
|
|
||||||
- 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:
|
Tier 1:
|
||||||
- pass larceny benchmarks (will require some bugfixes):
|
- 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
|
benchmarks that do not finish due to
|
||||||
missing features:
|
missing features:
|
||||||
- gcbench.scm - Needed to manually import (srfi 9)
|
- gcbench.scm - Needed to manually import (srfi 9)
|
||||||
|
@ -47,72 +17,8 @@ TODO: sboyer finishes in a reasonable amount of time now, but the collector's me
|
||||||
crashes:
|
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.
|
- 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:
|
Tier 2:
|
||||||
- srfi 18 - more complex threading examples (probably can wait)
|
- srfi 18 - more complex threading examples (probably can wait)
|
||||||
- api documentation (can wait?)
|
- api documentation (can wait?)
|
||||||
- online docs via read-the-docs?
|
|
||||||
- higher priority issues (need to be resolved, but can wait?)
|
- higher priority issues (need to be resolved, but can wait?)
|
||||||
- revisit macro hygiene issues
|
- revisit macro hygiene issues
|
||||||
- library issues (name conflicts and limited feature set)
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue