Commit Graph

25054 Commits

Author SHA1 Message Date
Julien Fischer
97ad29f37b Fix documentation of set.map2_fold/6.
library/set.m:
    As above.
2026-02-18 21:05:36 +11:00
Julien Fischer
f7f0efc555 Yet more user guide fixes.
doc/mercury_user_guide.texi:
    As above.
2026-02-18 20:58:27 +11:00
Julien Fischer
5249f31265 Yet more user guide fixes.
docs/mercury_user_texi:
    As above.
2026-02-18 20:46:27 +11:00
Zoltan Somogyi
246bc5129e Reorder switch arms. 2026-02-18 20:42:17 +11:00
Julien Fischer
e7abff9cfa More user guide fixes.
docs/mercury_user_texi:
    As above.
2026-02-18 20:25:33 +11:00
Julien Fischer
4507b0cf16 Fix an option name in the user's guide.
docs/mercury_user_texi:
    s/--asm--labels/--asm-labels/
2026-02-18 20:21:20 +11:00
Julien Fischer
4fd875441b Fix issues in users guide.
docs/mercury_user_texi:
     As above.
2026-02-18 19:59:17 +11:00
Julien Fischer
f4b40d9ca4 Adjust documentation for random.normal_floats/7.
library/random.m:
    Use variable naming that is consistent with the ground generator version of
    normal floats and doesn't clash with the state.
2026-02-18 15:31:30 +11:00
Julien Fischer
d4bb2dcdf4 Minor documentation fix.
library/math.m:
    Fix description of solve_quadratic/3.
2026-02-18 15:08:23 +11:00
Julien Fischer
0c72ee7370 Fixes for io module documentation.
library/io.m:
    Fix some copy-and-paste errors.

    Fix grammar and punctuation.
2026-02-18 15:00:47 +11:00
Julien Fischer
61e7f23d19 Fixes for list module documentation.
library/list.m:
    As above, mainly copy-and-paste errors.
2026-02-18 14:34:41 +11:00
Julien Fischer
d273f35d57 Fixes for reference manual.
doc/mercury_reference_manual.texi:
    Fix spelling, grammar and punctuation.

    Fix some incorrect examples.

    Fix inconsistent markup.
2026-02-18 14:23:15 +11:00
Julien Fischer
b7233ff507 Minor fixes for profiler documentation.
profiler/mercury_profile.m:
    Fix some comments.

profiler/options.m:
    Add a missing period.
2026-02-18 13:51:47 +11:00
Zoltan Somogyi
7b549bc6ae Fix typos. 2026-02-18 13:09:25 +11:00
Zoltan Somogyi
54b6bfc354 Put the contents of equiv_type.m in top-down order. 2026-02-18 09:38:16 +11:00
Zoltan Somogyi
51282bd2a4 Document forcing preds for type_spec pragmas.
compiler/higher_order.specialize_in_module.m:
    Document the meaning of a field.

compiler/add_pragma_type_spec.m:
compiler/hlds_module.m:
    Change the code filling and using that field to avoid misleading
    variable and predicate names. Add some extra documentation
    where that can help.
2026-02-17 22:24:31 +11:00
Zoltan Somogyi
019ea41ec4 Break up add_pragma.m into four new modules.
compiler/add_pragma_decl.m:
compiler/add_pragma_gen.m:
compiler/add_pragma_impl.m:
    These three new modules add declarative pragmas, implementation pragmas,
    and compiler-generated pragmas to the HLDS respectively.

compiler/add_pragma_util.m:
    This new module contains the parts of the old add_pragma.m
    that are needed by more than one of the three modules above.

compiler/add_pragma.m:
    Delete this module.

compiler/notes/compiler_design.html:
    Update the relevant documentation.

compiler/add_pragma_tabling.m:
    Use standard length section dividers.

compiler/make_hlds.m:
    Include the new modules.

compiler/make_hlds_passes.m:
    Import the new modules.
2026-02-17 16:45:43 +11:00
Zoltan Somogyi
ab0d1a31a2 Carve add_pragma_type_spec_constr.m ...
... out of add_pragma_type_spec.m.

compiler/add_pragma_type_spec.m:
compiler/add_pragma_type_spec_constr.m:
    As above.

compiler/add_pragma.m:
    Import the new module.

compiler/make_hlds.m:
    Include the new module.

compiler/notes/compiler_design.html:
    Document the new module.
2026-02-17 15:11:03 +11:00
Zoltan Somogyi
29deb20fde Fix the --show-pred-movability option.
I seem to have been broken it on Aug 18 with the move to associate
a option with every severity_informational spec. The code added then
treated all these options as bool options, but one is not.

compiler/error_util.m:
    Allow a severity_informational spec to depend on an accumulating
    option, which --show-pred-movability is.

    As far as I can see, it is the only non-bool option used
    in such messages, but since we don't have a database of
    options named in severity_informational specs, I can't be sure.

compiler/hlds_call_tree.m:
    Avoid printing a sentence when its subject is moot.

