-*- org -*- * compiler ** DONE ast rewrite - State "DONE" [2009-04-09 Thu 14:32] ** DONE call/cc support - State "DONE" [2009-04-09 Thu 14:36] ** DONE exceptions - State "DONE" [2009-04-09 Thu 14:45] ** TODO native x86 backend API redesign in preparation complete, initial tests on native factorial and closures working. ** DONE fasl/image files - State "DONE" from "TODO" [2017-08-30 Wed 23:13] sexp_copy_context() can form the basis for images, FASL for arbitrary modules will need additional help with resolving external references. *** DONE optional image loading on startup - State "DONE" from "TODO" [2011-11-10 Thu 20:44] *** TODO static image compiled into library With this you'll be able to run Chibi without any filesystem. *** DONE external tool to compact and optimize images - State "DONE" from "TODO" [2017-08-30 Wed 23:13] The current GC is mark&sweep, which can cause fragmentation, but we can at at least compact the initial fixed image. *** TODO fasl versions of modules Important for large applications, and fast loading of script with many dependencies. ** DONE shared stack on EVAL - State "DONE" [2009-12-26 Sat 08:22] * compiler optimizations ** DONE constant folding - State "DONE" [2009-12-16 Wed 23:25] ** DONE simplification pass, dead-code elimination - State "DONE" [2009-12-18 Fri 14:14] This is important in particular for the output generated by syntax-rules. ** TODO lambda lift The current closure representation is not very efficient, so this would help a lot. ** TODO inlining (and disabling primitive inlining) Being able to redefine procedures is important though. ** TODO unsafe operations Possibly, don't want to make things too complicated or unstable. ** TODO plugin infrastructure ** DONE type inference with warnings - State "DONE" from "TODO" [2010-09-21 Tue 23:18] *** TODO structured type inference *** DONE infer error branches CLOSED: [2011-11-14 Mon 08:17] *** TODO elide type checks from type information * macros ** DONE hygiene - State "DONE" [2009-04-09 Thu 14:41] ** DONE hygienic nested let-syntax - State "DONE" [2009-12-08 Tue 14:41] ** DONE macroexpand utility - State "DONE" [2009-12-08 Tue 14:41] ** DONE SRFI-46 basic syntax-rules extensions - State "DONE" [2009-12-26 Sat 07:59] ** DONE (... ...) support - State "DONE" [2009-12-26 Sat 02:06] ** TODO compiler macros ** TODO syntax-rules common pattern reduction ** TODO syntax-rules loop optimization * garbage collection ** DONE precise gc rewrite - State "DONE" [2009-06-22 Mon 14:27] ** DONE fix heap growing - State "DONE" [2009-06-22 Mon 14:29] ** DONE separate gc heaps - State "DONE" [2009-12-08 Tue 14:29] ** DONE add finalizers - State "DONE" [2009-12-08 Tue 14:29] ** DONE support weak references - State "DONE" from "TODO" [2010-09-21 Tue 23:16] *** TODO support proper weak key-value references * runtime ** DONE bignums - State "DONE" [2009-07-07 Tue 14:42] ** DONE unicode - State "DONE" from "TODO" [2010-07-11 Sun 23:58] Supported with UTF-8 strings, string-ref is O(n) and string-set! may need to reallocate the whole string. string-cursor-ref can be used for O(1) string access. ** DONE threads - State "DONE" from "TODO" [2010-07-11 Sun 15:31] VM now supports an optional hook for green threads, and a SRFI-18 interface is provided as a separate module. *** DONE thread-local parameters CLOSED: [2010-12-06 Mon 21:52] *** TODO efficient priority queues ** DONE virtual ports - State "DONE" [2010-01-02 Sat 20:12] ** DONE dynamic-wind - State "DONE" [2009-12-26 Sat 01:51] Adapted a version from Scheme48. ** DONE recursive disasm - State "DONE" [2009-12-18 Fri 14:15] * FFI ** DONE libdl support - State "DONE" [2009-12-08 Tue 14:45] ** DONE opcode generation interface - State "DONE" [2009-11-15 Sun 14:45] ** DONE stub generator - State "DONE" [2009-12-26 Sat 01:50] *** DONE define-c-struct - State "DONE" [2009-11-29 Sun 14:48] *** DONE define-c - State "DONE" [2009-11-29 Sun 14:48] *** DONE array return types - State "DONE" [2009-12-26 Sat 01:49] *** DONE pre-buffered string types (like getcwd) - State "DONE" [2009-12-26 Sat 01:49] * module system ** DONE scheme48-like config language - State "DONE" [2009-10-13 Tue 14:38] ** DONE shared library includes - State "DONE" [2009-12-08 Tue 14:39] ** DONE only/except/rename/prefix modifiers - State "DONE" [2009-12-16 Wed 18:57] ** DONE scheme-complete.el support - State "DONE" from "TODO" [2017-08-30 Wed 23:14] ** DONE access individual modules from repl - State "DONE" [2009-12-26 Sat 01:49] * core modules ** DONE SRFI-0 cond-expand - State "DONE" [2009-12-16 Wed 20:12] ** DONE SRFI-9 define-record-type - State "DONE" [2009-12-08 Tue 14:50] ** DONE SRFI-69 hash-tables - State "DONE" [2009-11-15 Sun 14:50] ** DONE match library - State "DONE" [2009-12-08 Tue 14:54] ** DONE loop library - State "DONE" [2009-12-08 Tue 14:54] ** DONE network interface - State "DONE" from "TODO" [2011-11-10 Thu 20:46] ** DONE posix interface - State "DONE" from "TODO" [2010-07-11 Sun 15:36] Splitting this into several parts. *** DONE filesystem interface - State "DONE" [2009-12-26 Sat 01:50] *** DONE process interface - State "DONE" [2009-12-26 Sat 01:50] *** DONE time interface - State "DONE" [2009-12-26 Sat 01:50] *** DONE host system interface - State "DONE" [2010-01-02 Sat 20:12] ** DONE pathname library - State "DONE" [2009-12-16 Wed 18:58] ** DONE uri library - State "DONE" [2009-12-16 Wed 18:58] ** DONE http library - State "DONE" from "TODO" [2015-04-09 Thu 01:22] ** DONE show (formatting) library - State "DONE" from "TODO" [2015-04-09 Thu 01:22] ** TODO zip library ** DONE tar library - State "DONE" from "TODO" [2015-04-09 Thu 01:22] ** DONE md5sum library - State "DONE" from "TODO" [2015-04-09 Thu 01:22] * ports ** DONE basic mingw support - State "DONE" [2009-06-22 Mon 14:36] ** DONE Plan 9 support - State "DONE" [2009-08-10 Mon 14:37] ** DONE 64-bit support - State "DONE" [2009-11-01 Sun 14:37] ** DONE iPhone support - State "DONE" from "TODO" [2011-11-10 Thu 20:46] ** TODO bare-metal support * miscellaneous ** DONE user documentation - State "DONE" from "TODO" [2011-11-10 Thu 20:45] ** DONE full test suite for libraries - State "DONE" from "TODO" [2017-08-30 Wed 23:14] ** TODO thorough source documentation * distribution ** DONE packaging format (Snow2) - State "DONE" from "TODO" [2015-04-09 Thu 01:22] ** DONE code repository with fetch+install tool - State "DONE" from "TODO" [2015-04-09 Thu 01:22] ** TODO translator to/from other implementations