ML as the ES4 spec meta-language

Brendan Eich brendan at
Fri Oct 20 13:29:41 PDT 2006

On Oct 20, 2006, at 4:19 PM, Brendan Eich wrote:

> On Oct 20, 2006, at 4:14 PM, John Cowan wrote:
>> Brendan Eich scripsit:
>>> We seem to have chosen ML (OCaml with call/cc, probably) as the  
>>> meta-
>>> language for the ES4 spec.
>> That's why it's called ML (MetaLanguage); ML began as a metalanguage.
> Yeah, we know.
>> I wish you were using SML instead of OCaml, but I suppose I can  
>> learn.
> It's not hard :-P.

I should add, more constructively, that we are not using the  
Objective part of OCaml; in fact we are trying to use a subset that  
will be easy for SML folks to read and write.  But we need the call/ 
cc patch to OCaml, because we do not want to model an ES4 stack  
machine or continuation machine.  We want the meta-language to  
support call/cc directly.

This is a pragmatic decision, and there are other ways to skin the  
cat for sure, but they tend to taint the entire reference  
implementation and make it obscure.  We believe we can keep this call/ 
cc monster in a box, so that it does not taint the spec and break  
abstraction everywhere.  It is needed only for yield and perhaps a  
few other hard cases.


More information about the Es4-discuss mailing list