Files
mercury/compiler/notes/bootstrapping.html
Paul Bone d8b48ca53c Merge compiler notes
We had been maintaining two copies of these notes, this change attempts to
merge them into one set.  The cononical location for these notes is here in
compiler/notes/, they will be removed from the www repository.

I've also updated a number of URLs.

compiler/notes/allocation.html:
compiler/notes/bootstrapping.html:
compiler/notes/coding_standards.html:
compiler/notes/compiler_design.html:
compiler/notes/gc_and_c_code.html:
compiler/notes/glossary.html:
compiler/notes/release_checklist.html:
compiler/notes/reviews.html:
compiler/notes/todo.html:
compiler/notes/work_in_progress.html:
    Merge in differences with the versions of these files in the www
    repository.  Most differences are trivial.

compiler/notes/bytecode.html:
compiler/notes/c_coding_standard.html:
compiler/notes/developer_intro.html:
    Add files that were missing from the main repository but were on the
    website.
2014-02-12 13:37:00 +11:00

48 lines
1.1 KiB
HTML

<html>
<head>
<title>
Bootstrapping
</title>
</head>
<body
bgcolor="#ffffff"
text="#000000"
>
<hr>
<h2> Changes that don't bootstrap </h2>
<p>
Sometimes changes need to be made to the Mercury system that mean
previous versions of the compiler will no longer successfully compile
the new version.
<p>
Whenever anyone makes a change which prevents bootstrapping with a
previous version of the compiler, they should add a cvs tag to all the
files in the relevant directories <em>before committing</em>, and
mention this tag in the log message. The tag should be of the form
bootstrap_YYYYMMDD_&lt;short_description_of_change&gt;.
<p>
The rationale for the cvs tag is that it allows machines to be
bootstrapped (if they didn't manage to do it in a daily build)
by doing `cvs update -r&lt;tag&gt;' on the relevant build directory.
After that compiler has been installed, a `cvs update -A' will remove
the cvs sticky tags.
<p>
Optionally, a test should be added to the configuration script so
that people installing from CVS don't use an outdated compiler to
bootstrap. Practically this may be difficult to achieve in some cases.
<hr>
</body>
</html>