rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj

I have quite a big grammar now, and basically I have multiple grammars separated into many files and at the root grammar I have many alternations like the following: Root = GrammarA | GrammarB ... | GrammarZ It looks like, the compiler complaining about the size of the inline code. Here is the error message from the compiler: "boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj" What is the solution to this issue? If I move the grammar definition to .cpp files will it help? Thanks HTan _________________________________________________________________ Windows 7: Unclutter your desktop. http://go.microsoft.com/?linkid=9690331&ocid=PID24727::T:WLMTAGL:ON:WL:en-US:WWL_WIN_evergreen:112009

HT4N - wrote:
I have quite a big grammar now, and basically I have multiple grammars separated into many files and at the root grammar I have many alternations like the following:
Root = GrammarA | GrammarB ... | GrammarZ
It looks like, the compiler complaining about the size of the inline code.
Here is the error message from the compiler:
"boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj"
What is the solution to this issue?
Umm, did you try compiling with /bigobj? Jeff

I did, and it still did not help for "debug" build. For retail build anyway I don't see problem. What is the common practice if you have let's say more than 30 grammar modules and each grammar has around 5-10 lines of EBNF and you want to separate each grammar into 1 header file. Thanks HT
To: boost-users@lists.boost.org From: TriumphSprint2000@hotmail.com Date: Thu, 5 Nov 2009 16:15:57 -0500 Subject: Re: [Boost-users] rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj
HT4N - wrote:
I have quite a big grammar now, and basically I have multiple grammars separated into many files and at the root grammar I have many alternations like the following:
Root = GrammarA | GrammarB ... | GrammarZ
It looks like, the compiler complaining about the size of the inline code.
Here is the error message from the compiler:
"boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj"
What is the solution to this issue?
Umm, did you try compiling with /bigobj?
Jeff
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_________________________________________________________________ Hotmail: Trusted email with Microsoft's powerful SPAM protection. http://clk.atdmt.com/GBL/go/177141664/direct/01/ http://clk.atdmt.com/GBL/go/177141664/direct/01/

Rename the subject. What is the suggested practice if you have a fairly big grammar which you split into many header files ? To repeat my problem, I have fairly big grammar and the compiler throws me the following error (for debug build). Retail build is fine. Usig /bigobj does not fix the debug build.
"boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj"
From: ht4n@hotmail.com To: boost-users@lists.boost.org Date: Thu, 5 Nov 2009 13:47:52 -0800 Subject: Re: [Boost-users] rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj I did, and it still did not help for "debug" build. For retail build anyway I don't see problem. What is the common practice if you have let's say more than 30 grammar modules and each grammar has around 5-10 lines of EBNF and you want to separate each grammar into 1 header file. Thanks HT
To: boost-users@lists.boost.org From: TriumphSprint2000@hotmail.com Date: Thu, 5 Nov 2009 16:15:57 -0500 Subject: Re: [Boost-users] rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj
HT4N - wrote:
I have quite a big grammar now, and basically I have multiple grammars separated into many files and at the root grammar I have many alternations like the following:
Root = GrammarA | GrammarB ... | GrammarZ
It looks like, the compiler complaining about the size of the inline code.
Here is the error message from the compiler:
"boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number of sections exceeded object file format limit : compile with /bigobj"
What is the solution to this issue?
Umm, did you try compiling with /bigobj?
Jeff
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hotmail: Trusted email with Microsoft's powerful SPAM protection. Sign up now. _________________________________________________________________ Hotmail: Trusted email with Microsoft's powerful SPAM protection. http://clk.atdmt.com/GBL/go/177141664/direct/01/ http://clk.atdmt.com/GBL/go/177141664/direct/01/

HT4N - wrote:
Rename the subject.
What is the suggested practice if you have a fairly big grammar which you split into many header files ?
To repeat my problem, I have fairly big grammar and the compiler throws me the following error (for debug build). Retail build is fine. Usig /bigobj does not fix the debug build.
*> > "boost\spirit\core\non_terminal\impl\rule.ipp(173) : error C1128: number
of sections exceeded object file format limit : compile with /bigobj"
I highly suggest moving to spirit2 if you are planning to do any refactorization. In spirit2 (http://spirit.sourceforge.net/home/) we have some examples that highlight this: calc6, calc7 and mini_c are examples of modular grammar constructions. calc6 is simplest of the three and shows how you can: 1) embed grammars for modularization 2) separate the grammar definition (constructor) from the class declaration 3) instantiate a particular grammar template in a cpp file. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net http://www.facebook.com/djowel Meet me at BoostCon http://www.boostcon.com/home http://www.facebook.com/boostcon

I highly suggest moving to spirit2 if you are planning to do any refactorization. In spirit2 (http://spirit.sourceforge.net/home/) we have some examples that highlight this:
calc6, calc7 and mini_c are examples of modular grammar constructions. calc6 is simplest of the three and shows how you can:
1) embed grammars for modularization 2) separate the grammar definition (constructor) from the class declaration 3) instantiate a particular grammar template in a cpp file.
Would you be able to provide a direct link to the calc6, calc7 examples? They don't appear to be directly linked or described on the documentation page at: http://spirit.sourceforge.net/home/spirit2/libs/spirit/doc/html/index.html Thank you. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.

