Fixed assigning arguments to slots in the frame; also fixed a bug in bind...
But did that by switching away from using Lisp calling convention, because that broke horribly. This is bad news and must be sorted out.
This commit is contained in:
parent
cb3dcb352e
commit
f915a9993f
14 changed files with 158 additions and 112 deletions
|
|
@ -43,7 +43,7 @@ struct pso_pointer initialise_environment( uint32_t node ) {
|
|||
struct pso_pointer result = initialise_memory( node );
|
||||
|
||||
if ( truep( result ) ) {
|
||||
debug_print( L"Initialising `nil`... ", DEBUG_BOOTSTRAP, 0);
|
||||
debug_print( L"Initialising `nil`... ", DEBUG_BOOTSTRAP, 0 );
|
||||
struct pso_pointer n = allocate( NILTAG, 2 );
|
||||
|
||||
if ( ( n.page == 0 ) && ( n.offset == 0 ) ) {
|
||||
|
|
@ -52,18 +52,18 @@ struct pso_pointer initialise_environment( uint32_t node ) {
|
|||
object->payload.cons.cdr = nil;
|
||||
|
||||
nil = n;
|
||||
lock_object( nil);
|
||||
debug_print( L"success\n", DEBUG_BOOTSTRAP, 0);
|
||||
lock_object( nil );
|
||||
debug_print( L"success\n", DEBUG_BOOTSTRAP, 0 );
|
||||
} else {
|
||||
result =
|
||||
make_exception( c_string_to_lisp_string
|
||||
( L"Unexpected cell while allocating `nil`." ),
|
||||
nil, n );
|
||||
debug_print( L"fail\n", DEBUG_BOOTSTRAP, 0);
|
||||
debug_print( L"fail\n", DEBUG_BOOTSTRAP, 0 );
|
||||
}
|
||||
}
|
||||
if ( !exceptionp( result ) ) {
|
||||
debug_print( L"Initialising `t`... ", DEBUG_BOOTSTRAP, 0);
|
||||
debug_print( L"Initialising `t`... ", DEBUG_BOOTSTRAP, 0 );
|
||||
struct pso_pointer n = allocate( TRUETAG, 2 );
|
||||
|
||||
// offset is in words, and size of a pso2 is four words
|
||||
|
|
@ -73,14 +73,14 @@ struct pso_pointer initialise_environment( uint32_t node ) {
|
|||
object->payload.cons.cdr = t;
|
||||
|
||||
t = n;
|
||||
lock_object(t);
|
||||
debug_print( L"success\n", DEBUG_BOOTSTRAP, 0);
|
||||
lock_object( t );
|
||||
debug_print( L"success\n", DEBUG_BOOTSTRAP, 0 );
|
||||
} else {
|
||||
result =
|
||||
make_exception( c_string_to_lisp_string
|
||||
( L"Unexpected cell while allocating `t`." ),
|
||||
nil, n );
|
||||
debug_print( L"fail\n", DEBUG_BOOTSTRAP, 0);
|
||||
debug_print( L"fail\n", DEBUG_BOOTSTRAP, 0 );
|
||||
}
|
||||
}
|
||||
if ( !exceptionp( result ) ) {
|
||||
|
|
@ -88,7 +88,8 @@ struct pso_pointer initialise_environment( uint32_t node ) {
|
|||
result = c_bind( c_string_to_lisp_symbol( L"t" ), t, result );
|
||||
|
||||
environment_initialised = true;
|
||||
debug_print( L"\nEnvironment initialised successfully.\n", DEBUG_BOOTSTRAP, 0);
|
||||
debug_print( L"\nEnvironment initialised successfully.\n",
|
||||
DEBUG_BOOTSTRAP, 0 );
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue