From: Daniel Colascione <dancol@dancol.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: p.stephani2@gmail.com, monnier@iro.umontreal.ca, emacs-devel@gnu.org
Subject: Re: Skipping unexec via a big .elc file
Date: Tue, 25 Oct 2016 09:14:55 -0700 [thread overview]
Message-ID: <02b7c01e-9df1-bde6-9199-1ced140c143e@dancol.org> (raw)
In-Reply-To: <83twc0whav.fsf@gnu.org>
On 10/25/2016 08:59 AM, Eli Zaretskii wrote:
>> From: Daniel Colascione <dancol@dancol.org>
>> Cc: Eli Zaretskii <eliz@gnu.org>, monnier@iro.umontreal.ca, emacs-devel@gnu.org
>> Date: Mon, 24 Oct 2016 12:47:56 -0700
>>
>>> I'd argue that we are already in this situation. For example, nobody
>>> knows how to make unexec work with ASLR or PIE; when I tried fuzzing
>>> Emacs with AFL, the dumped binary would simply crash; the dumped
>>> binary is not reproducible (i.e. bit-by-bit identical after every
>>> build); and I think dumping also doesn't work with ASan. The fraction
>>> of situation where unexec doesn't work any more gets larger and
>>> larger. If we had people who could solve these problems, it should get
>>> smaller instead.
>>
>> Everyone who's seriously thought about the unexec problem _understands_
>> the issue.
>
> The important point is that the number of people here who can claim
> such understanding, enough so to fix the issues, is diminishingly
> small, and gets smaller every year.
There's no demand for more yet. There isn't a catastrophe --- just low
demand for core-change expertise. There used* to be a lot more (at least
per-capita) stonemasons in historical societies than in today's society.
That doesn't mean we've forgotten how to cut stones, and if there were a
sudden need to do it, more stonemasons would magically appear.
>> My preferred approach is the portable dumper one: basically what we're
>> doing today, except that instead of just blindly copying the data
>> segment and heap to a new emacs binary, we'll write this information to
>> a separate file, stored in a portable format, a file that we'll keep
>> alongside the Emacs binary. We'll store in this file metadata about
>> where the pointers are. (There are two kinds of pointers in this file:
>> pointers to other parts of the file and pointers to the Emacs binary.)
>>
>> At startup, we'll load the dump file and walk the relocations, fixing up
>> all the embedded addresses to account for the new process's different
>> address space.
>
> Why do you think this will have better performance that reading a
> single .elc file at startup? It's still mainly file I/O and
> processing of the file's contents, just like with byte-compiled files.
Because a portable dumper can do less, on both file I/O and processing
of the file's contents. There's no lisp evaluation, no slurping a whole
file into memory. Having to read all of Emacs into memory on startup is
a burden even on a fast, modern machine like mine.
~/edev/trunk/src
$ sync && sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
~/edev/trunk/src
$ time pv < emacs >/dev/null
48.6MiB 0:00:00 [ 455MiB/s]
[=========================================================>] 100%
real 0m0.116s
user 0m0.000s
sys 0m0.016s
That's pretty fast, but it's not free. Not having to do this much IO on
startup in the first place would be even better.
> If we have no reason to believe this portable dumper will be
> significantly faster, we should IMO investigate the .elc method first,
> because it's so much simpler, both in its implementation and in future
> maintenance. E.g., adding a new kind of Lisp object to Emacs would
> require corresponding changes in the dumper.
Adding a new kind of lisp object requires changes throughout core
anyway. At the very least, you need to teach GC where your new object
keeps its pointers, and that's exactly the knowledge that the dumper
would need.
>> We can't save all of the Emacs data segment this way, but we can
>> relocate and restore anything that's marked with staticpro. The overall
>> experience should be very similar to what we have today.
>> [...]
>> Speaking of COW faults: a refinement of this scheme is to do the
>> relocations lazily, in a SIGSEGV handler. (Map the dump file PROT_NONE
>> so any access traps.) In the SIGSEGV handler, we can relocate just the
>> page we faulted, then continue. This way, we don't need to slurp in the
>> entire dump file from disk just to start emacs -Q -batch: we can
>> demand-page!
>
> Demand paging in an application, and an application such as Emacs on
> top of that, makes little sense to me.
Why? It's conceptually no different from autoload. There is no technique
in computer science so rarefied that it's only good in ring zero.
> This is the OS business, not
> ours. Using mmap as a fast way to read a file, yes, that's done in
> many applications. But please lets leave demand paging out of our
> scope.
Emacs isn't just an application. It's a Lisp virtual machine, and
employing the optimization techniques used in other virtual machines can
be important wins.
(FWIW, mmap isn't a particularly fast way of doing bulk file reads.
That's why GNU grep removed its mmap support.)
> IMO the less we mess with low-level techniques that no other
> applications use the better, both because we have very few people who
> can do that and because doing so runs higher risk of becoming broken
> by future developments in the platforms we deem important. The
> long-term tendency in Emacs development should be to move away from
> such techniques, not to acquire more of them.
I'm for anything that delivers meaningful performance advantages.
next prev parent reply other threads:[~2016-10-25 16:14 UTC|newest]
Thread overview: 375+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <ksa8fz8eud.fsf@luna.netfonds.no>
[not found] ` <87twe6sx2g.fsf@users.sourceforge.net>
[not found] ` <87eg51ng4r.fsf_-_@users.sourceforge.net>
[not found] ` <87k2djwumn.fsf@users.sourceforge.net>
[not found] ` <83h98nidvd.fsf@gnu.org>
[not found] ` <87eg3rvtsf.fsf@users.sourceforge.net>
[not found] ` <83k2dihpm9.fsf@gnu.org>
[not found] ` <8760p2wzgj.fsf@users.sourceforge.net>
[not found] ` <838ttyhhzu.fsf@gnu.org>
[not found] ` <871szqwu51.fsf@users.sourceforge.net>
[not found] ` <831szqhbc2.fsf@gnu.org>
2016-10-22 3:03 ` When should ralloc.c be used? (WAS: bug#24358) npostavs
2016-10-22 5:32 ` Paul Eggert
2016-10-22 7:29 ` Eli Zaretskii
2016-10-22 18:34 ` Paul Eggert
2016-10-22 19:43 ` When should ralloc.c be used? Stefan Monnier
2016-10-23 2:37 ` Paul Eggert
2016-10-23 6:53 ` Eli Zaretskii
2016-10-23 7:57 ` Paul Eggert
2016-10-23 8:58 ` Eli Zaretskii
2016-10-23 9:38 ` Paul Eggert
2016-10-23 12:50 ` Eli Zaretskii
2016-10-23 13:39 ` Stefan Monnier
2016-10-23 14:01 ` Eli Zaretskii
2016-10-23 14:18 ` Stefan Monnier
2016-10-23 18:19 ` Paul Eggert
2016-10-23 19:03 ` Eli Zaretskii
2016-10-23 20:36 ` Stefan Monnier
2016-10-24 6:54 ` Eli Zaretskii
2016-10-24 10:15 ` Eli Zaretskii
2016-10-24 4:59 ` Paul Eggert
2016-10-24 7:44 ` Eli Zaretskii
2016-10-24 8:29 ` Andreas Schwab
2016-10-24 8:47 ` Eli Zaretskii
2016-10-24 16:21 ` Paul Eggert
2016-10-24 16:39 ` Eli Zaretskii
2016-10-24 16:54 ` Paul Eggert
2016-10-24 17:05 ` Eli Zaretskii
2016-10-25 6:23 ` Paul Eggert
2016-10-25 16:11 ` Eli Zaretskii
2016-10-28 6:18 ` Jérémie Courrèges-Anglas
2016-10-28 6:19 ` Jérémie Courrèges-Anglas
2016-10-28 7:40 ` Eli Zaretskii
2016-10-23 15:22 ` Andreas Schwab
2016-10-23 15:49 ` Eli Zaretskii
2016-10-23 15:57 ` Andreas Schwab
2016-10-23 17:06 ` Eli Zaretskii
2016-10-23 20:35 ` Stefan Monnier
2016-10-23 16:44 ` Skipping unexec via a big .elc file (was: When should ralloc.c be used?) Stefan Monnier
2016-10-23 17:34 ` Eli Zaretskii
2016-10-23 20:27 ` Skipping unexec via a big .elc file Stefan Monnier
2016-10-24 6:22 ` Eli Zaretskii
2016-10-24 12:47 ` Stefan Monnier
2016-10-24 13:08 ` Eli Zaretskii
2016-10-24 14:15 ` Stefan Monnier
2016-10-24 1:07 ` Stefan Monnier
2016-10-24 6:39 ` Eli Zaretskii
2016-10-24 6:47 ` Lars Ingebrigtsen
2016-10-24 7:17 ` Eli Zaretskii
2016-10-24 8:24 ` Andreas Schwab
2016-10-24 8:41 ` Eli Zaretskii
2016-10-24 9:47 ` Daniel Colascione
2016-10-24 10:00 ` Eli Zaretskii
2016-10-24 10:03 ` Daniel Colascione
2016-10-24 10:18 ` Eli Zaretskii
2016-10-24 10:28 ` Philipp Stephani
2016-10-24 10:51 ` Eli Zaretskii
2016-10-24 13:52 ` Stefan Monnier
2016-10-24 16:04 ` Eli Zaretskii
2016-10-24 13:04 ` Stefan Monnier
2016-10-24 13:35 ` Eli Zaretskii
2016-10-24 14:45 ` Daniel Colascione
2016-10-24 15:58 ` Eli Zaretskii
2016-10-24 16:17 ` Daniel Colascione
2016-10-24 16:51 ` Philipp Stephani
2016-10-24 19:47 ` Daniel Colascione
2016-10-25 15:59 ` Eli Zaretskii
2016-10-25 16:14 ` Daniel Colascione [this message]
2016-10-25 17:05 ` Eli Zaretskii
2016-10-25 19:49 ` Stefan Monnier
2016-10-25 22:53 ` Perry E. Metzger
2016-10-26 2:36 ` Eli Zaretskii
2016-10-26 2:37 ` Perry E. Metzger
2016-10-24 16:52 ` Eli Zaretskii
2016-10-25 22:46 ` Perry E. Metzger
2016-10-24 9:40 ` Ken Raeburn
2016-10-24 13:13 ` Stefan Monnier
2016-10-25 9:02 ` Ken Raeburn
2016-10-25 13:48 ` Stefan Monnier
2016-10-27 8:51 ` Ken Raeburn
2016-10-30 14:43 ` Ken Raeburn
2016-10-30 15:31 ` Simon Leinen
2016-10-30 16:52 ` Daniel Colascione
2016-10-31 14:27 ` Stefan Monnier
2016-11-02 7:36 ` Ken Raeburn
2016-11-02 12:17 ` Stefan Monnier
2016-11-02 12:22 ` Stefan Monnier
2016-11-03 5:37 ` Ken Raeburn
2016-12-11 13:34 ` Ken Raeburn
2016-12-11 15:42 ` Eli Zaretskii
2016-12-24 11:06 ` Eli Zaretskii
2016-12-25 15:46 ` Stefan Monnier
2016-12-11 19:18 ` Richard Stallman
2016-12-15 12:57 ` Ken Raeburn
2016-12-15 16:04 ` Eli Zaretskii
2016-12-15 16:26 ` Ken Raeburn
2016-12-11 19:18 ` Richard Stallman
2016-12-12 17:25 ` Ken Raeburn
2016-12-13 15:21 ` Ken Brown
2016-12-14 5:30 ` Ken Raeburn
2016-12-14 5:45 ` Ken Raeburn
2016-12-14 10:58 ` Phil Sainty
2016-12-14 12:06 ` Yuri Khan
2016-12-14 11:00 ` Lars Ingebrigtsen
2016-12-15 11:45 ` Ken Raeburn
2016-12-15 17:28 ` Ken Raeburn
2016-12-15 19:59 ` Eli Zaretskii
2016-12-15 22:07 ` Clément Pit--Claudel
2016-12-16 7:54 ` Eli Zaretskii
2016-12-16 14:28 ` Clément Pit--Claudel
2016-12-16 14:39 ` Eli Zaretskii
2016-12-16 15:28 ` Clément Pit--Claudel
2016-12-16 21:27 ` Eli Zaretskii
2016-12-16 21:38 ` Noam Postavsky
2016-12-17 14:56 ` Stefan Monnier
2016-12-19 15:11 ` Phillip Lord
2016-12-16 7:56 ` Eli Zaretskii
2016-12-19 15:15 ` Phillip Lord
2016-12-19 15:09 ` Phillip Lord
2016-12-20 18:57 ` Ken Raeburn
2016-12-20 23:22 ` Stefan Monnier
2016-12-21 7:44 ` Ken Raeburn
2016-12-21 12:13 ` Phillip Lord
2016-12-16 14:22 ` Robert Pluim
2016-12-24 13:37 ` Eli Zaretskii
2016-12-26 17:48 ` Eli Zaretskii
2017-01-07 9:40 ` Eli Zaretskii
2017-01-09 10:28 ` Ken Raeburn
2017-01-10 2:25 ` Stefan Monnier
2017-01-10 9:46 ` Andreas Schwab
2017-01-10 17:19 ` Eli Zaretskii
2017-01-11 6:32 ` Ken Raeburn
2017-01-12 8:17 ` Ken Raeburn
2017-01-14 10:41 ` Eli Zaretskii
2017-01-14 10:55 ` Andreas Schwab
2017-01-14 11:07 ` Eli Zaretskii
2017-01-14 11:26 ` Alan Mackenzie
2017-01-14 12:19 ` Andreas Schwab
2017-01-14 13:05 ` Eli Zaretskii
2017-01-14 15:12 ` Andreas Schwab
2017-01-14 17:37 ` Eli Zaretskii
2017-01-14 18:50 ` Andreas Schwab
2017-01-14 15:30 ` Stefan Monnier
2017-01-14 17:42 ` Eli Zaretskii
2017-01-14 18:11 ` Stefan Monnier
2017-01-14 20:13 ` Eli Zaretskii
2017-01-21 7:58 ` Ken Raeburn
2017-01-22 16:55 ` Ken Raeburn
2017-02-02 9:10 ` Ken Raeburn
2017-02-04 10:37 ` Eli Zaretskii
2017-02-05 14:19 ` Ken Raeburn
2017-02-05 15:51 ` Eli Zaretskii
2017-02-05 23:19 ` Ken Raeburn
2017-02-06 15:20 ` Ken Raeburn
2017-02-06 15:39 ` Stefan Monnier
2017-02-06 19:08 ` Ken Raeburn
2017-02-06 22:39 ` Stefan Monnier
2017-02-08 10:31 ` Ken Raeburn
2017-02-08 14:38 ` Ken Brown
2017-02-05 20:03 ` Ken Brown
2017-02-25 14:52 ` Eli Zaretskii
2017-02-25 15:19 ` Eli Zaretskii
2017-02-26 12:37 ` Ken Raeburn
2017-03-04 14:23 ` Eli Zaretskii
2017-03-06 8:46 ` Ken Raeburn
2017-03-11 12:27 ` Eli Zaretskii
2017-03-11 13:18 ` Andreas Schwab
2017-03-11 13:42 ` Eli Zaretskii
2017-03-11 15:48 ` Stefan Monnier
2017-03-11 21:48 ` Richard Stallman
2017-03-11 22:06 ` Stefan Monnier
2017-03-11 23:59 ` Ken Raeburn
2017-03-12 17:06 ` Stefan Monnier
2017-03-13 8:25 ` Ken Raeburn
2017-03-26 16:44 ` Eli Zaretskii
2017-03-28 2:27 ` Ken Raeburn
2017-03-31 6:57 ` Eli Zaretskii
2017-03-31 8:40 ` Ken Raeburn
2017-04-03 16:15 ` Ken Raeburn
2017-04-03 16:57 ` Alan Mackenzie
2017-04-03 18:35 ` Ken Raeburn
2017-04-03 19:14 ` Eli Zaretskii
2017-04-04 8:08 ` Ken Raeburn
2017-04-04 9:51 ` Robert Pluim
2017-04-04 10:27 ` joakim
2017-04-04 12:14 ` Clément Pit-Claudel
2017-04-04 14:38 ` Eli Zaretskii
2017-04-04 15:16 ` Clément Pit-Claudel
2017-04-04 15:53 ` Eli Zaretskii
2017-04-04 18:22 ` Clément Pit-Claudel
2017-04-07 5:46 ` Lars Brinkhoff
2017-04-07 7:28 ` Eli Zaretskii
2017-04-07 9:02 ` Ken Raeburn
2017-04-07 13:40 ` Eli Zaretskii
2017-04-07 16:02 ` Ken Raeburn
2017-04-07 16:17 ` Clément Pit-Claudel
2017-04-08 15:03 ` Philipp Stephani
2017-04-08 15:15 ` Clément Pit-Claudel
2017-04-08 15:53 ` Philipp Stephani
2017-04-08 16:18 ` Eli Zaretskii
2017-04-08 18:01 ` Stefan Monnier
2017-05-01 11:41 ` Philipp Stephani
2017-04-08 17:58 ` Clément Pit-Claudel
2017-05-01 11:40 ` Philipp Stephani
2017-05-01 12:07 ` Eli Zaretskii
2017-05-18 17:39 ` Daniel Colascione
2017-05-18 19:45 ` Eli Zaretskii
2018-12-25 15:46 ` Philipp Stephani
2018-12-25 17:21 ` Eli Zaretskii
2018-12-25 19:15 ` Daniel Colascione
2018-12-26 15:27 ` Eli Zaretskii
2019-01-07 21:37 ` Daniel Colascione
2019-01-15 22:46 ` Daniel Colascione
2019-01-16 8:45 ` Tassilo Horn
2019-01-16 10:25 ` Robert Pluim
2019-01-16 11:58 ` Phillip Lord
2019-01-18 12:46 ` Windows Binaries with pdumper Phillip Lord
2019-01-21 11:30 ` Jostein Kjønigsen
2019-01-21 14:19 ` Phillip Lord
2019-01-16 12:00 ` Skipping unexec via a big .elc file Elias Mårtenson
2019-01-16 15:59 ` Eli Zaretskii
2019-01-16 16:08 ` Daniel Colascione
2019-01-16 21:56 ` Clément Pit-Claudel
2017-05-21 8:44 ` compiled lisp file format (Re: Skipping unexec via a big .elc file) Ken Raeburn
2017-05-21 8:53 ` Paul Eggert
2017-05-28 11:07 ` Ken Raeburn
2017-05-28 12:43 ` Philipp Stephani
2017-05-29 9:33 ` Ken Raeburn
2017-07-02 15:46 ` Philipp Stephani
2017-07-03 1:44 ` Ken Raeburn
2017-09-24 13:57 ` Philipp Stephani
2017-09-27 8:31 ` Ken Raeburn
2017-05-28 21:09 ` Paul Eggert
2017-05-29 9:33 ` Ken Raeburn
2017-05-29 16:37 ` Paul Eggert
2017-05-29 17:39 ` Eli Zaretskii
2017-05-29 18:03 ` Paul Eggert
2017-05-29 18:53 ` Eli Zaretskii
2017-05-29 20:15 ` Paul Eggert
2017-05-30 5:52 ` Ken Raeburn
2017-05-30 5:55 ` Eli Zaretskii
2017-05-21 16:02 ` John Wiegley
2017-04-07 13:23 ` Skipping unexec via a big .elc file Stefan Monnier
2017-04-10 16:19 ` Ken Raeburn
2016-10-24 18:34 ` Lars Brinkhoff
2016-10-24 19:52 ` Eli Zaretskii
2016-10-23 12:55 ` When should ralloc.c be used? Stefan Monnier
2016-10-23 14:28 ` Stefan Monnier
2016-10-23 14:57 ` Eli Zaretskii
2016-10-23 15:07 ` Stefan Monnier
2016-10-23 15:44 ` Eli Zaretskii
2016-10-23 16:30 ` Stefan Monnier
2016-10-23 16:45 ` Eli Zaretskii
2016-10-23 16:49 ` Stefan Monnier
2016-10-23 17:35 ` Eli Zaretskii
2016-10-23 20:23 ` Stefan Monnier
2016-10-23 20:33 ` Eli Zaretskii
2016-10-23 20:44 ` Stefan Monnier
2016-10-24 5:11 ` Paul Eggert
2016-10-24 12:33 ` Stefan Monnier
2016-10-24 13:05 ` Eli Zaretskii
2016-10-24 14:12 ` Stefan Monnier
2016-10-24 16:00 ` Eli Zaretskii
2016-10-24 18:51 ` Stefan Monnier
2016-10-24 14:37 ` Stefan Monnier
2016-10-24 15:40 ` Eli Zaretskii
2016-10-24 16:27 ` Daniel Colascione
2016-10-24 16:57 ` Eli Zaretskii
2016-10-25 2:34 ` Richard Stallman
2016-10-25 14:13 ` Stefan Monnier
2016-10-25 14:14 ` Stefan Monnier
2016-10-28 6:03 ` Jérémie Courrèges-Anglas
2016-10-28 6:23 ` Daniel Colascione
2016-10-28 7:09 ` Jérémie Courrèges-Anglas
2016-10-28 7:46 ` Eli Zaretskii
2016-10-28 8:11 ` Daniel Colascione
2016-10-28 8:27 ` Eli Zaretskii
2016-10-28 8:44 ` Daniel Colascione
2016-10-28 9:43 ` Eli Zaretskii
2016-10-28 9:52 ` Daniel Colascione
2016-10-28 12:25 ` Eli Zaretskii
2016-10-28 13:37 ` Stefan Monnier
2016-10-28 14:30 ` Eli Zaretskii
2016-10-28 14:43 ` Stefan Monnier
2016-10-28 15:41 ` Daniel Colascione
2016-10-29 6:08 ` Eli Zaretskii
2016-10-29 6:14 ` Daniel Colascione
2016-10-28 12:11 ` Stefan Monnier
2016-10-28 11:40 ` Jérémie Courrèges-Anglas
2016-10-28 13:03 ` Stefan Monnier
2016-10-28 14:41 ` Jérémie Courrèges-Anglas
2016-10-28 15:34 ` Daniel Colascione
2016-10-24 18:45 ` Stefan Monnier
2016-10-24 19:38 ` Eli Zaretskii
2016-10-25 14:12 ` Stefan Monnier
2016-10-25 16:36 ` Eli Zaretskii
2016-10-25 19:27 ` Stefan Monnier
2016-10-25 3:12 ` Ken Raeburn
2016-10-25 16:06 ` Eli Zaretskii
2016-10-26 4:36 ` Ken Raeburn
2016-10-26 11:40 ` Eli Zaretskii
2016-10-27 8:51 ` Ken Raeburn
2016-10-24 6:59 ` Eli Zaretskii
2016-10-24 12:45 ` Stefan Monnier
2016-10-24 13:07 ` Eli Zaretskii
2016-10-24 14:42 ` Stefan Monnier
2016-10-24 15:43 ` Eli Zaretskii
2016-10-24 18:50 ` Stefan Monnier
2016-10-24 16:10 ` Eli Zaretskii
2016-10-24 16:56 ` Richard Stallman
2016-10-24 0:21 ` When should ralloc.c be used? (WAS: bug#24358) Richard Stallman
2016-10-24 3:59 ` Paul Eggert
2016-10-24 7:15 ` Eli Zaretskii
2016-10-24 16:55 ` Richard Stallman
2016-10-24 17:09 ` Eli Zaretskii
2016-10-25 2:35 ` Richard Stallman
2016-10-25 6:38 ` Paul Eggert
2016-10-25 16:04 ` Eli Zaretskii
2016-10-25 23:49 ` Richard Stallman
2016-10-26 5:08 ` Paul Eggert
2016-10-26 11:46 ` Eli Zaretskii
2016-10-26 13:10 ` Noam Postavsky
2016-10-26 14:20 ` Eli Zaretskii
2016-10-27 1:23 ` Richard Stallman
2016-10-27 1:36 ` Paul Eggert
2016-10-27 13:35 ` Perry E. Metzger
2016-10-27 14:51 ` Paul Eggert
2016-10-27 15:05 ` Perry E. Metzger
2016-10-27 18:13 ` Eli Zaretskii
2016-10-27 21:03 ` Perry E. Metzger
2016-10-27 21:07 ` Daniel Colascione
2016-10-27 23:23 ` Perry E. Metzger
2016-10-27 23:32 ` When should ralloc.c be used? Daniel Colascione
2016-10-28 7:06 ` When should ralloc.c be used? (WAS: bug#24358) Eli Zaretskii
2016-10-28 7:03 ` Eli Zaretskii
2016-10-27 13:44 ` Fabrice Popineau
2016-10-27 15:35 ` Eli Zaretskii
2016-10-27 20:39 ` Richard Stallman
2016-10-28 6:48 ` Eli Zaretskii
2016-10-28 19:12 ` Richard Stallman
2016-10-29 6:37 ` Eli Zaretskii
2016-10-29 14:55 ` When should ralloc.c be used? Stefan Monnier
2016-10-30 16:13 ` Eli Zaretskii
2016-10-30 21:47 ` Stefan Monnier
2016-10-29 16:38 ` When should ralloc.c be used? (WAS: bug#24358) Richard Stallman
2016-10-29 21:57 ` Eli Zaretskii
2016-10-31 19:18 ` Richard Stallman
2016-10-31 20:58 ` Eli Zaretskii
2016-10-28 12:51 ` When should ralloc.c be used? Stefan Monnier
2016-10-27 20:40 ` When should ralloc.c be used? (WAS: bug#24358) Richard Stallman
2016-10-27 22:34 ` Paul Eggert
2016-10-28 2:40 ` Richard Stallman
2016-10-28 7:21 ` Eli Zaretskii
2016-10-28 2:40 ` Richard Stallman
2016-10-28 6:55 ` Eli Zaretskii
2016-10-26 11:37 ` Eli Zaretskii
2016-10-27 1:24 ` Richard Stallman
2016-10-28 12:57 ` When should ralloc.c be used? Stefan Monnier
2016-10-28 19:13 ` Richard Stallman
2016-10-28 22:46 ` Stefan Monnier
2016-10-29 16:35 ` Richard Stallman
2016-10-29 6:39 ` Eli Zaretskii
2016-10-29 16:37 ` Richard Stallman
2016-10-29 21:51 ` Eli Zaretskii
2016-10-30 11:33 ` Richard Stallman
2016-10-30 15:33 ` Alp Aker
2016-10-30 17:19 ` Richard Stallman
2016-10-30 16:08 ` Eli Zaretskii
2016-10-25 23:49 ` When should ralloc.c be used? (WAS: bug#24358) Richard Stallman
2016-10-25 2:35 ` Richard Stallman
2016-10-25 16:05 ` Eli Zaretskii
2016-10-27 1:22 ` Richard Stallman
2016-10-25 23:00 ` Perry E. Metzger
2016-10-26 2:37 ` Eli Zaretskii
2016-10-27 1:25 ` Richard Stallman
2016-10-24 14:04 ` When should ralloc.c be used? Stefan Monnier
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=02b7c01e-9df1-bde6-9199-1ced140c143e@dancol.org \
--to=dancol@dancol.org \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=p.stephani2@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).