On 2/1/07, Al Falloon <[EMAIL PROTECTED]> wrote:
Boost.Python is for extending Python with C++, or embedding Python in
C++. This is especially useful because it allows you to use Python as an
extension language for a C++ program.

Presumably Boost.Haskell would be for integrating Haskell code with C++,
which would of course be useful, but the main use case (an embedded
extension language) that draws people to Boost.Python isn't as much of a
draw for Haskell because of the compilation phase.

On the other hand, I suppose you could always integrate a Haskell
interpreter like Hugs, or even go the HsPlugins route and dynamically
load a compiled module, but the fit doesn't seem as natural as it does
with a latently typed scripting language.

There are also technical problems that are hard to overcome. Extending
Python is mostly done in C, so a C++ library to add some nice sugar is a
good fit. Haskell, OTOH, embeds C programs via its FFI. There doesn't
seem to be any way to export functions and value from C++ to Haskell,
but instead the C++ code must import from Haskell. All the heavy lifting
is done on the Haskell side, so there isn't as much opportunity to write
a slick C++ library.

This could change if someone made a version of Hugs that can be linked
in as a library with a documented C API for evaluating Haskell code and
mucking with Haskell values. But I don't think its much of a priority
right now :)

--
Alan Falloon


I think a more common scenario would be using C++ legacy code in
Haskell project. I would imagine Boost.Haskell as collection of code
generation templates for exposing C++ APIs to be used in Haskell. That
would be sweet. Even sweeter is easily accessing .Net Framework from
ghc, especially for Windows users. .Net Framework is huge. It is
de-facto _the_ windows framework. Are there any projects going in this
direction?

--
Slavomir Kaslev
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to