Estimated hours taken: 6
Branches: main
Improve the Erlang I/O implementation.
library/io.m:
In the Erlang implementation, implement:
- support for pushback and line number tracking in I/O streams
- seeking on binary streams
- io.write_byte, io.write_bytes
- io.make_temp
- io.get_exit_status, io.set_exit_status
Export some functions written in foreign_procs, otherwise they couldn't
be called if foreign_procs got inlined into other modules.
Fix some places in which we didn't convert Erlang error return values
to strings.
library/erlang_builtin.m:
Make the Erlang global server track the current exit status.
compiler/elds_to_erlang.m:
Make the Erlang main wrapper, return the last set exit status to the
operating system.
tests/hard_coded/Mmakefile:
tests/hard_coded/seek_test.exp:
tests/hard_coded/seek_test.m:
Add simple test case for io.seek_binary_input.
tests/hard_coded/remove_file.exp2:
Add expected output for Erlang backend.
tests/general/structure_reuse/Mmakefile:
Don't test this directory in Erlang grades.