Minor robusifications

slava 2006-11-24 09:50:25 +00:00
parent 2be3433cef
commit 2d1c7f5e0f
6 changed files with 33 additions and 25 deletions

View File

@ -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

View File

@ -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> ;

View File

@ -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 ;

View File

@ -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

View File

@ -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

View File

@ -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)