[Ur] code bug
Sergey Mironov
grrwlf at gmail.com
Mon Sep 30 13:06:55 EDT 2013
I've found the workaround, it's even better that my original attempt:
fun no [t] (c : transaction t) : transaction {} =
x <- c ;
return {}
task initialize = fn {} =>
no( tryDml (INSERT INTO page(Id, Caption) VALUES (0, "Top")));
no( tryDml (INSERT INTO page(Id, Caption) VALUES (1, "Top")));
return {}
Still, the bug exists.
2013/9/30 Sergey Mironov <grrwlf at gmail.com>:
> Related question: How can I review webapp.c temp file
> (/tmp/filestFy18/webapp.c) before compiler deletes it?
>
> Sergey
>
> 2013/9/30 Sergey Mironov <grrwlf at gmail.com>:
>> Consider following code:
>>
>> fun noDml (q:dml) : transaction {} =
>> e <- tryDml q;
>> return {}
>>
>> task initialize = fn {} =>
>> noDml (INSERT INTO page(Id, Caption) VALUES (0, "Top"));
>> noDml (INSERT INTO page(Id, Caption) VALUES (1, "Top"));
>> return {}
>>
>> When compiling, urweb issues the following error:
>>
>> dev:[grwlf at greyblade:~/proj/urdesign]$ LANG=C make
>> building stamp1
>> urweb -dbms sqlite AppMM
>> /tmp/filestFy18/webapp.c:371:37: error: unknown type name 'uw_Basis_dml'
>> /tmp/filestFy18/webapp.c: In function 'uw_initializer':
>> /tmp/filestFy18/webapp.c:645:29: error: unknown type name 'uw_Basis_dml'
>> /tmp/filestFy18/webapp.c:646:30: error: initialization makes integer
>> from pointer without a cast [-Werror]
>> /tmp/filestFy18/webapp.c:646:30: error: (near initialization for
>> '__uwr___2') [-Werror]
>> /tmp/filestFy18/webapp.c:648:29: error: implicit declaration of
>> function '__uwn_noDml_1781' [-Werror=implicit-function-declaration]
>> /tmp/filestFy18/webapp.c:654:31: error: unknown type name 'uw_Basis_dml'
>> /tmp/filestFy18/webapp.c:655:32: error: initialization makes integer
>> from pointer without a cast [-Werror]
>> /tmp/filestFy18/webapp.c:655:32: error: (near initialization for
>> '__uwr___3') [-Werror]
>> cc1: all warnings being treated as errors
>> make: *** [stamp1] Error 1
>>
>> Note, that if I remove first noDml call, everything would be fine.
>> Removing noDml also works
>>
>> task initialize = fn {} =>
>> e <- tryDml (INSERT INTO page(Id, Caption) VALUES (0, "Top"));
>> e <- tryDml (INSERT INTO page(Id, Caption) VALUES (1, "Top"));
>> return {}
>>
>> Please, advise
>> Sergey
More information about the Ur
mailing list