[m-dev.] Re: foreign language interface documentation

Tyson Dowd trd at cs.mu.OZ.AU
Tue Oct 15 11:23:36 AEST 2002

On 14-Oct-2002, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 14-Oct-2002, Tyson Dowd <trd at cs.mu.OZ.AU> wrote:
> > I won't be able to make it to this meeting.
> I wanted to ask you about the foreign language interface stuff.
> Currently the language reference manual says
>  | This chapter documents the new foreign language interface.
>  | This interface is not yet complete, and is not fully supported.
>  | It is documented here as an aid to the Mercury language developers.
>  | See the @pxref{C interface} chapter for the existing, supported C
>  | interface for Mercury.
>  |  
>  | The syntax, documentation, behaviour and semantics of the constructs
>  | described in this chapter are subject to change without notice.
> Is this still correct?  What parts of the foreign language interface
> are not complete?  What changes, if any are planned, are the reasons
> for documenting the interface as unstable still valid?

Not complete: import and export are not parametized.

No instability is planned however the .NET backend foreign language
interfacing support could change in order to support high-level data,
RTTI interfacing and so on.   Basically the FFI support is not complete,
and so the changes that are required are not yet known.

Chances are there will be nothing drastic that needs to be changed, but
it's quite possible users may have to rewrite their code.

> Also, some significant parts of the documentation (in particular
> "interfacing with C# code" and "interfacing with Managed C++"
> are not complete, and are listed as "Sorry, not yet documented."

These are not particularly complicated to write. 

C# code is pretty similar to writing IL code except the code inside the
double quotes is in C#, and you don't have to worry about telling people
not to use certain instructions.

I would advise simply commenting out the MC++ code section as it is the
most troublesome interface and is used the least.

All the .NET interface stuff needs to be updated with regard to semidet
procedures and how they are implemented by the C#/IL programmer.

> Any suggestions for what we should do about this for the forthcoming
> release?

The options are: leave as is, comment out these sections, fill them in,
or finish my thesis for me and I'll do fill them in. 

Previously you have been uneasy about documenting features in the manual
that are subject to change -- unfortunately these are still subject to
change and if documentation is written it may need to be changed.

mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list