5 ms·
Morloc: Foreign languages unified under common functional type system
- soco 5y agoMorloc as in "more lines of code"?
- otabdeveloper4 5y agoPlease make a Nix derivation so we don't have to think about those horrible installation instructions.
- bradrn 5y agoThey 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.
- otabdeveloper4 5y agoDevops, 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.
- arendsee 5y agoYou can also look at the .travis.yml file. It contains the instructions for installing everything needed to run all tests on Ubuntu.
- Y_Y 5y agoThis 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.
- dlahoda 5y agorust and haskell will love each other
- scythmic_waves 5y agoSlightly off topic but the docs are really well formatted. [0] Link: https://morloc-project.github.io/docs/ https://morloc-project.github.io/docs/ [1] Code: https://github.com/morloc-project/docs/ https://github.com/morloc-project/docs/
- djoldman 5y agoAsciidoc is great. <meta name="generator" content="Asciidoctor 2.0.12">
- rkangel 5y agoThis is fine if all you care about is functions. Very little in Python is just functions though, and the same is true in C++. The issue with FFI is always adapting the different concepts from one language to another. I can't see how (or if they try) to unify other language's OOP with a functional language over the top. I like the idea though - one functional language to rule them all is a great dream!
- remexre 5y agoYeah, 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/Value.html https://www.graalvm.org/truffle/javadoc/org/graalvm/polyglot...
- arendsee 5y agoAs 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.
- rkangel 5y agoIt's cool to know that there are plans for it. I look forward to hearing about them when you get there. Enjoy your vacation!
- wydfre 5y agoSounds like someone was finally smart enough to tackle "The Next 700 Libraries"[0] problem. [0]: https://dl.acm.org/doi/10.1145/1622123.1622147 https://dl.acm.org/doi/10.1145/1622123.1622147
- butterisgood 5y agoI'm not sure how this works with functions that have side effects. Perhaps they're banned?
- arendsee 5y agoThat 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.
- skybrian 5y agoFrom 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.
- arendsee 5y agoAt 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.
- deleted 5y ago[deleted]