mlton VS LunarML

Compare mlton vs LunarML and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
mlton LunarML
9 3
912 240
0.8% -
8.5 9.1
9 days ago 7 days ago
Standard ML Standard ML
GNU General Public License v3.0 or later MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

mlton

Posts with mentions or reviews of mlton. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-25.
  • Flunct: Well-typed, fluent APIs in SML
    4 projects | news.ycombinator.com | 25 Jun 2023
    https://github.com/MLton/mlton/issues/473

    Is there sufficient use of MLTon "native" backend out there to consider it mature? or Do people prefer the LLVM or C backend instead in general?

  • Simple JSON parser in c++, rust, ocaml, standard ml
    3 projects | dev.to | 11 Feb 2023
    Once I got the parser ready in OCaml, I thought I port it to Standard ML, since it belong to the same ML language family. I was also curious on how well mlton could optimise it. The language lacks custom let bindings, so I resorted to use Result.bind manually. This makes code much less readable and more verbose. The standard library also lacks result type, so I had to come up with my own simple implementation. There's also a lack of any hash map in the standard library, so I just used a list of key-value pairs. This isn't correct, but it's the closest I could get without inventing my own hash map. MLton's compile times are slow. It also lacks interactive REPL. Because of that I used alternative Standard ML implementation for interactive usage: PolyML. Debugging MLton binaries is also pretty hard. gdb doesn't work and there's no bundled debugger. I had to resort to debugging facilities built into PolyML. Valgrind doesn't work with mlton binaries, as it doesn't report any memory allocations. Looks like mlton uses mmap for allocation memory. Surprisingly, performance is not the best. This might be due to heavy usage of my custom Result type and bind calls. Exceptions seem to be a more natural choice for error reporting in Standard ML. I tried to make such a change, but this didn't improve the performance much.
  • old languages compilers
    12 projects | /r/ProgrammingLanguages | 26 Dec 2022
    MLton
  • Ante: A low-level functional language
    4 projects | news.ycombinator.com | 17 Jun 2022
    If you’re fine with tracing GC (which depends on the situation, of course), Standard ML is a perfectly boring language (that IIUC predated and inspired Caml) and MLton[1] is a very nice optimizing compiler for it. The language is awkward at times (in particular, the separate sublanguage of modules can be downright unwieldy), and the library has some of the usual blind spots such as nonexistent Unicode support (well, not every language WG is allocated a John Cowan).

    Speaking of, Scheme can also be a delightful unexciting static language; consider for example the C-producing implementation Chicken[2]. The pattern-matching / algebraic-datatype story was still rather unsatisfying last I checked, but there are other situations where it shines—it’s complementary to SML in a way.

    You’re not going to be writing a kernel or a real-time renderer in either (though I’m certain people have taken that as a challenge), they son’t afford the flashy EDSLs of Tcl, Ruby, or Racket, and I can’t say I can prototype in them like I do in Python or sh+tools, but there is a comfortable middle ground where they fit well. (I hear others use Go in what seem like the same places, but to me it feels so thin and devoid of joy that I can’t really compare.)

    The FFI tools in both of the mentioned implementations are excellent, though not quite at the “type in C declarations” level of LuaJIT and D.

    [1] http://mlton.org/

    [2] https://call-cc.org/

  • Write your own programming language in an hour with Chumsky
    4 projects | news.ycombinator.com | 12 Apr 2022
    Unfortunately, I haven't found a ton of "easily-digestible" and, at the same time, comprehensive guides on compiling functional languages. Generally you'll find a mix of blog posts/class notes/papers covering a single step.

    Some resources I like:

    - Andrew Kennedy's 2007 paper Compiling with Continuations, Continued [1]. This one is the most clear IMO

    - Andrew Appel's Compiling with Continuations book (a bit outdated though... assembly code is for VAX)

    - Matt Might's series [2]

    - MLton's source and documentation [3]

    [1] https://www.microsoft.com/en-us/research/wp-content/uploads/...

    [2] https://matt.might.net/articles/closure-conversion/

    [3] http://mlton.org/

  • Why are imperative programs considered faster than their functional counterparts?
    6 projects | /r/ProgrammingLanguages | 30 Dec 2021
    More broadly, they can be fast even without such extensions if they aggressively pursue optimization opportunities afforded by static typing, like MLton for example, but that also impacts compilation performance negatively.
  • Coalton: How to Have Our (Typed) Cake and (Safely) Eat It Too, in Common Lisp
    2 projects | news.ycombinator.com | 10 Sep 2021
  • Are there any efficient key-value map/dictionary implementations in SML?
    3 projects | /r/sml | 27 Dec 2020
    https://github.com/MLton/mlton/blob/master/lib/mlton/basic/hash-set.sig https://github.com/MLton/mlton/blob/master/lib/mlton/basic/hash-table.sig

LunarML

Posts with mentions or reviews of LunarML. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-11-13.
  • Implementing Basic UI in Love2d
    3 projects | /r/love2d | 13 Nov 2022
    While talking about this I discovered LunarML, which compiles StandardML to Lua and JS. I'm more familiar with OCaml than SML, but that's definitely one I'm going to keep an eye on.

What are some alternatives?

When comparing mlton and LunarML you can also consider the following projects:

typed-racket - Typed Racket

sml-parseq - parallel sequences library in Standard ML

sml-analyzer - An experimental language server for SomewhatML

seL4 - The seL4 microkernel

smlpkg - Generic package manager for Standard ML libraries and programs

tao - A statically-typed functional language with generics, typeclasses, sum types, pattern-matching, first-class functions, currying, algebraic effects, associated types, good diagnostics, etc.

smlfmt - A custom parser/auto-formatter for Standard ML

futhark - :boom::computer::boom: A data-parallel functional programming language

mpl - The MaPLe compiler for efficient and scalable parallel functional programming

ante - A safe, easy systems language

mlkit - Standard ML Compiler and Toolkit