diff --git a/src/CHANGELOG b/src/CHANGELOG index e810fceee..0dd59b905 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -14,6 +14,10 @@ ECL 0.9l-p1: - In compiled files, externalize package objects using FIND-PACKAGE. + - In RUN-PROGRAM, there were two bugs: first, the keyword :WAIT was not defined + in the C core and caused an error when used; second, the input/output streams + were not properly arranged. + ;;; Local Variables: *** ;;; mode:text *** ;;; fill-column:79 *** diff --git a/src/c/file.d b/src/c/file.d index 0411aa833..f3c31aedb 100644 --- a/src/c/file.d +++ b/src/c/file.d @@ -2987,8 +2987,22 @@ init_file(void) cl_object standard_output; cl_object error_output; cl_object standard; + cl_object null_stream; cl_object x; + null_stream = cl_alloc_object(t_stream); + null_stream->stream.mode = (short)smm_io; + null_stream->stream.closed = 0; + null_stream->stream.file = NULL; + null_stream->stream.object0 = @'base-char'; + null_stream->stream.object1 = make_constant_base_string("/dev/null"); + null_stream->stream.int0 = 0; + null_stream->stream.int1 = 0; + null_stream->stream.char_stream_p = 1; + null_stream->stream.byte_size = 8; + null_stream->stream.signed_bytes = 0; + cl_core.null_stream = null_stream; + standard_input = cl_alloc_object(t_stream); standard_input->stream.mode = (short)smm_input; standard_input->stream.closed = 0; diff --git a/src/c/main.d b/src/c/main.d index 0d0850a6c..d11c728ac 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -331,7 +331,7 @@ cl_boot(int argc, char **argv) cl_core.null_string = make_constant_base_string(""); - cl_core.null_stream = @make_broadcast_stream(0); + cl_core.null_stream = Cnil; /* Filled in file.d */ cl_core.system_properties = cl__make_hash_table(@'equal', MAKE_FIXNUM(1024), /* size */