diff --git a/src/init.c b/src/init.c index 6e6b106..b0042fb 100644 --- a/src/init.c +++ b/src/init.c @@ -454,7 +454,7 @@ int main( int argc, char *argv[] ) { &lisp_print ); bind_function( L"println", L"`(println stream)`: Print a new line character to `stream`, if specified, else to `*out*`.", - &lisp_print ); + &lisp_println ); bind_function( L"put!", L"", lisp_hashmap_put ); bind_function( L"put-all!", L"`(put-all! dest source)`: If `dest` is a namespace and is writable, copies all key-value pairs from `source` into `dest`.", diff --git a/src/io/print.c b/src/io/print.c index f5f80a5..d9d2998 100644 --- a/src/io/print.c +++ b/src/io/print.c @@ -350,8 +350,6 @@ lisp_println( struct stack_frame *frame, struct cons_pointer frame_pointer, output = pointer2cell( out_stream ).payload.stream.stream; println( output ); - - free( output ); } return NIL; diff --git a/src/memory/stack.c b/src/memory/stack.c index 8908fc7..6cc68a0 100644 --- a/src/memory/stack.c +++ b/src/memory/stack.c @@ -97,8 +97,8 @@ struct cons_pointer in_make_empty_frame( struct cons_pointer previous, frame->depth = depth; /* - * clearing the frame with memset would probably be slightly quicker, but - * this is clear. + * The frame has already been cleared with memset in make_vso, but our + * NIL is not the same as C's NULL. */ frame->more = NIL; frame->function = NIL; diff --git a/unit-tests/memberp.sh b/unit-tests/memberp.sh index ef442f7..a20a8b7 100644 --- a/unit-tests/memberp.sh +++ b/unit-tests/memberp.sh @@ -60,6 +60,7 @@ output=`target/psse $1 <