tests/valid/show_movability.m:
    New test case to test the --show-pred-movability option.

tests/valid/Mercury.options:
    Specify the option for the new test case.
2026-02-17 14:11:41 +11:00
Zoltan Somogyi
aa3f3445d8 Add test case for the last bug fix. 2026-02-17 10:15:57 +11:00
Zoltan Somogyi
465e82ed6d Fix an abort. 2026-02-17 08:51:22 +11:00
Zoltan Somogyi
3a431411cd Pass goal components when those are wanted.
Move a predicate next to a related predicate.
2026-02-17 08:49:51 +11:00
Zoltan Somogyi
ac6abd4694 Delete obsolete history from two comments. 2026-02-17 08:48:54 +11:00
Zoltan Somogyi
6c45431924 Give a predicate a more descriptive name. 2026-02-17 08:48:28 +11:00
Zoltan Somogyi
88c7d52bb6 Simplify a call. 2026-02-17 08:47:59 +11:00
Julien Fischer
8ed7f24b20 Fix a bug in the interpreter sample.
Commit 92f60e5c7 inadvertently changed the conjunction operator recognised by
this program from "," to ", ". Fix that.

samples/interpreter.m:
tests/debugger/interpreter.m:
     As above.
2026-02-16 16:15:44 +11:00
Julien Fischer
1adccd0b65 Fix typos in integer module.
library/integer.m:
    As above.
2026-02-16 15:50:34 +11:00
Zoltan Somogyi
33fb4d7618 Fix a mismatch between old and new code.
compiler/unused_args.m:
    Make the new version of a test succeeds, where the old version
    *looked like* it failed, but did not.

compiler/lambda.m:
    Fix misleading module comment.
2026-02-16 15:23:12 +11:00
Julien Fischer
97a49d6dea Minor fixes for diff sample.
samples/diff/diff_out.m:
    s/effected/affected in a couple of spots.

samples/diff/globals.m
samples/diff/options.m:
    Fix typos.
2026-02-16 14:58:41 +11:00
Julien Fischer
39db3051b8 Fix errors in thread.future.
library/thread.future.m:
    Fix documnetation errors.
2026-02-16 14:30:14 +11:00
Julien Fischer
bbd760e67c Fix errors in thread.barrier.
library/thread.barrier.m:
    Fix errors documentation.

    Fix an incorrect error message.
2026-02-16 14:18:33 +11:00
Julien Fischer
66a346e41d Fix errors in version_store documentation.
library/version_store.m:
    As above.
2026-02-16 14:06:32 +11:00
Julien Fischer
8f61d08328 Fix errors in version_array2d documentation.
library/version_array2d.m:
    As above.
2026-02-16 13:56:50 +11:00
Julien Fischer
86969081cb Adjust version_array documentation.
library/version_array.m:
     As above.
2026-02-16 13:48:24 +11:00
Zoltan Somogyi
e513a340fb A minor style improvement. 2026-02-16 12:47:25 +11:00
Zoltan Somogyi
b024b5f533 Carve build_eqv_maps.m out of equiv_type.m.
compiler/build_eqv_maps.m:
compiler/equiv_type.m:
    As above.

compiler/parse_tree.m:
compiler/notes/compiler_design.html:
    Include and document the new module.

compiler/decide_type_repn.m:
compiler/equiv_type_hlds.m:
compiler/make_hlds_passes.m:
compiler/mercury_compile_make_hlds.m:
compiler/qual_info.m:
    Conform to the changes above.
2026-02-16 11:11:10 +11:00
Zoltan Somogyi
4254e2f648 Make some variable names more descriptive. 2026-02-16 10:00:56 +11:00
Zoltan Somogyi
5275a670b7 Fix too-long lines. 2026-02-16 08:32:17 +11:00
Zoltan Somogyi
17dfe80eb6 Give some predicates better names. 2026-02-16 07:40:41 +11:00
Zoltan Somogyi
8597feaae6 Improve two rarely-seen diagnostics.
compiler/parse_type_defn.m:
    As above.

tests/invalid/field_syntax_error.{m,err_exp}:
tests/invalid/types.{m,err_exp}:
    Add an instance of each bug the diagnostics are for,
    and test for the updated diagnostic text.
2026-02-15 23:45:25 +11:00
Zoltan Somogyi
f51eb26a44 Delete some obsolete XXXs. 2026-02-15 22:10:12 +11:00
Zoltan Somogyi
5f4a14a189 Clarify the diagnostics about missing section markers.
compiler/parse_module.m:
    When complaining about missing ":- interface"/":- implementation" markers,
    reword the diagnostic to clarify that these should come after
    the initial ":- module" declaration.

