| Age | Commit message (Collapse) | Author |
|
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
|
|
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
|
|
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
|
|
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
|
|
the code doesn't quite run yet, that'll be a future CL
Force-Push: yes
Change-Id: I71e6a45127c1fc37906d902e36142c17afef2a21
|
|
the documentation in labels.e is entirely new, synthesized from informal private discussions.
this is also intended as a final pass to make sure all the comments and nuances in the ELF code from quine.asm are incorporated in elf.e.
also this uses the new `L@'` and `L!'` facilities for terseness
Force-Push: yes
Change-Id: Ieabb2bb26f4b83260f0072dcdcd0950f9aa9fab2
|
|
nice, right? :) modular programming! :D
Force-Push: yes
Change-Id: I56dd219fd2147850a0bb5b4a8cb3f9760e787215
|