That's interesting! I'm gonna give that a try and see what happens. Simon
On Mon, 27 Apr 2020, 14:36 Vladimir Shabanov, <[email protected]> wrote: > In case anyone is interested, I wrote a blog post some time ago about my > experiences with Ur/Web. > > http://frigoeu.github.io/urweb1.html > > > Great post. I agree that build times for large projects is perhaps the > most annoying thing in Ur/Web. > > 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. > > Here's pragma generation from my Makefile > > neverInline.urp: *.ur > @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 "^$$" > $@ > > And of course I'm using Ur/Web daemon (and thinking to try your LSP server > as well). > _______________________________________________ > Ur mailing list > [email protected] > http://www.impredicative.com/cgi-bin/mailman/listinfo/ur >
_______________________________________________ Ur mailing list [email protected] http://www.impredicative.com/cgi-bin/mailman/listinfo/ur
