[m-rev.] diff: unlimit stacks in hlc grades

Zoltan Somogyi zs at unimelb.edu.au
Wed Mar 28 10:27:56 AEDT 2012


The concept has already been reviewed by Julien, and the implementation is
trivial.

Zoltan.

Prevent not just the deep profiler, but also the other programs in the
Mercury system from running out of stack in hlc grades.

mdbcomp/shared_utilities.m:
	A new module to contain the predicate that increases OS limits
	on stack usage as much as possible.

mdbcomp/mdbcomp.m:
	Include the new module in this package.

deep_profiler/startup.m:
	Remove the stack unlimit predicate that is now in
	mdbcomp/shared_utilities.m.

deep_profiler/Mmakefile:
slice/Mmakefile:
	Copy the new file over from mdbcomp, along with the rest of the files
	in the mdbcomp package.

compiler/mercury_compile.m:
slice/mcov.m:
slice/mdice.m:
slice/mslice.m:
slice/mtc_diff.m:
slice/mtc_union.m:
	Invoke the stack unlimit predicate.

mdbcomp/prim_data.m:
	Fix a missing divider.

cvs diff: Diffing .
cvs diff: Diffing analysis
cvs diff: Diffing bindist
cvs diff: Diffing boehm_gc
cvs diff: Diffing boehm_gc/Mac_files
cvs diff: Diffing boehm_gc/cord
cvs diff: Diffing boehm_gc/cord/private
cvs diff: Diffing boehm_gc/doc
cvs diff: Diffing boehm_gc/extra
cvs diff: Diffing boehm_gc/include
cvs diff: Diffing boehm_gc/include/extra
cvs diff: Diffing boehm_gc/include/private
cvs diff: Diffing boehm_gc/libatomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/doc
cvs diff: Diffing boehm_gc/libatomic_ops/src
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/armcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/gcc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/hpc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/ibmc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/icc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/msftc
cvs diff: Diffing boehm_gc/libatomic_ops/src/atomic_ops/sysdeps/sunc
cvs diff: Diffing boehm_gc/libatomic_ops/tests
cvs diff: Diffing boehm_gc/libatomic_ops-1.2
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/doc
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/src/atomic_ops/sysdeps
cvs diff: Diffing boehm_gc/libatomic_ops-1.2/tests
cvs diff: Diffing boehm_gc/m4
cvs diff: Diffing boehm_gc/tests
cvs diff: Diffing browser
cvs diff: Diffing bytecode
cvs diff: Diffing compiler
Index: compiler/mercury_compile.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mercury_compile.m,v
retrieving revision 1.520
diff -u -b -r1.520 mercury_compile.m
--- compiler/mercury_compile.m	18 Jan 2012 03:16:18 -0000	1.520
+++ compiler/mercury_compile.m	27 Mar 2012 11:36:52 -0000
@@ -57,6 +57,7 @@
 :- import_module make.options_file.
 :- import_module make.util.
 :- import_module mdbcomp.prim_data.
+:- import_module mdbcomp.shared_utilities.
 :- import_module ml_backend.maybe_mlds_to_gcc.
 :- import_module parse_tree.equiv_type.
 :- import_module parse_tree.error_util.
@@ -110,6 +111,8 @@
     io.set_output_stream(StdErr, _, !IO),
     io.command_line_arguments(CmdLineArgs, !IO),
 
