[Ur] compiler time/space depending on number of table attributes
Adam Chlipala
adamc at csail.mit.edu
Sun Mar 5 09:51:10 EST 2017
With the extensive compile-time evaluation that comes from Ur/Web's
style of metaprogramming, it's not surprising that one would encounter
superlinear scaling in time or space, applying components like those in
UPO. I think your conclusion is correct that the type checker isn't to
blame. Rather, compile-time reduction was generating exponential
explosion in code size.
I believe I've fixed the issue, and thanks for reporting it. Don't be
surprised to find more in the future! (I had only tested CSV import
with about 5 fields, previously.)
On 03/02/2017 04:46 PM, Marko Schütz Schmuck wrote:
> Dear All,
>
> I naïvely tried compiling a source code file with a table having 15
> attributes, 3 of which form the key. Also, that table is used with
> Csv.importTable from upo.
>
> After a few seconds the compiler uses 4GB of memory and 100% CPU and
> seems stuck. If I reduce the number of attributes to 12 it compiles in
> ~2m30s total and with only 4 attributes it's done in ~24s total.
>
> In this case I actually do not need all the attributes, but for a
> future extension I would. I wondered whether the type checker is to
> blame, but it appears not: with -tc the compiler takes ~24s total for
> the file with the 15 attributes.
>
> Any recommendations?
>
> Best regards,
>
> Marko
More information about the Ur
mailing list