I'm playing with the requirements processing at the moment because I'm getting
confused by "isnan" being used by not sucking in the <cmath> header file.

At present, failed requirements are simply ignored. Basically, if you require X
than all the X inserts are generated, but the set of such inserts can be empty.
This is useless: you can make a spelling mistake and all you see is some
mysterious C++ error that something is missing.

There are two other ways to treat failed requirements.
A second mysterious way is: drop the symbol with the requirement silently.
The sane way is: reject the program with a diagnostic.

Dropping the symbol isn't entirely insane though:

fun windows .. requires WIN32;
fun windows .. requires UNIX;

now "windows" will work on either WIN32 or UNIX without a duplicate
definition: the other way is:

if WIN32 do
  fun ..
else
  fun ..
done;

Actually, "requires" is a bit of a misnomer, it's more like "depends",
whereas the "windows" example is more like "requires". So we actually could
have something like

.. when WIN32

Anyhow, I have to decide. Also there's a hidden bug: processing file ab.flx I 
get:

header aaa = "#include <cmath>";
fun f:int -> int = "1" requires aaa,bbb;
println$ f 2;

BIND REQS
Seek tag _rqs_ab
Zero entry
BIND REQS
Seek tag bbb
Zero entry
Seek tag aaa
Seek tag _rqs_ab
Zero entry

So it isn't just "bbb" that isn't found here,  also _rqs_ab is missing (that's 
the top level module).

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





------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to