Subject: Re: [bug#38605] [WIP MLton 0/1] Add MLton

From: Ludovic Courtès <[email-masked]>
Date: Mon, 16 Dec 2019 11:02:35 +0100

Hi Brett,

Brett Gilio <[email-masked]> skribis:

> It's a little off of the subject at hand, but to my knowledge (as
> provided by this issue: https://github.com/MLton/mlton/issues/350) I am
> going to cherry pick a few things of note.

Thanks for discussing it with upstream!  Your reply summarizes current
“best practices” pretty well: for Rust, for Guile (which contains an
interpreter in C), for Common Lisp (GNU clisp is written in C), for C
(MesCC), etc.

> I wonder if the best long-term solution for melding Guix and the ML
> language community is to try and write an ML compiler in a language like
> C or Scheme based on a reduced-sized specification of the language.

I vaguely recall reading about an SML implementation in Scheme.  All I
could find is a mention of it in
<https://www.macs.hw.ac.uk/ultra/skalpel/html/sml.html>.

> The reason I say all this is because I would really love to see the
> philosophies of ML/Formal Methods/Proof and the deterministic/functional
> philosophy of Guix work together. They seem naturally synergistic, but
> there seems be a difference in history here that is making this quite
> antagonistic.
>
> I'd really like to spark some insight and discussion here because it
> would be amazing if the formal methods community (like Coq, seL4,
> HOL/Isabelle, etc.) could really begin to benefit from the Guix model.

I agree that the two should be synergistic.  Eventually, all this comes
down to how to design a programming language or its implementation in a
way that allows is to be built incrementally from “nothing”, or from a
different language (something janneke and I discussed at the R-B
summit).  This sounds very much like programming language research
question.

Thanks,
Ludo’.