about summary refs log tree commit diff
path: root/execution.e
AgeCommit message (Collapse)Author
3 daysmake the magic-comment tab stops function like real tab stopsIrene Knapp
fun! fiddly! :D fixing one-off column alignment issues is like stimming for coders (which is to say, like stimming) Change-Id: I1037ec27b863f90117fb22a29ef52d0ba460c7d5 Force-Push: yes
3 daysadd a special word for magic-comment tab stopsIrene Knapp
Force-Push: yes Change-Id: I7ba182f5939aa3b5d280fb48673e2cc74d72e8ea
4 daysevery byte in the hex output is now attributedIrene Knapp
wow!!!! Force-Push: yes Change-Id: I2b46837b5ff37b4339a9a4ba0ae52903854d5e99
8 daysredo the hex dump comments for alignment to use the regular magic commandsIrene Knapp
previously, alignment had been a special-cased type of metadata entry, with a special trap on packalign. now it uses the same programmable setup everything else does. much simpler, and prettier output. this CL also contains some modest reformatting of section headers in the hex dump Force-Push: yes Change-Id: I21554e92f6af6ddefa937dad8073b89657f85d64
8 daysadded section headers and other formatting to all the parts of the hex dumpIrene Knapp
Force-Push: yes Change-Id: Ie66d85fd171dfb45d1f3b6869bf94056ec8303af
14 daysadd some magic comment commands to reorder subitems more generallyIrene Knapp
these are all fully working and debugged. they have been used in a principled attempt to get all the parameter orders in amd64.e correct, but that effort needs to be verified carefully, which it hasn't been, yet. a couple of missing magic comments in elf.e and execution.e were also added. Force-Push: yes Change-Id: Id4c48b121a71b4f945ee3718e14a06f07afd7304
2026-08-28change the transforms to take their end delimiters as parametersIrene Knapp
this will not be useful until read-to-buffer also does, but it's a step towards that Force-Push: yes Change-Id: Icf03088c9e52e427a5c130949e9ba85655d59044
2026-05-28add the ability to bind signal handlersIrene Knapp
and a useful example one ;) this also involved fixing the failure cases in input.e to handle EINTR correctly. it required a lot of tracing, but now the expected state of the stack is much better commented for next time. many thanks to @cks@mastodon.social who found code in the Go compiler which had the details of what's required in regard to the restorer, which made the whole thing work, and to @snowfox@tech.lgbt who did some experimental testing around the exact requirements. both those contributions are reflected in the documentation added with this CL. additional thanks to everyone who chimed in on the fedi thread, your comments kept us going! Force-Push: yes Change-Id: I97fd89426bf807df5565e011d3665f7e904fa138
2026-05-22it runs!!!!!! it interactively reads input and everythingIrene Knapp
only some of that actually works, but hey, it's a start Force-Push: yes Change-Id: Ib82beb695be1a18de8aaaf3040b7c632851c6002
2026-05-21okay, input buffers should work now (untested though)Irene Knapp
the word "variable" also needed special treatment, in the same way that "keyword" did. it's not immediately clear why. Force-Push: yes Change-Id: I15fae39b1b9ec928281150c76260940717b8e27a
2026-05-21started cleaning up all the log-loaded functionalityIrene Knapp
it's in dynamic.e for now Force-Push: yes Change-Id: I4d0c5917eccd58cb881850faee0728d786010c27
2026-05-20so yeah, docol, exit, and lit all work in log-load nowIrene Knapp
also s" and ." work in the label transform, and are used to produce an important error message during the log-load routine, since we can't know whether log-loaded words exist until runtime sweet, right? Change-Id: I6a67139538c2cbcef40a1093202b2b4e0ad6febb Force-Push: yes
2026-05-19yessssssssIrene Knapp
so okay, now all the machine code stuff is implemented and it builds without crashing the generated executable still crashes though, but this was enough work that it's getting a celebratory check-in Force-Push: yes Change-Id: I201e6912253647da58ef3537c735b478b0dca9fb
2026-05-18okay there's a strat for making the here/latest variables nowIrene Knapp
it doesn't work yet, but it's gonna the reason it doesn't work is that the new helper log-load-variable relies on the assembly-definition words being statically available, and they aren't yet that's fine though, this is still a huge change, worth checking in. why? well, it represents like 16 hours of debugging which culminated in some very minor changes to the semantics of the label transform, in order to make missing words easier to notice and debug. see comments for details. woooooo :D Force-Push: yes Change-Id: Id8334819d165ba9e3156ef2bf32008af748eac29
2026-05-16the skeleton of the log-load transform is in place nowIrene Knapp
it doesn't actually output anything, but it all runs without crashing Force-Push: yes Change-Id: I48f2e647044df0ae3db961c747cee31a8826ecf3
2026-05-16ah, oops, there was a bug in the label transform for compiled wordsIrene Knapp
fixed now also a bunch of small things towards adding a log-load transform Force-Push: yes Change-Id: I6eeb94d896a7e79092886d7b60e9404c31b2ba6f
2026-05-16word labels are now stored as offsetsIrene Knapp
also, the various address spaces in use are described better, and there's helper functions to convert between them. Force-Push: yes Change-Id: Idb56d2b6299d6e7071c9d42b2eb1138b17b85c69
2026-05-16it's much closer, most of the labels work correctly nowIrene Knapp
Force-Push: yes Change-Id: I45662e60c0035758a2cd57d971031eb0562eccb7
2026-05-15make the label transformation work all the way, no crashingIrene Knapp
the code doesn't quite run yet, that'll be a future CL Force-Push: yes Change-Id: I71e6a45127c1fc37906d902e36142c17afef2a21
2026-05-15document the assumptions between labels and transformsIrene Knapp
also some minor cleanup that ie. fixes alignment padding Force-Push: yes Change-Id: Ia8fcb9a44e05e37751cc1b8334aa72add7e62353
2026-05-15fix things up so it gets through cold-startIrene Knapp
then it crashes on warm-start because warm-start doesn't exist yet Force-Push: yes Change-Id: I9eba481b31d48f9d32c3790f296204c5c8d90938
2026-05-15now there's a concept of pushing and popping input sourcesIrene Knapp
Force-Push: yes Change-Id: Ib8e8f342b7fa3773071eca36accf060f6c20f3be
2026-05-11implement all the core Forth stuff in Evocation-assemblyIrene Knapp
also, add support for ;asm and stuff Force-Push: yes Change-Id: I904bc0c31e7e4c8b0abc7790f3af5d20c275f2a5
2026-05-09implement more stuff in interpret.eIrene Knapp
it depended on the execution-model stuff, for the "next" macro. in general, any word implemented in assembly will depend on that. so, the execution stuff is moved into its own file, leaving evoke.e with only the job of bringing everything together. that's a little disappointing because talking about the execution model seems like a good introduction to the whole topic, but perhaps the problem can be solved down the line with literate programming... Force-Push: yes Change-Id: Ic2fe22dcc39980ef75763ae293e41024abc8ba38