<div dir="auto">That's interesting! I'm gonna give that a try and see what happens.<div dir="auto"><br></div><div dir="auto">Simon </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 27 Apr 2020, 14:36 Vladimir Shabanov, <<a href="mailto:dev@vshabanov.com">dev@vshabanov.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u><div><blockquote type="cite" id="m_-2685239287551474009qt"><div dir="auto"><div dir="auto">In case anyone is interested, I wrote a blog post some time ago about my experiences with Ur/Web.<br></div><div dir="auto"><br></div><div dir="auto"><a href="http://frigoeu.github.io/urweb1.html" target="_blank" rel="noreferrer">http://frigoeu.github.io/urweb1.html</a><br></div></div></blockquote><div><br></div><div>Great post. I agree that build times for large projects is perhaps the most annoying thing in Ur/Web.<br></div><div><br></div><div>They caused mostly by excessive inlining. To cut them down I'm generating neverInline pragmas for almost all or my functions. Since JavaScript supports functions as values it works very well for frontend (and reduces app.js file size as well). Backend requires polymorphic functions to be inlined but most of them live in standard library so I just don't generate neverInline pragmas for them.<br></div><div><br></div><div>Here's pragma generation from my Makefile<br></div><div><br></div><div>neverInline.urp: *.ur<br></div><div> @perl -n -e 'use File::Basename; $$ARGV =~ s/.ur//; s/\(\*.*\*\)//; /.*( val|^val| fun|^fun) +([^ ()]+)/ && print "neverInline $$2\nneverInline ",ucfirst(basename($$ARGV)),"/$$2\n"' $^ | grep -vE " (not|inlined|functions)$$" | sort | uniq | grep -ve "^$$" > $@</div><div><br></div><div>And of course I'm using Ur/Web daemon (and thinking to try your LSP server as well).<br></div></div>_______________________________________________<br>
Ur mailing list<br>
<a href="mailto:Ur@impredicative.com" target="_blank" rel="noreferrer">Ur@impredicative.com</a><br>
<a href="http://www.impredicative.com/cgi-bin/mailman/listinfo/ur" rel="noreferrer noreferrer" target="_blank">http://www.impredicative.com/cgi-bin/mailman/listinfo/ur</a><br>
</blockquote></div>