I Built a Scheme Compiler with AI in 4 Days

(matthewphillips.info)

16 points | by MatthewPhillips 2 hours ago ago

16 comments

  • tombert 24 minutes ago

    This is cool, I got Codex to vibe code a Forth compiler for the NES and it worked fine, but I have to say that it is decidedly not fun.

    Instead of figuring out how to solve every bug and becoming intimately familiar with with the code, I just delegate all the work to virtual interns and I sit and wait.

    I decided to write my own Forth compiler without AI assistance as a result. Side projects should be fun and for learning.

    Not judging people who use these tools, I use them too, but i just have been using them less for anything I am doing for fun.

    • xandrius 20 minutes ago

      There is fun in what you use something for and doing the something.

      I think there is a big divide between people who just love making different tools from scratch by hand and the rest who love being able to instantly whip up a new tool in minutes AND THEN use it to create something fun.

      I literally would never ever in my existence be interested in making a compiler if I had nothing to use it for. If I ever wanted to make a cool program which uses that compiler then whether the compiler came into being thanks to a wizard, my enjoyment wouldn't change a single bit.

      • lolsowrong 6 minutes ago

        I agree there’s a big divide. I think I’m also team “let people do things they enjoy.”

        I like using computers to solve problems. I’m more interested in the problem being solved than the journey most of the time, though I’ve also been on some lovely journeys. Sometimes that means I write a tool all by myself. Sometimes it means I download an existing open source tool. And sometimes it means I delegate the creation to an AI model.

      • tombert 12 minutes ago

        Yeah no argument here.

        In typical tombert fashion, when making an NES game I ended up getting much more obsessed with the tooling around the project than the core project, so when I got it to generate a Forth compiler, I fell down a rabbit hole of learning how compilers work and then feeling cheated out of the actual work.

        That said, I'm not a complete luddite here; I wanted a proper comment system on my blog recently, and I don't care enough about web stuff to actually build it myself. I could have used an off the shelf thing but those usually come with a bunch of bullshit involving accounts and the like, so instead I got Codex to build one for me and deploy it and it works fine.

    • jnpnj 14 minutes ago

      We need a new pair of words to distinguish these two mindsets. Digging deep, finding abstractions, solutions that would say more with less .. is one kind of fun. Other people want to see the magic happen by doing few keystrokes it seems, they call it fun, i call it death.

      • tombert 7 minutes ago

        I mean I guess it really depends on what you're interested in.

        There are plenty of projects I have wanted to do that I don't because the "activation energy" is too high, and if I can get a machine to basically get past the boring crap then I can focus on the parts of the project that I think are fun.

  • sicher 39 minutes ago

    Cool. I'm also working on a Scheme compiler for embedding. Bytecode VM as well as AOT compilation to Zig. 100% written by Claude Opus under my supervision and guidance. I've given it an extensive set of tests and benchmarks (r5rs and r7rs) which helps A LOT. I currently use it embedded in a modal prose editor, mostly running integration tests for now.

    https://codeberg.org/sicher/zscheme

  • igornotarobot an hour ago

    > I run into bugs all the time so it’s probably not ready for anyone other than me to use, but I’ve managed to go pretty deep (if not wide) in just a few days of work.

    Having similar experience with my experimental code generator to Rust. Every time a yet another example does not work, Claude fixes it. However, I am curious whether it would converge to a bullet-proof solution, or I have to carefully read the code and come up with proper abstractions.

    • convolvatron 27 minutes ago

      if you're trying to write rust without thinking about the abstractions then yeah, its probably non-terminal. I would strongly suggest making the broad strokes yourself and letting it fill the details.

  • eatonphil an hour ago

    What does "Write Yourself a Scheme in 48 Hours" produce? From OP I'm guessing it's something less than (73% of) R7RS.

    https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_...

    • MatthewPhillips an hour ago

      The reason it's only 73% is because I prioritized fun stuff like self hosting and platform binaries. I think finishing off the standards would only take a few more hours (except eval which I don't plan to do).

      • eatonphil an hour ago

        That wasn't a dig at you, I was just genuinely wondering what Write Yourself produces.

        • MatthewPhillips an hour ago

          Yeah, I didn't take it that way, just thought it was worth clarifying that this isn't a case of AI hitting a wall or anything like that, I just went down other rabbit holes.

  • threethirtytwo an hour ago

    detractors of AI claim this stuff is in its training data so it could be a copy which is valid. The crazy thing is the fact that it can definitely build something that does not exist.

    • convolvatron 27 minutes ago

      how many scheme compilers do you think have been written?

  • rla1192 an hour ago

    Quickly building "near production level"? Are we talking about this Matthew Phillips?

    https://docs.astro.build/en/guides/build-with-ai/

    What a happy coincidence!