Subject: bug#18494: 24.4.50; defclass creates undocumented *-list-p function

From: Tom Tromey <[email-masked]>
Date: Wed, 17 Sep 2014 20:09:57 -0600

Try:

(defclass zzz-whatever () ((hi)))

Now notice there is a new function:

(symbol-function 'zzz-whatever-list-p)
(lambda (obj) "Test OBJ to see if it a list of objects which are a child of type zzz-whatever" (when (listp obj) (let ((ans t)) (while (and obj ans) (setq ans (and (eieio-object-p (car obj)) (object-of-class-p (car obj) zzz-whatever))) (setq obj (cdr obj))) ans)))

This new -list-p function is not documented in the EIEIO manual.

It seems to me that it would be a bit better not to define it.
It doesn't seem generally useful enough, to me.

However, if it is kept, it ought to be documented.

In GNU Emacs 24.4.50.8 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.9)
 of 2014-09-15 on bapiya
Repository revision: 117884 [email-masked]
Windowing system distributor `Fedora Project', version 11.0.11404000
Configured using:
 `configure --prefix=/home/tromey/Emacs/install'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  gnus-topic-mode: t
  gnus-undo-mode: t
  diff-auto-refine-mode: t
  which-function-mode: t
  global-auto-revert-mode: t
  desktop-save-mode: t
  erc-services-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  savehist-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Recent input:
n C-h f e c l <backspace> <backspace> l c o m p - - 
b a s <tab> l i <tab> <M-backspace> <M-backspace> <tab> 
<tab> C-g M-< C-h C-g C-u C-SPC C-h C-g C-x b C-g C-g 
C-g C-x b <return> , C-/ C-h C-g C-v C-h f e c l i 
p <M-backspace> e l c o m p - - s e t - <tab> l i s 
t <tab> <return> C-x 1 C-l M-{ C-f C-M-f C-M-f C-f 
C-v M-} C-M-f C-M-f C-M-f C-M-f C-M-f C-M-f C-z n C-z 
n C-a C-n C-n C-s e l C-w C-w C-w C-s C-a C-z n M-v 
M-v z n C-x C-g C-/ C-z n C-x b <return> C-f M-v M-v 
M-v M-v M-> <return> ; ; ; C-l C-a C-k C-q C-l <return> 
<return> ( d e f u n SPC e c l C-t o m p - - c o m 
p u t e - d o m i n a n c e - f r o n t i e r C-z n 
C-x b e l c o m <tab> <return> M-< C-u C-u C-n C-u 
C-u C-n C-p C-p C-v C-u C-n C-u C-n C-n C-n C-n C-n 
C-u C-p C-u C-p C-l <switch-frame> C-z n C-z n C-SPC 
C-a C-p C-p C-p C-w C-f C-x C-s C-x s C-c r C-u C-n 
p SPC q SPC q C-v C-u C-n C-u C-n p C-l C-u C-p C-u 
C-p n SPC 8 <return> SPC SPC SPC = n k SPC n C-z n 
C-h f M-p M-p <return> C-z n C-z n C-x b * C-g C-z 
n C-z n C-x 1 C-z n n n q s y M-x r e p o r t - e m 
<tab> <return>

Recent messages:
Saving file /home/tromey/DotEmacs/.bbdb...
Wrote /home/tromey/DotEmacs/.bbdb
Saving Gnus registry (857 entries) to ~/.gnus.registry.eioio...
Saving Gnus registry (size 857) to ~/.gnus.registry.eioio...done
Saving file /home/tromey/.newsrc...
Wrote /home/tromey/.newsrc
Saving /home/tromey/.newsrc.eld...
Saving file /home/tromey/.newsrc.eld...
Wrote /home/tromey/.newsrc.eld
Saving /home/tromey/.newsrc.eld...done

Load-path shadows:
/home/tromey/.emacs.d/elpa/css-mode-1.0/css-mode hides /home/tromey/Emacs/install/share/emacs/24.4.50/lisp/textmodes/css-mode
/home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/24.4.50/lisp/play/bubbles

Features:
(shadow emacsbug log-view cus-edit tar-mode bbdb-sc supercite regi debug
cl-macs eieio-opt speedbar sb-image ezimage dframe help-mode dabbrev
log-edit pcvs-util copyright url-http url-gw url-auth url-queue
mailalias misearch multi-isearch mail-hist nnir find-file gnus-fun
gnus-html xml url-cache mm-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util url-parse
url-vars shr-color color shr browse-url bbdb-gui bbdb-hooks mule-util
sort smiley gnus-cite flow-fill mm-archive gnus-async gnus-bcklg qp
gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus
bbdb-snarf mail-extr bbdb-com warnings cl gv gnutls network-stream
starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nntp gnus-cache gnus-registry registry eieio-base gnus-art mm-uu mml2015
epg-config mm-view mml-smime smime dig mailcap gnus-sum gnus-group
gnus-undo smtpmail sendmail gnus-start gnus-cloud nnimap nnmail
mail-source tls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range
message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus gnus-ems nnheader mail-utils tcl autoconf autoconf-mode
make-mode smerge-mode diff-mode goto-addr python js json vc-arch vc-mtn
vc-hg vc-bzr vc-sccs vc-svn vc-cvs vc-rcs bug-reference cc-mode cc-fonts
cc-guess cc-menus cc-cmds org-element org-rmail org-mhe org-irc org-info
org-gnus org-docview doc-view jka-compr image-mode dired org-bibtex
bibtex org-bbdb org-w3m org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline easy-mmode org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs vc-git
add-log flyspell ispell eldoc diminish projectile edmacro kmacro
pkg-info find-func lisp-mnt epl grep compile dash s appt diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu minimap
autorevert filenotify desktop frameset cus-start cus-load status
erc-services erc-list erc-menu erc-join erc-ring erc-networks
erc-pcomplete pcomplete erc-track erc-match erc-button wid-edit
cl-loaddefs cl-lib erc-fill erc-stamp erc-netsplit erc-goodies erc
erc-backend erc-compat format-spec auth-source eieio byte-opt bytecomp
byte-compile cconv eieio-core gnus-util mm-util mail-prsvr
password-cache thingatpt pp advice help-fns vc-dir ewoc vc vc-dispatcher
cc-styles cc-align cc-engine cc-vars cc-defs bbdb timezone ange-ftp
comint ansi-color ring server savehist dwarf-mode-autoloads
gdb-shell-autoloads jabber-autoloads lisppaste-autoloads
pydoc-info-autoloads info-look info easymenu weblogger-autoloads package
bbdb-autoloads time-date tooltip electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 989562 137419)
 (symbols 48 105520 6)
 (miscs 40 40605 3713)
 (strings 32 330874 35484)
 (string-bytes 1 14735697)
 (vectors 16 96901)
 (vector-slots 8 2164002 205204)
 (floats 8 554 830)
 (intervals 56 50349 2797)
 (buffers 976 308)
 (heap 1024 288009 55648))

Tom