emacs-devel
[Top][All Lists]
Advanced

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

Re: Not protecting Lisp objects from GC


From: Jeremy Bryant
Subject: Re: Not protecting Lisp objects from GC
Date: Wed, 29 Jan 2025 23:09:05 +0000

Gerd Möllmann <gerd.moellmann@gmail.com> writes:

> Jeremy Bryant <jb@jeremybryant.net> writes:
>
>
>> and care a lot about Emacs.
>
> To _very_ varying degrees over the decades, including two with zero
> interest. It's a long story :-).

I hear it's a long story.  After first using Emacs in the 90's, I
discontinued for unfathomable reasons.  I also therefore missed the
Emacs releases you did as maintainer.  I was recently studying the
xdisp.c code, to which M-x vc-annotate tells me you made large
contributions around 1999-2001 at least.  I find your code comments
helpful to learn about the code.  Thanks for that.

Emacs itself is also a long story.  It takes time to work on large
features.


>> I am a non-expert in GC.
>> As such would you have any guidance on how to
>> understand the benefits of the igc branch
>
> I recommend starting with admin/igc.org. I'm not a particularly good
> explaining things, but I'd hope it's helpful anyway.
>
>> and the 'easiest' entry points into the code for study purposes?
>
> MPS is a library, so one has to understand its API first; igc.org has
> links to the MPS documentation. The documentation includes a Guide that
> I would start with.
>
> Once you've done that, read the rest of igc.org, and then see how igc.c
> uses the API. I'd start here
>
> igc.c:
>  5235 void
>  5236 init_igc (void)
>  5237 {
>  5238   /* Returns previous handler.  */
>  5239   (void) mps_lib_assert_fail_install (igc_assert_fail);
>  5240   global_igc = make_igc ();
>  5241   add_main_thread ();
>  5242   set_state (IGC_STATE_USABLE_PARKED);
>  5243 }
>
> This is called very early when Emacs starts. It sets up everything so
> that the GC is usable. Follow the call tree and look up MPS API
> functions being called in the MPS Reference.
>
> Then ask questions :-).

Thanks for the detailed description and guide.  I will read up and try
to ask questions.

Furthermore this succinct summary and entry point may
help guide others now, on the road to this large feature.



reply via email to

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