Subject: bug#76698: Activations interfere with each other modules

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 02 Apr 2025 14:41:16 +0900

Hi,

[...]

>> Activation snippets all run in the same Guile process so far, mostly out
>> of a concern to be more efficient than running each one in a separate
>> process as you suggest.
>>
>> The downside is what Tomas found out: the load path is global to the
>> entire set of activation snippets.
>>
>> Now, maybe we could have the best of both worlds: instead of
>> ‘activation-script’ doing
>>
>>   (for-each primitive-load '#$actions)
>>
>> it could do something like:
>>
>>   (for-each (lambda (action)
>>               (guard …   ;like Hilton suggests
>>                 (save-module-excursion
>>                   (lambda ()
>>                     (set-current-module (resolve-module '(guile-user)))
>>                     (primitive-load action)))))
>>             '#$actions)
>>
>> Thoughts?

Sounds like a nice improvement over what we currently have, though
without having measured the impact of using multiple processes perhaps
it is premature to optimize to use a single process (guile has
a notoriously fast startup time so it may not matter much).

Still, +1 on this improvement from me.

-- 
Thanks,
Maxim