I have just written a spec on floating insertion processing.
I tried this:

header "//C code 1";
module A {
  header "//C code 2";
  fun f: int -> int = "$1";
}
println ("Hello" + str (A::f 1));
 
and it works fine: both 1 and 2 comments are emitted. If I change it to:

header "//C code 1";
module A {
  header "//C code 2";
  noinline fun f()=> 1;
}
println ("Hello" + str (A::f ()));

neither are emitted. According to my spec .. this is actually correct!
Felix 1.1.5 emitted 1 but not 2 in this case.

Requirements are driven by usage of C bindings, if there aren't
any C bindings then no header or body insertions can be emitted.

At least one tutorial example using cstuct fails for this reason:
  
//test/regress/rt/cstruct_constructors-02.flx
header """
struct S { int x; int y; int z; };
""";

// cstruct with one element as function
cstruct S { x:int; y:int; z:int; }


The problem is that "cstruct" isn't recognized as a C binding with requirements:
compare:

  | DCL_abs of           type_qual_t list * code_spec_t * named_req_expr_t

with

  | DCL_cstruct of       (id_t * typecode_t) list

See? No named_req_expr_t. So, there's no where to propagate the dependency on
the header, which only gets propagated to C bindings (types, functions, other 
insertions).

This should be easy to fix. It is interesting I got the semantics wrong myself 
:)
I assumed you could *force* code into the output with a naked header, but
you can't.

--
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