Estimated hours taken: 0.25
Fix a bug that broke grades `*.gc.prof.tr'.
(This change was previously applied to the Mmakefiles
in the runtime, library, compiler, and profiler directories,
but I missed the `bytecode' directory.)
bytecode/Mmakefile:
When deciding whether to link with -lgc or -lgc_prof,
match against `*.gc*.prof*' rather than `*.gc*.prof'.
^
Estimated hours taken: 0.1
bytecode/Mmakefile
- Removed "-static" from link line since we can't use
dlopen and so on with statically linked binaries.
- Added -DDEBUGGING as C compile flag. Turn it off when
the bytecode interpreter is working.
- Added "dict" module, a dictionary ADT.
Estimated hours taken: 1
bytecode/Mmakefile:
Add new targets libmbi.{a,so}.
In profiling grades, link with -lgc_prof rather than -lgc.
bytecode/mbi.c:
Rename the main() function as BC_mbi_main().
bytecode/mbi_main.c:
New file, whose main() function just calls BC_mbi_main().
Estimated hours taken: 2
A cleanup of the bytecode stuff.
bytecode/*:
Various changes to make it conform to our C coding standard.
In particular:
- fix indentation and layout, particularly of switch
statements;
- use `#include "..."' rather than `#include <...>'
for user-defined header files
bytecode/Mmakefile:
Avoid the use of `$^' in hard-coded rules, since it is
not portable to non-GNU makes (many makes only allow the
use of variables such as $*, $^, etc. in suffix rules),
and since it is easy to avoid.
Also add an XXX comment, since the header dependency handling
is done twice.
bytecode/bytecode.c:
s/BIG_ENDING/MR_BIG_ENDIAN/ and s/LITTLE_ENDING/MR_LITTLE_ENDIAN/,
to match my recent change to runtime/conf.h.in.
In fact every identifier in the bytecode directory ought to be
prefixed with `MB_', but I haven't done that in this change.
Estimated hours taken: 0.1
Small changes to Mmakefile.
bytecode/Mmakefile:
Now linking with libmer and libgc. Added $(MERCURY_DIR)/runtime
to link path.