| Age | Commit message (Collapse) | Author |
|
it's more readable
Force-Push: yes
Change-Id: I4be37c18da174eb1e9016bb1199a2ff2cf93f334
|
|
yay :)
Force-Push: yes
Change-Id: Iae2e308ed8d786a9586bdc2583a6a9300282abae
|
|
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
|
|
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
|
|
it generates most of the calls to create and comma, now
Force-Push: yes
Change-Id: Ib7620dca7a5bc5dd787e940ad18cf48c2a1bd529
|
|
Force-Push: yes
Change-Id: I04dd65a9eec71f9b50c8875bdcbe5d4be59888d5
|
|
it doesn't actually output anything, but it all runs without crashing
Force-Push: yes
Change-Id: I48f2e647044df0ae3db961c747cee31a8826ecf3
|
|
Force-Push: yes
Change-Id: I273879e9d05260db0603bc5a36970e240f3e366a
|
|
Force-Push: yes
Change-Id: Ia1fe0e6aefaf6776bd69bca4a26ee0df0b555832
|
|
fixed now
also a bunch of small things towards adding a log-load transform
Force-Push: yes
Change-Id: I6eeb94d896a7e79092886d7b60e9404c31b2ba6f
|
|
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
|
|
more specifically, a generated hello-world that uses cold- and warm-start, and both assembly and Forth words, correctly calls the kernel's exit() with a parameter provided by a literal.
Force-Push: yes
Change-Id: I9a08f9cdad6bd0037a41655eecff6debea5f9ac3
|
|
Force-Push: yes
Change-Id: I45662e60c0035758a2cd57d971031eb0562eccb7
|
|
it was using the wrong value for the buffer start, messing up transform-offset
Force-Push: yes
Change-Id: I1d519b4de2df87930413ca440779337dbbe34d62
|
|
the code doesn't quite run yet, that'll be a future CL
Force-Push: yes
Change-Id: I71e6a45127c1fc37906d902e36142c17afef2a21
|
|
also some minor cleanup that ie. fixes alignment padding
Force-Push: yes
Change-Id: Ia8fcb9a44e05e37751cc1b8334aa72add7e62353
|
|
wow! yes. good. now it needs to actually generate label calls :)
Force-Push: yes
Change-Id: Ide4336e00aa6860fe55c956063303edc873c6d9b
|
|
then it crashes on warm-start because warm-start doesn't exist yet
Force-Push: yes
Change-Id: I9eba481b31d48f9d32c3790f296204c5c8d90938
|
|
Force-Push: yes
Change-Id: Ib8e8f342b7fa3773071eca36accf060f6c20f3be
|
|
this will support transformations
Force-Push: yes
Change-Id: I741e8f18eef456c836d8eb1b01ec4463a6c8898c
|
|
this will help us process it repeatedly so that label resolution works
Force-Push: yes
Change-Id: Ibef3b473259feb2e8d89acd5d1a40a21d5ecafe9
|
|
Force-Push: yes
Change-Id: I887688e3e71143792fbdf336c9f5299c160a5ff7
|
|
forgot to check this in
Force-Push: yes
Change-Id: Ief7c6da623cffb538f5802480d4c3432614d9846
|
|
this lets us have immediate-mode string literals as parameters without having to worry about how fully bootstrapped we are
Force-Push: yes
Change-Id: I18510de6f916898e411b406959ba0eab7fccb319
|
|
also, add support for ;asm and stuff
Force-Push: yes
Change-Id: I904bc0c31e7e4c8b0abc7790f3af5d20c275f2a5
|
|
that was quite some debugging. the write-up is still in progress (see the TODO)
Force-Push: yes
Change-Id: Ia1494bcde2b66e82efe8598899e93bdff60841d4
|
|
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
|
|
oops - the last CL was supposed to fix this, but it was inadvertently left out
Force-Push: yes
Change-Id: I4edf5abed315bea51abcd98ad67cd28782a62efe
|
|
memmove never had a heap-based implementation, probably due to excessive hurrying when it was first written. it has now been added. it's identical to the original static implementation.
a minor documentation error in evoke.e was discovered while coding this, and is now fixed.
Force-Push: yes
Change-Id: I55ff09712a992410167a53cd83e96a452ed49744
|
|
Force-Push: yes
Change-Id: I33ad8783283643ca4977ab19c378156436707687
|
|
Force-Push: yes
Change-Id: I063232ca7d840237f53dc805bc896c7b452cedc8
|
|
Force-Push: yes
Change-Id: I82794426013d33715decd2c86e00fe2367aab7c8
|
|
Force-Push: yes
Change-Id: Icf69cdfe7cf31fda07031bbc848c3ce2acb8cca1
|
|
Force-Push: yes
Change-Id: I352537e52cb12d1c96f84cdaa794bd854d8ab1aa
|
|
Force-Push: yes
Change-Id: Iba125ccfd005151822d31af050ea3b4e2907d853
|
|
the cold-start routine needs it...
Force-Push: yes
Change-Id: I6c0d80fc2bbb634f4b25aa96bd4ed5351361b8c9
|
|
it was time. it was really impressively broken without one.
Force-Push: yes
Change-Id: Id26c551dcf43b37577ac96796627b6658a040cf4
|
|
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
|
|
wow it feels strange having a clear meaning associated with line noise like that
Force-Push: yes
Change-Id: If3d101234a9b8798c88f6b90090479b2866f5406
|
|
nice, right? :) modular programming! :D
Force-Push: yes
Change-Id: I56dd219fd2147850a0bb5b4a8cb3f9760e787215
|
|
yay
this is everything important that flatassembler was doing for us, so now it's time to rewrite Evocation itself, wow!
Force-Push: yes
Change-Id: Ifc2a901801d3edcc6d81b063a0a7c3efacdd255e
|
|
wow did labels turn out to be handy
Force-Push: yes
Change-Id: Iba8d57aed2e5baab5df44b94cdc1d57891b846a9
|
|
it doesn't actually resolve their real values yet though
Change-Id: Ib8fa0f73dfa37ec9e593f5cf17adc825a42ba53b
Force-Push: yes
|
|
this fixes a "bug" where a "~" as the last thing on a line would comment the following line
this is a user-visible API change, but the only thing that needed to be modified right now was s"
Force-Push: yes
Change-Id: Iad062581dfdd8603ab75d58b1ca304ea6eb55c37
|
|
Change-Id: I203ec08f02bff6f3fc7c82e359941449ca02a04c
Force-Push: yes
|
|
also some important TODOs have been discovered
Force-Push: yes
Change-Id: I8efe7d0074700d6f5c78d4a591e5b590f57f47a9
|
|
this is re-tracing some steps from way back in the beginning, to see what they look like in a post-flatassembler context :)
it doesn't, like, do anything yet, other than print out some introspection
Force-Push: yes
Change-Id: I8913edffc075de313870367ef56278b1c8f50a06
|
|
Force-Push: yes
Change-Id: I19a63a15b0058393719c0903bcabbb9b1389e2a1
|
|
Force-Push: yes
Change-Id: Ifda674d7bdd6243bf879ad5964b56791c6f33b90
|
|
that was easy :)
Force-Push: yes
Change-Id: I43933b373566d83e1c8a7dd12f5e7d203952fcc2
|