mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-16 06:14:59 +00:00
Estimated hours taken: 6 Branches: main Enforce namespace cleanliness in the library and browser directories as well as in the runtime and trace directories. Mmake.common.in: Move the rules check_namespace here (they used to be in the Mmakefiles of the runtime and trace directories), together with the variables they need. Generalize them to also handle the needs of the browser, library and bytecode directories. The former two in particular need the ability to check automatically generated .mh files. Make all the rules used by check_namespace conditional on a macro that is defined by the Makefiles in all the directories that are checked for namespace cleanliness. trace/Mmakefile: runtime/Mmakefile: Replace the old rules for check_namespace, which are now in ../Mmake.common.in, with the macros needed to control their behavior. bytecode/Mmakefile: Add the macros needed to control the behavior of the rules for check_namespace. Move the lists of files to the start, before the include of ../Mmake.common. browser/Mmakefile: library/Mmakefile: Add the macros needed to control the behavior of the rules for check_namespace. runtime/RESERVED_MACRO_NAMES: Update comments, and delete obsolete exceptions. browser/RESERVED_MACRO_NAMES: library/RESERVED_MACRO_NAMES: New files to contain the exceptions from the naming scheme. tools/bootcheck: Invoke "mmake check_namespace" in the library and browser directories as well as the runtime and the trace directories. Perform the invocation before we delete the object files we are checking for cleanliness. Clean up object files in all stage2 directories, not just the library, as soon as we can. library/array.m: library/builtin.m: library/io.m: library/time.m: Fix namespace violations.
This directory holds the source code for the Mercury bytecode utilities. `mdis' is the Mercury bytecode disassembler. `mbi' is the Mercury bytecode interpreter. `libmbi' is the same thing, minus main(). All exported symbols defined in modules in this directory should be prefixed with `MB_', for "Mercury Bytecode", to avoid clashes with names defined in other packages.