<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[oh, oh wow]]></title><description><![CDATA[<p>oh, oh wow</p><p>we found a bug in our Forth</p><p>if a line ends with the word <code>~</code>, which introduces a comment that lasts until the end of the line, the <strong>next</strong> line is commented</p>]]></description><link>https://board.circlewithadot.net/topic/a9335fff-cd8d-4f0b-b613-ee17b4ab3bf1/oh-oh-wow</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 02:31:47 GMT</lastBuildDate><atom:link href="https://board.circlewithadot.net/topic/a9335fff-cd8d-4f0b-b613-ee17b4ab3bf1.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 May 2026 00:37:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 21:21:17 GMT]]></title><description><![CDATA[<p><span><a href="/user/ireneista%40adhd.irenes.space" rel="nofollow noopener">@<span>ireneista</span></a></span> Static or dynamic?</p>]]></description><link>https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116535386265723762</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116535386265723762</guid><dc:creator><![CDATA[alwayscurious@infosec.exchange]]></dc:creator><pubDate>Thu, 07 May 2026 21:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 21:13:46 GMT]]></title><description><![CDATA[<p><span><a href="/user/alwayscurious%40infosec.exchange" rel="nofollow noreferrer noopener">@<span>alwayscurious</span></a></span> it's for sure a thing we're going to change <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /></p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR24M7PN31KJE2WQT761GQ0D</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR24M7PN31KJE2WQT761GQ0D</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 21:13:46 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 17:59:41 GMT]]></title><description><![CDATA[<p><span><a href="/user/ireneista%40adhd.irenes.space" rel="nofollow noopener">@<span>ireneista</span></a></span> Isn’t the complete lack of type checking in Forth already cruel?  <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f606.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--laughing" style="height:23px;width:auto;vertical-align:middle" title="😆" alt="😆" /></p>]]></description><link>https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116534593576334002</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116534593576334002</guid><dc:creator><![CDATA[alwayscurious@infosec.exchange]]></dc:creator><pubDate>Thu, 07 May 2026 17:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 17:55:50 GMT]]></title><description><![CDATA[<p><span><a href="/user/ireneista%40adhd.irenes.space" rel="nofollow noopener">@<span>ireneista</span></a></span> preadv2, pwritev2, send, recv, sendmsg, recvmsg, and the like all have ways to avoid blocking.</p>]]></description><link>https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116534578424351080</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://infosec.exchange/users/alwayscurious/statuses/116534578424351080</guid><dc:creator><![CDATA[alwayscurious@infosec.exchange]]></dc:creator><pubDate>Thu, 07 May 2026 17:55:50 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:33:52 GMT]]></title><description><![CDATA[<p>we could make it silently corrupt internal data structures in that case, but that feels pointlessly cruel to our future selves <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--smile" style="height:23px;width:auto;vertical-align:middle" title=":D" alt="😄" /></p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR013R1Y33KJ1T9XHH32111Q</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR013R1Y33KJ1T9XHH32111Q</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:33:52 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:33:12 GMT]]></title><description><![CDATA[<p>hmmmm okay, so, we think we'll have <code>consume</code> do nothing if the buffer is already empty</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR012H74WXKXKEBW8NH0J0TN</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR012H74WXKXKEBW8NH0J0TN</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:30:33 GMT]]></title><description><![CDATA[<p>keeping these big-picture concerns in mind can be tedious</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00XPF5KT0Y56JWQR1AGMH4</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00XPF5KT0Y56JWQR1AGMH4</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:30:22 GMT]]></title><description><![CDATA[<p>okay. fine. we aren't deciding on "glimpse" now, we just wanted to know there's at least one reasonable way forward before we proceed with "peek". there is, so we're going to proceed. yay <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00XBMTTSY2QCG5W1BY6RTD</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00XBMTTSY2QCG5W1BY6RTD</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:30:22 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:29:34 GMT]]></title><description><![CDATA[<p>"peek" is already a really nice word for "look to see what's there but carefully don't change anything"</p><p>it's not immediately obvious what word we would use for "be even more careful than peeking, just make it really quick"</p><p>oh - "glimpse" lol... if we want to run with the visual metaphor. maybe we do.</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00VW7NPERKAPSVQBD5AYRT</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00VW7NPERKAPSVQBD5AYRT</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:28:47 GMT]]></title><description><![CDATA[<p>(at the kernel level, it's an <code>ioctl()</code> that you do on the file descriptor, which persistently changes its behavior, but we can still organize our tooling to hide that fact, if we want, and we do)</p><p>notionally it could have the same responsibilities but in a non-waiting version</p><p>or we could break the responsibilities down into even more granular pieces. hm hmmm. these are deep questions</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00TEJART6NJKHWJ5EQD1VD</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00TEJART6NJKHWJ5EQD1VD</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:26:09 GMT]]></title><description><![CDATA[<p>we disapprove of global mutable state, so whenever we do add a non-waiting variant, it would be a separate call with a separate name, not a flag we toggle</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00NMT4NE550P2A049N0AWP</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00NMT4NE550P2A049N0AWP</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:26:09 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:25:41 GMT]]></title><description><![CDATA[<p>so the thing we're calling <code>peek</code>, notionally, includes the responsibility of waiting, as part of that system call</p><p>(see? you thought we were being overly pedantic in listing all that, above! admit it :D)</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00MRPFW2R25PTXXZ7DJR6Z</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00MRPFW2R25PTXXZ7DJR6Z</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:25:41 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:23:55 GMT]]></title><description><![CDATA[<p>we don't need to add anything to deal with temporal behavior right this moment, but we want to make sure it's clear how we would</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00HH53PAXBR5Q3YKGVWM18</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00HH53PAXBR5Q3YKGVWM18</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:23:34 GMT]]></title><description><![CDATA[<p>and we're just trying to make sure we don't paint ourselves into a corner with how we organize this functionality</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00GWM98QC1MT4H93TGEKTC</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00GWM98QC1MT4H93TGEKTC</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:23:17 GMT]]></title><description><![CDATA[<p>sometimes you care about the difference between "the next available byte" and "the next byte available <strong>right now</strong>"</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00GCAQGX7ZDFAG22ZXT09P</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00GCAQGX7ZDFAG22ZXT09P</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:23:17 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:22:54 GMT]]></title><description><![CDATA[<p>that's been a big frustration of ours in Rust (though it's been better since the Rust library <code>smol</code> came along, it was quite frustrating with several popular async libraries prior to that point)</p><p>a stream isn't just a sequence of bytes, it's a sequence of bytes that arrive <strong>at some point in time</strong> and possibly in response to things happening in the world outside of the program</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00FP7RR1655FFZQWB8N1PH</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00FP7RR1655FFZQWB8N1PH</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:21:20 GMT]]></title><description><![CDATA[<p>however we're realizing that this also bears on one of the big compatibility questions we've had in mind from the start, which is how to make sure it's not too annoying to deal with situations where the <strong>temporal</strong> behavior of input matters</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00CT46191Y1HV7DYZ42X50</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00CT46191Y1HV7DYZ42X50</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:20:41 GMT]]></title><description><![CDATA[<p>the responsibilities that <code>key</code> have now are to check what input is present; to invoke a system call to read more if needed; to put the next byte of it on the value stack as a return value; and to advance the input buffer so that the same input won't be returned next time.</p><p>so the simple way to do this would be to delegate those first three things to <code>peek</code> and the last one to <code>consume</code></p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00BM3J92TXYXP09R0RG6KD</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR00BM3J92TXYXP09R0RG6KD</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:18:51 GMT]]></title><description><![CDATA[<p>so we want to split the behavior of <code>key-from</code> into <code>peek-from</code> and <code>consume-from</code> and have `key-from simplified to just call those</p><p>and then we probably, as backfill, want to also implement <code>peek</code> and <code>consume</code> which call <code>main-input-buffer</code> and invoke the <code>*-from</code> variants on it. we won't use those variants in <code>word</code> but user code might want to</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR0088V8GMVBJ6FKQBX51CBM</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR0088V8GMVBJ6FKQBX51CBM</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:18:51 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 01:17:49 GMT]]></title><description><![CDATA[<p>okay so the current hierarchy of things is that the top-level word is <code>quit</code>, which loops and calls <code>interpret</code>, which calls <code>word</code>, which calls <code>key</code> in its own loop, which calls <code>main-input-buffer</code> to get the metadata pointer and passes that to <code>key-from</code>.</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR006C1BA6450GERHQ8D3MBW</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KR006C1BA6450GERHQ8D3MBW</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 01:17:49 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 00:59:35 GMT]]></title><description><![CDATA[<p>the hardest bugs to find are the ones that are direct consequences of intended behavior <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZZ5011CJPCJ8V21GAAT9PF</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZZ5011CJPCJ8V21GAAT9PF</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 00:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 00:59:08 GMT]]></title><description><![CDATA[<p>we tried dropping back to <code>gdb</code> which is how we debugged everything until Evocation's own debugging abilities got better, but that didn't tell us anything useful. we had to fall back to modding the interpreter to print every word before executing it, which did get us on the right track.</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZZ45AAHD3AXKS3DAH1RSBW</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZZ45AAHD3AXKS3DAH1RSBW</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 00:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 00:54:54 GMT]]></title><description><![CDATA[<p>it was quite frustrating debugging this, btw. we kind of got nowhere with bisecting how we introduced the problem, which in hindsight makes sense because we were doing that by commenting out lines, and doing so was having effects we didn't expect</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZYWDMRXB1QNHG57WGHA49X</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZYWDMRXB1QNHG57WGHA49X</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 00:54:54 GMT</pubDate></item><item><title><![CDATA[Reply to oh, oh wow on Thu, 07 May 2026 00:48:23 GMT]]></title><description><![CDATA[<p>okay, thinking it through... moving to using <code>peek</code> as part of <code>word</code> will only affect words that read strings, which is just <code>s"</code> and <code>."</code>. they'll both need to consume that character explicitly. that seems fine to us, though it does defy conventional Forth practice. we're gonna get <strong>way</strong> more blasphemous eventually, so that's fine.</p>]]></description><link>https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZYGFTAH9ZDR6E9CKQZ7XW0</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://adhd.irenes.space/users/ireneista/statuses/01KQZYGFTAH9ZDR6E9CKQZ7XW0</guid><dc:creator><![CDATA[ireneista@adhd.irenes.space]]></dc:creator><pubDate>Thu, 07 May 2026 00:48:23 GMT</pubDate></item></channel></rss>