Hi Noam, Thanks for the reply. If I understand correctly, you intend a change like this: (cl-defmethod dump-language-to-file ((obj else-repository) name to-file) (let ((language-to-dump (access-language else-Language-Repository name)) (write-marker nil) (language-output-buffer nil) (print-circle t)) <-------------------- new line (save-excursion (unless (file-directory-p (file-name-directory to-file)) (make-directory (file-name-directory to-file))) . . (mapatoms (lambda (e) (print (symbol-plist e) write-marker)) (oref language-to-dump placeholders)) (save-buffer) (kill-buffer)))) I tried this and the read code still throws an error when reading the objects back from the file. Peter On Tue, Apr 2, 2019 at 10:55 AM Noam Postavsky wrote: > Peter Milliken writes: > > > I'm not sure that I am giving up on Emacs maintenance - the reference > Noam > > supplied indicates this is a "well known" issue and somebody, has some > > intention, at some stage, to do something about it, but given the last > > update to referenced bug/email stream was 268 days ago, that intention > may > > be on the back burner :-) > > Hi, I'm reviewing some old bugs, and I think I missed explicitly giving > the obvious suggestion to you here the first time around. Does it help > to let-bind print-circle to t in dump-language-to-file? Bug#29220 has a > lot more going on because it concerns eieio-persist* functions, which as > far as I can tell, your package is not using. > > > Faking up a code snippet is not necessarily that easy > > Possibly I'm missing something, but is there more to your problem than > this? > > (defclass foo () > ()) > > (read (prin1-to-string (make-instance 'foo))) ;=> (invalid-read-syntax > "#") > > (read (let ((print-circle t)) > (prin1-to-string (make-instance 'foo)))) ;=> > #s(#s(eieio--class foo ...)) >