Minor robusifications
parent
2be3433cef
commit
2d1c7f5e0f
|
@ -4,15 +4,25 @@
|
|||
- list operations: what if nothing is selected?
|
||||
- slider needs to be modelized
|
||||
- overhaul models, set-model* is crap
|
||||
- color picker example
|
||||
- variable width word wrap
|
||||
- graphical crossref tool
|
||||
- http://paste.lisp.org/display/30426
|
||||
- robustify stepper -- see if step back past a throw works
|
||||
- listener: if partial parse, RETURN should insert newline
|
||||
- some way of intercepting all gestures
|
||||
- compiled call traces:
|
||||
- should be independent of whenever the runtime was built with
|
||||
-fomit-frame-pointer or not
|
||||
- doesn't show #labels
|
||||
- we don't know if signal handlers run with the same stack or not
|
||||
- modules: core/ libs/ apps/
|
||||
|
||||
+ 0.88:
|
||||
|
||||
- menu Command: quots look dumb
|
||||
- top level window positioning on ms windows
|
||||
- crashes:
|
||||
- windows gcc issue
|
||||
- robustify stepper -- see if step back past a throw works
|
||||
- callback scheduling issue
|
||||
- httpd crash
|
||||
- fep when closing window
|
||||
|
@ -31,16 +41,15 @@
|
|||
- cross-word type inference
|
||||
- ui docs
|
||||
- some kind of declarative wiring framework for ui
|
||||
- compiled call traces:
|
||||
- should be independent of whenever the runtime was built with
|
||||
-fomit-frame-pointer or not
|
||||
- doesn't show #labels
|
||||
- we don't know if signal handlers run with the same stack or not
|
||||
- if we're printing a block on multiple lines, break at some words like
|
||||
set off on % # , ... and assembler opcodes
|
||||
- don't end lines with literals, shuffle words or symbols?
|
||||
- see should try to not show ; on a line by itself
|
||||
- IN: on its own line if the entire 'see' form doesn't fit
|
||||
- growable data heap
|
||||
|
||||
+ ui:
|
||||
|
||||
- listener: if partial parse, RETURN should insert newline
|
||||
- some way of intercepting all gestures
|
||||
- how do we refer to command shortcuts in the docs?
|
||||
- editor:
|
||||
- autoscroll
|
||||
|
@ -51,7 +60,6 @@
|
|||
|
||||
+ module system:
|
||||
|
||||
- modules: core/ libs/ apps/
|
||||
- track a list of assets loaded from each module's file
|
||||
- C types should be words
|
||||
- TYPEDEF: float { ... } { ... } ; ==> \ float T{ c-type ... } "c-type" swp
|
||||
|
@ -76,22 +84,13 @@
|
|||
- C functions returning structs by value
|
||||
- compiled continuations
|
||||
|
||||
+ prettyprinter:
|
||||
|
||||
- clean it up
|
||||
- if we're printing a block on multiple lines, break at some words like
|
||||
set off on % # , ... and assembler opcodes
|
||||
- don't end lines with literals, shuffle words or symbols?
|
||||
- see should try to not show ; on a line by itself
|
||||
- IN: on its own line if the entire 'see' form doesn't fit
|
||||
- don't build entire tree to print first
|
||||
|
||||
+ misc:
|
||||
|
||||
- prettyprinter: clean it up
|
||||
- prettyprinter: don't build entire tree to print first
|
||||
- automatic help/effects for slot accessors
|
||||
- tuple shape changes
|
||||
- should be possible to reload any source file in library
|
||||
- growable data heap
|
||||
- minor GC takes too long now, we should card mark code heap
|
||||
- buffer-ptr should be an alien
|
||||
- swap nappend ==> nappend
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
IN: sequences
|
||||
USING: generic kernel kernel-internals math namespaces
|
||||
strings vectors ;
|
||||
strings vectors errors ;
|
||||
|
||||
: head-slice ( seq n -- slice ) 0 swap rot <slice> ;
|
||||
|
||||
|
@ -66,7 +66,9 @@ strings vectors ;
|
|||
dupd (cut) >r , r> (group)
|
||||
] if ;
|
||||
|
||||
: group ( seq n -- groups ) [ swap (group) ] { } make ;
|
||||
: group ( seq n -- groups )
|
||||
dup 0 <= [ "Invalid group count" throw ] when
|
||||
[ swap (group) ] { } make ;
|
||||
|
||||
: start-step ( subseq seq n -- subseq slice )
|
||||
pick length dupd + rot <slice> ;
|
||||
|
|
|
@ -46,6 +46,7 @@ M: object digit> drop f ;
|
|||
dup 10 < [ CHAR: 0 + ] [ 10 - CHAR: a + ] if ;
|
||||
|
||||
: integer, ( num radix -- )
|
||||
dup 1 <= [ "Invalid radix" throw ] when
|
||||
dup >r /mod >digit , dup 0 >
|
||||
[ r> integer, ] [ r> 2drop ] if ;
|
||||
|
||||
|
|
|
@ -202,8 +202,6 @@ unit-test
|
|||
|
||||
[ 1 ] [ 1/2 { 1 2 3 } nth ] unit-test
|
||||
|
||||
[ { } ] [ { } 0 group ] unit-test
|
||||
|
||||
! Pathological case
|
||||
[ "ihbye" ] [ "hi" <reversed> "bye" append ] unit-test
|
||||
|
||||
|
@ -223,3 +221,5 @@ unit-test
|
|||
[ { 1 4 7 } ] [ "seq" get 0 <column> >array ] unit-test
|
||||
[ ] [ "seq" get 1 <column> [ sq ] inject ] unit-test
|
||||
[ { 4 25 64 } ] [ "seq" get 1 <column> >array ] unit-test
|
||||
|
||||
[ { 1 2 3 } 0 group ] unit-test-fails
|
||||
|
|
|
@ -120,3 +120,7 @@ unit-test
|
|||
! { 1.0/0.0 -1.0/0.0 0.0/0.0 }
|
||||
! [ dup number>string string>number = ] all?
|
||||
! ] unit-test
|
||||
|
||||
[ 1 1 >base ] unit-test-fails
|
||||
[ 1 0 >base ] unit-test-fails
|
||||
[ 1 -1 >base ] unit-test-fails
|
||||
|
|
|
@ -252,6 +252,8 @@ INLINE void maybe_gc(CELL a)
|
|||
{
|
||||
if(nursery.here + a + ALLOT_BUFFER_ZONE > nursery.limit)
|
||||
garbage_collection(NURSERY,false);
|
||||
if(nursery.here + a + ALLOT_BUFFER_ZONE > nursery.limit)
|
||||
critical_error("Out of memory in maybe_gc",0);
|
||||
}
|
||||
|
||||
INLINE void *allot(CELL a)
|
||||
|
|
Loading…
Reference in New Issue