Stefan Monnier writes: > This kind of code is supposed to be fully deterministic, so it's quite > worrisome. It sounds/smells like memory corruption or some other bug in > the memory management. > > If you could come up with a reasonably simple code (in the sense that it > doesn't take too long to run) to reproduce this problem with a high > probability, maybe we can start adding some tracing to try and figure > out what's going on. > > IOW, try and write a loop that runs the problematic code a couple > hundred times, so that one of those should fail. Then try and cut down > the code as much as possible, verifying along the way that the problem > didn't disappear. Here's the simplest repro I could find: ;;; foo.el -*- lexical-binding: t -*- (require 'map) (map-into () '(hash-table)) ;;; foo.el ends here followed by: emacs -Q -batch -f batch-byte-compile foo.el while emacs -Q -batch -l foo.elc; do :; done which barfs the attached after a few seconds. The same happens with: (map-into () '(hash-table :test eq)) (map-into () '(hash-table :test eql)) (map-into () '(hash-table :test equal)) but not with: (map-into () 'hash-table) so maybe the heisenbug lies with cl-defmethod's treatment of 'head'? Let me know if you'd like me to run anything else. Thanks, -- Basil