At present there's a "minor" bug in axiom_check causing two tests to fail:
+ build/release/bin/flx --static --output_dir=build/release/tut/tutorial -Ibuild/release/tut/tutorial --test=build/release -c --test=build/release build/release/tut/tutorial/tut-09.02-0.flx Flx_egen: Waring: delayed virtual instantiation, external fun eq<1923> CLIENT ERROR Instantiate virtual function(2) eq<1923>, no instance for ts=int^2 -> int In build/release/tut/tutorial/tut-09.02-0.flx: line 35, cols 1 to 57 34: 35: axiom_check (add of (int * int), eq of (int * int), 1,2); ********************************************************* 36: See also build/release/lib/std/order.flx: line 4, cols 17 to 32 3: typeclass Eq[t] { 4: virtual fun eq: t * t -> bool; **************** 5: virtual fun ne (x:t,y:t):bool => not (eq (x,y)); I have no idea at the moment why it is trying to compare values of type int^2->int, its basically a "false trigger" where some axiom happens to match the axiom_check call you see above, and tries to compare add:int^2->int, The real bug is deeper: the checks are only supposed to be generated when they can be instantiated. Here, I am guessing the *top level* check is instantiated but itself contains virtual calls, and the check generator didn't (recursively) instantiate them. But this is a minor problem. The real problem is here: Client Error binding expression (lt ((1, 1), (1, 2))) CLIENT ERROR [lookup_name_with_sig] Can't find lt of (int^2)^2 In build/release/test/regress/rt/tuple-01.flx: line 10, cols 10 to 22 9: 10: println$ (1,1) < (1,2); ************* Well, that's expected because I disabled the code: /* instance[t,u with Tord[t],Tord[u]] Tord[t*u] { fun lt: (t * u) * (t * u) -> bool = | (?x1,?y1),(?x2,?y2) => x1 <= x2 and y1 < y2 ; } instance[t with Tord[t]] Tord[t*t] { fun eq: (t * t) * (t * t) -> bool = | (?x1,?y1),(?x2,?y2) => x1 <= x2 and y1 < y2 ; } open[t,u with Tord[t], Tord[u]] Tord[t*u]; */ Enabled .. it fails (which completely wipes the whole build out). I have no idea why. The pattern here is the same as for Eq. Actually Tord and Eq are both implemented for arrays now (I mean static arrays T^N]) -- john skaller skal...@users.sourceforge.net ------------------------------------------------------------------------------ The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: Pinpoint memory and threading errors before they happen. Find and fix more than 250 security defects in the development cycle. Locate bottlenecks in serial and parallel code that limit performance. http://p.sf.net/sfu/intel-dev2devfeb _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language