-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What’s your experience like so far with this? #40
Comments
Hi Chris! So far, the experience has been good. I have been trying it out with some low priority ideas I've had, and it's generally been satisfying to use. The biggest downside I've noticed is a lack of generality - everything currently operates effectively in a Also, performance - obviously, I've done nothing to optimize this yet, and there's a lot of low hanging fruit. I should first work on adding a benchmark suite (along with more tests). The back-and-forth between Haskell and interpreted PureScript in the core libraries, especially in type-class heavy code, can incur a large performance penalty, and I'm not sure if it'd be easy to improve that. The most obvious solution is to expose more functions as FFI primitives, without the level of polymorphism that the current standard libraries provide. |
Thanks for the summary, it gives me a good indication of your priorities. One wacky idea that’s springs to mind is when Edward Kmett compiled his DSL out to a JIT’d language (or bytecode) and then wrote an interpreter in the DSL for the DSL which was automatically optimized by the JIT. (https://m.youtube.com/watch?v=25RmUl88jSw) While we’re mentioning fun ways to interpret a language, that is. |
Actually on looking at it again, it’s not how I remember it. He’s using Truffle. |
I assume you’ve been using this for a project, @paf31. What’s your experience been like so far? Trade offs? What was good, bad, or surprising?
I am still interested in exploring it for scripting. Just limited in time.
The text was updated successfully, but these errors were encountered: