7 ms·
> Most of the C++ I maintain these days is in whole or in part generated by Haskell Can you expand on that? I'm currently researching something similar but low
by unsafecast 4y ago
> Most of the C++ I maintain these days is in whole or in part generated by Haskell
Can you expand on that? I'm currently researching something similar but lower level & lisp instead of Haskell. It would help to see some existing examples to figure out if it's worth it or not.
- benreesman 4y agoIdeally we'll just be able to open source it soon! Basically we have a nice Haskell DSL for generating arbitrary C++, and we deal with lots of code you wouldn't want to write by hand (big nested switch statements and other kinds of state-machine logic, choices about loop unrolling, lots of template overloads, SIMD intrinsics that require immediate values, etc. etc.) so we write Haskell that generates C++ and feeds it to e.g. `clang`. Some of this is directly in Haskell, and some of it is little compilers mostly done using Megaparsec. It's a really nice approach where it fits!
- unsafecast 4y agoSounds great, that's what I was imagining too. Is there a way I can find it when/if you open the source?
- benreesman 4y agoDrop me a line at ben@rocinanteresearch.net and I'll let you know when we can open-source some of it. None of it is really all that magical btw, so you should take a whack at it yourself! One thing that wouldn't have occurred to me that one of the Haskell geniuses I work with identified to use is the notion of a "free"/"operational" monad: https://apfelmus.nfshost.com/articles/operational-monad.html https://apfelmus.nfshost.com/articles/operational-monad.html.
- unsafecast 4y agoThanks a lot. > None of it is really all that magical btw, so you should take a whack at it yourself! Of course! It's always good to see how other people approach it though.