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 - Program idea - it would be cool if we could interface with libpng. then, extend game-of-life example with new libraries (as needed) and master program that support output of each frame to a PNG file. then we can string them all together as an animated gif and post that to the cyclone repo. - 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)