Paul Eggert schrieb am So., 11. Juni 2017 um 19:45 Uhr: > Philipp Stephani wrote: > > Here's a new patch. It makes this change, and also changes the allocation > > slightly so that objects have unique addresses (useful for checking). > > Thanks for working on this. Some comments. > > Have you looked into the runtime overhead of this approach, assuming > -module-assertions is not specified? Currently lisp_to_value and > value_to_lisp > typically are optimized away (i.e., zero machine instructions), and that > wouldn't be true under the proposed patch even when -module-assertions is > not > used. Granted, module calls need not be super-fast, but it might be nice to > avoid the overhead in the typical case if that is easy. > I've run a simple benchmark (5000000 iterations of mod-test-sum). Result for the base case (module assertions not compiled) is 4.602 seconds, with the new code it's 4.605 seconds. That's probably good enough. > > What happens if -module-assertions is enabled for Emacs, Emacs dumps > itself, and > -module-assertions is not enabled when the dumped Emacs is run? Good question. I've now just made -module-assertions during dumping an error. > Or vice versa. > That's the normal case, which should work just fine. > > Are the FOR_EACH_TAIL_SAFE macro calls needed? This macro is needed only > for > lists that might be circular (e.g., the lists are available to Lisp code, > which > can call setcdr on their components). If the calls are not needed I > suggest just > an ordinary for loop. > Done. > > A small point: the FOR_EACH... loops should be indented like ordinary > for-loops. > Done. (Would be great if CC-Mode knew about this.)