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

Reply via email to