+    unlimit_stack(!IO),
+
     % Replace all @file arguments with the contents of the file
     expand_at_file_arguments(CmdLineArgs, Res, !IO),
     (
cvs diff: Diffing compiler/notes
cvs diff: Diffing deep_profiler
Index: deep_profiler/Mmakefile
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/deep_profiler/Mmakefile,v
retrieving revision 1.43
diff -u -b -r1.43 Mmakefile
--- deep_profiler/Mmakefile	16 Feb 2012 00:15:05 -0000	1.43
+++ deep_profiler/Mmakefile	27 Mar 2012 11:33:54 -0000
@@ -66,6 +66,7 @@
 	prim_data.m \
 	program_representation.m \
 	rtti_access.m \
+	shared_utilities.m \
 	slice_and_dice.m \
 	trace_counts.m
 
Index: deep_profiler/startup.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/deep_profiler/startup.m,v
retrieving revision 1.30
diff -u -b -r1.30 startup.m
--- deep_profiler/startup.m	26 Mar 2012 06:36:00 -0000	1.30
+++ deep_profiler/startup.m	27 Mar 2012 12:32:08 -0000
@@ -48,6 +48,7 @@
 :- import_module exclude.
 :- import_module mdbcomp.
 :- import_module mdbcomp.program_representation.
+:- import_module mdbcomp.shared_utilities.
 :- import_module measurements.
 :- import_module profile.
 :- import_module read_profile.
@@ -67,7 +68,13 @@
 
 read_and_startup(Machine, ScriptName, DataFileName, Canonical,
         MaybeOutputStream, DumpStages, DumpOptions, Result, !IO) :-
+    % Any limits on stack size bite mostly during startup, which is why
+    % this call is here. The alternative design would be to invoke
+    % unlimit_stack separately in every program in this directory.
+    % That would be error-prone, since adding the call would be easy to miss
+    % when adding a new program.
     unlimit_stack(!IO),
+
     maybe_report_stats(MaybeOutputStream, !IO),
     maybe_report_msg(MaybeOutputStream,
         "% Reading graph data...\n", !IO),
@@ -1104,51 +1111,5 @@
 maybe_report_msg(no, _, !IO).
 
 %-----------------------------------------------------------------------------%
-
-    % When the deep profiler is compiled in hlc grades, on many systems
-    % large profiling data files cannot be processed using only the default
-    % size of the C stack. This predicate tells the OS to allow the stack
-    % to grow as large as it needs to.
-    %
-    % In llc grades, this predicate has no useful effect. The stack size
-    % limit can be lifted in such grades by using their .stseg versions.
-    %
-    % Any limits on stack size bite mostly during startup, which is why
-    % this predicate is in this module. The alternative design would be
-    % to move this predicate to a utility module and export it from there,
-    % and then invoke it separately in every program in this directory
-    % that calls startup. That would be error-prone, since adding the call
-    % would be easy to miss when adding a new program.
-    %
-:- pred unlimit_stack(io::di, io::uo) is det.
-
-:- pragma foreign_proc("C",
-    unlimit_stack(S0::di, S::uo),
-    [will_not_call_mercury, promise_pure],
-"{
-#ifdef  MR_DEEP_PROFILER_ENABLED
-    struct rlimit   limit_struct;
-    rlim_t          max_value;
-
-    if (getrlimit(RLIMIT_STACK, &limit_struct) != 0) {
-        MR_fatal_error(""could not get current stack limit"");
-    }
-
-    max_value = limit_struct.rlim_max;
-    limit_struct.rlim_cur = limit_struct.rlim_max;
-    /* If this fails, we have no recourse, so ignore any failure. */
-    (void) setrlimit(RLIMIT_STACK, &limit_struct);
-
-    S = S0;
-#else
-    MR_fatal_error(""deep profiling not enabled"");
-#endif
-}").
-
-unlimit_stack(!IO).
-    % The default definition, for non-C backends, which may not HAVE
-    % a stack that is subject to setrusage().
-
-%-----------------------------------------------------------------------------%
 :- end_module startup.
 %-----------------------------------------------------------------------------%
cvs diff: Diffing deep_profiler/notes
cvs diff: Diffing doc
cvs diff: Diffing extras
cvs diff: Diffing extras/base64
cvs diff: Diffing extras/cgi
cvs diff: Diffing extras/complex_numbers
cvs diff: Diffing extras/complex_numbers/samples
cvs diff: Diffing extras/complex_numbers/tests
cvs diff: Diffing extras/curs
cvs diff: Diffing extras/curs/samples
cvs diff: Diffing extras/curses
cvs diff: Diffing extras/curses/sample
cvs diff: Diffing extras/dynamic_linking
cvs diff: Diffing extras/error
cvs diff: Diffing extras/fixed
cvs diff: Diffing extras/gator
cvs diff: Diffing extras/gator/generations
cvs diff: Diffing extras/gator/generations/1
cvs diff: Diffing extras/graphics
cvs diff: Diffing extras/graphics/easyx
cvs diff: Diffing extras/graphics/easyx/samples
cvs diff: Diffing extras/graphics/mercury_allegro
cvs diff: Diffing extras/graphics/mercury_allegro/examples
cvs diff: Diffing extras/graphics/mercury_allegro/samples
cvs diff: Diffing extras/graphics/mercury_allegro/samples/demo
cvs diff: Diffing extras/graphics/mercury_allegro/samples/mandel
cvs diff: Diffing extras/graphics/mercury_allegro/samples/pendulum2
cvs diff: Diffing extras/graphics/mercury_allegro/samples/speed
cvs diff: Diffing extras/graphics/mercury_cairo
cvs diff: Diffing extras/graphics/mercury_cairo/samples
cvs diff: Diffing extras/graphics/mercury_cairo/samples/data
cvs diff: Diffing extras/graphics/mercury_cairo/tutorial
cvs diff: Diffing extras/graphics/mercury_glfw
cvs diff: Diffing extras/graphics/mercury_glfw/samples
cvs diff: Diffing extras/graphics/mercury_glut
cvs diff: Diffing extras/graphics/mercury_opengl
cvs diff: Diffing extras/graphics/mercury_tcltk
cvs diff: Diffing extras/graphics/samples
cvs diff: Diffing extras/graphics/samples/calc
cvs diff: Diffing extras/graphics/samples/gears
cvs diff: Diffing extras/graphics/samples/maze
cvs diff: Diffing extras/graphics/samples/pent
cvs diff: Diffing extras/lazy_evaluation
cvs diff: Diffing extras/lex
cvs diff: Diffing extras/lex/samples
cvs diff: Diffing extras/lex/tests
cvs diff: Diffing extras/log4m
cvs diff: Diffing extras/logged_output
cvs diff: Diffing extras/monte
cvs diff: Diffing extras/moose
cvs diff: Diffing extras/moose/samples
cvs diff: Diffing extras/moose/tests
cvs diff: Diffing extras/mopenssl
cvs diff: Diffing extras/morphine
cvs diff: Diffing extras/morphine/non-regression-tests
cvs diff: Diffing extras/morphine/scripts
cvs diff: Diffing extras/morphine/source
cvs diff: Diffing extras/net
cvs diff: Diffing extras/odbc
cvs diff: Diffing extras/posix
cvs diff: Diffing extras/posix/samples
cvs diff: Diffing extras/quickcheck
cvs diff: Diffing extras/quickcheck/tutes
cvs diff: Diffing extras/references
cvs diff: Diffing extras/references/samples
cvs diff: Diffing extras/references/tests
cvs diff: Diffing extras/solver_types
cvs diff: Diffing extras/solver_types/library
cvs diff: Diffing extras/trailed_update
cvs diff: Diffing extras/trailed_update/samples
cvs diff: Diffing extras/trailed_update/tests
cvs diff: Diffing extras/windows_installer_generator
cvs diff: Diffing extras/windows_installer_generator/sample
cvs diff: Diffing extras/windows_installer_generator/sample/images
cvs diff: Diffing extras/xml
cvs diff: Diffing extras/xml/samples
cvs diff: Diffing extras/xml_stylesheets
cvs diff: Diffing java
cvs diff: Diffing java/runtime
cvs diff: Diffing library
cvs diff: Diffing m4
cvs diff: Diffing mdbcomp
Index: mdbcomp/mdbcomp.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/mdbcomp/mdbcomp.m,v
retrieving revision 1.9
diff -u -b -r1.9 mdbcomp.m
--- mdbcomp/mdbcomp.m	13 Jan 2011 00:36:56 -0000	1.9
+++ mdbcomp/mdbcomp.m	27 Mar 2012 21:09:50 -0000
@@ -1,5 +1,5 @@
 %---------------------------------------------------------------------------%
-% vim: ft=mercury ts=4 sw=4 et wm=0 tw=0
+% vim: ts=4 sw=4 et ft=mercury
 %---------------------------------------------------------------------------%
 % Copyright (C) 2003, 2005-2006, 2010-2011 The University of Melbourne.
 % This file may only be copied under the terms of the GNU Library General
@@ -29,6 +29,7 @@
 :- include_module prim_data.
 :- include_module program_representation.
 :- include_module rtti_access.
+:- include_module shared_utilities.
 :- include_module slice_and_dice.
 :- include_module trace_counts.
 
Index: mdbcomp/prim_data.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/mdbcomp/prim_data.m,v
retrieving revision 1.38
diff -u -b -r1.38 prim_data.m
--- mdbcomp/prim_data.m	26 Sep 2011 04:30:47 -0000	1.38
+++ mdbcomp/prim_data.m	27 Mar 2012 21:10:00 -0000
@@ -1,3 +1,4 @@
+%-----------------------------------------------------------------------------%
 % vim: ft=mercury ts=4 sw=4 et
 %-----------------------------------------------------------------------------%
 % Copyright (C) 2005-2009, 2011 The University of Melbourne.
Index: mdbcomp/shared_utilities.m
===================================================================
RCS file: mdbcomp/shared_utilities.m
diff -N mdbcomp/shared_utilities.m
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ mdbcomp/shared_utilities.m	27 Mar 2012 12:19:47 -0000
@@ -0,0 +1,52 @@
+%---------------------------------------------------------------------------%
+% vim: ft=mercury ts=4 sw=4 et
+%---------------------------------------------------------------------------%
+% Copyright (C) 2012 The University of Melbourne.
+% This file may only be copied under the terms of the GNU Library General
+% Public License - see the file COPYING.LIB in the Mercury distribution.
+%---------------------------------------------------------------------------%
+%
+% This module contains utility predicates that may be useful in several
+% directories of the Mercury system.
+
+:- module mdbcomp.shared_utilities.
+:- interface.
+
+:- import_module io.
+
+    % When the deep profiler is compiled in hlc grades, on many systems
+    % large profiling data files cannot be processed using only the default
+    % size of the C stack. Similarly, when the compiler is compiled in hlc
+    % grades, it often runs out of stack when compiling large input files.
+    %
+    % This predicate tells the OS to allow the system stack to grow
+    % as large as it needs to, subject only to the hard limits enforced
+    % by the system.
+    %
+    % In llc grades, this predicate has no useful effect. The stack size
+    % limit can be lifted in such grades by using their .stseg versions.
+    %
+:- pred unlimit_stack(io::di, io::uo) is det.
+
+:- implementation.
+
+:- pragma foreign_proc("C",
+    unlimit_stack(S0::di, S::uo),
+    [will_not_call_mercury, promise_pure],
+"{
+    struct rlimit   limit_struct;
+    rlim_t          max_value;
+
+    if (getrlimit(RLIMIT_STACK, &limit_struct) != 0) {
+        MR_fatal_error(""could not get current stack limit"");
+    }
+
+    max_value = limit_struct.rlim_max;
+    limit_struct.rlim_cur = limit_struct.rlim_max;
+    /* If this fails, we have no recourse, so ignore any failure. */
+    (void) setrlimit(RLIMIT_STACK, &limit_struct);
+
+    S = S0;
+}").
+
+%---------------------------------------------------------------------------%
Index: mdbcomp/trace_counts.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/mdbcomp/trace_counts.m,v
retrieving revision 1.31
diff -u -b -r1.31 trace_counts.m
--- mdbcomp/trace_counts.m	26 Sep 2011 04:30:47 -0000	1.31
+++ mdbcomp/trace_counts.m	27 Mar 2012 21:10:33 -0000
@@ -1,5 +1,5 @@
 %-----------------------------------------------------------------------------%
-% vim: ft=mercury ts=4 sw=4 et wm=0 tw=0
+% vim: ts=4 sw=4 et ft=mercury
 %-----------------------------------------------------------------------------%
 % Copyright (C) 2005-2008, 2010-2011 The University of Melbourne.
 % This file may only be copied under the terms of the GNU General
cvs diff: Diffing profiler
cvs diff: Diffing robdd
cvs diff: Diffing runtime
cvs diff: Diffing runtime/GETOPT
cvs diff: Diffing runtime/machdeps
cvs diff: Diffing samples
cvs diff: Diffing samples/appengine
cvs diff: Diffing samples/appengine/war
cvs diff: Diffing samples/appengine/war/WEB-INF
cvs diff: Diffing samples/c_interface
cvs diff: Diffing samples/c_interface/c_calls_mercury
cvs diff: Diffing samples/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/mercury_calls_c
cvs diff: Diffing samples/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/c_interface/standalone_c
cvs diff: Diffing samples/concurrency
cvs diff: Diffing samples/concurrency/dining_philosophers
cvs diff: Diffing samples/concurrency/midimon
cvs diff: Diffing samples/diff
cvs diff: Diffing samples/java_interface
cvs diff: Diffing samples/java_interface/java_calls_mercury
cvs diff: Diffing samples/java_interface/mercury_calls_java
cvs diff: Diffing samples/lazy_list
cvs diff: Diffing samples/muz
cvs diff: Diffing samples/rot13
cvs diff: Diffing samples/solutions
cvs diff: Diffing samples/solver_types
cvs diff: Diffing samples/tests
cvs diff: Diffing samples/tests/c_interface
cvs diff: Diffing samples/tests/c_interface/c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/cplusplus_calls_mercury
cvs diff: Diffing samples/tests/c_interface/mercury_calls_c
cvs diff: Diffing samples/tests/c_interface/mercury_calls_cplusplus
cvs diff: Diffing samples/tests/c_interface/mercury_calls_fortran
cvs diff: Diffing samples/tests/c_interface/simpler_c_calls_mercury
cvs diff: Diffing samples/tests/c_interface/simpler_cplusplus_calls_mercury
cvs diff: Diffing samples/tests/diff
cvs diff: Diffing samples/tests/muz
cvs diff: Diffing samples/tests/rot13
cvs diff: Diffing samples/tests/solutions
cvs diff: Diffing samples/tests/toplevel
cvs diff: Diffing scripts
cvs diff: Diffing slice
Index: slice/Mmakefile
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/Mmakefile,v
retrieving revision 1.27
diff -u -b -r1.27 Mmakefile
--- slice/Mmakefile	16 Feb 2012 00:15:05 -0000	1.27
+++ slice/Mmakefile	27 Mar 2012 11:34:14 -0000
@@ -54,6 +54,7 @@
 	prim_data.m \
 	program_representation.m \
 	rtti_access.m \
+	shared_utilities.m \
 	slice_and_dice.m \
 	trace_counts.m
 
Index: slice/mcov.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/mcov.m,v
retrieving revision 1.9
diff -u -b -r1.9 mcov.m
--- slice/mcov.m	3 May 2011 04:35:02 -0000	1.9
+++ slice/mcov.m	27 Mar 2012 11:35:11 -0000
@@ -28,6 +28,7 @@
 :- import_module mdbcomp.
 :- import_module mdbcomp.goal_path.
 :- import_module mdbcomp.prim_data.
+:- import_module mdbcomp.shared_utilities.
 :- import_module mdbcomp.trace_counts.
 
 :- import_module assoc_list.
@@ -44,6 +45,7 @@
 :- import_module term_io.
 
 main(!IO) :-
+    unlimit_stack(!IO),
     io.command_line_arguments(Args0, !IO),
     OptionOps = option_ops_multi(short_option, long_option, option_default),
     getopt.process_options(OptionOps, Args0, Args, GetoptResult),
Index: slice/mdice.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/mdice.m,v
retrieving revision 1.4
diff -u -b -r1.4 mdice.m
--- slice/mdice.m	7 Dec 2006 05:10:38 -0000	1.4
+++ slice/mdice.m	27 Mar 2012 11:35:22 -0000
@@ -27,6 +27,7 @@
 
 :- import_module mdbcomp.
 :- import_module mdbcomp.slice_and_dice.
+:- import_module mdbcomp.shared_utilities.
 
 :- import_module getopt.
 :- import_module maybe.
@@ -36,6 +37,7 @@
 %-----------------------------------------------------------------------------%
 
 main(!IO) :-
+    unlimit_stack(!IO),
     io.command_line_arguments(Args0, !IO),
     OptionOps = option_ops_multi(short_option, long_option, option_default),
     getopt.process_options(OptionOps, Args0, Args, GetoptResult),
Index: slice/mslice.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/mslice.m,v
retrieving revision 1.4
diff -u -b -r1.4 mslice.m
--- slice/mslice.m	7 Dec 2006 05:10:38 -0000	1.4
+++ slice/mslice.m	27 Mar 2012 11:35:28 -0000
@@ -25,6 +25,7 @@
 
 :- import_module mdbcomp.
 :- import_module mdbcomp.slice_and_dice.
+:- import_module mdbcomp.shared_utilities.
 
 :- import_module getopt.
 :- import_module list.
@@ -32,6 +33,7 @@
 :- import_module string.
 
 main(!IO) :-
+    unlimit_stack(!IO),
     io.command_line_arguments(Args0, !IO),
     OptionOps = option_ops_multi(short_option, long_option, option_default),
     getopt.process_options(OptionOps, Args0, Args, GetoptResult),
Index: slice/mtc_diff.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/mtc_diff.m,v
retrieving revision 1.3
diff -u -b -r1.3 mtc_diff.m
--- slice/mtc_diff.m	1 Dec 2006 15:04:40 -0000	1.3
+++ slice/mtc_diff.m	27 Mar 2012 11:35:44 -0000
@@ -26,6 +26,7 @@
 :- implementation.
 
 :- import_module mdbcomp.
+:- import_module mdbcomp.shared_utilities.
 :- import_module mdbcomp.trace_counts.
 
 :- import_module getopt.
@@ -36,6 +37,7 @@
 %-----------------------------------------------------------------------------%
 
 main(!IO) :-
+    unlimit_stack(!IO),
     io.command_line_arguments(Args0, !IO),
     OptionOps = option_ops_multi(short_option, long_option, option_default),
     getopt.process_options(OptionOps, Args0, Args, GetoptResult),
Index: slice/mtc_union.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/slice/mtc_union.m,v
retrieving revision 1.5
diff -u -b -r1.5 mtc_union.m
--- slice/mtc_union.m	1 Dec 2006 15:04:40 -0000	1.5
+++ slice/mtc_union.m	27 Mar 2012 11:35:56 -0000
@@ -26,6 +26,7 @@
 :- implementation.
 
 :- import_module mdbcomp.
+:- import_module mdbcomp.shared_utilities.
 :- import_module mdbcomp.trace_counts.
 
 :- import_module bool.
@@ -39,6 +40,7 @@
 %-----------------------------------------------------------------------------%
 
 main(!IO) :-
+    unlimit_stack(!IO),
     io.command_line_arguments(Args0, !IO),
     OptionOps = option_ops_multi(short_option, long_option, option_default),
     getopt.process_options(OptionOps, Args0, Args, GetoptResult),
cvs diff: Diffing ssdb
cvs diff: Diffing tests
cvs diff: Diffing tests/analysis
cvs diff: Diffing tests/analysis/ctgc
cvs diff: Diffing tests/analysis/excp
cvs diff: Diffing tests/analysis/ext
cvs diff: Diffing tests/analysis/sharing
cvs diff: Diffing tests/analysis/table
cvs diff: Diffing tests/analysis/trail
cvs diff: Diffing tests/analysis/unused_args
cvs diff: Diffing tests/benchmarks
cvs diff: Diffing tests/debugger
cvs diff: Diffing tests/debugger/declarative
cvs diff: Diffing tests/dppd
cvs diff: Diffing tests/feedback
cvs diff: Diffing tests/feedback/mandelbrot
cvs diff: Diffing tests/feedback/mmc
cvs diff: [23:08:23] waiting for uid4294967294's lock in /home/mercury/mercury1/repository/tests/feedback/mmc
cvs diff: [23:08:53] obtained lock in /home/mercury/mercury1/repository/tests/feedback/mmc
cvs diff: Diffing tests/general
cvs diff: Diffing tests/general/accumulator
cvs diff: Diffing tests/general/string_format
cvs diff: Diffing tests/general/structure_reuse
cvs diff: Diffing tests/grade_subdirs
cvs diff: Diffing tests/hard_coded
cvs diff: Diffing tests/hard_coded/exceptions
cvs diff: Diffing tests/hard_coded/purity
cvs diff: Diffing tests/hard_coded/sub-modules
cvs diff: Diffing tests/hard_coded/typeclasses
cvs diff: Diffing tests/invalid
cvs diff: Diffing tests/invalid/purity
cvs diff: Diffing tests/misc_tests
cvs diff: Diffing tests/mmc_make
cvs diff: Diffing tests/mmc_make/lib
cvs diff: Diffing tests/par_conj
cvs diff: Diffing tests/recompilation
cvs diff: Diffing tests/stm
cvs diff: Diffing tests/stm/orig
cvs diff: Diffing tests/stm/orig/stm-compiler
cvs diff: Diffing tests/stm/orig/stm-compiler/test1
cvs diff: Diffing tests/stm/orig/stm-compiler/test10
cvs diff: Diffing tests/stm/orig/stm-compiler/test2
cvs diff: Diffing tests/stm/orig/stm-compiler/test3
cvs diff: Diffing tests/stm/orig/stm-compiler/test4
cvs diff: Diffing tests/stm/orig/stm-compiler/test5
cvs diff: Diffing tests/stm/orig/stm-compiler/test6
cvs diff: Diffing tests/stm/orig/stm-compiler/test7
cvs diff: Diffing tests/stm/orig/stm-compiler/test8
cvs diff: Diffing tests/stm/orig/stm-compiler/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/bm2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/stmqueue
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test10
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test11
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par/test9
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test1
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test2
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test3
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test4
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test5
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test6
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test7
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test8
cvs diff: Diffing tests/stm/orig/stm-compiler-par-asm_fast/test9
cvs diff: Diffing tests/tabling
cvs diff: Diffing tests/term
cvs diff: Diffing tests/trailing
cvs diff: Diffing tests/valid
cvs diff: Diffing tests/warnings
cvs diff: Diffing tools
cvs diff: Diffing trace
cvs diff: Diffing util
cvs diff: Diffing vim
cvs diff: Diffing vim/after
cvs diff: Diffing vim/ftplugin
cvs diff: Diffing vim/syntax
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list