factor/TODO.txt

94 lines
3.1 KiB
Plaintext

= fixes:
- [ [ dup call ] dup call ] infer hangs
- copying pane output
- reverse traversal
- better hit tester
- forgetting a word should erase it from source-files-uses
- memory leak on os x
- <viewport>, smart-usage, infer-children prettyprinted ugly
- should be possible to load multiple i/o backends, compiler backends,
ui backends etc without problems
- crc32: unicode
- bignum allocators don't work for numbers which don't fit in 30 bits
- compiled call traces do not work if the runtime is built with
-fomit-frame-pointer on ppc (and amd64?)
- models: don't do redundant work
- auto-update browser and help when sources reload
- implementation of math functions needs work; uses overly naive
formulas
- fix conditions and restarts to work like CL
- amd64 structs-by-value bug
- float= doesn't consider nans equal
- clarify role of -0.0
- if a word drops the stack pointer below the bottom, then an error
won't be thrown until the next word accesses the stack
- should be possible to reload any source file in library
- slice: if sequence or seq start is changed, abstraction violation
- compiled call stack overflows shouldn't crash so hard
- finish cocoa input methods
- tuple shape changes interact in funny ways with compiler
= performance:
- long strings slow down redisplay
- if a loc appears multiple times on the phantom-stack, then we read
it more than once as each occurrence is vreg-ified
- optimize:
- all-words [ synopsis ] map drop
- yuv>rgb
- "factor.image" run-file should fail quicker!
- 10000 [ dup number>string ] map>hash describe in the UI
- apropos
- available-modules
- md5, crc32
- 100000 [ "\"hello\" not" eval drop ] times
- compilation
- make-image
- natural-sort
- spectral norm
- float arrays
- permgen
- no write barrier for stores of immediates
- compiled continuations
- memcspn is ugly, remove it and get a Factor inner loop to be as fast
- no need to generate dead code after a tail call
- cross-word type inference
- hashed generic dispatch
- minor GC takes too long now, we should card mark code heap
- incremental GC
- prettyprinter: don't build entire tree to print first
- ui inspector should work with very large objects
- intrinsics for (hashtable), <word>, <wrapper>, string>sbuf,
(fraction>), word-xt, <complex>, array>vector, <displaced-alien>,
(clone) of known size object
= features:
- it would be nice if ctrl-p, ctrl-m, ctrl-e etc could use pageup pagedown
- windows unicode input methods
- variable width word wrap
- ui crossref tool
- auto-generated docs for alien accessors
- unicode text rendering
- profiler:
- sampling instead of counting
- profile compiled code too
- ui tool
- evaluating code in the walker, somehow
- record $links as usage?
- better tuple constructors
- integrate libs/unicode/
- new module system
- compiler implementation documentation
- compiling 'curry'
- building minimal images
- cross compiling
- UDP for Windows and Solaris
- ipv6
- unicode file paths on unix
- DLL interface:
- document DLL interface
- multiple Factor instances per DLL, with clean unloading
- better exported C API