Aurélien Aptel schrieb am Do., 15. Okt. 2015 um 12:44 Uhr: > On Thu, Oct 15, 2015 at 2:25 AM, Philipp Stephani > wrote: > > Agreed. I've implemented Daniel's suggestion on the tls-error branch, it > > seems to work fine (but note that environments are now no longer global, > so > > storing away emacs_values without global references now will lead to > > undefined behavior). > > Yeah I just realized that. The nice thing with just casting is its the > same memory object and the stack-scanning GC just works. Having the GC > is nice... > Until you change the GC algorithm to a precise GC or reference counting and cause all modules to crash, leak memory, or worse. This is exactly the kind of dependency on implementation details that we want to avoid with a clean module interface. > Again, IIUC, the only problem is on 32bit with wide-int, which is off > by default. > > Even if sizeof(Lisp_Object) == sizeof(void*), you still need the guarantee that (Lisp_Object)((void*)0) is an invalid Lisp object. > > Let's see what will get accepted upstream. > > That's sneaky... but this is how the free software world works I guess... > I don't think it's sneaky. The opinions of everyone are known and have been discussed ad nauseam in public. Either it gets accepted or it doesn't.