Re: Horrible compiletimes and memory usage while compiling a parser with X3
Larry Evans <[email protected]>
| Newsgroups | gmane.comp.parsers.spirit.general |
|---|---|
| Message-ID | <[email protected]> |
On 11/13/2016 07:50 AM, Larry Evans wrote: > On 11/07/2016 02:44 AM, Peter Gerell wrote: >> On 07/11/2016 12:38 PM , Joel de Guzman wrote: >>> On 07/11/2016 1:26 AM, Mikael Asplund wrote: >>>> This is the reason we're still on 1.60 (with a small >>>> const-patch from 1.61), since later version have link problems which are just too hard >>>> to debug. >> >>> It would be great if you post a test file that exhibits this problem you mention. >>> This linking problem doesn't look good and must be fixed. >> >> Hi Joel. >> This is the problem Mikael is referring to. >> http://melpon.org/wandbox/permlink/X8Awj4wIZ2JqMWIw >> >> If KEEP_CHAR is defined the code builds with both boost 1.60 and 1.61. >> Without KEEP_CHAR it fails with 1.61. >> >> The following commit introduced the problem. >> https://github.com/boostorg/spirit/commit/a8e391bd99dddb3f9ece84bdb1bb9236b0a37cf7 >> >> The problem seems to be that the attribute types are short-circuited for sequences of one >> even though we explicitly request a specific binding using FUSION_DEFINE_FOR_STRUCT(ast::Start, count); > [snip] > > More specifically, the change on line 178 causes the > problem. [snip] > Why not revert the change on detail/sequence.hpp:178 to > solve the problem? Or instead of: https://github.com/boostorg/spirit/blob/boost-1.61.0/include/boost/spirit/home/x3/operator/detail/sequence.hpp#L178 why not make the bool value dependent on whether R is *not* a rule? A similar change would be made to: https://github.com/boostorg/spirit/blob/boost-1.61.0/include/boost/spirit/home/x3/operator/detail/sequence.hpp#L198 WARNING: not tested. -Larry ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi