Morloc: Foreign languages unified under common functional type system(github.com)
github.com
Morloc: Foreign languages unified under common functional type system
https://github.com/morloc-project/morloc
21 comments
Yeah, I've thought a bunch about polyglot environments and the design I keep coming back to is a very generic object representation (almost definitely with a metaobject protocol), of which functions are just one kind of object. GraalVM does this with https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot...
As the morloc developer, I can tell you OOP support is in the pipeline (and there is some support now).
A proper reply to this comment would fill a very long blog post, and I'm currently on vacation, so I'll have to get back to you later.
A proper reply to this comment would fill a very long blog post, and I'm currently on vacation, so I'll have to get back to you later.
It's cool to know that there are plans for it. I look forward to hearing about them when you get there.
Enjoy your vacation!
Enjoy your vacation!
This idea is amazing, and amazingly ambitious.
I wonder if the morloc language (as distinct from the tool) really has to be a new language, or if it could be represented in Haskell or a more flexible variant like Agda or Idris.
I wonder if the morloc language (as distinct from the tool) really has to be a new language, or if it could be represented in Haskell or a more flexible variant like Agda or Idris.
Slightly off topic but the docs are really well formatted.
[0] Link: https://morloc-project.github.io/docs/
[1] Code: https://github.com/morloc-project/docs/
[0] Link: https://morloc-project.github.io/docs/
[1] Code: https://github.com/morloc-project/docs/
Asciidoc is great.
<meta name="generator" content="Asciidoctor 2.0.12">
<meta name="generator" content="Asciidoctor 2.0.12">
Morloc as in "more lines of code"?
Please make a Nix derivation so we don't have to think about those horrible installation instructions.
They look pretty simple: unless I’m missing something, it’s just ‘stack install’, plus a couple more commands for each language you want to use with morloc.
Devops, in general, is never complicated.
Still, it's not something I want to do unless I'm paid for it, and especially not for trying out hobby projects.
You can also look at the .travis.yml file. It contains the instructions for installing everything needed to run all tests on Ubuntu.
I'm not sure how this works with functions that have side effects. Perhaps they're banned?
That is a very good question. Currently effects are outside the typesystem, but I'm planning on adding an algebraic effect system similar to the one used in Microsoft's Koka language.
Sounds like someone was finally smart enough to tackle "The Next 700 Libraries"[0] problem.
[0]: https://dl.acm.org/doi/10.1145/1622123.1622147
[0]: https://dl.acm.org/doi/10.1145/1622123.1622147
From the README it seems that Python, C++, and R are supported. Which others? It seems like the documentation should have the definitive list, and explain what's supported in each language.
At the moment, it is just these three languages (and partial Rust support). I'll start adding new languages once the type system is more stable.
rust and haskell will love each other
[deleted]
I like the idea though - one functional language to rule them all is a great dream!