[MLton] Parallel Runtime System

skaller skaller at users.sourceforge.net
Sat Jun 16 18:45:44 PDT 2007


On Sat, 2007-06-16 at 21:03 -0400, Stephen Weeks wrote:
> > > Sounds like a cool project.  One tough problem is making 'portable'
> > > runtime systems -- in the implementation of a high-level language, the
> > > compiler and runtime system are usually tightly integrated.
> >
> > Felix is portable (all of it).
> 
> I think you missed Matthew's meaning of "portable" -- he meant a
> runtime portable across compilers (i.e. the runtime's clients), not
> across platforms the runtime runs on.

Felix run time code is portable across all platforms
and compilers (hopefully of course!)

Since it is C++, the compatibility is only at the source level
(MSVC++ and g++ uses different linkage conventions and ABI
on 32 bit Windows).

Were it C, the compatibility would usually be fully binary 
on a given platform, for example gcc and Sun cc on Solaris 
would work with the same run time binary no matter which 
compiler built it or its clients (because there is a standardised
ABI for Solaris .. most Unixen must have one or you can't
actually call the C library that wraps the kernel calls).

Of course a runtime for Mlton and SML/NJ for example
is unlikely to be the same for the reasons mentioned:
the code generated usually depends on specialised run time
support.

Felix is an exception to that rule. It IS defined portably:
thats the whole point of it. And of course it may pay in
terms of performance for that compromise.

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net



More information about the MLton mailing list