Settings

Theme

Morloc: Foreign languages unified under common functional type system

github.com

93 points by agentofuser 4 years ago · 21 comments

Reader

rkangel 4 years ago

This 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 4 years ago

    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...

  • arendsee 4 years ago

    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.

    • rkangel 4 years ago

      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!

Y_Y 4 years ago

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.

scythmic_waves 4 years ago

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/

soco 4 years ago

Morloc as in "more lines of code"?

  • catern 4 years ago

    From the git repo history it looks like the original name was "Loc", for "Language of Composition".

    • arendsee 4 years ago

      Morlock's are also the creatures that manage the machines under the world in Well's Time Traveler novel. Though I guess they are known more for their dietary preferences.

otabdeveloper4 4 years ago

Please make a Nix derivation so we don't have to think about those horrible installation instructions.

  • bradrn 4 years ago

    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.

    • otabdeveloper4 4 years ago

      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.

    • arendsee 4 years ago

      You can also look at the .travis.yml file. It contains the instructions for installing everything needed to run all tests on Ubuntu.

butterisgood 4 years ago

I'm not sure how this works with functions that have side effects. Perhaps they're banned?

  • arendsee 4 years ago

    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.

wydfre 4 years ago

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

skybrian 4 years ago

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.

  • arendsee 4 years ago

    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.

dlahoda 4 years ago

rust and haskell will love each other

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection