summaryrefslogtreecommitdiff
path: root/log.md
diff options
context:
space:
mode:
authorCamil Staps2016-10-03 18:33:39 +0200
committerCamil Staps2016-10-03 18:33:39 +0200
commit7542b19d34f8b577d6b95bd63077ef6d9994d5fd (patch)
tree8fceee2533e35a5a640b4037b038109e11176e32 /log.md
parentLog 2016-10-01 and -02 (diff)
Log 10-03
Diffstat (limited to 'log.md')
-rw-r--r--log.md21
1 files changed, 16 insertions, 5 deletions
diff --git a/log.md b/log.md
index 8e8b1f6..464de51 100644
--- a/log.md
+++ b/log.md
@@ -111,11 +111,10 @@ the same function is used to load pointers to data.
fixed. In fact, it looks like the only reason it worked was some old binaries
hanging around on the disk.
-The issue probably (**Question** for John) stems from the fact that the lowest
-two bits of addresses are used by the garbage collector and to store the
-evaluation status (evaluated or not / RNF or not, not sure). Hence, storing an
-address with offset `#9` modifies the evaluation / garbage collector
-information, giving incorrect results when using an up-to-date `_system.o`.
+The issue probably (**Question** for John) stems from the fact that the LSB of
+addresses are used by the garbage collector . Hence, storing an address with
+offset `#9` modifies the garbage collector information, giving incorrect
+results when using an up-to-date `_system.o`.
**Solution**: the new solution is to store addresses with an offset of `#8`,
and when jumping to an address making sure that the LSB is set (to force Thumb
@@ -143,3 +142,15 @@ modify addresses when jumping. What solution should be given in the thesis?
Both?
**Current commits**: cg `5effb5b`, rts `0f7f68d`, tests `f7f261f`.
+
+### 2016-10-03
+
+Another **problem**: the Start rule `twice twice ((+) 1) 0` gives a
+segmentation fault. At some point it switches to ARM mode.
+
+**Yet another problem**: the Start rule `[]` segfaults. The issue turns out to
+be that for this rule, the node entry point `n1` is accidentally
+halfword-aligned. Hence, its bit 1 is set. This bit is used to store if a node
+has been reduced to (r)nf yet (not sure if rnf or nf). Therefore, it is not
+evaluated to `[]` properly before printing it. The **solution** to this issue
+is to `.align` node entry points (cg: `d9c2a69`).