<feed xmlns='http://www.w3.org/2005/Atom'>
<title>evocation/input.e, branch main</title>
<subtitle>Call forth the blue-green flame of computation from the universe, weave its energies into a fabric, that we may share our blood with it.
</subtitle>
<id>http://code.irenes.space/evocation/atom?h=main</id>
<link rel='self' href='http://code.irenes.space/evocation/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/'/>
<updated>2026-05-29T04:34:03+00:00</updated>
<entry>
<title>swap the parameters to "entry-flags!"</title>
<updated>2026-05-29T04:34:03+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-29T04:34:03+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=a00f83c9446159eaf9ac817dfae5291cb226ab7a'/>
<id>urn:sha1:a00f83c9446159eaf9ac817dfae5291cb226ab7a</id>
<content type='text'>
Force-Push: yes
Change-Id: I11f3eb1079d27a7306d6ed1e8e4b9fd6fb7d3a4a
</content>
</entry>
<entry>
<title>add the ability to bind signal handlers</title>
<updated>2026-05-28T10:22:11+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-27T02:41:59+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=d9a82e9f3c87aa318fb05819249656b43fde15e3'/>
<id>urn:sha1:d9a82e9f3c87aa318fb05819249656b43fde15e3</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>deal properly with EINTR from sys-read</title>
<updated>2026-05-27T07:07:38+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-27T07:07:38+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=33fb92edc2a9958234b1bc2431a17fa4edbd83ea'/>
<id>urn:sha1:33fb92edc2a9958234b1bc2431a17fa4edbd83ea</id>
<content type='text'>
this will be necessary to resume after running a signal handler. it had a bug where any error code other than ENOENT would be treated as a number of bytes read, resulting in a negative value for the buffer's logical length. amazingly this didn't crash, but it wasn't great.

anyway now that's all fixed

Force-Push: yes
Change-Id: I1c2b45d8efd531c121c5695cdf0cc74609c80547
</content>
</entry>
<entry>
<title>de-branch'd all the internals</title>
<updated>2026-05-22T12:34:11+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-22T12:32:50+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=02a165b1e5ce2960207976e0c27b568ab2d33f8d'/>
<id>urn:sha1:02a165b1e5ce2960207976e0c27b568ab2d33f8d</id>
<content type='text'>
so it's all just high-level flow control now, which makes it load in itself

the output isn't identical on the first self-compilation, but it converges on the second

with this, it is officially self-hosting. WOW.

Force-Push: yes
Change-Id: Ic14de1dae209b200cada269b07c3826c86fa494f
</content>
</entry>
<entry>
<title>it runs!!!!!! it interactively reads input and everything</title>
<updated>2026-05-22T07:29:03+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-22T07:29:03+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=ed702c3b88953112a3682c818a6e801549e1b461'/>
<id>urn:sha1:ed702c3b88953112a3682c818a6e801549e1b461</id>
<content type='text'>
only some of that actually works, but hey, it's a start

Force-Push: yes
Change-Id: Ib82beb695be1a18de8aaaf3040b7c632851c6002
</content>
</entry>
<entry>
<title>the interpreter fully compiles now</title>
<updated>2026-05-22T06:38:32+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-22T06:38:32+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=5ae0fdad3c7df2fc02acfc3b8f36d96c5d07bcd4'/>
<id>urn:sha1:5ae0fdad3c7df2fc02acfc3b8f36d96c5d07bcd4</id>
<content type='text'>
doesn't work quite yet. close :)

Force-Push: yes
Change-Id: I71b6e788790fe2ca8e07dae95e9ad6e39d0664c0
</content>
</entry>
<entry>
<title>okay, input buffers should work now (untested though)</title>
<updated>2026-05-22T01:30:52+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-22T01:30:52+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=5183b72b296b82a6a39f8412a3de2ac77be92c73'/>
<id>urn:sha1:5183b72b296b82a6a39f8412a3de2ac77be92c73</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>dynamic.e is split up again, and more progress</title>
<updated>2026-05-22T00:57:18+00:00</updated>
<author>
<name>Irene Knapp</name>
<email>ireneista@irenes.space</email>
</author>
<published>2026-05-22T00:57:18+00:00</published>
<link rel='alternate' type='text/html' href='http://code.irenes.space/evocation/commit/?id=ff09b120141e9d8acbd930d44c3f0596eb05a016'/>
<id>urn:sha1:ff09b120141e9d8acbd930d44c3f0596eb05a016</id>
<content type='text'>
see dynamic.e, input.e, interpret.e, and flow-control.e

there were a couple things in the log-load transform that need to work in compile mode, too

Force-Push: yes
Change-Id: I7caac3b9205f36f7e082a3fd280561d67e27942c
</content>
</entry>
</feed>
