Files
mercury/extras
Fergus Henderson 55ffc62ed3 Add support for exceptions to the debugger, and
Estimated hours taken: 8

Add support for exceptions to the debugger, and
add support for debugging to the exception module.

browser/debugger_interface.m:
	Add `exception' to the trace_port_type enumeration.

runtime/mercury_trace_base.h:
	Add MR_PORT_EXCEPTION to the MR_Trace_Port enumeration.

trace/mercury_trace_internal.c:
trace/mercury_trace.h:
trace/mercury_trace.c:
	Modify the code to handle MR_PORT_EXCEPTION.

extras/exceptions/exception.m:
	- Define stack layout structures for the hand-written procedures
	  `builtin_throw' and `builtin_catch'.
	- Use mktempframe() rather than mkframe() to allocate the temporary
	  frames used to prevent hijacking of the exception-catching frame
	  (this is more efficient, and avoids the need to give a stack
	  layout for those frames).
	- Change the code for builtin_throw/1 so that if MR_trace_enabled
	  is true, it calls a new function trace_throw(), which calls
	  MR_trace(..., MR_PORT_EXCEPTION, ...) for each stack frame.
	- Fix some type errors occurring for non-GC grades.
	- Fix some uses of obsolete names (e.g. replace `hp' with `MR_hp').

runtime/mercury_trace_base.c:
compiler/trace.m:
	Add some comments relating to the above changes.
1998-12-14 16:05:20 +00:00
..

This directory contains various additional libraries, tools,
and so forth that are not part of the Mercury standard library.

cgi		A couple of Mercury library modules for doing HTML forms
		programming using CGI (Common Gateway Interface).

clpr		A Mercury interface to the CLP(R) constraint solver,
		for solving arithmetic constraints on (floating point)
		real numbers.

complex_numbers
		A Mercury library package containing support for
		complex and imaginary numbers.

dynamic_linking
		An interface to the C functions dlopen(), dlsym(), etc.
		that are supported by most modern Unix systems.

exceptions	A library module containing a (tentative)
		exception handling interface for Mercury.

graphics	A couple of packages for doing graphics programming
		and GUIs in Mercury: a Mercury interface to tcl/tk
		and a Mercury binding to OpenGL.

odbc		A Mercury interface to ODBC (Open Database Connectivity),
		for interfacing to standard relational database packages.

references	A library package containing modules for manipulating
		ML-style references (mutable state).