mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-16 14:25:56 +00:00
Fix various invasions of the user's namespace by `mercury_builtin.m',
Estimated hours taken: 6
Fix various invasions of the user's namespace by `mercury_builtin.m',
by splitting mercury_builtin.m into two modules, called builtin.m and
private_builtin.m, and ensuring that the latter is imported as if
by `:- use_module' rather than `:- import_module'.
library/builtin.m:
library/private_builtin.m:
Split mercury_builtin.m into two modules, builtin.m,
which contains stuff intended to be public,
and private_builtin.m, which contains implementation
details that are not supposed to be public.
library/mercury_builtin.m:
Add a comment saying that this module is no longer used, and
should eventually be removed. I have not removed it yet, since
that would prevent bootstrapping with the current compiler. It
will be removed as a seperate change later, once all the
changes have propagated.
compiler/prog_util.m:
Change the definition of mercury_private_builtin_module/1 and
mercury_public_builtin_module so that instead of automatically
importing mercury_builtin.m as if by `import_module', the
copiler will now automatically import builtin.m as if by
`import_module' and private_builtin.m as if by `use_module'.
compiler/polymorphism.m:
Change a call to mercury_private_builtin_module/1 for
unsafe_promise_unique to instead call mercury_public_builtin_module/1.
compiler/unify_proc.m:
Avoid hard-coding "mercury_builtin" by instead
calling one of mercury_{private,public}_builtin_module/1.
runtime/mercury_type_info.[ch]:
library/term.m:
library/std_util.m:
compiler/code_util.m:
Change a few hard-coded instances of "mercury_builtin"
to "builtin" or "private_builtin" as appropriate.
runtime/mercury_trace_util.c:
runtime/mercury_trace_internal.c:
library/prolog.m:
compiler/*.m:
Update comments that refer to "mercury_builtin" to instead
refer to either "builtin" or "private_builtin".
doc/Mmakefile:
Don't include the interface to private_builtin.m in the
library reference manual.
tools/bootcheck:
Add `-p'/`--copy-profiler' option. This is needed to get
the above changes to bootstrap.
tools/test_mercury:
Pass `-p' to tools/bootcheck.
tests/term/*.trans_opt_exp:
s/mercury_builtin/builtin/g
This commit is contained in:
@@ -368,14 +368,14 @@ code_util__translate_builtin(FullyQualifiedModule, PredName, ProcId, Args,
|
||||
maybe(rval), maybe(pair(var, rval))).
|
||||
:- mode code_util__translate_builtin_2(in, in, in, in, out, out) is semidet.
|
||||
|
||||
code_util__translate_builtin_2("mercury_builtin", "unsafe_type_cast", 0,
|
||||
code_util__translate_builtin_2("private_builtin", "unsafe_type_cast", 0,
|
||||
[X, Y], no, yes(Y - var(X))).
|
||||
code_util__translate_builtin_2("mercury_builtin", "unsafe_promise_unique", 0,
|
||||
code_util__translate_builtin_2("builtin", "unsafe_promise_unique", 0,
|
||||
[X, Y], no, yes(Y - var(X))).
|
||||
|
||||
code_util__translate_builtin_2("mercury_builtin", "builtin_int_gt", 0, [X, Y],
|
||||
code_util__translate_builtin_2("private_builtin", "builtin_int_gt", 0, [X, Y],
|
||||
yes(binop((>), var(X), var(Y))), no).
|
||||
code_util__translate_builtin_2("mercury_builtin", "builtin_int_lt", 0, [X, Y],
|
||||
code_util__translate_builtin_2("private_builtin", "builtin_int_lt", 0, [X, Y],
|
||||
yes(binop((<), var(X), var(Y))), no).
|
||||
|
||||
code_util__translate_builtin_2("int", "builtin_plus", 0, [X, Y, Z],
|
||||
|
||||
Reference in New Issue
Block a user