ra’s avatarra’s Twitter Archive—№ 37,800

        1. i switched #jn's bytecode emission to mono.cecil and its a whole lot better. the REPL compiler and static compiler are now unified and much easier to reason about. no new functionality to demonstrate, but the innards are much more robust and smaller (~1.7k SLOC)
      1. …in reply to @ra
        compilation strategy: every expression in the REPL is compiled to its own in-memory assembly that gets stored in an append-only journal. lookups happen backwards from the end of the journal, so new definitions shadow old ones. here's four expressions eval'd in order + dissasembly
        oh my god twitter doesn’t include alt text from images in their APIoh my god twitter doesn’t include alt text from images in their APIoh my god twitter doesn’t include alt text from images in their APIoh my god twitter doesn’t include alt text from images in their API
    1. …in reply to @ra
      these in-memory assemblies can be merged after the fact into a single assembly when ahead-of-time compilation is desirable, or to capture a REPL session.
      oh my god twitter doesn’t include alt text from images in their API
  1. …in reply to @ra
    the old approach compiled as many expressions as possible at the same time, which resulted in annoying special cases to deal with invoking functions in the same compilation unit vs functions already emitted to memory. that's all gone now. much simpler.