all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Andrea Corallo <akrl@sdf.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Pure space and overflow question
Date: Fri, 21 Feb 2020 15:23:03 +0000	[thread overview]
Message-ID: <xjfpne82cdk.fsf@sdf.org> (raw)
In-Reply-To: <838skwja9u.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 21 Feb 2020 16:16:29 +0200")

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: emacs-devel@gnu.org
>> Date: Fri, 21 Feb 2020 13:54:42 +0000
>> 
>> > That said, why does your configuration require more pure space than
>> > any other on that same platform?
>> 
>> Effectively in comp.c are allocate object that goes into pure space and
>> all the code is under #ifdef HAVE_NATIVE_COMP.
>> 
>> Also the constant objects present in every compilation unit can have a
>> small overhead respect to the elc one.  This is because they include the
>> data used by the 'top_level_run' function.
>
> Do you really need the former to be pure, and to be dumped in general?
> If so, why?
>
> I think with portable dumper in place, we should have a more
> fine-grained distinction between the stuff that really needs to be
> dumped, and stuff that just happens to be there due to code that runs
> at loadup time.  The latter should not be dumped, but instead should
> be re-created anew in every Emacs session.  In particular, stuff that
> is needed for compilation should ideally not even be in memory until
> the user wants to compile something.
>
> Am I missing something?

No you are not, effectively immediate objects into 'top_level_run' don't
have to stay necessarily into pure space because once the file is loaded
and emacs is dumped 'top_level_run' has no reason to be execute ever
again.  In this sense is a very special function.

I've added a special variable to impose that objects are emitted as
'impure' (never copied to pure space).  Binding this to t while emitting
the code for 'top_level_run' does the job.

This is sufficient to stay in the current pure space size (at least for
my current X configuration).  I'll be pushing it when finished with
the tests.

Thanks

  Andrea

-- 
akrl@sdf.org



      reply	other threads:[~2020-02-21 15:23 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 18:04 Pure space and overflow question Andrea Corallo
2020-02-20 19:56 ` Eli Zaretskii
2020-02-20 22:10   ` Andrea Corallo
2020-02-21 11:53   ` Andrea Corallo
2020-02-21 12:43     ` Eli Zaretskii
2020-02-21 13:54       ` Andrea Corallo
2020-02-21 14:16         ` Eli Zaretskii
2020-02-21 15:23           ` Andrea Corallo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xjfpne82cdk.fsf@sdf.org \
    --to=akrl@sdf.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.