tests/hard_coded/*.m:
Update programming style, unless doing so would change
the meaning of the test, in particular:
- use '.' as a module qualifier in place of '__'
- use {write,print}_line where appropriate
- use if-then-else in place of C -> T ; E
- use state variables in place of DCGs
tests/hard_coded/dir_test.m:
Document what the expected outputs correspond to.
Use a uniform module qualifier in the output.
tests/hard_coded/dir_test.exp*:
Conform to the above change.
Estimated hours taken: 6
Branches: main
Finish implementation of dir.m for Erlang backend.
library/dir.m:
Change the procedures in this module to thread `dir.stream' values
through them. In the Erlang backend a `dir.stream' is a list of file
names in a directory, rather than a handle, so an output argument is
needed when reading an entry from the stream.
Implement the missing foreign_procs for Erlang.
library/io.m:
Make the Erlang implementation of `io.file_type' support symlinks.
Implement `file_id' support for Erlang.
Fix the C implementation of compare on `file_id's, which did not take
into account file inodes at all.
Fix error handling in the Erlang implementation of
`io.make_symlink_2'.
tests/hard_coded/dir_test.exp2:
Update expected output for the fixed `file_id' comparison.
tests/hard_coded/dir_test.exp3:
Update expected output for a previous change (addition of
`dir.current_directory').
Estimated hours taken: 3
Branches: main
Fix bugs in my changes to dir.m which caused problems running
the compiler on Cygwin.
library/dir.m:
Handle Windows paths correctly on Cygwin.
library/io.m:
Add io__have_cygwin, which succeeds if the process
is compiled against the Cygwin library.
tests/hard_coded/dir_test.exp3:
Expected output on Cygwin.