On Sunday 08 November 2009, Ray Burkholder wrote:
I highly suggest moving to spirit2 if you are planning to do any refactorization. In spirit2 (http://spirit.sourceforge.net/home/) we have some examples that highlight this:
calc6, calc7 and mini_c are examples of modular grammar constructions. calc6 is simplest of the three and shows how you can:
1) embed grammars for modularization 2) separate the grammar definition (constructor) from the class declaration 3) instantiate a particular grammar template in a cpp file.
Would you be able to provide a direct link to the calc6, calc7 examples? They don't appear to be directly linked or described on the documentation page at: http://spirit.sourceforge.net/home/spirit2/libs/spirit/doc/html/index.html
http://svn.boost.org/svn/boost/trunk/libs/spirit/example/qi/calc6/ HTH, Chris

To be honest I am a little bit confuse with the examples you mentioned. I do not see where the grammar is now defined in the .cpp file from the example. I only see a declaration of grammar in .hpp. I would have expect that the Grammar header is defined in .hpp but the actual EBNF definition is defined in .cpp. Hence, I do not see example of (2) in the examples, unless I miss something. About your point (1), I think Classic Spirit also support this. You can have a rule that embed a grammar which is defined in a different file.
From: hoeppler@gmx.net To: boost-users@lists.boost.org Date: Sun, 8 Nov 2009 15:33:16 +0100 Subject: Re: [Boost-users] [Spirit] Problem with fairly big grammar
On Sunday 08 November 2009, Ray Burkholder wrote:
I highly suggest moving to spirit2 if you are planning to do any refactorization. In spirit2 (http://spirit.sourceforge.net/home/) we have some examples that highlight this:
calc6, calc7 and mini_c are examples of modular grammar constructions. calc6 is simplest of the three and shows how you can:
1) embed grammars for modularization 2) separate the grammar definition (constructor) from the class declaration 3) instantiate a particular grammar template in a cpp file.
Would you be able to provide a direct link to the calc6, calc7 examples? They don't appear to be directly linked or described on the documentation page at: http://spirit.sourceforge.net/home/spirit2/libs/spirit/doc/html/index.html
http://svn.boost.org/svn/boost/trunk/libs/spirit/example/qi/calc6/
HTH, Chris _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_________________________________________________________________ Windows 7: Unclutter your desktop. http://go.microsoft.com/?linkid=9690331&ocid=PID24727::T:WLMTAGL:ON:WL:en-US:WWL_WIN_evergreen:112009

To be honest I am a little bit confuse with the examples you mentioned. I do not see where the grammar is now defined in the .cpp file from the example. I only see a declaration of grammar in .hpp.
I would have expect that the Grammar header is defined in .hpp but the actual EBNF definition is defined in .cpp. Hence, I do not see example of (2) in the examples, unless I miss something.
But that's exactly what has been done. The grammar/rule definitions are located in the constructors of the grammars which have been moved out into separate files.
About your point (1), I think Classic Spirit also support this. You can have a rule that embed a grammar which is defined in a different file.
Sure, but it's more difficult to achieve. Regards Hartmut ------------------- Meet me at BoostCon http://boostcon.com
From: hoeppler@gmx.net To: boost-users@lists.boost.org Date: Sun, 8 Nov 2009 15:33:16 +0100 Subject: Re: [Boost-users] [Spirit] Problem with fairly big grammar
On Sunday 08 November 2009, Ray Burkholder wrote:
I highly suggest moving to spirit2 if you are planning to do any refactorization. In spirit2 (http://spirit.sourceforge.net/home/) we have some examples that highlight this:
calc6, calc7 and mini_c are examples of modular grammar constructions. calc6 is simplest of the three and shows how you can:
1) embed grammars for modularization 2) separate the grammar definition (constructor) from the class declaration 3) instantiate a particular grammar template in a cpp file.
Would you be able to provide a direct link to the calc6, calc7 examples? They don't appear to be directly linked or described on the documentation page at:
http://spirit.sourceforge.net/home/spirit2/libs/spirit/doc/html/inde
x.html
http://svn.boost.org/svn/boost/trunk/libs/spirit/example/qi/calc6/
HTH, Chris _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Windows 7: Unclutter your desktop. Learn more.

On Thu, Nov 5, 2009 at 2:47 PM, HT4N -
I did, and it still did not help for "debug" build. For retail build anyway I don't see problem.
What is the common practice if you have let's say more than 30 grammar modules and each grammar has around 5-10 lines of EBNF and you want to separate each grammar into 1 header file.
The mini-c example project shows how to split up grammars properly, may take a look at it. Also, you will get more responses if you post to the Spirit list instead.
participants (7)
-
Chris Hoeppler
-
Hartmut Kaiser
-
HT4N -
-
Jeff Flinn
-
Joel de Guzman
-
OvermindDL1
-
Ray Burkholder