emacs-devel
[Top][All Lists]
Advanced

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

Re: MPS codegen


From: Gerd Möllmann
Subject: Re: MPS codegen
Date: Fri, 14 Jun 2024 16:05:03 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: eller.helmut@gmail.com,  acorallo@gnu.org,  emacs-devel@gnu.org
>> Date: Fri, 14 Jun 2024 15:17:03 +0200
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> For SYMBO:_FORWARDED, I think sym->u.val.fwd should be used. So I think
>> >> maybe it is somwhere in that direction. Perhaps function mirror_fwd?
>> >
>> > Sorry, I don't understand: all those values are identical, so how does
>> > it matter which one we use?  Or what am I missing?
>> 
>> What I was trying to convey is kust that in this case mirror_fwd is used.
>
> Is or should be?

Is.

> I see mirror_fwd used only in igc.c, and it's a static function there.
>
> I guess what I'm saying is that I don't understand what you suggest to
> do or check to try to fix these segfaults.

One big difference to before is that the object graph in the loaded dump
is copied top MPS (see igc_on_pdump_loaded).

This proceeds in steps.

1. iterate over objects in the dump and copy them. Record for each
object in dump what its copy is (igc_mirror::dump_to_mps).

2. iterate over objects in the copy, and "mirror" references, i.e.
replace references to the old graph with references in the copy.
Here, mirror_fwd comes into play, as subroutine of mirror_symbol.

3. Fix roots in a similar way.

4. Discard the dump.

I'd probably put a breakpoitn in mirror_fwd and look around if something
there is not right for IA32, or Windows, don't know.

It's just a guess, though.



reply via email to

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