All the test cases:

Main program =build/release-optimized/test/regress/rt/union_constructors-04
Processing library std
Can't find name stdlib_h in env 
Can't find name stdlib_h in env 
Main program bound


~/felix>grep stdlib_h src/lib/std/* 
src/lib/std/c_hack.flx:  fun malloc: int -> address = 'malloc($1)' requires 
stdlib_h;
src/lib/std/c_hack.flx:  proc free: address = 'free($1);' requires stdlib_h;

Oh yes, it is defined but ..:

src/lib/std/io/flx_faio.flx:  header stdlib_h = '#include <stdlib.h>';          
  // malloc, free

it's defined INSIDE Faio.

module Faio {
  requires package "demux";
  requires package "faio";

  open C_hack;
  // ....

  header stdlib_h = '#include <stdlib.h>';            // malloc, free


So actually there's a bug. Opening C_hack here should have no effect
on the binding of malloc, malloc just shouldn't exist since it's required
tag can't be found... notice Faio is not opened.

It looks like malloc is used anyhow.. and the lack of the tag name simply
means the #include isn't issued (but it is included elsewhere so everything
works).

This seems to be a bug. If something is required and isn't found,
it should be as if it didn't exist, or, bomb out the program .. not 
silently allow the function to be used and simply not satisfy
the requirement.

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





------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to