From: Doug Coleman Date: Sun, 15 Nov 2009 08:52:50 +0000 (-0600) Subject: Merge branch 'master' into startup X-Git-Tag: 0.97~5102^2~78^2~10^2~1 X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=cc194416f9057c5e8b9e5299c9fc6af42b728fb1 Merge branch 'master' into startup Conflicts: core/bootstrap/primitives.factor vm/run.hpp --- cc194416f9057c5e8b9e5299c9fc6af42b728fb1 diff --cc basis/io/sockets/unix/unix.factor index d2df4d9e13,6bf62a034e..71ad5a5758 --- a/basis/io/sockets/unix/unix.factor +++ b/basis/io/sockets/unix/unix.factor @@@ -113,10 -117,10 +117,10 @@@ SYMBOL: receive-buffe CONSTANT: packet-size 65536 -[ packet-size malloc receive-buffer set-global ] "io.sockets.unix" add-init-hook +[ packet-size malloc &free receive-buffer set-global ] "io.sockets.unix" add-startup-hook :: do-receive ( port -- packet sockaddr ) - port addr>> empty-sockaddr/size :> len :> sockaddr + port addr>> empty-sockaddr/size :> ( sockaddr len ) port handle>> handle-fd ! s receive-buffer get-global ! buf packet-size ! nbytes diff --cc core/bootstrap/primitives.factor index 8058707efa,ae668ed54f..ca9056805e --- a/core/bootstrap/primitives.factor +++ b/core/bootstrap/primitives.factor @@@ -432,9 -429,9 +429,9 @@@ tupl { "set-datastack" "kernel" (( ds -- )) } { "set-retainstack" "kernel" (( rs -- )) } { "set-callstack" "kernel" (( cs -- )) } - { "exit" "system" (( n -- )) } + { "(exit)" "system" (( n -- )) } - { "data-room" "memory" (( -- cards decks generations )) } - { "code-room" "memory" (( -- code-total code-used code-free largest-free-block )) } + { "data-room" "memory" (( -- data-room )) } + { "code-room" "memory" (( -- code-room )) } { "micros" "system" (( -- us )) } { "modify-code-heap" "compiler.units" (( alist -- )) } { "(dlopen)" "alien.libraries" (( path -- dll )) } diff --cc vm/factor.cpp index 2f4994c9a2,589d1898b1..c83e9cdb6b --- a/vm/factor.cpp +++ b/vm/factor.cpp @@@ -185,16 -171,9 +171,16 @@@ void factor_vm::start_factor(vm_paramet unnest_stacks(); } +void factor_vm::stop_factor() +{ + nest_stacks(NULL); + c_to_factor_toplevel(userenv[SHUTDOWN_ENV]); + unnest_stacks(); +} + char *factor_vm::factor_eval_string(char *string) { - char *(*callback)(char *) = (char *(*)(char *))alien_offset(userenv[EVAL_CALLBACK_ENV]); + char *(*callback)(char *) = (char *(*)(char *))alien_offset(special_objects[OBJ_EVAL_CALLBACK]); return callback(string); }