02 December 2018


System: Slackware Linux (version 14.0)
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz
Deps: emacs-25.3-i486-1_slack14.0.txz, ebdb-0.6.tar

E. Abrahamsen's EBDB provides an example of using Elisp's object framework
with multiple dispatch.


bash-4.2# removepkg emacs-24.2-i486-1.txz


bash-4.2# installpkg /tmp/emacs-25.3-i486-1_slack14.0.txz



The emacs-25.3 org-mode version is 8.2.10.


bash-4.2# cd org-mode/contrib/lisp
bash-4.2# emacs -batch -f batch-byte-compile org-contacts.el
bash-4.2# gzip -n -9 org-contacts.el
bash-4.2# mv org-contacts.elc /usr/share/emacs/25.3/lisp/org
bash-4.2# mv org-contacts.el.gz /usr/share/emacs/25.3/lisp/org
bash-4.2# exit

Move the dir file and create a new one.

bash-4.2# cd /usr/info
bash-4.2# mv dir dir~
bash-4.2# for f in * ; do install-info $f dir ; done


bash-4.2# exit

Start emacs and type ‘M-x list-packages RET’ to initialise the package manager.

Next type ‘M-x package-install RET ebdb RET’ and then confirm when prompted.

The ebdb-migrate.el file failed to byte compile with the following error.

Compiler-macro error for cl--block-wrapper: (wrong-number-of-arguments (3 . 5) 6) [3 times]

Also this appeared in the output of the build attempt.

cl-no-applicable-method: No applicable method: ebdb-record-uuid, nil.

Protect against databases with no records, bump to 0.6.1
committed Dec 14, 2018

A backtrace was generated by starting emacs and typing the following commands.

‘M-: (setq byte-compile-debug t) RET’
‘M-: (setq debug-on-error t) RET’
‘M-x load-file RET ~/ebdb-0.6/ebdb.el RET’
‘M-x byte-compile RET ~/ebdb-0.6/ebdb-migrate.el RET’

The cl--block-wrapper part is actually irrelevant, it turns out.

The builtin function alist-get used six arguments (the new calling convention).

bash-4.3$ grep 'alist-get' ebdb-migrate.el
         (alist-get name dud-fields '() nil #'equal)))))

Updated: 22-06-2018

GNU bug report logs - #35739
[w32] Bad signature from GNU ELPA for archive-contents

A bug which did not appear to affect emacs-25.3-i486-1_slack14.0.txz
but did however affect emacs-25.3-i586-1_slack14.2.txz, was attended
to in emacs-26.2.90 pretest; ebdb-0.6.9/ebdb-migrate.el furthermore
will byte compile using that version of emacs.

This was just a test today of the package manager library for ELPA.

[   ] [   ]

Open Multi-Methods for C++

Type classes: exploring the design space
multi-parameter type classes are solidly in GHC and have been for many years now

How S4 Methods Work

[   ] [   ]