Skip to content

Latest commit

 

History

History
187 lines (175 loc) · 6.54 KB

TODO

File metadata and controls

187 lines (175 loc) · 6.54 KB

-*- org -*-

compiler

ast rewrite

  • State “DONE” [2009-04-09 Thu 14:32]

call/cc support

  • State “DONE” [2009-04-09 Thu 14:36]

exceptions

  • State “DONE” [2009-04-09 Thu 14:45]

native x86 backend

API redesign in preparation complete, initial tests on native factorial and closures working.

fasl/image files

sexp_copy_context() can form the basis for images, FASL for arbitrary modules will need additional help with resolving external references.

optional image loading on startup

  • State “DONE” from “TODO” [2011-11-10 Thu 20:44]

static image compiled into library

With this you’ll be able to run Chibi without any filesystem.

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.

fasl versions of modules

Important for large applications, and fast loading of script with many dependencies.

shared stack on EVAL

  • State “DONE” [2009-12-26 Sat 08:22]

compiler optimizations

constant folding

  • State “DONE” [2009-12-16 Wed 23:25]

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.

lambda lift

The current closure representation is not very efficient, so this would help a lot.

inlining (and disabling primitive inlining)

Being able to redefine procedures is important though.

unsafe operations

Possibly, don’t want to make things too complicated or unstable.

plugin infrastructure

type inference with warnings

  • State “DONE” from “TODO” [2010-09-21 Tue 23:18]

structured type inference

infer error branches

elide type checks from type information

macros

hygiene

  • State “DONE” [2009-04-09 Thu 14:41]

hygienic nested let-syntax

  • State “DONE” [2009-12-08 Tue 14:41]

macroexpand utility

  • State “DONE” [2009-12-08 Tue 14:41]

SRFI-46 basic syntax-rules extensions

  • State “DONE” [2009-12-26 Sat 07:59]

(… …) support

  • State “DONE” [2009-12-26 Sat 02:06]

compiler macros

syntax-rules common pattern reduction

syntax-rules loop optimization

garbage collection

precise gc rewrite

  • State “DONE” [2009-06-22 Mon 14:27]

fix heap growing

  • State “DONE” [2009-06-22 Mon 14:29]

separate gc heaps

  • State “DONE” [2009-12-08 Tue 14:29]

add finalizers

  • State “DONE” [2009-12-08 Tue 14:29]

support weak references

  • State “DONE” from “TODO” [2010-09-21 Tue 23:16]

support proper weak key-value references

runtime

bignums

  • State “DONE” [2009-07-07 Tue 14:42]

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.

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.

thread-local parameters

efficient priority queues

virtual ports

  • State “DONE” [2010-01-02 Sat 20:12]

dynamic-wind

  • State “DONE” [2009-12-26 Sat 01:51]

Adapted a version from Scheme48.

recursive disasm

  • State “DONE” [2009-12-18 Fri 14:15]

FFI

libdl support

  • State “DONE” [2009-12-08 Tue 14:45]

opcode generation interface

  • State “DONE” [2009-11-15 Sun 14:45]

stub generator

  • State “DONE” [2009-12-26 Sat 01:50]

define-c-struct

  • State “DONE” [2009-11-29 Sun 14:48]

define-c

  • State “DONE” [2009-11-29 Sun 14:48]

array return types

  • State “DONE” [2009-12-26 Sat 01:49]

pre-buffered string types (like getcwd)

  • State “DONE” [2009-12-26 Sat 01:49]

module system

scheme48-like config language

  • State “DONE” [2009-10-13 Tue 14:38]

shared library includes

  • State “DONE” [2009-12-08 Tue 14:39]

only/except/rename/prefix modifiers

  • State “DONE” [2009-12-16 Wed 18:57]

scheme-complete.el support

access individual modules from repl

  • State “DONE” [2009-12-26 Sat 01:49]

core modules

SRFI-0 cond-expand

  • State “DONE” [2009-12-16 Wed 20:12]

SRFI-9 define-record-type

  • State “DONE” [2009-12-08 Tue 14:50]

SRFI-69 hash-tables

  • State “DONE” [2009-11-15 Sun 14:50]

match library

  • State “DONE” [2009-12-08 Tue 14:54]

loop library

  • State “DONE” [2009-12-08 Tue 14:54]

network interface

  • State “DONE” from “TODO” [2011-11-10 Thu 20:46]

posix interface

  • State “DONE” from “TODO” [2010-07-11 Sun 15:36]

Splitting this into several parts.

filesystem interface

  • State “DONE” [2009-12-26 Sat 01:50]

process interface

  • State “DONE” [2009-12-26 Sat 01:50]

time interface

  • State “DONE” [2009-12-26 Sat 01:50]

host system interface

  • State “DONE” [2010-01-02 Sat 20:12]

pathname library

  • State “DONE” [2009-12-16 Wed 18:58]

uri library

  • State “DONE” [2009-12-16 Wed 18:58]

http library

show (formatting) library

zip library

tar library

md5sum library

ports

basic mingw support

  • State “DONE” [2009-06-22 Mon 14:36]

Plan 9 support

  • State “DONE” [2009-08-10 Mon 14:37]

64-bit support

  • State “DONE” [2009-11-01 Sun 14:37]

iPhone support

  • State “DONE” from “TODO” [2011-11-10 Thu 20:46]

bare-metal support

miscellaneous

user documentation

  • State “DONE” from “TODO” [2011-11-10 Thu 20:45]

full test suite for libraries

thorough source documentation

distribution

packaging format (Snow2)

code repository with fetch+install tool

translator to/from other implementations