emacs-devel
[Top][All Lists]
Advanced

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

Re: MPS: Loaded pdump


From: Helmut Eller
Subject: Re: MPS: Loaded pdump
Date: Tue, 14 May 2024 16:22:59 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

On Tue, May 14 2024, Gerd Möllmann wrote:

> Random notes:
>
> - The dump for MPS now contains the start offsets of igc objects. The
>   existing object_starts relocs cannot be used because they are for Lisp
>   objects only.
>
> - Each igc object in the dump has an igc_header. The function
>   pdumper_visit_object_starts can be used to traverse them in a loaded
>   dump. I chose this interface because it cannot be made sure that igc
>   objects occupy a continguous region in the dump, at least not with
>   surgery on the pdumper.

What are those objects that make the region non-contiguous? 

> - Obarrays are probably not yet handled right. I couldn't bring me to do
>   this yet. As you know my fork doesn't have obarrays, but uses CL
>   packages which use hash tables. Any takers?

There seem to be 24 obarrays in my branch.  Any idea how I could test
that those are not working?

> Otherwise this is not yet used. I checked with an MPS and non-MPS
> build (with checking=all).

So at the moment the dump is still an ambiguous root.  And because it is
not a contiguous region of igc-objects it's not easy to scan it exactly,
right?

I think I would try one of these before going to the copying step:
 a) make the hot section an exact root
 b) figure out the minimal set of roots (something like
    the inverse of dump_metadata_for_pdumper)

a) would be a good test to make sure that the igc-headers are correct
and b) will probably be needed for the next step anyway.

> Taking the next step will be difficult. Copying object from the dump to
> MPS and fixing references from one graph to the other requires writing a
> gazillion functions to do that. At least at the moment that's something
> that exhausts me just be thinking of it.

MPS knows how to copy objects.  Can't we somehow reuse that?  Perhaps
not, if you want to patch/relocate and copy in one step but if you do it
in two steps it should work, no?



reply via email to

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