[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