I’ve been waiting decades for Multi-stage programming to become mainstream. MetaOCaml has been around for decades but is still a limited fork of OCaml. More recently, Squid for Scala is still experimental. Etc.
It can also be used to prototype if the increase in performance justifies including some sort of JIT package. Incorporating LLVM in the package should be more robust than depending on the run-time environment, and be able to free memory, but isn’t as quick to get set up as your example here.
I’ve been waiting decades for Multi-stage programming to become mainstream. MetaOCaml has been around for decades but is still a limited fork of OCaml. More recently, Squid for Scala is still experimental. Etc.
By coincidence, I just found out that the Best Research Paper Award at GPCE 2021 (International Conference on Generative Programming: Concepts & Experiences) went to the Scala-based work “Multi-Stage Programming with Generative and Analytical Macros” being presented tomorrow.
It can also be used to prototype if the increase in performance justifies including some sort of JIT package. Incorporating LLVM in the package should be more robust than depending on the run-time environment, and be able to free memory, but isn’t as quick to get set up as your example here.
I used something like this (although in Python) at http://www.dalkescientific.com/writings/diary/archive/2005/03/02/faster_fingerprint_substructure_tests.html .
Thank you for the interesting article. Shouldn’t there be a Makefile in the github repo folder?
It was missing. I fixed this omission.