emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building Emacs overflowed pure space


From: YAMAMOTO Mitsuharu
Subject: Re: Building Emacs overflowed pure space
Date: Wed, 19 Jul 2006 18:22:44 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Wed, 19 Jul 2006 02:04:54 -0400, Richard Stallman <address@hidden> 
>>>>> said:

> I don't quite follow.  Why does the redefinition made by cl.el alter
> the size of the expansion of these macro calls?

The major difference seems to come from the length of the uninterned
symbol name that is allocated for each expanded `dolist'.

static POINTER_TYPE *
pure_alloc (size, type)
     size_t size;
     int type;
{
  POINTER_TYPE *result;
#ifdef USE_LSB_TAG
  size_t alignment = (1 << GCTYPEBITS);
#else
  size_t alignment = sizeof (EMACS_INT);

The length of the name of '--dolist-temp-- (in subr.el) is 15, and it
takes 2 units in 8(== (1 << GCTYPEBITS))-byte block including the
terminating nul char.  On the other hand, the name of
'--cl-dolist-temp-- takes 3 units.

Here's the result of some experiments:

  Dumped with dolist in subr.el: 1209808 bytes used
              dolist in cl.el:  >1211000 bytes used (overflow)
              dolist in cl.el with the modification
                '--cl-dolist-temp-- -> '--dolist-temp-- :
                                 1209832 bytes used

                                     YAMAMOTO Mitsuharu
                                address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]