mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-23 05:13:48 +00:00
Estimated hours taken: 3
Fix the code in the runtime so that `mmake check_headers' succeeds.
runtime/*.h:
Add #include statements to make all the header files
self-contained.
runtime/mercury_table.h:
runtime/mercury_table.c:
Delete these empty files.
For some reason zs left these files as empty instead of deleting
them when he renamed the module as mercury_hash_table.{h,c}.
runtime/mercury_table_builtins.h:
runtime/mercury_table_enum.h:
runtime/mercury_table_any.h:
runtime/mercury_table_type_info.h:
runtime/mercury_table_builtins.c:
runtime/mercury_table_enum.c:
runtime/mercury_table_any.c:
runtime/mercury_table_type_info.c:
runtime/mercury_tabling.h:
runtime/mercury_tabling.c:
Avoid a circular dependency problem (mercury_tabling.h
depended on mercury_table_*.h which in turn depended on
mercury_tabling.h) by moving all the tabling code into
a single module mercury_tabling.{h,c}.
The new module is a total of 1100 lines of code,
which is not too large IMHO.
Also improve the documentation a little.
runtime/Mmakefile:
Update the reflect the added and removed files.
Also update the rule for `mmake check_headers' so that
it can make use of parallelism in parallel makes.
And make a start towards enforcing namespace cleanliness --
I've added code to check it, but not to enforce it.
42 lines
1.2 KiB
C
42 lines
1.2 KiB
C
/*
|
|
** Copyright (C) 1998 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.
|
|
*/
|
|
|
|
#ifndef MERCURY_AGC_DEBUG_H
|
|
#define MERCURY_AGC_DEBUG_H
|
|
|
|
/*
|
|
** mercury_agc_debug.h -
|
|
** Debugging support for accurate garbage collection.
|
|
*/
|
|
|
|
#include "mercury_types.h" /* for Word */
|
|
#include "mercury_label.h" /* for MR_Internal */
|
|
#include "mercury_memory_zones.h" /* for MemoryZone */
|
|
#include "mercury_accurate_gc.h" /* for MR_RootList */
|
|
|
|
/*---------------------------------------------------------------------------*/
|
|
|
|
/*
|
|
** MR_agc_dump_stack_frames:
|
|
** Dump the stack, writing all information available about each
|
|
** stack frame.
|
|
**
|
|
** label is the topmost label on the stack, heap_zone is the zone
|
|
** which the data is stored upon.
|
|
*/
|
|
|
|
extern void MR_agc_dump_stack_frames(MR_Internal *label, MemoryZone
|
|
*heap_zone, Word *stack_pointer, Word *current_frame);
|
|
|
|
/*
|
|
** MR_agc_dump_roots:
|
|
** Dump the extra rootset, writing all information about each root.
|
|
*/
|
|
extern void MR_agc_dump_roots(MR_RootList roots);
|
|
|
|
/*---------------------------------------------------------------------------*/
|
|
#endif /* not MERCURY_AGC_DEBUG_H */
|