Hello all,
I've just released Dusk v12 with these highlights:
* Tooling for in-system upgrades[1][2]
* HAL "powerups" units [3]
* Dynamic sysvars concept[4]
* Replace "compileonly" and "setter" with "findselector" concept[5]
* Further graphic subsystem optimizations
* Generalized font API[6]
Most of that release has been developed from within Dusk itself, which feels
really nice. The "rebootinto" word from in-system upgrade tooling helps a lot.
I'm not sure, but I think that this "findselector" concept might be innovative.
It's the same as "immediate", but at "dict find" time. Does anyone know if
another Forth does something similar?
Font API work allows Dusk to shamelessly use any UF2 or UF1 font from uxn.
io/fbgrid can plug in any font.
Graphics subsystem optimizations is a continuation of my effort for Left to
run adequately on my Raspberry Pi model 1. On this front, I have yet to succeed,
performance is still poor. But on the bright side, it's significantly better
than the official uxn implementation! So although I get only 7 FPS on BunnyMark
at 0 bunnies, the regular uxn under a dog-slow Raspberry Pi OS will yield 2 FPS.
On the RPi 3, things are sunnier with 38 fps at 1000 bunnies. Official uxn gets
34 FPS at 1000 bunnies.
On a somewhat-modern amd64 machine, things are even crazier: 55 FPS at 6000
bunnies for Dusk vs 42 FPS at 6000 bunnies for official uxn.
Although I still don't get satisfactory speed on the RPi1, I still think it's
possible. Framebuffer raw write speed is 125 FPS for 800x600 and in the draw
loop, only a small part of the loop is sprite drawing. The majority of the loop
is shoveling pixels around.
I have a few ideas to improve things further... but that will have to wait. My
mind is tired of working on that graphical stuff, it's not cooperating anymore.
Later.
What would be the focus for v13? Let's see...
Getting comfy working on Dusk from within Dusk is what feels best. One tool that
is missing now is a hex editor. So I think I'll write that and be on the lookout
for kinks and warts to fix here and there.
Onwards,
Virgil
[1]: https://git.sr.ht/~vdupras/duskos/tree/master/fs/doc/xcomp/i386/pc/deploy.txt
[2]: https://git.sr.ht/~vdupras/duskos/tree/master/fs/doc/xcomp/arm/rpi/deploy.txt
[3]: https://git.sr.ht/~vdupras/duskos/tree/master/fs/doc/hal.txt#L332
[4]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/data.txt#L154
[5]: https://git.sr.ht/~vdupras/duskos/tree/master/item/fs/doc/usage/word.txt#L24
[6]: https://git.sr.ht/~vdupras/duskos/tree/master/fs/doc/gr/font.txt