2
<p>i&#39;ve seen people complain that BSOD no longer contains basically any useful info, but like... if you&#39;re actually interested in figuring out what went wrong, why not just look at the minidump? it has everything that was on the old NT BSOD screen, but you also don&#39;t have to fuckin take a photo of it</p>
<p>friendship ended with `bcdedit -set TESTSIGNING ON`, now `ed CI!g_CiOptions 0` is my best friend</p>
<p>đŸ’­ KMDF CEF</p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@whitequark" class="u-url mention">@<span>whitequark</span></a></span> <span class="h-card" translate="no"><a href="https://is.badat.dev/users/meithecatte" class="u-url mention">@<span>meithecatte</span></a></span> I&#39;m still confused how you go about effectively compiling or typechecking Forth. I am hoping to try out some modern Forths later in this &quot;Babel&quot; project</p>
<p><span class="h-card" translate="no"><a href="https://mastodon.social/@mcc" class="u-url mention">@<span>mcc</span></a></span> or Forth</p><p>(cc <span class="h-card" translate="no"><a href="https://is.badat.dev/users/meithecatte" class="u-url mention">@<span>meithecatte</span></a></span> who wrote a very cool boot sector forth)</p>
<p>I&#39;ve realized something:</p><p>mov rax, r10<br />add r8, 1<br />jmp _main_loop_reset</p><p>Assembly looks a lot like LISP once you remove the parentheses! So I wanted to design an ASM syntax that exists as a data structure within a LISP, and write code as a LISP program that generates that data structure. In other words make a DSL similar to &quot;Amaranth&quot; or my old &quot;No Compiler&quot; blog posts <a href="https://msm.runhello.com/p/category/plt/no-compiler" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">msm.runhello.com/p/category/pl</span><span class="invisible">t/no-compiler</span></a> . I may be just confusing you at this point— I&#39;m not sure I can describe this idea clearly in 500 chars.</p>
<p>Making this little LISP was *in part* a &quot;can I do this?&quot; for the Babel project. But there&#39;s another thing, which is I want a general purpose assembler. I&#39;ve recently started wanting to target some unusual/retro systems (NES, N64, Saturn) and I forsee frustration with having no common toolchain among these projects for any language I like, nor a common macroassembler syntax I can take with me across different ISAs.</p><p>So I was hoping my tiny LISP could be reworked into a macroassembler.</p>
<p>In particular, what worries me is the &quot;hard part&quot; of this code turned out to be the higher order functions (if, while, for, foreach, proc). This LISP is contrived compared to other LISPs, with no special &quot;forms&quot;, and no sugar other than the {} and [] which are supposed to be swiss army knives you can construct anything else you need from. I did it this way to make self-modifying / generated-at-runtime code easy &amp; fluid. *But that&#39;s exactly what turned out to be hardest*. And *that&#39;s* a bad sign!</p>
<p>Got part 1 of the puzzle working this morning!</p><p><a href="https://github.com/mcclure/aoc2024/blob/2656c75da28669ad11568fae6f5f3a9c24a311a6/06-01-guard/src/puzzle.l0" target="_blank" rel="nofollow noopener" translate="no"><span class="invisible">https://</span><span class="ellipsis">github.com/mcclure/aoc2024/blo</span><span class="invisible">b/2656c75da28669ad11568fae6f5f3a9c24a311a6/06-01-guard/src/puzzle.l0</span></a></p><p>App code &quot;proper&quot; starts around line 124 (43-123 are &quot;library code&quot; I didn&#39;t post above; I implemented &quot;for&quot; and &quot;switch&quot;, and a very small vector math library.)</p><p>Writing this program was not at all hard (other than the library code… `for` was painful), but nor was it particularly *pleasant*; it didn&#39;t feel fluid. That might speak poorly for my minimal LISP, and the question of whether I use it again after this project.</p>
Attached image 0