On 2/14/07, skaller <[EMAIL PROTECTED]> wrote: > The concurrency test I implemented for the Shootout is one > reason Felix was banned from the Shootout by Isaac Gouy. > It's too fast. Gouy is a nazi and simply banned Felix > without trying to understand that the problem was the > test methodology. [Jon Harrop agreed with me and also > got kicked out]
What a shame! I'd like to have been able to see Felix beat out C... :) > The workaround is the adjective 'noinline'. I will check your > case but I guess the problem is here: > > spawn_fthread$ worker(i', o'); Okay, adding "noinline" to the definition of worker worked. Thanks! > I can certainly fix the bug by simply not inlining functions > that return closures .. but that would include the trivial > case of 'f' above: the performance hit isn't acceptable. Perhaps leave the decision up to the coder: by default, don't inline functions which return closures (so that the semantics are as expected), but allow the programmer to notate such applications when they decide the unsafe inlining behavior is acceptable: unsafe_inline_closure val x = f 5; or val x = unsafe_inline_closure(f 5); When the time comes that Felix can perform the complex dependency analysis needed to automate the process, unsafe_inline_closure (or whatever it's called) becomes a no-op. This way coders (especially new ones) won't get bitten by this bug, but the compiler optimization will still exist for those who know how to tread around it. - Chris ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language