tests/invalid_make_int/missing_initial_section.int_err_exp:
tests/invalid_nodepend/bigtest.err_exp:
tests/invalid_nodepend/errors_1.err_exp:
tests/invalid_nodepend/errors_2.err_exp:
tests/invalid_nodepend/errors_3.err_exp:
tests/invalid_nodepend/funcs_as_preds.err_exp:
tests/invalid_nodepend/invalid_main.err_exp:
tests/invalid_nodepend/no_exports.err_exp:
tests/invalid_nodepend/occurs.err_exp:
tests/invalid_nodepend/prog_io_erroneous.err_exp:
tests/invalid_nodepend/types.err_exp:
tests/invalid_nodepend/vars_in_wrong_places.err_exp:
    Expect the updated wording.
2026-02-15 16:20:34 +11:00
Zoltan Somogyi
1cc34eb911 Simplify the "warn about unused args?" test.
compiler/unused_args.m:
    The old code that we use to decide whether we want to warn
    about unused args in a predicate was built up piecemeal
    over a long time, mostly before the creation pred_origins.
    It never had a cohesive design.

    Add a new version of the test that has a cohesive design,
    consisting of just a test of the pred_status, and a case analysis
    of the various possible values of the pred's origin.

    Add code to automatically compare the result of the old and new tests,
    and abort if they do not match. After a few days of tests on code
    other than the Mercury system that don't trigger any of the new exceptions,
    we can throw away the old code.
2026-02-15 14:43:58 +11:00
Zoltan Somogyi
36e8833145 Add a new option, --warn-unused-types.
When set, this option tells the compiler to generate warnings
about locally-defined types that are neither used in the module
nor exported to any other module.

compiler/options.m:
    Add the new option.

compiler/unused_types.m:
    New module to implement the new option.

compiler/mercury_compile_front_end.m:
    Invoke the new module, unless the presence of previous errors
    would make its warnings just a distraction.

compiler/check_hlds.m:
    Include the new module.

compiler/notes/compiler_design.html:
    Document the new module.

compiler/typecheck_error_wrong_type.m:
    Simplify some code.

browser/declarative_tree.m:
compiler/accumulator.m:
compiler/du_type_layout.m:
compiler/intermod.m:
compiler/mode_errors.m:
compiler/parse_inst_mode_defn.m:
compiler/polyhedron.m:
compiler/split_parse_tree_src.m:
compiler/tag_switch_util.m:
compiler/typecheck_error_unify.m:
compiler/unneeded_code.m:
deep_profiler/mdprof_test.m:
library/getopt.m:
library/getopt_io.m:
    Delete unused types reported by the new option.

library/rtti_implementation.m:
    Comment out unused type reported by the new option. This type was exported
    to both Java and C#, but this diff comments it out because neither language
    the Java or the C# runtime system seems to use the exported versions
    either. (Bootcheck in both java and csharp grades worked, with the
    same number of test case failures as before.) We do not delete it,
    because it may be useful in the future.

tests/warnings/help_text.err_exp:
    Expect the documentation of the new option.

tests/invalid_nodepend/Mmakefile:
    Specify --warn-unused-types for two test cases to test that the compiler
    does NOT generate warnings about unused types in the presence of previous
    errors.

tests/warnings/abstract_type_decl.err_exp:
tests/warnings/bug412.err_exp:
tests/warnings/warn_dead_procs.err_exp:
    Expect the new warnings for unused types.

tests/warnings/Mmakefile:
    Specify --warn-unused-types for the three test cases listed above.
2026-02-15 11:26:34 +11:00
Zoltan Somogyi
81c6c5e04a Decide what unused_args.m should do just once.
compiler/mercury_compile_middle_passes.m:
    Pass the main predicate of unused_args.m two flags that together
    specify what it should do, besides generating warnings. This makes
    the code easier to understand, since each ignored argument representing
    a set of unused_args pragmas is now preceded by a flag argument
    that says "do not generate those pragmas".

compiler/unused_args.m:
    Delete the code for deciding whether (a) we want to generate unused_args
    pragmas or (b) record unused_args information in the analysis registry.
    This is because the code doing that was duplicating the code fragments
    in mercury_compile_front_end.m and mercury_compile_augment.m that decided
    which predicate to call in mercury_compile_middle_passes.m:
    either middle_pass_for_opt_file, or output_analysis_file.

    This duplication not only violates the "Don't repeat yourself" principle",
    but also led to hard-to-understand code in unused_args.m.
2026-02-15 09:32:48 +11:00
Zoltan Somogyi
e1ff6d4077 Break up a large predicate.
Replace bools with two new bespoke types.

Replace an unnecessary fold operation.

Put some switch arms into the same order as the cases' cons_ids.
2026-02-14 22:32:44 +11:00
Zoltan Somogyi
5763792c36 Stop the unneeded export of a predicate. 2026-02-14 22:28:18 +11:00
Zoltan Somogyi
45cf0f5f92 Do not warn about foreign_procs from other modules. 2026-02-14 22:27:21 +11:00
Zoltan Somogyi
142b59f9d4 Fix typos. 2026-02-14 09:34:29 +11:00
Julien Fischer
5315e73e12 Address review comments.
library/calendar.m:
    As above.
2026-02-13 20:34:52 +11:00