-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve compilation times of gluon_parser #69
Comments
Assigning myself to this. |
From #66
https://github.com/kevinmehall/rust-peg#as-a-standalone-code-generator
Sounds to me that using rustpeg on stable still requires a built rustpeg executable (which requires nightly to build, but I might be wrong?) |
lalrpop seems to support a custom lexer though it seems to lack documentation for it at the moment. Could not find anything about custom lexers for rust-peg |
Looks like lalrpop also has some problems with compile times though :/ https://github.com/nikomatsakis/lalrpop/issues/65 |
no, rustpeg doesn't do lexers. Shame about LALRPOP... :( There is this: https://github.com/nikomatsakis/lalrpop/issues/65#issuecomment-198108147 |
I just landed a change to LALRPOP that may make a big difference -- you might want to try the trunk and see if things are improved. |
Another related factor is that, due to rust-lang/cargo#2424, LALRPOP runs in debug mode if you are doing a debug build, which makes it quite slow. :( I've been meaning to address this by allowing users to However, this should only matter when you make changes to the grammar -- after that, the |
@nikomatsakis That is some impressive speedup! From https://github.com/nikomatsakis/lalrpop/issues/65#issuecomment-198108147 I take it that it is already possible to use a precompiled release executable so I am assuming you just mean that it should be handled in a more automatic fashion? Relying on not modifying the parser is pretty much how we get by at the moment so that part will not be any worse at least |
No, that's a separate thing. I mean, it is actually possible -- but those results I charted there were just obtained by copy-and-pasting the |
To be clear: you can install a LALRPOP executable, but you must write a |
Oh, and -- yes, I guess that comment is precisely what I meant. =) (I hadn't realized which comment you were referring to...) |
We could just target a ref of your commit @nikomatsakis? Then experiment on a branch? No need to merge it just yet. |
The branch has been merged to trunk in any case. —You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread. |
Oho, great! Any idea when it'll be released to cargo? No hurry - plenty of time for us to experiment still... |
@brendanzab pretty soon, I imagine. I was just hoping to give a bit of time for any bug reports to roll in... |
This is causing timeout woes with travis and makes things hard for users on stable. As discussed on https://github.com/Marwes/gluon/issues/33#issuecomment-233157725 and https://github.com/Marwes/gluon/pull/66#issuecomment-234803447 we could possibly consider switching to a parser generator like rustpeg of LALRPOP.
The text was updated successfully, but these errors were encountered: