Improve JIT of realiased words
For every JITed word (indexed by wordmark), remember all words whose
JITed function embeds direct calls to that word.
When a word is detected to be redefined (most likely because it got
realiased), walk this "tree" and invalidate all those direct callers.
That way, when they get JITed again, they pick up the correct new
version of the word (or are JITed in emulation mode in case the new
implementation of the realiased word cannot be JITed).
This does not fix the problem fully yet (realiased words may still be
missed to be redefined when all their callers have been fully JITed
before), but it works well enough so that the workaround to not JIT in<
and INPTR can be removed.
Refactoring to help with what's coming...
Use atari8.uf1 font
This gets us to commit 400533727aeb13e79a614eea5aa09aa3d9c08c23
Override hal/vreg
This gets us up to commit a58b0c2733bf3499067f62f56a7392859e7fac96
This is Michael's idea, I myself was ready to lay down arms.
WIP and major roadblock
This commit gets us to Dusk commit 534fd91f5c3437e16625ea5e35ed6d6f19d0e63d
So first comes the need to disable JIT because of the "in<" rewrite, but this
last problem can't be worked around: R1>) can't work under the POSIX VM HAL
operand structure.
For POSIX, it doesn't matter because it doesn't do graphical stuff. For WASM,
it does matter because in gr/icn, R1>) is used, and we use graphical stuff in
dusk-wasm.
I'll discuss this with Michael.
Target Dusk v11
Because of a HAL misstep in v11, test54 in tests/hal fails. The problem is fixed
in v12, but we'll keep this v11 targeting in the "wip" branch and only merge
back to master when we target v12.
Use gr/damage to detect screen damage
This detection now takes place entirely in script.js
This takes us to a519b6d9c245cfe725bb026fefb5006d2cb94543
WIP of targeting Dusk v11
This brings us to commit 45976385eec1b34a90ca266a020d32ba88533ebf
Implement cidx, widx, idx,
This brings us to commit 730dea92ee4585507cfff592c22db34c551ca090
Implement c[]=, w[]=, []=,
This gets us to commit 07e67015de30eb0d3dfd942a621f31f7e63749bc
Implement cmove, wmove, move,
Brings us to commit da5c93c8607313935c0bdb15fa6821e4104a5f37
Implement fill, wfill, cfill,
This gets us to ad2ab705f3c9025b0e7955991b4dae6017669ac3
Replace blt methods with invalidate
This gets us to Dusk commit 2b7461954ae736a0e2b03dd17d031dabda590a46
Replace (blt) with (vidtouch)
Not finished yet, I'm going somewhere prettier!
Merge vmMemory and vmVideoMemory
A bit sloppy for now, but I have grander plans. All this noise is going away.
WIP of targeting Dusk v11
This gets us to commit e1787bab50062053fc756d3ce314662cc52979a5
This commit breaks test54 in tests/hal but it's normal: this was a misstep that
I'm correcting in v12. But until then, tests will fail. If you comment the test
out, the whole test suite passes.