core: fix bad interaction between stage1 bootstrap and manifest update code

db4
Slava Pestov 2010-01-28 03:02:54 +13:00
parent 73cbf46760
commit d215c108f3
3 changed files with 12 additions and 21 deletions

View File

@ -44,7 +44,7 @@ init-caches
! Vocabulary for slot accessors
"accessors" create-vocab drop
dummy-compiler compiler-impl set
bootstrapping? on
call( -- )
call( -- )
@ -53,8 +53,6 @@ call( -- )
! After we execute bootstrap/layouts
num-types get f <array> builtins set
bootstrapping? on
[
! Create some empty vocabs where the below primitives and

View File

@ -64,16 +64,6 @@ M: f process-forgotten-words drop ;
: without-optimizer ( quot -- )
[ f compiler-impl ] dip with-variable ; inline
! Trivial compiler. We don't want to touch the code heap
! during stage1 bootstrap, it would just waste time.
SINGLETON: dummy-compiler
M: dummy-compiler to-recompile f ;
M: dummy-compiler recompile drop { } ;
M: dummy-compiler process-forgotten-words drop ;
: <definitions> ( -- pair ) { H{ } H{ } } [ clone ] map ;
SYMBOL: definition-observers
@ -143,13 +133,15 @@ M: object bump-effect-counter* drop f ;
[ drop ] [ notify-definition-observers notify-error-observers ] if ;
: finish-compilation-unit ( -- )
remake-generics
to-recompile recompile
update-tuples
process-forgotten-definitions
modify-code-heap
bump-effect-counter
notify-observers ;
[ ] [
remake-generics
to-recompile recompile
update-tuples
process-forgotten-definitions
modify-code-heap
bump-effect-counter
notify-observers
] if-bootstrapping ;
PRIVATE>

View File

@ -16,7 +16,8 @@ checksum
definitions ;
: record-top-level-form ( quot file -- )
(>>top-level-form) H{ } notify-definition-observers ;
(>>top-level-form)
[ ] [ H{ } notify-definition-observers ] if-bootstrapping ;
: record-checksum ( lines source-file -- )
[ crc32 checksum-lines ] dip (>>checksum) ;