From: Michael Heerdegen <michael_heerdegen@web.de>
To: 11652@debbugs.gnu.org
Subject: bug#11652: 24.1.50; CL: diverse `labels' related code doesn't work anymore
Date: Fri, 08 Jun 2012 17:23:56 +0200 [thread overview]
Message-ID: <874nqlu8s3.fsf@web.de> (raw)
Hi,
today I upgraded to
GNU Emacs 24.1.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2)\n of
2012-06-08 on zelenka, modified by Debian
Diverse stuff involving `labels' doesn't work anymore, e.g.:
1.
(labels
((subdirs-of
(dir)
(if (not (file-directory-p dir))
nil
(let ((l (directory-files dir 'full-name nil 'nosort)))
(loop for file in l
unless
(or (member (file-name-nondirectory file) '("." ".."))
(not
(file-directory-p
(file-truename file))))
collect file))))
(add-dirs-to-load-path ;recursive
(&rest dirs)
(when dirs
(let ((first (car dirs)))
(callf2 cons first load-path)
(apply
'add-dirs-to-load-path
(append
(subdirs-of first)
(cdr dirs)
nil))))))
(add-dirs-to-load-path "~/gnu-emacs"))
==> Error: apply: Symbol's function definition is void:
add-dirs-to-load-path
This had worked before.
2.
(defun is-list-p (obj)
"Return t if OBJ is a true list and nil else.
So called \"dotted lists\" whose final cdr is not nil satisfy
`listp', but not `is-list-p'."
(and (listp obj) (null (cdr (last obj)))))
(defmacro* do-nodes ((var &rest code) tree &optional pred)
"Traverse all nodes of TREE with with `setf'-able references.
Let VAR traverse all subtrees of TREE with depth-first search as
`setf'-able reference. You can use `setf' to modify the element
referenced by VAR, thus modifying TREE. It is a generalization
of CL-`loop's \"of-ref\" clause.
This is a convenient way to modify certain elements in a tree
structure.
With PRED given, recurse only on sequences holding PRED.
\(Note: Generalized vars collaps to their values when passed to
functions.\)
Examples:
(let ((l '(((-1 (0))) 1 2 3 (4 5 (((6)))))))
(do-nodes (i (when (and (numberp i) (> i 2)) (incf i 1000))) l)
l)
=>
(((-1 (0))) 1 2 1003 (1004 1005 (((1006)))))
----
(do-nodes (i (when (equal i '(1 2)) (setq i 'foo)))
'((1 2) 1 2 ((1 2))))
=>
(foo 1 2 (foo))"
(declare (indent 1))
(callf or pred 'sequencep)
`(labels
((helper (tree)
(loop for ,var being the elements of-ref tree do
(progn
,@code
(when (and (or (is-list-p ,var) (arrayp ,var))
(,pred ,var))
(helper ,var))))
tree))
(helper ,tree)))
(do-nodes (i (when (equal i '(1 2)) (setq i 'foo)))
'((1 2) 1 2 ((1 2))))
==> Error equal: Symbol's value as variable is void: temp-idx
This also worked before the upgrade.
3. Just FYI: when I updated emacs-snapshot with aptitude on my Debian
machine, the installation aborted because compilation of the Emms
package files failed. I had to remove EMMS. This could be related,
dunno.
In GNU Emacs 24.1.50.1 (i486-pc-linux-gnu, GTK+ Version 3.4.2)
of 2012-06-08 on zelenka, modified by Debian
(emacs-snapshot package, version 2:20120608-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11201902
Configured using:
`configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu'
'--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
'--localstatedir=/var' '--infodir=/usr/share/info'
'--mandir=/usr/share/man' '--with-pop=yes'
'--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.1.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1.50/site-lisp:/usr/share/emacs/site-lisp'
'--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/'
'--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes'
'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu'
'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2' 'LDFLAGS=-g
-Wl,--as-needed -znocombreloc' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''
next reply other threads:[~2012-06-08 15:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-08 15:23 Michael Heerdegen [this message]
2012-06-10 20:32 ` bug#11652: 24.1.50; CL: diverse `labels' related code doesn't work anymore Michael Heerdegen
2012-06-11 20:50 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874nqlu8s3.fsf@web.de \
--to=michael_heerdegen@web.de \
--cc=11652@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).