[m-rev.] diff: Update upgrade boehm GC notes
Paul Bone
paul at bone.id.au
Mon Sep 21 17:04:15 AEST 2015
Branches: upgrade_boehm
Update upgrade boehm GC notes
compiler/notes/upgrade_boehm_gc.html:
As above.
---
compiler/notes/upgrade_boehm_gc.html | 58 +++++++++++++++++-------------------
1 file changed, 27 insertions(+), 31 deletions(-)
diff --git a/compiler/notes/upgrade_boehm_gc.html b/compiler/notes/upgrade_boehm_gc.html
index e9086b8..7f3b8d3 100644
--- a/compiler/notes/upgrade_boehm_gc.html
+++ b/compiler/notes/upgrade_boehm_gc.html
@@ -16,8 +16,8 @@
<P>
<B>WARNING:</B> This process is difficult and should not be undertaken lightly.
-Before attempting to upgrade one should definitely discuss it on the
-mercury-reviews mailing list first.
+Before attempting to upgrade Boehm GC one should definitely discuss it on
+the reviews mailing list first.
</P>
<h2>
@@ -25,16 +25,24 @@ The setup
</h2>
<p>
-I did this for version 7.4.2 of the collector and libatomic_ops.
+This is the first attempt to update Boehm since Mercury switched from CVS to
+Git.
+Therefore, I've taken the opportunity to setup this process in a more
+git-ish way (Boehm GC also uses git).
+I set this up for for version 7.4.2 of the collector and libatomic_ops.
+</p>
+
+<p>
Over time we've made some changes to the collector, some of which have not
been pushed upstream.
-To manage these changes we've forked the bdwgc and libatomic_opts
+The changes that have not been pushed upstream must be managed by us.
+I've we've forked the bdwgc and libatomic_opts
repositories.
Our forks are currently located here:
</p>
<p>
-XXX: Once this is convermed move these repositories to the MercuryLang
+XXX: Once this is confirmed move these repositories to the MercuryLang
Github organisation.
</p>
@@ -85,9 +93,8 @@ $ git checkout upgrade_boehm
</pre></code>
<p>
-Then, on this branch I deleted the existing boehm_gc directory. I have
-already saved the various changes that we've made to the GC and applied
-them to a branch on the bdwgc repository.
+Then, on this branch I deleted the existing boehm_gc directory from the
+repository.
</p>
<code><pre>
@@ -120,27 +127,20 @@ I've written a script named <code>prepare.sh</code> and committed it, it can
be used to initialize and checkout the submodules.
</p>
-<p>
-For now I will push this to a branch in my forked repository until I'm
-finished testing.
-</p>
-
<h2>Mercury's customisations to the Boehm GC</h2>
<p>
-I've created a branch named <code>mercury7_2</code> in the bdwgc
-repository that contains the Mercury customisations to boehm_gc.
-I started at the <code>gc7_2</code> tag.
-Then I copying our boehm_gc/ directory into the boehm_gc one, then
-identifing the seperate changes writing log messages and committing them.
-This way the mercury7_2 branch is our patches applied on top of the 7.2
-release, as if that's how we wrote them.
-Then to upgrade to 7.4.2 I created a new branch <code>mercury7_4_2</code>,
+I've created a branch named <code>mercury7_2</code>
+based on the <code>gc7_2</code> tag in the bdwgc repository.
+This branch contains the Mercury customisations to boehm_gc as a series of
+patches.
+Then to upgrade to 7.4.2 I created a new branch <code>mercury7_4_2</code>
+(from <code>mercury7_2</code>),
switched to it, and rebased it onto the point in the boehm_gc tree that
-represents the mercury7_4_2 release, that is the tag <code>gc7_4_2</code>:
+represents the BDWGC 7.4.2 release, that is the tag <code>gc7_4_2</code>:
</p>
-<code<pre>
+<code><pre>
$ git branch mercury7_4_2 mercury7_2
$ git checkout mercury7_4_2
$ git rebase --onto gc7_4_2 gc7_2
@@ -157,17 +157,13 @@ The final step is how to update Mercury's copy of the collector when there
are changes upstream.
At the time of writing there are some important patches on the collector's
<code>release-7_4</code> branch (The TSX bug).
-Additionally, there are some further patches related to this bug that have
-been committed to the master branch but have not yet been put on the
-<code>release-7_4</code> branch
-(<a href="https://github.com/ivmai/bdwgc/pull/59">Pull request 59</a>)
-these are on the <code>release-7_4_pbone</code> branch so we will upgrade to
-that point.
-This is done simply creating a new branch and rebasing the Mercury project's
+This is done simply creating a new branch and debasing the Mercury project's
customisations onto that branch:
</p>
-<code<pre>
+XXX
+
+<code><pre>
$ git branch mercury7_4_pbone mercury7_4_2
$ git checkout mercury7_4_pbone
$ git rebase --onto release-7_4_pbone gc7_4
--
2.5.0
More information about the reviews
mailing list