;;; -*- lexical-binding: t -*- (require 'eieio) (require 'eieio-base) (defclass eieio-fail (eieio-persistent eieio-named) ((version :initarg :version :initform nil) (version-constant :allocation :class) (entries :initarg :entries :initform (make-hash-table)))) (let* ((ef (make-instance 'eieio-fail :file "tmp")) (entries (slot-value ef 'entries)) (ef2 (make-instance 'eieio-fail :file "tmp2")) (entries2 (slot-value ef2 'entries))) (puthash 'foo 42 entries2) (oset ef2 :entries entries2) (puthash 'ef2 ef2 entries) (oset ef2 :entries entries2) (oset ef :entries entries) (eieio-persistent-save ef (concat "tmp-" emacs-version))) (let* ((ef (eieio-persistent-read (concat "tmp-" emacs-version) 'eieio-fail t)) (entries (slot-value ef 'entries)) (entries2 (slot-value (gethash 'ef2 entries) 'entries))) ;; (pp ef) (pp (gethash 'foo entries2)))