* [Caml-list] Interface between Ocaml and C++
@ 2004-06-19 4:56 Gu Nu
2004-06-19 7:29 ` art yerkes
0 siblings, 1 reply; 8+ messages in thread
From: Gu Nu @ 2004-06-19 4:56 UTC (permalink / raw)
To: caml-list
Hi, all
Does anybody know how to deal with C++ classes, such
as vectors, maps, in Ocaml? It seems that currently
Ocaml can only support the interoperation of C. So
the first step is to try encapusuate a C++ class with
C interface, then write C interface for Ocaml.
However, it is so inconvient for std classes. Does
anybody has any better ideas?
Thanks a lot!
Andy
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-19 4:56 [Caml-list] Interface between Ocaml and C++ Gu Nu
@ 2004-06-19 7:29 ` art yerkes
2004-06-21 19:24 ` Eray Ozkural
0 siblings, 1 reply; 8+ messages in thread
From: art yerkes @ 2004-06-19 7:29 UTC (permalink / raw)
To: Gu Nu; +Cc: caml-list
On Fri, 18 Jun 2004 21:56:05 -0700 (PDT)
Gu Nu <gnu04@yahoo.com> wrote:
> Hi, all
>
> Does anybody know how to deal with C++ classes, such
> as vectors, maps, in Ocaml? It seems that currently
> Ocaml can only support the interoperation of C. So
> the first step is to try encapusuate a C++ class with
> C interface, then write C interface for Ocaml.
> However, it is so inconvient for std classes. Does
> anybody has any better ideas?
>
> Thanks a lot!
>
> Andy
>
The SWIG module for Ocaml has support for a few STL
types. If you use those interfaces as a guide, you
could add support for more if the automatic wrapping
doesn't suit.
SWIG isn't perfect for everyone but some needs are
met very well, including using templates.
Look at http://www.swig.org/
--
Hey, Adam Smith, keep your invisible hands to yourself!
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-19 7:29 ` art yerkes
@ 2004-06-21 19:24 ` Eray Ozkural
2004-06-22 6:41 ` art yerkes
0 siblings, 1 reply; 8+ messages in thread
From: Eray Ozkural @ 2004-06-21 19:24 UTC (permalink / raw)
To: art yerkes; +Cc: Gu Nu, caml-list
On Saturday 19 June 2004 10:29, art yerkes wrote:
> The SWIG module for Ocaml has support for a few STL
> types. If you use those interfaces as a guide, you
> could add support for more if the automatic wrapping
> doesn't suit.
>
> SWIG isn't perfect for everyone but some needs are
> met very well, including using templates.
>
> Look at http://www.swig.org/
How does it handle convert C++ templates to ocaml code, I wonder. I had a
design in my mind, but it required quite a bit of monkeying around. What's
their solution?
Regards,
--
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara KDE Project: http://www.kde.org
http://www.cs.bilkent.edu.tr/~erayo Malfunction: http://malfunct.iuma.com
GPG public key fingerprint: 360C 852F 88B0 A745 F31B EA0F 7C07 AE16 874D 539C
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-21 19:24 ` Eray Ozkural
@ 2004-06-22 6:41 ` art yerkes
2004-06-22 11:14 ` Eray Ozkural
0 siblings, 1 reply; 8+ messages in thread
From: art yerkes @ 2004-06-22 6:41 UTC (permalink / raw)
To: erayo; +Cc: exa, gnu04, caml-list
On Mon, 21 Jun 2004 22:24:07 +0300
Eray Ozkural <exa@kablonet.com.tr> wrote:
> On Saturday 19 June 2004 10:29, art yerkes wrote:
> > The SWIG module for Ocaml has support for a few STL
> > types. If you use those interfaces as a guide, you
> > could add support for more if the automatic wrapping
> > doesn't suit.
> >
> > SWIG isn't perfect for everyone but some needs are
> > met very well, including using templates.
> >
> > Look at http://www.swig.org/
>
> How does it handle convert C++ templates to ocaml code, I wonder. I had a
> design in my mind, but it required quite a bit of monkeying around. What's
> their solution?
The current solution is to specify which specializations of a given template
will be needed, after which the specialized template classes are treated as
ordinary classes.
--
Hey, Adam Smith, keep your invisible hands to yourself!
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-22 6:41 ` art yerkes
@ 2004-06-22 11:14 ` Eray Ozkural
2004-06-22 13:36 ` art yerkes
0 siblings, 1 reply; 8+ messages in thread
From: Eray Ozkural @ 2004-06-22 11:14 UTC (permalink / raw)
To: art yerkes; +Cc: gnu04, caml-list
On Tuesday 22 June 2004 09:41, art yerkes wrote:
> On Mon, 21 Jun 2004 22:24:07 +0300
>
> Eray Ozkural <exa@kablonet.com.tr> wrote:
> > On Saturday 19 June 2004 10:29, art yerkes wrote:
> > > The SWIG module for Ocaml has support for a few STL
> > > types. If you use those interfaces as a guide, you
> > > could add support for more if the automatic wrapping
> > > doesn't suit.
> > >
> > > SWIG isn't perfect for everyone but some needs are
> > > met very well, including using templates.
> > >
> > > Look at http://www.swig.org/
> >
> > How does it handle convert C++ templates to ocaml code, I wonder. I had a
> > design in my mind, but it required quite a bit of monkeying around.
> > What's their solution?
>
> The current solution is to specify which specializations of a given
> template will be needed, after which the specialized template classes are
> treated as ordinary classes.
OK. Imagine client ocaml code that uses template class C < T >. I had imagined
that the specializations in the ocaml code ( C < int >, C < vector<float>
>, ... ) could be determined automatically, after which the specializations
are generated in C++ stub code, and linked in... So I guess I had in mind a
more generic version of SWIG's approach, however I doubt this won't be a good
mapping.... Can you guys imagine any other alternatives, or should we avoid
templates in C++ libraries that want an ocaml binding (like KDE) ?
Cheers,
--
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara KDE Project: http://www.kde.org
http://www.cs.bilkent.edu.tr/~erayo Malfunction: http://malfunct.iuma.com
GPG public key fingerprint: 360C 852F 88B0 A745 F31B EA0F 7C07 AE16 874D 539C
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-22 11:14 ` Eray Ozkural
@ 2004-06-22 13:36 ` art yerkes
2004-06-22 18:44 ` Eray Ozkural
0 siblings, 1 reply; 8+ messages in thread
From: art yerkes @ 2004-06-22 13:36 UTC (permalink / raw)
To: erayo; +Cc: exa, gnu04, caml-list
On Tue, 22 Jun 2004 14:14:04 +0300
Eray Ozkural <exa@kablonet.com.tr> wrote:
> On Tuesday 22 June 2004 09:41, art yerkes wrote:
> > On Mon, 21 Jun 2004 22:24:07 +0300
> >
> > Eray Ozkural <exa@kablonet.com.tr> wrote:
> > > On Saturday 19 June 2004 10:29, art yerkes wrote:
> > > > The SWIG module for Ocaml has support for a few STL
> > > > types. If you use those interfaces as a guide, you
> > > > could add support for more if the automatic wrapping
> > > > doesn't suit.
> > > >
> > > > SWIG isn't perfect for everyone but some needs are
> > > > met very well, including using templates.
> > > >
> > > > Look at http://www.swig.org/
> > >
> > > How does it handle convert C++ templates to ocaml code, I wonder. I had a
> > > design in my mind, but it required quite a bit of monkeying around.
> > > What's their solution?
> >
> > The current solution is to specify which specializations of a given
> > template will be needed, after which the specialized template classes are
> > treated as ordinary classes.
>
> OK. Imagine client ocaml code that uses template class C < T >. I had imagined
> that the specializations in the ocaml code ( C < int >, C < vector<float>
> >, ... ) could be determined automatically, after which the specializations
> are generated in C++ stub code, and linked in... So I guess I had in mind a
> more generic version of SWIG's approach, however I doubt this won't be a good
> mapping.... Can you guys imagine any other alternatives, or should we avoid
> templates in C++ libraries that want an ocaml binding (like KDE) ?
In my experience, the C++ and ocaml type systems are different enough that
determining specializations from caml code won't work well.
Consider that:
std::set<const char *>
std::set<char [18]>
std::set<std::string>
are all different specializations of std::set on various representations of
string in C++. The syntax to choose among them may not be easy for a user
to write and keep track of.
--
Hey, Adam Smith, keep your invisible hands to yourself!
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Caml-list] Interface between Ocaml and C++
2004-06-22 13:36 ` art yerkes
@ 2004-06-22 18:44 ` Eray Ozkural
2004-06-22 23:06 ` Brandon J. Van Every
0 siblings, 1 reply; 8+ messages in thread
From: Eray Ozkural @ 2004-06-22 18:44 UTC (permalink / raw)
To: art yerkes; +Cc: gnu04, caml-list
On Tuesday 22 June 2004 16:36, art yerkes wrote:
> In my experience, the C++ and ocaml type systems are different enough that
> determining specializations from caml code won't work well.
>
> Consider that:
>
> std::set<const char *>
> std::set<char [18]>
> std::set<std::string>
>
> are all different specializations of std::set on various representations of
> string in C++. The syntax to choose among them may not be easy for a user
> to write and keep track of.
I agree. What's worse, these combinatorial types can accept only C++ types as
parameters. How to reliably specify that in ocaml client code, it's almost
impossible to know...
Maybe SWIG's approach is a good middleground then? But it makes me wonder, why
should I want to use C++ stdlib if I have ocaml? >:-)
The alternative I thought was a syntax extension to handle it for class and
function templates. But I don't think it's going to work out, either.
Regards,
--
Eray Ozkural (exa) <erayo@cs.bilkent.edu.tr>
Comp. Sci. Dept., Bilkent University, Ankara KDE Project: http://www.kde.org
http://www.cs.bilkent.edu.tr/~erayo Malfunction: http://malfunct.iuma.com
GPG public key fingerprint: 360C 852F 88B0 A745 F31B EA0F 7C07 AE16 874D 539C
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [Caml-list] Interface between Ocaml and C++
2004-06-22 18:44 ` Eray Ozkural
@ 2004-06-22 23:06 ` Brandon J. Van Every
0 siblings, 0 replies; 8+ messages in thread
From: Brandon J. Van Every @ 2004-06-22 23:06 UTC (permalink / raw)
To: caml
Eray Ozkural wrote:
>
> Maybe SWIG's approach is a good middleground then? But it
> makes me wonder, why
> should I want to use C++ stdlib if I have ocaml? >:-)
Indeed, the whole reason I went looking for HLLs is my unwillingness to
deal with C++ STL. I find myself asking, "When do I get off this C++
train wreck?" It's an evolutionary dead end.
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA
20% of the world is real.
80% is gobbledygook we make up inside our own heads.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.708 / Virus Database: 464 - Release Date: 6/18/2004
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2004-06-22 22:57 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-06-19 4:56 [Caml-list] Interface between Ocaml and C++ Gu Nu
2004-06-19 7:29 ` art yerkes
2004-06-21 19:24 ` Eray Ozkural
2004-06-22 6:41 ` art yerkes
2004-06-22 11:14 ` Eray Ozkural
2004-06-22 13:36 ` art yerkes
2004-06-22 18:44 ` Eray Ozkural
2004-06-22 23:06 ` Brandon J. Van Every
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox