Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi Miklos,

On Friday, 2013-02-15 11:05:37 +0100, Miklos Vajna wrote:

On Thu, Feb 14, 2013 at 02:43:16PM +0000, Caolán McNamara <caolanm@redhat.com> wrote:
My best theory is that it was intended to speed up builds by having less
"stuff" in the headers for compilers to parse by having the preprocessor
strip out the stuff includers didn't need to see. Which would suggest
that it will only be found around private methods, i.e. not
protected/public methods or anything that takes up space.

I think they tried to avoid including headers for enumerations this way
-- given that in C++ it's not possible to declare enumerations as an
incomplete type, AFAIK.

No, the actual reason indeed was to speed up compilation. Not having to
include various header files in such cases was welcomed.

Plus the additional benefit that the less symbols the compiler
encountered if these headers were included in other sources the lesser
was the chance to encounter the dreaded "compiler limit: out of keys"
(aka CLOOK, grep for it ;-) error..  That was your source could have
IIRC 64k symbols (identifiers, variable names, classes, methods, values,
...) after that compilation broke, forcing you to split sources into
pieces. Which again is the reason that there are some xxx[1-9a-j].cxx
implementing one class in some modules.

  Eike

(tales from the past teller)

-- 
LibreOffice Calc developer. Number formatter stricken i18n transpositionizer.
New GnuPG key 0x65632D3A : 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A
Old GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD
Support the FSFE, care about Free Software! https://fsfe.org/support/?erack

Attachment: pgpl2lywXiyCX.pgp
Description: PGP signature


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.