On Tue, 2007-07-17 at 17:40 -0700, Raoul Duke wrote:
> hi,
>
> Many thanks for all the info, it is good to get a handle on what is going on.
>
> > There's little need for things like SWIG, because there
> > is no substantive (executable) glue logic. Adding two
> > integers in Felix is the same as in C:
>
> While it is simple, it still seems like boilerplate.
Yes, it more or less is.
> My hope is to
> take some 3rd party C++ library and then write Felix code to use it,
> so I can do the fun functional style. But I think that means I have to
> write a fair bit of stuff in Felix which is just saying what the
> library's files say.
Yes. Although you can write the bindings incrementally,
as you need them.
> But I have to do that manually. Seems ripe for
> some kind of automatic translator. Maybe I can learn flxcc some day :)
Even with flxcc, you still have to edit the output.
For example, it is very hard to interpret macros -- they don't
come with type information. Some idiot C libraries use lots of macros.
Felix does provide sugar to help with some of these things ..
but if I gave you all the tips straight away it would be
rather daunting. For example:
cstruct GdkColor {
pixel: uint32;
red: uint16;
green: uint16;
blue: uint16;
};
wraps GDK color struct, no need to do:
type GdkColor = "GdkColor";
fun get_pixel: GdkColor -> uint32 = "$1.pixel";
...
although this is equivalent. There's a cclass for C++ classes
too. And you can write:
ctypes int, long, fred, joe;
which just means
type int = "int";
type long = "long";
...
and you can write:
fun f: int -> int;
which just means
fun f: int -> int = "f($1)";
and
const X: int;
which means:
const X: int = "X";
So there are a number of short forms for common requirements.
One you mentioned before:
chead "<stdio.h>";
meaning
header "#include <stdio.h>";
is not implemented at the moment, but WOULD be another such
short form .. it's slightly tricky because of
#include "fred.h"
#include <fred.h>
i.e. the " and < style delimiters.
--
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language