On 01/18/2014 02:58 AM, Sergey wrote:
On 17.01.2014 00:30, Vladimir Shabanov wrote:

Compiler bugs. As you can expect from a new and complex tool there were
several bugs in compiler and runtime library. Most of them are in the past
now. However I'm still not sure about one nasty bug when some effectful
computation were optimized out (click on button and part of event handler
is not executed at all, whoops). It's the most annoying bug I've met in
Ur/Web. Usually solved by some code reordering or by calling it via
JavaScript FFI function (look for 'forceImpure' in the sources). Hope it's
fixed since I haven't seen it for a while.


Looks like I have an example of such bug. I've noticed that one test for urweb-monad-pack library doesn't execute all the client-side handlers:

https://github.com/grwlf/urweb-monad-pack/blob/master/test/TestState1.ur

The program should popup two alerts at startup but for some reason only the last one appears.

Thanks for the example! I found the bug, and now at least this example works properly.

Two fun facts:
1. Thanks to Vladimir's open-source release of the BazQux code, I've included it in my informal regression test suite for this change. :) 2. It may not be obvious, but all state monad execution in TestState1.ur actually happens at compile time! If the compiler weren't so "clever" about reducing terms at compile time, then this bug wouldn't have had a chance to surface. ;)


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

Reply via email to