HaskellDirect - an IDL compiler for Haskell

We're pleased to announce the first public release of HaskellDirect,
an IDL compiler for Haskell.

* What is it?
=============

HaskellDirect is an IDL compiler for Haskell, helping the Haskell
programmer better interact with and reuse external code. 

Interfacing Haskell code to external code involves the conversion of
values between the Haskell world and the outside, as data
representations and details of how memory is managed, are worlds apart
at times. Manually writing the boilerplate code that takes care of
this conversion is about as exciting as watching grass grow and, as a
result, error prone.

Using an Interface Definition Language (IDL) as basis, HaskellDirect
automates the generation of such impedance matching code, generating
the necessary marshaling code to interface to external functions (and
vice versa.) 

With IDL, the functionality provided by a programming interface is
specified in a programming language neutral framework. The
HaskellDirect IDL compiler converts this specification into a set of
method stubs. Depending on how the compiler is invoked, these stubs
can be used to: 

 * Call upon external functions from within Haskell,
    using HaskellDirect to create bindings to external (C) libraries. 

 * Let external code call upon Haskell functions,
    using HaskellDirect to create external language interfaces to
    Haskell libraries.
      [This mode of operation is not supported in this release] 

 * Call COM (Microsoft's Component Object Model) methods from Haskell,
    using HaskellDirect to help writing COM clients in Haskell. The
    generated stubs can either be used with HaskellScript or Hugs/GHC. 

 * Create COM method wrappers,
    using HaskellDirect to package up Haskell code as COM objects.
    [This mode of operation is not supported in this release.] 

The HaskellDirect IDL compiler currently groks both the OSF DCE
dialect of IDL (including the various extensions introduced by the
Microsoft IDL compiler) and the OMG IIOP/CORBA dialect. (Only the
former can be used for describing COM interfaces.)

* More information
==================

Pointers to a downloadable distribution, documentation, examples
etc. is now available via the HaskellDirect home page:

   http://www.dcs.gla.ac.uk/fp/software/hdirect/

It is recommended that you compile the HaskellDirect sources with
either Hugs, or GHC (3.03p3 or later) [The sources currently shows up
a GHC-4.00 bug, so it is not recommended that you use it just yet
here.] 

It might work without too much effort with other Haskell compilers
too; haven't tested.

* Bug reports/feedback
======================

Please send any bug reports, source mods or suggestions as to
how HaskellDirect can be improved to the Glasgow Haskell Bugs
list: [EMAIL PROTECTED]


Reply via email to