mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-17 02:13:54 +00:00
tests/invalid/*.{m,err_exp}:
tests/misc_tests/*.m:
tests/mmc_make/*.m:
tests/par_conj/*.m:
tests/purity/*.m:
tests/stm/*.m:
tests/string_format/*.m:
tests/structure_reuse/*.m:
tests/submodules/*.m:
tests/tabling/*.m:
tests/term/*.m:
tests/trailing/*.m:
tests/typeclasses/*.m:
tests/valid/*.m:
tests/warnings/*.{m,exp}:
Make these tests use four-space indentation, and ensure that
each module is imported on its own line. (I intend to use the latter
to figure out which subdirectories' tests can be executed in parallel.)
These changes usually move code to different lines. For the tests
that check compiler error messages, expect the new line numbers.
browser/cterm.m:
browser/tree234_cc.m:
Import only one module per line.
tests/hard_coded/boyer.m:
Fix something I missed.
89 lines
2.6 KiB
Mathematica
89 lines
2.6 KiB
Mathematica
%---------------------------------------------------------------------------%
|
|
% vim: ft=mercury ts=4 sw=4 et
|
|
%---------------------------------------------------------------------------%
|
|
%
|
|
% This is a regression test for Mantis bug #44.
|
|
%
|
|
% rotd-2008-02-07 aborts with the following assertion failure
|
|
%
|
|
% Uncaught Mercury exception:
|
|
% Software Error: llds_out.m: Unexpected: stack var out of range
|
|
%
|
|
% when this program is compiled in a (decl)debug grade.
|
|
% (This test case is derived from r4597 of the G12 FlatZinc interpreter.)
|
|
%
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- module fzn_debug_abort.
|
|
:- interface.
|
|
|
|
:- import_module io.
|
|
|
|
:- pred main(io::di, io::uo) is det.
|
|
|
|
%---------------------------------------------------------------------------%
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- implementation.
|
|
|
|
:- import_module list.
|
|
:- import_module maybe.
|
|
:- import_module string.
|
|
:- import_module exception.
|
|
|
|
%---------------------------------------------------------------------------%
|
|
|
|
main(!IO) :-
|
|
MaybeItems3 = no,
|
|
SAT_Solver = msat,
|
|
do_io_stage(flatzinc_program,
|
|
evaluate_flatzinc_ast(flatzinc_sat_solver(SAT_Solver)),
|
|
MaybeItems3, _MaybeItems4, !IO).
|
|
|
|
:- pred evaluate_flatzinc_ast(Solver::in, ast::in, ast::out,
|
|
io::di, io::uo) is det <= flatzinc_solver(Solver, Var).
|
|
|
|
evaluate_flatzinc_ast(_, _, ast, !IO).
|
|
|
|
:- func flatzinc_program = string.
|
|
|
|
flatzinc_program = "flatzinc".
|
|
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- type ast ---> ast.
|
|
|
|
:- pred do_io_stage(string::in,
|
|
pred(A, B, io, io)::in(pred(in, out, di, uo) is det),
|
|
maybe(A)::in,
|
|
maybe(B)::out,
|
|
io::di, io::uo) is det.
|
|
|
|
do_io_stage(_, _, _, no, !IO).
|
|
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- typeclass flatzinc_solver(Solver, Var) <= (Solver -> Var) where [].
|
|
|
|
:- type flatzinc_sat_solver(S) ---> flatzinc_sat_solver(S).
|
|
:- type flatzinc_sat_var(L) ---> flatzinc_sat_var.
|
|
|
|
:- instance flatzinc_solver(flatzinc_sat_solver(S), flatzinc_sat_var(L))
|
|
<= clausal_sat_solver(S, L) where [].
|
|
|
|
:- typeclass clausal_sat_solver(S, L) <= (S -> L) where [].
|
|
|
|
%---------------------------------------------------------------------------%
|
|
|
|
:- solver type msat_literal where representation is int.
|
|
:- type msat_solver ---> msat_solver.
|
|
:- func msat = msat_solver.
|
|
|
|
msat = msat_solver.
|
|
|
|
:- instance clausal_sat_solver(msat_solver, msat_literal) where [].
|
|
|
|
%---------------------------------------------------------------------------%
|
|
:- end_module fzn_debug_abort.
|
|
%---------------------------------------------------------------------------%
|