On 09/16/2012 10:10 PM, Edward Z. Yang wrote:
It looks like Ur/Web's inlining improved.
Alas, it appears to now interfere with my ability to stage code:

(**)
     fun main n =
       let val x = foo n
       in return<xml><body><active code={txn; return x} /></body></xml>
(**)

where foo is some benignEffectful function, it looks like x is now
being inlined (which is no good if it's FFI!)  Any ideas?

I've added an embarrassing "fix" for this problem: a certain inlining optimization skips firing if the type of the variable indicates it could have been returned by an FFI function. :D

Clearly the next redesign of Ur/Web should have a more principled, type-based approach to controlling where different categories of effects are legal.

_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur

Reply via email to