From 4ba810d7f7dd1bc8ec1c226b765dd2c8ac1f8a6f Mon Sep 17 00:00:00 2001 From: slava Date: Mon, 11 Sep 2006 04:12:42 +0000 Subject: [PATCH] PowerPC icache bug --- TODO.FACTOR.txt | 10 +++++++++- vm/compiler.c | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 94d9bd2240..8d8f5aa5e0 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -1,5 +1,6 @@ + 0.85: +- "runtime-cli-args" help layout bug - pane output in UI should use less memory - signal 4 on datastack underflow on mac intel?? - faster I/O @@ -10,7 +11,6 @@ [ 1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 11 11 11 113 ] - prettier printing of hashtable literals, alists, cond, ... -- alien-indirect - more compact relocation info - problem if major gc happens during relocation - in fact relocation should not cons at all @@ -34,9 +34,11 @@ - perhaps commands window should sort by gesture - merge keyboard help with help in some way - keyboard help: hide commands whose gestures are shadowed +- division by zero may not raise an error -- document this + ui: +- page scrolling should be timer-based too - invoking interactor commands when interactor is busy -- still fucked because of grafting and ungrafting - set-model set-model* and control-changed: its a hack, clean it up @@ -74,6 +76,7 @@ + module system: +- F7: friendlier error if file deleted - convention for main entry point of a module - track a list of assets loaded from each module's file - generic 'define ( asset def -- )' @@ -111,6 +114,7 @@ + misc: +- swap nappend ==> nappend - sometimes darcs get fails with the httpd - gdb triggers 'mutliple i/o ops on port' error - factorcode httpd crashed: bad file descriptor @@ -119,5 +123,9 @@ - UDP - slice: if sequence or seq start is changed, abstraction violation - hashed generic method dispatch + ++ httpd: + +- help responder has no way to access { "foo" "bar" } - httpd search tools - remaining HTML issues need fixing diff --git a/vm/compiler.c b/vm/compiler.c index bdd1490eba..a253f84602 100644 --- a/vm/compiler.c +++ b/vm/compiler.c @@ -284,8 +284,8 @@ void primitive_finalize_compile(void) F_WORD *word = untag_word(get(AREF(pair,0))); word->xt = to_cell(get(AREF(pair,1))); } - - flush_icache((void*)last_flush,compiling.here - last_flush); + iterate_code_heap(last_flush,compiling.here,finalize_code_block); + flush_icache((void*)last_flush,compiling.here - last_flush); last_flush = compiling.here; }