Felix current says that if you write

        requires X

it means to put all the floating insertions tagged X into the output,
in order of writing within the two fixed places for insertions
(header and body).

Because the semantics is set-like, errors are not possible.
If you mis-spell X, you just get nothing, because an empty
set is a valid set.

Originally the idea was you could tag a lot of things X,
in particular the prototype of a C function and the definition.
Then requiring X would drag in both.

however this also means you cannot do this:

fun f .. requires Unix;
fun f .. requires Windows;

as a way of selecting alternate implementations.
You get both.

I am thinking to change the semantics so floating tag names
must be unique, and then making requires fail if it cannot
find a unique tag.

Perhaps also:

fun f .. provided Unix;
fun f .. provided Windows;

since we don't want a failure here, we just want to elide
all but one definition. At present you have to use 
a conditional with a constant condition to do conditional
compilation.

Selection like this is quite distinct from requirements.
Both express dependencies, but in the opposite direction.

A requires B

means that to make A work you have to drag in B.
Whereas with conditional compilation, you're not actually
saying

        this f requires Unix

Nope. You're actually saying:

        Unix requires this f.

The Unix tag is not a dependency. Its a goal.
Its the function f here that's the dependency.
Hmmm .. 

        Unix requires 
                fun f:int -> int = "f($1)" 
                        requires header "include <f.h>"
        ;




--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
DESIGN Expert tips on starting your parallel project right.
http://goparallel.sourceforge.net/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to