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