+ ui: - fix remaining GL issues - UI issue: try resizing slider while menu is open - make-pane: if no input, just return pane-output - keyboard completion - get outliner working with lots of lines of output - listener continuations - fix up the min thumb size hack - off-by-one error in pick-up? - closing ui does not stop timers - adding/removing timers automatically for animated gadgets - tabular output - debugger should use outlining - support nested incremental layouts more efficiently - only redraw dirty gadgets - find out why so many small bignums get consed - use incremental strategy for all pack layouts where possible - multiline editing in listener - text selection - clipboard support - bug: slider bars go to 0 pixel width/height - bug: left click to bring up context menu, click splitter bar and pane grows to 100% - bug: click tutorial, full screen, the right-most arrow icon loses the vertical bar + tutorial: - multiline code snippets - s-expression text styling language - word wrap + misc - code walker & exceptions - investigate if rehashing on startup is really necessary - remove word transfer hack in bootstrap - signal handler should not lose stack pointers + ffi: - C structs, enums, unions: use new-style string mode parsing - smarter out parameter handling - clarify powerpc passing of value struct parameters - ffi unicode strings: null char security hole - utf16 string boxing - value type structs - bitfields in C structs - setting struct members that are not * - callbacks - FIELD: char key_vector[32]; - FIELD: union { char b[20]; short s[10]; long l[5]; } data; - MEMBER: long pad[24]; - convert factor sequences to c arrays, and vice versa + compiler: - inference: try changing nth and set-nth array methods to call -unsafe, unbalanced branches error - compile interruption checks - check that set-datastack and set-callstack compile correctly in the face of optimization - floating point intrinsics - new basic block optimizer - fix fixnum/mod overflow on PowerPC - intrinsic char-slot set-char-slot - [ ] [ throw ] ifte ==> should raise 'unbalanced branches' error - declare slot types for built-ins - remove dead code after a 'throw' - flushing optimization - [ [ dup call ] dup call ] infer hangs - the invalid recursion form case needs to be fixed, for inlines too - recursion is iffy; if the stack at the recursive call doesn't match up, throw an error - compile continuations + sequences: - slice: if sequence or seq start is changed, abstraction violation - split: return vectors - set-path: iterative - specialized arrays - instances: do not use make-list - >c/c>: vector stack - search: slow - vectorize >n, n>, (get) - mutable strings simplifying string operarations - real Unicode support (strings are already 16 bits and can be extended to 21 if the need arises, but we need full character classification predicates, comparison, case conversion, sorting...) + kernel: - better prettyprinting of cond - better handling of random arrangements of html words when prettyprinting - friendlier .factor-rc load error handling - reader syntax for byte arrays, displaced aliens - out of memory error when printing global namespace - merge timers with sleeping tasks - what about tasks and timers between image restarts - there is a problem with hashcodes of words and bootstrapping - delegating generic words with a non-standard picker - code gc + i/o: - i/o tasks hanging around - faster stream-copy - reading and writing byte arrays - stream server can hang because of exception handler limitations - better i/o scheduler - utf16, utf8 encoding - if two tasks write to a unix stream, the buffer can overflow