mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-20 06:09:18 +02:00
They can be close()d explicitly with close-file-descriptor, and will close() on gc, but only explicitly closing the last port on them will close the fileno. Notably needed for network sockets where we open separate input and output ports on the same socket.
187 lines
6.5 KiB
Org Mode
187 lines
6.5 KiB
Org Mode
-*- 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.
|
|
** TODO fasl/image files
|
|
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.
|
|
*** TODO external tool to compact and optimize images
|
|
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.
|
|
I/O operations will currently block all threads though,
|
|
this needs to be addressed.
|
|
*** 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]
|
|
** TODO scheme-complete.el support
|
|
** 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]
|
|
** TODO http library
|
|
** TODO show (formatting) library
|
|
** TODO zip library
|
|
** TODO tar library
|
|
** TODO md5sum library
|
|
|
|
* 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]
|
|
** TODO full test suite for libraries
|
|
** TODO thorough source documentation
|
|
|
|
* distribution
|
|
** TODO packaging format (Snow2)
|
|
** TODO code repository with fetch+install tool
|
|
** TODO translator to/from other implementations
|
|
|