The Windows _snprintf family of functions do not guarantee null
termination when the output is truncated so cannot be used as direct
replacements for the snprintf functions. Also, the _snprintf functions
have different return values from the C99 snprintf functions when output
is truncated (like some older snprintf implementations).
Furthermore, on Windows snprintf/vsnprintf may be synonyms for
_snprintf/_vsnprintf so cannot be relied upon to terminate their outputs
either, even if the functions exist.
runtime/mercury_string.c:
runtime/mercury_string.h:
Define MR_snprintf and MR_vsnprintf as macro synonyms for
snprintf/vsnprintf ONLY if _snprintf/_vsnprintf do not exist.
Otherwise, implement MR_snprintf and MR_vsnprintf functions
that behave like the C99 functions, in terms of _vsnprintf.
Require that either snprintf/vsnprintf or _snprintf/_vsnprintf
are available. This should be true on all systems still in use.
runtime/mercury_debug.c:
runtime/mercury_ml_expand_body.h:
runtime/mercury_runtime_util.c:
runtime/mercury_stack_layout.c:
runtime/mercury_stack_trace.c:
runtime/mercury_stacks.c:
runtime/mercury_tabling.c:
runtime/mercury_threadscope.c:
runtime/mercury_trace_base.c:
runtime/mercury_wrapper.c:
trace/mercury_trace_completion.c:
trace/mercury_trace_internal.c:
trace/mercury_trace_spy.c:
trace/mercury_trace_vars.c:
bytecode/mb_disasm.c:
Use MR_snprintf instead of snprintf/_snprintf
and MR_vsnprintf instead of vsnprintf/_vsnprintf.
Drop code paths using sprintf as a fallback.
Remove old .cvsignore files, moving their contents to .gitignore files.
There are now no .cvsignore files in the repository.
I've also sorted some .gitignore files and avoided repeating a pattern in a
subdirectory's .gitignore file when it is already mentioned in the parent
.gitignore file.
This file-specific setting will override a default setting of expandtabs
in $HOME/.vimrc.
*/Makefile:
*/Mmakefile:
As above.
tests/hard_coded/.gitignore:
Don't ignore the purity subdir. This ignore must have been left over
from when purity.m was a test in hard_coded, not hard_coded/purity,
and it ignored an executable, not a directory.
Estimated hours taken: 4
Branches: main
Initial checkin which is all the scaffolding needed to
support the new source to source mercury debugger (ssdb).
The main addition in this change is the ssdb directory,
which will contain the mer_ssdb library.
Mmake.workspace:
Mmakefile:
configure.in:
Handle the new ssdb directory.
compiler/options.m:
Add the --ssdb and --source-to-source-debug options.
compiler/mercury_compile.m:
Add the ssdb pass (it does nothing at the moment).
compiler/modules.m:
Implicitly import ssdb_builtin when compiling with --ssdb.
mdbcomp/prim_data.m:
Handle the ssdb module.
ssdb/Mercury.options:
ssdb/Mmakefile:
ssdb/SSDB_FLAGS.in:
ssdb/.mgnuc_copts:
ssdb/.mgnuc_opts:
ssdb/RESERVED_MACRO_NAMES:
Build system for ssdb directory.
ssdb/mer_ssdb.m:
ssdb/ssdb.m:
The operations which are needed by the source to source
debugger.
tools/bootcheck:
Changes to the bootcheck script to handle the new ssdb module.
browser/Mmakefile:
bytecode/Mmakefile:
library/Mmakefile:
mdbcomp/Mmakefile:
runtime/Mmakefile:
trace/Mmakefile:
Add the ALLOW_SSDB_PREFIX rules.
Estimated hours taken: 0.3
Branches: main
Reduce even further the clutter of boring command line arguments.
scripts/mgnuc.in:
If a file named .mgnuc_opts exists in the current directory,
read mgnuc options from it. This mechanism is very similar to the
mechanism I added a while ago to get C compiler options from a
file named .mgnuc_copts.
Convert to four-space indentation.
scripts/mgnuc_file_opts.sh-subr:
New file containing most of the option handling code that used to be
in mgnuc.in. Now, it is is included in mgnuc twice: once for handling
options from the command line, once for handling options from
.mgnuc_opts files.
configure.in:
Set up configure to insert mgnuc_file_opts.sh-subr into mgnuc.
*/.mgnuc_opts:
New files specifying the --no-mercury-stdlibdir mgnuc option.
Mmake.workspace:
Don't pass --no-mercury-stdlibdir on command lines anymore, since this
is now taken care of by the .mgnuc_opts files.
Estimated hours taken: 12
Branches: main
Move the mdbcomp library to its own directory. To make this change less painful
to test, improve the way we handle installs.
browser/mdbcomp.m:
browser/mer_mdbcomp.m:
browser/prim_data.m:
browser/program_representation.m:
browser/trace_counts.m:
Move these files to the mdbcomp directory.
browser/Mmakefile:
browser/Mercury.options:
mdbcomp/Mmakefile:
mdbcomp/Mercury.options:
Split the contents of the old Mmakefile and Mercury.options file
in the browser directory between these files as appropriate.
Simplify away the stuff not needed now that there is only one library
per directory. Make the browser directory see the relevant files
from the mdbcomp directory.
Mmake.common.in:
Separate out the prefixes allowed in the browser and the mdbcomp
directories.
Mmake.workspace:
Set up a make variable to refer to the mdbcomp directory.
Adjust references to the mdbcomp library to point to its new location.
Mmakefile:
Make invocations visit the mdbcomp library as necessary.
Improve the way we install grades. Making temporary backups of the
directories modified by the install process is unsatisfactory for two
reasons. First, if the install fails, the cleanup script, which is
necessary for user friendliness, destroys any evidence of the cause.
Second, the restore of the backup wasn't perfect, e.g. it left the
.d files modified to depend on .mih files, which don't exist in
LLDS grades, and also left altered timestamps.
This diff changes the install process to make a single tmp_dir
subdirectory of the workspace, with all the work of install_grade
being done inside tmp_dir. The original directories aren't touched
at all.
*/Mmakefile:
Adjust references to the browser directory to refer to the mdbcomp
directory instead or as well.
scripts/Mmake.rules:
*/Mmakefile:
Make it easier to debug Mmakefiles. Previously, creating a
Mmake.makefile with mmake -s and invoking "make -d" ignored the
most fundamental rules of mmake, because Mmake.rules was treating
an unset MMAKE_USE_MMC_MAKE as if it were set to "yes", simply because
it was different from "no". This diff changes it to treat an unset
MMAKE_USE_MMC_MAKE as if it were set to "no", which is a more
sensible default.
scripts/prepare_tmp_dir_fixed_part.in:
scripts/scripts/prepare_tmp_dir_grade_part:
Two new scripts that each do half the work of preparing tmp_dir for
the real work of the install_grade make target. The fixed_part script
prepares the parts of tmp_dir that are grade-independent, while the
grade_part scripts prepares the parts that are grade-dependent.
configure.in:
Test C files in the mdbcomp directory to see whether they need to
be recompiled after reconfiguration.
Create prepare_tmp_dir_fixed_part from prepare_tmp_dir_fixed_part.in.
compiler/*.m:
runtime/mercury_wrapper.c:
Update the references to the moved files.
compiler/notes/overall_design.html:
Mention the new directory.
Estimated hours taken: 4
Branches: main
Prepare to make type_info and typeclass_info foreign types by eliminating the
compiler's dependence on their function symbols. At the moment, the compiler
generates type_intos and typeclass_infos by using the function symbols of these
types as cons_ids. However, the function symbols have fake arities, which
demanded special treatment in many places. This change makes the compiler use
the cons_ids type_into_cell_constructor and typeclass_into_cell_constructor
instead, except in insts, which need to know the arity of the constructor.
compiler/hlds_data.m:
Add the two new cons_ids.
compiler/polymorphism.m:
Use the two new cons_ids instead of the function symbols of the
type_info and typeclass_info types, since those function symbols
will soon be deleted.
compiler/type_util.m:
Add a type and some predicates to control the representation of
type_info and typeclass_info cells in one place.
Since we no longer depend on the representations of the function
symbols of the type_info and typeclass_info types, do not special
case their representation.
compiler/hlds_code_util.m:
Implement the representation of the two new function symbols.
compiler/bytecode.m:
Add two new cons_ids to parallel the ones in hlds_data.m.
compiler/higher_order.m:
Look for the two new cons_ids, instead of the old ones.
Make the code more maintainable.
compiler/*.m:
Minor changes to conform to the changes above.
library/private_builtin.m:
Delete the statement that the compiler depends on the functors of the
type_info and type_ctor_info types.
bytecode/mb_bytecode.h:
Document that some bytecodes generated by the compiler are not yet
implemented by the bytecode interpreter.
Estimated hours taken: 6
Branches: main
Enforce namespace cleanliness in the library and browser directories
as well as in the runtime and trace directories.
Mmake.common.in:
Move the rules check_namespace here (they used to be in the Mmakefiles
of the runtime and trace directories), together with the variables they
need. Generalize them to also handle the needs of the browser, library
and bytecode directories. The former two in particular need the
ability to check automatically generated .mh files.
Make all the rules used by check_namespace conditional on a macro
that is defined by the Makefiles in all the directories that are
checked for namespace cleanliness.
trace/Mmakefile:
runtime/Mmakefile:
Replace the old rules for check_namespace, which are now in
../Mmake.common.in, with the macros needed to control their behavior.
bytecode/Mmakefile:
Add the macros needed to control the behavior of the rules for
check_namespace.
Move the lists of files to the start, before the include of
../Mmake.common.
browser/Mmakefile:
library/Mmakefile:
Add the macros needed to control the behavior of the rules for
check_namespace.
runtime/RESERVED_MACRO_NAMES:
Update comments, and delete obsolete exceptions.
browser/RESERVED_MACRO_NAMES:
library/RESERVED_MACRO_NAMES:
New files to contain the exceptions from the naming scheme.
tools/bootcheck:
Invoke "mmake check_namespace" in the library and browser directories
as well as the runtime and the trace directories. Perform the
invocation before we delete the object files we are checking for
cleanliness.
Clean up object files in all stage2 directories, not just the library,
as soon as we can.
library/array.m:
library/builtin.m:
library/io.m:
library/time.m:
Fix namespace violations.
Estimated hours taken: 0.25
Branches: main
Merge changes from the reuse branch back onto the main branch.
compiler/ml_unify_gen.m:
Handle the case where the tag on the cell to be reused is unknown.
compiler/hlds_goal.m:
Add a field which records what possible cons_ids the cell to be
reused can be tagged with.
compiler/builtin_ops.m:
Add the unary builtin operator strip_tag.
compiler/bytecode.m:
compiler/c_util.m:
compiler/java_util.m:
compiler/llds.m:
compiler/mlds_to_il.m:
compiler/opt_debug.m:
bytecode/mb_disasm.c:
bytecode/mb_exec.c:
Handle the strip_tag operator.
With these changes, it now passes all tests/general/* test cases
except those with floats.
Changes to the compiler:
- Added extra argument to test instruction (string comparisons were
being treated as integer comparisons; properly deals with different
atomic type unifications now)
- Changed bytecode stub functions
Changes to the bytecode interpreter:
- Cleaned up comments
- Forked part of mb_machine to mb_exec
- Added support for submodules
- Added support for nondet procedures
- Added support for cc_xxx procedures
- Finished higher order calls
- Added (very basic) debug interface
- Added support for type information
- Added memory corruption checking
- Changed machine state dump formatting
- Fixed bug in nested switches
- Resolved builtin__unify and builtin_compare failures
- Modified bytecode tags generation so .c & .m tag files are separate
- Header usage rationalised
Changes to test suite:
- Added test cases for the bytecode interpreter.
- More work on the bytecode interpreter.
bytecode/Mmakefile:
Modified bytecode tags generation so .c & .m tag files are separate.
mb_machine split into mb_exec.
test file renamed to simple.m (copy over tests/simple??.m to test).
bytecode/TODO:
Updated.
bytecode/mb_basetypes.h:
Removed redundant MB_WORD_BITS (use MR_WORDBITS instead).
bytecode/mb_bytecode.h:
bytecode/mpb_bytecode.c:
Formatting changes
Third test instruction argument added.
bytecode/mb_disasm.h:
bytecode/mb_disasm.c:
Formatting changes.
Third test instruction argument added.
Added MB_FMT_INTWIDE.
bytecode/mb_exec.h:
bytecode/mb_exec.c:
bytecode/mb_machine.h:
bytecode/mb_machine.c:
mb_machine* split into mb_exec* and mb_machine*.
Almost all instructions now work (see important changes above).
bytecode/mb_interface.h:
bytecode/mb_interface.c:
Added nondet stub functions.
Added functions to lookup builtin compiler procedures:
do_redo, do_fail, __unify, __compare.
Removed old debugging code.
Stack layout changed to support nondet procedures.
bytecode/mb_interface_stub.c:
bytecode/mb_interface_stub.h:
Split off bare minimum of includes for bytecode stubs.
Added nondet stubs.
bytecode/mb_machine_show.c:
Made code cleaner (added subfunctions for MB_show_state).
Added variable names to machine state dump.
bytecode/mb_mem.h:
bytecode/mb_mem.c:
Added limited memory corruption checking.
bytecode/mb_module.h:
bytecode/mb_module.c:
Swapped order of temps & vars on stack.
Fixed nested switches causing random crashes.
Added nested module support.
bytecode/test/simple??.m:
Various test files - just to check that it doesn't crash.
(Most do not output anything & must be verified by stepping through
manually).
compiler/bytecode.m:
compiler/bytecode_gen.m:
Added extra argument to test instruction (otherwise
string comparisons would be treated as integer comparisons).
compiler/code_gen.m:
Changed call structure name in bytecode stub to resolve
issues with illegal characters in C structure names.
Changed bytecode stub header file name.
Estimated hours taken: 200
Major changes to bytecode interpreter.
Beginnings of native code integration
bytecode/bytecode.c:
bytecode/bytecode.h:
bytecode/dict.c:
bytecode/dict.h:
bytecode/disasm.c:
bytecode/disasm.h:
bytecode/machine.c:
bytecode/machine.h:
bytecode/mbi_main.c:
bytecode/mdb.m:
bytecode/mem.c:
bytecode/mem.h:
bytecode/slist.c:
bytecode/slist.h:
bytecode/template.c:
bytecode/template.h:
bytecode/util.c:
bytecode/util.h:
Removed. These are all the old bytecode files from
before I started. Any parts that were useful have already
been salvaged and used in the new interpreter.
bytecode/*:
Added MB_Bytecode_Addr and MB_Native_Addr types to remove abiguity
as to what type of code an instruction pointer points to, and
provide compiler help for erroneously mixing pointer types.
bytecode/Mmakefile:
bytecode/Mmake.params:
Makefile for test bytecode program. Note that any library
functions that are called from bytecode must be compiled
with trace information. (So their entry labels can be
looked up)
bytecode/mb_basetypes.h:
Added. Contains basic type definitions.
bytecode/mb_bytecode.c:
bytecode/mb_bytecode.h:
Better error messages.
Changed var_lists to direct pointers rather than
lookups through data stacks (much simpler but stop you
using realloc() on the bytecode argument data)
Label addresses are computed at module load time rather
than being looked up each jump
Added endof_negation_goal
Temporary stack slot numbers are translated to variable
numbers (now there is no distinction between temps & vars)
MB_read_cstring return value convention changed (see comments
for how to now free the returned memory)
Added distinction between functions and predicates
Added enter_else
Code addresses are all pointers rather than simple ints
Added MB_Code_Addr type for pred_const and call instructions
bytecode/mb_disasm.c:
bytecode/mb_disasm.h:
Added endof_negation_goal & enter_else
Output strings are now easier to read
MB_listing does not display anything for invalid addresses
MB_listing takes line length argument
bytecode/mb_interface.c:
bytecode/mb_interface.h:
bytecode/mb_interface_stub.m:
Interfacing between native/bytecode
bytecode/mb_machine.c:
bytecode/mb_machine.h:
bytecode/mb_machine_def.h:
Large sections of code branched off into mb_module.?
Most instructions completed, but not integrated with native
code.
Most of mb_machine_def has been removed as the native
code functions provide the same functionality.
bytecode/mb_machine_show.c:
bytecode/mb_machine_show.h:
Completely changed. Less information now as a lot of what
was being displayed before cannot be determined as easily
now that it is stored in the mercury runtime.
bytecode/mb_mem.c:
bytecode/mb_mem.h:
Added routines for garbage collected memory
bytecode/mb_module.c:
bytecode/mb_module.h:
Loading & accessing bytecode. Argument data indexes & id are now
stored in a single word. (see MB_BCID_xxx macros).
Call & label addresses are now calculated at load time.
bytecode/mb_stack.c:
bytecode/mb_stack.h:
Added options for garbage collection of MB_Stack memory
bytecode/mb_util.c:
bytecode/mb_util.h:
Miscellaneous string functions added and SAY() for debugging
bytecode/simple01.m:
Added. Simple test program. (replace with whatever
program is being tested at the time).
Estimated hours taken: 40
The beginnings of the new bytecode interpreter. Probably
just over half the code is the same or a
superficially modified revision of the old one.
bytecode/mb_bytecode.c
bytecode/mb_bytecode.h
Almost identical. Only real change is made MB_read_cstring not use
any static variables
bytecode/mb_disasm.c
bytecode/mb_disasm.h
Again, code very similar. Changed all the functions to write to a
buffer instead of a file and to allow for bytecode indenting. Output
format string for some instructions changed (hopefully more menaingful
than just a dump of numbers)
bytecode/mb_machine.c
bytecode/mb_machine.h
(completely different from old machine.c)
The actual part that contains an abstract machine.
The rest is really just support code.
The instruction_table array is how instructions are dispatched. Look
at instr_xxxx for the actual interpreter code. Not all instructions
are implemented. MB_step and MB_run execute the actual
interpreting code
bytecode/mb_machine_show.h
bytecode/mb_machine_show.c
displays output showing the state of the machine
bytecode/mb_mem.c
bytecode/mb_mem.h
Identical to old mem apart from file name changes
bytecode/mb_util.c
bytecode/mb_util.h
took out strdup (not needed) and changed some comments
bytecode/mb_stack.c
bytecode/mb_stack.h
word based stack that will reallocate itself if it needs to
bytecode/mbi.c
front end for bytecode interpreter
bytecode/mdis.c
disassembles a file and dumps it to the screen
Estimated hours taken: 3
Support installing both `.par' and non-`.par' versions of the GC library.
scripts/ml.in:
Change the code for computing which version of the GC library
to link in so that it also takes the `.par' grade component
into account, rather than just the `.prof' grade component.
Add new options `--print-gc-grade' (for use by the top-level
Mmakefile) and `--print-grade' (for symmetry).
Mmakefile:
When invoking sub-makes in the boehm_gc directory,
pass down GC_GRADE instead of PROF.
Compute the GC_GRADE value using `scripts/ml ... --print-gc-grade`
rather than computing it manually, since this avoids code duplication.
boehm_gc/Mmakefile:
boehm_gc/Makefile:
boehm_gc/NT_MAKEFILE:
s/gc$(PROF)/$(GC_GRADE)/g
runtime/Mmakefile:
trace/Mmakefile:
browser/Mmakefile:
bytecode/Mmakefile:
library/Mmakefile:
compiler/Mmakefile:
profiler/Mmakefile:
Change the code for computing which version of the GC library
to link in so that it also takes the `.par' grade component
into account, rather than just the `.prof' grade component.
Estimated hours taken: 0.75
Mmakefile:
*/Mmakefile:
*/*/Mmakefile:
*/*/*/Mmakefile:
Use `clean_local' instead of `clean' and `realclean_local' instead
of `realclean' where appropriate. This is necessary now that
`realclean' does not depend on `clean'.
Estimated hours taken: 2
Simplify the Mmakefiles. Fix a few minor latent bugs.
*/Mmakefile:
- Factor out some common code by defining a new variable M_ENV
which holds settings of environment variables for mmc, mgnuc, etc.
- For consistency, always override MERCURY_C_ALL_INCL_DIRS rather
than passing extra `-I' options to mgnuc.
- Make sure to always include `$(BOEHM_GC)/include' in the search path,
so that it will work if we try to compile with `-O6'.
- Make sure to always include `--cflags $(ALL_CFLAGS)' in MCS, so
that the EXTRA_CFLAGS etc. will get passed down to gcc via mmc.
- Make sure that the Mmakefiles in all directories set
all the MC* variables: MCPI, MCSI, MCOI, MCTOI, etc.
Estimated hours taken: 0.25
Fix a bug that broke grades `*.gc.prof.tr'.
(This change was previously applied to the Mmakefiles
in the runtime, library, compiler, and profiler directories,
but I missed the `bytecode' directory.)
bytecode/Mmakefile:
When deciding whether to link with -lgc or -lgc_prof,
match against `*.gc*.prof*' rather than `*.gc*.prof'.
^
Estimated hours taken: 0.1
bytecode/static_data.c:
bytecode/static_data.h:
This module is no longer necessary since I've put similar data
in the "machine" module.
Estimated hours taken: 0.1
bytecode/mdb.m:
Simple Mercury driver for the bytecode interpreter.
The driver allows us to initialise the Mercury runtime
engine and various modules in libmercury without having
to duplicate code from the runtime.
This really is overkill and it would make sense to rewrite
parts of the runtime so that initialisation and startup of
compiled Mercury code are not so tightly coupled. May revisit
this later.
Estimated hours taken: 0.1
bytecode/Mmakefile
- Removed "-static" from link line since we can't use
dlopen and so on with statically linked binaries.
- Added -DDEBUGGING as C compile flag. Turn it off when
the bytecode interpreter is working.
- Added "dict" module, a dictionary ADT.
Estimated hours taken: 0.1
bytecode/disasm.h:
bytecode/mem.h:
bytecode/util.h:
Added #includes for the headers that these headers depend upon.
I'm still not convinced of the wisdom of having #includes inside
headers. Tracking down the location of a declaration by using
preprocessed source files is bad enough when nested #include
is forbidden.
Estimated hours taken: 2
Added a dictionary abstract data type. Currently it's implemented as
a dirt-simple ordered list, but it should later be reimplemented using a
hash table. Note that C has only very poor support for ADTs
and private data must be included in the header. We trust clients
of the ADT not to use the private data.
bytecode/dict.h:
Interface of dictionary ADT.
bytecode/dict.c:
Implementation of dictionary ADT.
Estimated hours taken: 1
bytecode/Mmakefile:
Add new targets libmbi.{a,so}.
In profiling grades, link with -lgc_prof rather than -lgc.
bytecode/mbi.c:
Rename the main() function as BC_mbi_main().
bytecode/mbi_main.c:
New file, whose main() function just calls BC_mbi_main().
Estimated hours taken: 2
More cleanup of the bytecode stuff; in particular, add a `MB_' prefix
to most names.
bytecode/*:
- Prefix all names defined in header files with `MB_'
(except for `TRUE', `FALSE', `DEBUGGING', and `XXXdebug').
- Add macros `MB_new', `MB_new_array', and `MB_resize_array',
and use those instead of using `MB_malloc' and `MB_resize'
(formerly `mem_malloc' and `mem_resize') or malloc() and realloc()
directly. Uncomment the definition of MB_strdup() now that it
calls MB_malloc().
- Delete the definitions of `uchar', `uint', `ushort', `ulong'
(just spell them out, its clearer and more portable that way).
- Fix the indentation in a few places I missed on my previous pass.
- Add a `README' file.
Estimated hours taken: 2
A cleanup of the bytecode stuff.
bytecode/*:
Various changes to make it conform to our C coding standard.
In particular:
- fix indentation and layout, particularly of switch
statements;
- use `#include "..."' rather than `#include <...>'
for user-defined header files
bytecode/Mmakefile:
Avoid the use of `$^' in hard-coded rules, since it is
not portable to non-GNU makes (many makes only allow the
use of variables such as $*, $^, etc. in suffix rules),
and since it is easy to avoid.
Also add an XXX comment, since the header dependency handling
is done twice.
bytecode/bytecode.c:
s/BIG_ENDING/MR_BIG_ENDIAN/ and s/LITTLE_ENDING/MR_LITTLE_ENDIAN/,
to match my recent change to runtime/conf.h.in.
In fact every identifier in the bytecode directory ought to be
prefixed with `MB_', but I haven't done that in this change.
Estimated hours taken: 3
A number of changes:
- Changes to support portable numeric constants in the
bytecode file.
- read_int() now returns a Mercury `Integer', which is platform
dependent. However it actually reads a portable, 64-bit,
big-endian, 2's complement integer from the bytecode stream.
- read_float() now returns a Mercury `Float', which is platform
dependent.
- Comment-style changed to agree with C coding standard.
- malloc and realloc are now used instead of mem_malloc and
mem_realloc. Need to look at memory-management in a lot
more depth when the bytecode interpreter starts linking
in Mercury shared objects.
- Removed Bytecode-doc since it's now an HTML file in
the developer documentation directory of the Mercury web pages.
- Removed the Makefile since we're now using an Mmakefile.
bytecode/
bytecode.c
bytecode.h
Changes to read_int(), read_float() and others.
disasm.c
disasm.h
machine.c
machine.h
mbi.c
mbi.h
mdis.c
mdis.h
mem.c
mem.h
static_data.c
static_data.h
template.c
template.h
util.c
util.h
Divers changes as described above.
Bytecode-doc
Mmakefile
Removed as described above.
Estimated hours taken: 0.1
Small changes to Mmakefile.
bytecode/Mmakefile:
Now linking with libmer and libgc. Added $(MERCURY_DIR)/runtime
to link path.