Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005633OCamlCamlp4public2012-06-04 02:132012-06-19 13:08
Reportergarrigue 
Assigned Togarrigue 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version4.00.0+dev 
Target VersionFixed in Version4.00.0+dev 
Summary0005633: Camlp4Ast.ml takes very long to compile
DescriptionThe file is 6000 lines long, but this still seems too much.
I have not yet investigated the cause.
(For all I know, I might even be the cause...)
TagsNo tags attached.
Attached Files

- Relationships
related to 0005442resolveddim camlp4: quotation issue with strings 

-  Notes
(0007520)
garrigue (manager)
2012-06-07 03:46

The source of slowness is camlp4boot.byte.
It takes 3mn on a Core i7 at 2.7G...

I kind of wonder why one has to apply camlp4 on a file that is already output by camlp4...
(0007521)
johnwhitington (reporter)
2012-06-07 11:45

More worryingly, the peak memory usage when compiling these slow camlp4 sections is 760Mb here (OS X, 64-bit).
(0007524)
xleroy (administrator)
2012-06-08 13:29

A wild guess: this sounds suspiciously like the Camlp4 slowdown which was fixed by commits r12391 (in trunk) and r12415 (in 4.00 branch). However, it seems that Camlp4 was not bootstrapped since then, so maybe the bootstrapped Camlp4 still contains this particular slowdown. Could someone knowledgeable with Camlp4 do a bootstrap cycle and tell us if it makes any difference?
(0007579)
garrigue (manager)
2012-06-19 13:08

Indeed, the problem seems to disappear with a bootstrap cycle (explained in build/camlp4-bootstrap-recipe.txt).
Note however that the fix to PR#5442 was fragile: it disappeared with each camlp4 bootstrap!
I fixed that by moving the changes to camlp4/Camlp4Filters/Camlp4MetaGenerator.ml.
As a result, escaping applies not only to Expr but also to the Patt submodule, which was not escaped before.
I don't know whether this is the right behavior (it makes sense at least).

Changes committed in trunk and 4.00 at revisions 12615 and 12617

- Issue History
Date Modified Username Field Change
2012-06-04 02:13 garrigue New Issue
2012-06-07 03:46 garrigue Note Added: 0007520
2012-06-07 09:10 garrigue Reproducibility have not tried => always
2012-06-07 09:10 garrigue Category OCaml general => Camlp4
2012-06-07 09:10 garrigue Product Version 4.01.0+dev => 4.00.0+dev
2012-06-07 11:45 johnwhitington Note Added: 0007521
2012-06-08 13:29 xleroy Note Added: 0007524
2012-06-08 13:29 xleroy Status new => confirmed
2012-06-19 13:08 garrigue Note Added: 0007579
2012-06-19 13:08 garrigue Status confirmed => resolved
2012-06-19 13:08 garrigue Fixed in Version => 4.00.0+dev
2012-06-19 13:08 garrigue Resolution open => fixed
2012-06-19 13:08 garrigue Assigned To => garrigue
2012-06-19 13:08 garrigue Relationship added related to 0005442


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker