emacs-devel
[Top][All Lists]
Advanced

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

Re: Preview: portable dumper


From: Daniel Colascione
Subject: Re: Preview: portable dumper
Date: Fri, 2 Dec 2016 07:38:50 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

On 12/02/2016 06:45 AM, Eli Zaretskii wrote:
From: Stefan Monnier <address@hidden>
Cc: address@hidden
Date: Fri, 02 Dec 2016 08:04:46 -0500

Granted, the proposed dumper is not very complicated.  But it isn't
trivial either.  So if we can achieve a similar effect by using the
"normal" loadup code, which is much simpler and doesn't really require
understanding anything new, I think it's more beneficial for the
project's future.

Ken worked on speeding up the lread.c code, and it got to be
significantly faster, but not fast enough.  AFAIK it's got to the point
where it's not clear exactly how to speed it up further.  Not that it
can't be done, but that it's not obvious how, so it's likely going to
require some serious rethinking and maybe restructuring/rewrite of
the code.

Is it going to happen if we don't merge the pdumper?  I'm not so sure.

I'm willing to give that a chance.  I don't see any reason to make the
decision today.

The main impetus behind speeding up lread.c is to replace unexec.c, so
I agree with you that merging the pdumper might mean that speeding up
lread.c will simply never happen.  But I think there's also a very
serious risk that even without the pdumper, speeding up lread.c will
still never happen: I have no intention on working at speeding up
lread.c, AFAICT Ken also gave up on it, anyone else?

Judging by Ken's response, he didn't give up yet.

In any case, it should be clear to anyone that code which isn't
written cannot be used.  So a reality check will get us straight.

Personally, I think that maybe we should move in the other direction:
keep lread.c for "source code" and generalize the pdumper code so it can
also be used for the .elc files.

You mean, move the byte compiler to C?

Ideally, yes: one way, we'll compile with libgccjit or something. But that's a long way away.

For now, nobody's talking about the byte compiler. Stefan's talking about the code that *reads* the byte compiler's output. Right now, this code is the normal lisp reader, but it doesn't have to be.

If not, I don't understand the idea: pdump wants a file in a very
specific format, because it doesn't really understand the entities it
reads.

pdumper's loader is stupidly simple. It doesn't understand anything about what it's loading. That's what makes it fast. Stefan's idea is to make the elc format closer to the pdump format. Advantage: it'll be much faster that way. Disadvantage: elc files will be closely coupled to the precise Emacs builds that generated them.



reply via email to

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