1. 9

I think I’ve summarized what they’re saying correctly, but I could be mistaken. I don’t think this is out yet, just what they’re planning.

    1. 3

      This design for Julia has an interesting contrast to the egg library for e-graphs, which cannot yet add rules at runtime. The underlying technique for efficient e-graph matching involves compiling multiple rules together into a single program, running that program on the input e-graph, and letting the program yield each location where the e-graph matches. As a result, I would expect that the Julia implementation needs to recompile a lot of rule programs. There is a fruitful dialog around egg which includes at least a few of the folks working on Julia’s e-graph libraries, and I would be interested in reading about how they’ve overcome this obstacle.

      Edit: I wish I hadn’t been so lazy when I wrote this comment. I went and read some Julia source code, and this revealing comment, “TODO STAGE IT! FASTER!” suggests that the e-matching compiler could be changed to use Julia’s staged-compilation tools to cache the unchanged bulk of the rewrite theory, and only recompile new or altered rules.

    2. 1

      I apologize for the commenting on the form rather than the (interesting) content, but: I don’t think it’s a good idea to produce good technical content as twitter stories. If you have an interesting announcement to make about programming language features, it is going to be relevant and interesting to people for years to come. Please write a proper blog post that gives some hope of long-term archival and is actually pleasant to read. A twitter story has annoying splits, poor UI, and will be very painful to find again in the future – and it will annoy users by asking them to login, erode their privacy, etc.

      Also publishing on twitter is of course fine. If splitting the content in twitter-sized chunks helps you write it, then please go ahead and use the same structure in your post.