emacs-devel
[Top][All Lists]
Advanced

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

Re: Environment variables in dynamic modules


From: Psionic K
Subject: Re: Environment variables in dynamic modules
Date: Fri, 12 Jan 2024 09:29:11 +0900

>> C. Set all variables in the C environment to match process-environment
>>    every time we call into the dynamic module
>>    (but this is slow and hurts performance)

I'm going to preface a solution to excessive redundant passing by pointing out that the provenance of a piece of data is a requisite but something we don't have.

Encoding input provenance in vector clocks is a solution to avoiding unnecessary passing and maintaining caller and callee input synchronization even when the callee is performing asynchronous work.

While we can use watch-variable for updates from Elisp, such as those done by a package like envrc that creates buffer local environments, updates from C don't have this convenience. 

Protecting inputs from arbitrary mutations is a requirement to implement this technique conveniently.  More likely, there need to be interfaces that permit a logical clock and the value it versions to remain consistent.  Since the data needs to be immutable or else requires locking, coordination with the GC is required.

reply via email to

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