|Anonymous | Login | Signup for a new account||2015-08-05 10:33 CEST|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0005633||OCaml||Camlp4||public||2012-06-04 02:13||2012-06-19 13:08|
|Target Version||Fixed in Version||4.00.0+dev|
|Summary||0005633: Camlp4Ast.ml takes very long to compile|
|Description||The 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...)
|Tags||No tags attached.|
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...
|More worryingly, the peak memory usage when compiling these slow camlp4 sections is 760Mb here (OS X, 64-bit).|
|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?|
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
|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|