[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::c_plus_plus

Title:C++
Notice:Read 1.* and use keywords (e.g. SHOW KEY/FULL KIT_CXX_VAX_VMS)
Moderator:DECCXX::AMARTIN
Created:Fri Nov 06 1987
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:3604
Total number of notes:18242

3420.0. "Macro limit of 32k characters" by PEACHS::LAMPERT (Pat Lampert, UNIX Applications Support, 343-1050) Fri Jan 31 1997 18:55

We have a customer (MCI) who has run into the macro
size limit documented in sec 2.2.3 of the User's Guide.

Who would imagine a macro > 32k characters!

The macro is built by a code generator so they will
have to change it each time the code is rebuilt.

Is there any undocumented switch which can be 
passed to the pre-processor to increase the
size of this buffer? We tried playing with -W, but
didnt get anywhere.

If there is no workaround, then can you add a request
to your future release wish list, to increase or not 
hardcode this size. 

Thanks.

Pat 
T.RTitleUserPersonal
Name
DateLines
3420.1some things to tryDECC::PARKSMon Feb 03 1997 16:4236
Did the user try creating a macro with a body > 32K characters?
What happened?

I don't believe that the macro processor has hard limits on macro
body size.  There are limits, however, for

  o  line size (32K)
  o  token size (32K)

I think the first is so that we can create locators for each token.
The second is so that we can use fixed size buffers for token 
manipulation.

I do not believe that users can increase either 32K limit.

I would imagine that users could create >32K character macros by 
either 

  o  breaking the macro definition up using \ line-splicing characters, e.g.

     #define f first_half second_half

     #define f first_half\
               second_half

  o  breaking the macro definition into pieces, e.g.

     #define f first_half second_half

     #define f x y
     #define x first_half
     #define y second_half

Will either work for the user?

\John