summaryrefslogtreecommitdiff
path: root/log.md
diff options
context:
space:
mode:
Diffstat (limited to 'log.md')
-rw-r--r--log.md30
1 files changed, 30 insertions, 0 deletions
diff --git a/log.md b/log.md
index 4025a30..69106d8 100644
--- a/log.md
+++ b/log.md
@@ -465,3 +465,33 @@ Start = append (fromto toRec 1 100) (fromto toRec 500 1000)
```
Seems to work fine so far.
+
+### 2016-11-26
+
+Some updates, log is outdated...
+
+- I had mixed the `heap_size` and `heap_size_multiple` variables in `cgopts.s`
+ in September, and setting them correctly breaks some programs (one example is
+ `lqueen.icl`). It most likely indicates a problem that was already there but
+ somehow did not occur before.
+
+- Adapted the RTS to use aliases for register names, so that optimisation can
+ be done easily. **TODO**: there is an optimisation possibility with
+ registers, as some narrow thumb instructions can only use r0-r7; the
+ most-used registers should be there.
+
+- A number of programs that this log claimed were working seems broken now,
+ perhaps I didn't check with small heap sizes before?
+
+- The compacting compiler is broken.
+
+---
+
+There is an issue in `ccall`s; they attempt to do `and sp,sp,#-8` which is not
+allowed (see 3.7 of the Thumb-2 supplement). The quick solution is to `mov` to
+the scratch register, do the operation there, and then move back (implemented
+in cg `4290310`).
+
+Tried compiling the Clean compiler with a hacked clm. Had to `strip cocl`
+manually, then achieved a size of 5.1M (5325412 bytes) compared to 5.3M
+(5475152) for ARM. Segfaults, of course, when tried to use.