On 28/12/2011, at 3:56 AM, Michael Maul wrote:
[]
I think my reply got lost so:

> On of the things I plan on using felix for is number crunching in an embeded 
> environment. GSL is my library of choice for this. Was excited to see binding 
> in felix. However it needed a little love to get it to work. I had to create 
> typedefs for ptr and cptr

Yep, it was autogenerated. Ptr abd Cptr have been removed. Be aware I plan to 
change the way pointers and related
things work a bit.

Currently, carray [T] is just a &T. ptr[T] and cptr[T] have been removed.

I want to distinguish: pointers to (single) objects (can't be NULL, 
can't be incremented).

Pointer or NULL, like: union Ptr_or_NULL[T] = | NULL | Ptr of &T;
(so you're forced to use a match to check for NULL).

C style Array pointers (can be incremented).

It would also be cool to find some way to bound C array pointers.

A change likely soon: at present 

x . y

has three meanings: function composition, reverse application, and structure
member selection. This is just too much. Also if x is a pointer to a structure,
then x . y is still the field.

For structure I may change so if x is a pointer to a structure with field y,
then x . y is a pointer to field y, and x -> y is the field value (same as 
(*x).y).
The reason is that this:

x.y = 1;

is not allowed at present because it means

&(x.y) <- 1; // assignment

In Felix assignment is a procedure like thing:

set(&T,T)

which requires the LHS to be a pointer. The operation

&v

is only permitted for variables (i.e. var things).

So it is not possible to assign to a structure component with this model
unless I change it so (&var) . field means what &(var.field) would in C.
There'll need to be a similar thing for array notation to work properly.

These kinds of change will impact library interfaces and code. Sorry!
At present it just isn't safe enough, nor really usable enough.
(C arrays are really bad safety wise).


> In next few days I am going to try cross comple to ARM.  Will static build 
> directive build binary without any external dependencies? Ideally cross 
> compiling felix runtime would be desireable.

ARM building for iPhone appears to work. 

Felix is set up for cross-cross compilation so it should handle mere 
cross-compilation :)
However the standard "install" only works properly for host=target=run platform.
You'll have to hand write scripts for cross compilation (preferably using the 
installed
Felix as the scripting language .. :)


--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to