about summary refs log tree commit diff
path: root/hex.e
AgeCommit message (Collapse)Author
7 daysrework the interface to "enchant" to support different kinds of executablesIrene Knapp
so, in particular, "hex" now builds with the new syntax to implement this, "enchant" now passes the full structure through to "output-contents", which makes it easier to extend. additionally, when inscribing, the source of "evoke" needs to be included in the scope of the hex transform even when the program being compiled is something else, so that it can carefully interfere with the other transforms. this is now implemented, though in an inelegant way that could do with some cleanup. (that last sentence could be the slogan of the whole project :D) Change-Id: I553afadba350a62d6e97a21df2b3e821685b9c0c Force-Push: yes
9 daysuse the new x' everywhere it's applicableIrene Knapp
you may infer from the size of the CL that we've been wanting this for QUITE A WHILE Force-Push: yes Change-Id: Iaa6ff8f40bd4020a75b81aadd87874cc8d512123
9 daysadd everything in compilation/ to the boot-sourceIrene Knapp
this means it's now always available it does make evoke.hex significantly larger! Force-Push: yes Change-Id: I4017b2a666fd456b851dc1b77d1ee7ef5360b35b
2026-09-28move all the source files into subdirectoriesIrene Knapp
and rename one, linux-dynamic.e to language/dynamic/linux.e. also make sure all references in comments and documentation refer to the new locations and names. this directory structure reflects code organization which had existed in Irenes' head, but was likely not obvious to other readers. now hopefully it is more discoverable. Force-Push: yes Change-Id: Icfef3eae812a50fe20202191999e68e1f7db445a
2026-09-24"include" works under the hex transform nowIrene Knapp
this means all the build invocations are now as simple as they can be without new abstractions of some sort, such as letting evoke take command-line parameters. yay! Force-Push: yes Change-Id: Id877159f995662b8d226a9ad937ed73228a9af05
2026-09-23all the syscall parameters are in the kernel's order nowIrene Knapp
there was never a good reason for them not to be plus, the formerly bespoke ones use the generic helpers now; sys-open and sys-close are implemented; and a bug in push-input-buffer and pop-output-buffer is fixed unfortunately these were breaking changes, so there's another evoke.hex in this one Change-Id: Ifad58fc2fd757adcf89a69c59575565a10406ec2 Force-Push: yes
2026-09-22change sys-write and sys-read to take file descriptorsIrene Knapp
and also sys-write didn't used to return a result this required a little massaging to make it build, the host evoke needed to not actually pass the file descriptor in evoke.e. for posterity: this was fixed by changing it everywhere else as a one-off, then changing it there and using the intermediate version to build the one being checked in now. this kind of weirdness is a thing we get the freedom to do because of the bootstrapped distribution model, though we still strongly prefer not to do it unless necessary. this breaking change would have had to happen at some point, so it's considered acceptable. the size of the diff to evoke.hex is larger than ideal. this raises the need to have a policy for when to regenerate it. since this is a breaking change, it's mandatory. it also seems important to commit a regenerated copy when a release is tagged. it will probably turn out to be a good idea to not regenerate it excessively, otherwise. it's possible that in the long run it might make sense to add name-mapping functionality to hex, just to make the diffs smaller. Force-Push: yes Change-Id: I2648b2577c5c21b126e46405e9888b5cb59aa0b7
2026-09-21mark a couple labels in hex.e as non-offsetIrene Knapp
and rebuild hex.hex with the latest features Force-Push: yes Change-Id: Ic96c1ff6b06d2ecfb08a5c6829206460c0cdcf95
2026-09-09add an implicit way to define suffix commentsIrene Knapp
and make the explicit way more versatile (allowing zero length) this required hooking the lexer at a pretty low level, but it worked out fine Force-Push: yes Change-Id: Icdbe233fbf9d4cf07cb8d03975eed3b4f7b620aa
2026-09-09provide a #swap operation in comment templatesIrene Knapp
and use it in a couple places in amd64.e where it's needed Change-Id: Id73dcd13f08c03aa02ac09e45ab034fcd90f2569 Force-Push: yes
2026-09-08bubblesort the metadata entries during postprocessingIrene Knapp
since we do this here, we no longer need to worry about doing it during initial entry creation, so that's good. that had been on the mental "maybe later" checklist for a while. the various innovations in entry processing now make it possible to pass through most of the formatting in hex.e, so that's done now (suffix comments that aren't instruction decodings still need to be made to work) there's also a new entry type which will be part of the comment parameter system. that's not fully working yet, but this was a bunch of really subtle debugging, so it makes a good spot to checkpoint at. Force-Push: yes Change-Id: I2aff7276368eaad7e5c280a58834605e294dcd74
2026-09-08the hex dump now prints trailing messages at the end of the dataIrene Knapp
Force-Push: yes Change-Id: I71930b088c176ade6a0bf7aaecb46bdecb0636ad
2026-09-07add indentation and blank lines as magic-comment featuresIrene Knapp
the output is really starting to look like something! Force-Push: yes Change-Id: Ic41c8b1702d884ff89693a86d457af7cc752aa86
2026-09-07add tracing of the latest output point in packstringIrene Knapp
this is necessary because packstring isn't implemented in terms of pack8, unlike packalign also add a bunch more magic comments to hex.e, which would be in the wrong place without the semantic change Force-Push: yes Change-Id: I422b8d00a07568be5113e005fddaeab82f5ca731
2026-06-12it spits out correct hexIrene Knapp
no comments yet, of course. also no way to run it on evoke itself yet, due to the buffer thing. Force-Push: yes Change-Id: Ia1d7cc06bd3da59a5d272e1c04606c25d46acee5
2026-05-24added a program, hex.e, which will be the bootstrap strategyIrene Knapp
also added some instructions it needed Force-Push: yes Change-Id: Ia35280e2696167eb0662a5c3a9dc47840438da56