Re: [COMMIT] Integrate CL code better into core, remove obsolete compatibility code.
13 years
Aidan Kehoe
Ar an triú lá de mí Eanair, scríobh Malcolm Purvis:
> >>>>> "Aidan" == Aidan Kehoe <kehoea(a)parhasard.net> writes:
>
>
> Aidan> Damn it. OK, I’ve added an explicit autoload call to bytecomp.el,
> Aidan> which should fix that particular issue.
>
> I've found that just adding "(require 'cl-macs)" to bytecomp.el results
> in an abort while dumping xemacs[1].
That’s fine, expected; 'cl-macs isn’t provided anywhere, it’s just expected
to be loaded at compile time if 'cl has been provided. And abort-on-error is
the usual behaviour for errors when dumping.
> Robert, as a work around you can try the patch below which just replaces
> the call to cl-compile-time-init with the body of the function.
That won’t work, because it doesn’t force cl-macs to be loaded.
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
Re: [COMMIT] Integrate CL code better into core, remove obsolete compatibility code.
13 years
Aidan Kehoe
Ar an dara lá de mí Eanair, scríobh Didier Verna:
> Aidan Kehoe wrote:
>
> > I think this is a reasonable way to prompt the users of the cl-*
> > functions to change their code to use function names that have been
> > available in XEmacs since 1997 and GNU Emacs since 1999.
>
> We obviously disagree on this, but I think breaking existing code is
> not a reasonable but a rude way of asking. The situation is more
> complicated than just a matter of "asking people to upgrade their code".
I agree it’s not the ideal way of doing things, but the ideal way breaks
things for people and confuses them too, as I learned repeatedly with the
multiple-values changes.
> For instance, w3 upstream doesn't have a problem, but there are still
> people using our (I mean the one in the packages repo) version of it.
> For these people, you're effectively breaking their XEmacs, hence
>
> - forcing them to do a manual installation of the upstream version,
> - wait for a package update (is this going to happen ?)
> - patching their local version which is not very good either.
>
>
> I'm not opposed to breaking code from time to time in general when it's
> for the greater good; it's just that I don't see the point in cases like
> this where you can always define-obsolete-function-alias'es. Maintaining
> compatibility doesn't hurt a bit, so why breaking it ?
It does, though. I mean, it’s better in code written for XEmacs, since we
have obsolete.el, but parts of cl.el and cl-extra.el looked like a generated
configure script for a long time. People don’t maintain things they feel
they don’t understand, and the compatibility stuff contributed to that
feeling.
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
Re: [COMMIT] Integrate CL code better into core, remove obsolete compatibility code.
13 years
Aidan Kehoe
Ar an dara lá de mí Eanair, scríobh Robert Pluim:
> On Mon, Jan 2, 2012 at 1:14 PM, Robert Pluim <rpluim(a)gmail.com> wrote:
> >> When building Gnus git head with an xemacs including your changes:
> >>
> >> URLDIR="/usr/local/share/xemacs/xemacs-packages/lisp/w3/"
> >> W3DIR="/usr/local/share/xemacs/xemacs-packages/lisp/w3/"
> >> lispdir="/usr/local/share/xemacs/site-packages/lisp/gnus" srcdir=.
> >> /build/xemacs-edge/src/xemacs -batch -no-autoloads -l ./dgnushack.el
> >> -f dgnushack-make-cus-load .
> >>
> >>
> >> xemacs exiting.
> >> Symbol's function definition is void: cl-compile-time-init
> >
> >
> > Actually, this is probably due to my XEmacs not having been rebuilt
> > from scratch. Rebuilding now.
>
> Looks like cl-compile-time-init is autoloaded now, which does not site
> well with the -no-autoloads that gnus is passing to us. Aidan, what
> should I do here?
Damn it. OK, I’ve added an explicit autoload call to bytecomp.el, which
should fix that particular issue.
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] Put back compatibility alias for #'cl-puthash, used by 21.4's setf expansion
13 years
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1325511331 0
# Node ID 2fc3f2f355236d8730d4989461ba336ebd443be9
# Parent 2014ff433dafca722d256995c405d3a8faabfd85
Put back compatibility alias for #'cl-puthash, used by 21.4's setf expansion
2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
* obsolete.el (cl-puthash): Put back a compatibility alias for
this, setf-expansion of #'gethash calls it on 21.4, so it will
occur in packages for a while to come.
diff -r 2014ff433daf -r 2fc3f2f35523 lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jan 01 15:18:52 2012 +0000
+++ b/lisp/ChangeLog Mon Jan 02 13:35:31 2012 +0000
@@ -1,3 +1,9 @@
+2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * obsolete.el (cl-puthash): Put back a compatibility alias for
+ this, setf-expansion of #'gethash calls it on 21.4, so it will
+ occur in packages for a while to come.
+
2011-12-30 Aidan Kehoe <kehoea(a)parhasard.net>
* subr.el (copy-symbol): Don't error with a non-list plist, as
diff -r 2014ff433daf -r 2fc3f2f35523 lisp/obsolete.el
--- a/lisp/obsolete.el Sun Jan 01 15:18:52 2012 +0000
+++ b/lisp/obsolete.el Mon Jan 02 13:35:31 2012 +0000
@@ -257,6 +257,10 @@
(make-obsolete 'cl-delete-duplicates 'delete-duplicates)
+;; This occurs because of setf expansion by 21.4, changing the affected
+;; packages won't fix that.
+(define-obsolete-function-alias 'cl-puthash 'puthash)
+
; old names
(define-compatible-function-alias 'byte-code-function-p
'compiled-function-p) ;FSFmacs
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT] browse-cltl2.el: #'puthash, not #'cl-puthash, the latter is an obsolete name.
13 years
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1325509353 0
# Node ID 1b4ae327d52bb2428055ac70f72958a416a6a62e
# Parent c149ad62c87446307c7b1d5d259323a38b0b8d0b
browse-cltl2.el: #'puthash, not #'cl-puthash, the latter is an obsolete name.
2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
* browse-cltl2.el (cltl2-prepare-index): #'puthash, not
#'cl-puthash, the latter is an obsolete name.
diff -r c149ad62c874 -r 1b4ae327d52b ChangeLog
--- a/ChangeLog Sat Sep 03 14:49:34 2011 +0200
+++ b/ChangeLog Mon Jan 02 13:02:33 2012 +0000
@@ -1,3 +1,8 @@
+2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * browse-cltl2.el (cltl2-prepare-index): #'puthash, not
+ #'cl-puthash, the latter is an obsolete name.
+
2008-04-07 Norbert Koch <viteno(a)xemacs.org>
* Makefile (VERSION): XEmacs package 1.56 released.
diff -r c149ad62c874 -r 1b4ae327d52b browse-cltl2.el
--- a/browse-cltl2.el Sat Sep 03 14:49:34 2011 +0200
+++ b/browse-cltl2.el Mon Jan 02 13:02:33 2012 +0000
@@ -319,7 +319,7 @@
; until we can't find anymore
((null point)); (format "Index-preparation done."))
; put found entry in hash-table
- (cl-puthash
+ (puthash
(cltl2-prepare-get-entry-name)
(cltl2-prepare-get-entry-url)
*browse-cltl2-ht*))))
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
[COMMIT SPEEDBAR] sb-w3.el: #'maphash, not #'cl-maphash, the latter name is obsolete.
13 years
Aidan Kehoe
APPROVE COMMIT
NOTE: This patch has been committed.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1325509134 0
# Node ID dea85bc69938dca1ba6f956e5c3b48604d5522cc
# Parent 84ee47c5fc5015eb6e947da4fe3593b5c1649891
sb-w3.el: #'maphash, not #'cl-maphash, the latter name is obsolete.
2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
* sb-w3.el (w3-speedbar-buttons): #'maphash, not #'cl-maphash, the
latter name is obsolete.
diff -r 84ee47c5fc50 -r dea85bc69938 ChangeLog
--- a/ChangeLog Sat Sep 03 14:51:26 2011 +0200
+++ b/ChangeLog Mon Jan 02 12:58:54 2012 +0000
@@ -1,3 +1,8 @@
+2012-01-02 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * sb-w3.el (w3-speedbar-buttons): #'maphash, not #'cl-maphash, the
+ latter name is obsolete.
+
2008-02-19 Norbert Koch <viteno(a)xemacs.org>
* Makefile (VERSION): XEmacs package 1.29 released.
diff -r 84ee47c5fc50 -r dea85bc69938 sb-w3.el
--- a/sb-w3.el Sat Sep 03 14:51:26 2011 +0200
+++ b/sb-w3.el Mon Jan 02 12:58:54 2012 +0000
@@ -92,7 +92,7 @@
(insert "History:\n")
;; This taken out of w3 which was used to create the history list,
;; and is here modified to create the speedbar buttons
- (cl-maphash
+ (maphash
(function
(lambda (url desc)
(speedbar-insert-button (w3-speedbar-shorten-button url)
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches
Re: [COMMIT] Integrate CL code better into core, remove obsolete compatibility code.
13 years
Aidan Kehoe
Happy New Year to you, Didier!
Ar an dara lá de mí Eanair, scríobh Didier Verna:
> Hello there, happy new year to every one !
>
> Aidan Kehoe wrote:
>
> > APPROVE COMMIT
> >
> > NOTE: This patch has been committed.
> >
> > # HG changeset patch
> > # User Aidan Kehoe <kehoea(a)parhasard.net>
> > # Date 1325261131 0
> > # Node ID bd80d9103fc8d867b63865e0979c61a9bb3926fd
> > # Parent 5e256f495401fa242ea0e8d330807ecaae2b709f
> > Integrate CL code better into core, remove obsolete compatibility code.
>
> Aidan, you cannot just remove obsolete compatibility code like that.
> You're breaking several packages from our repository (Gnus, w3 and
> others) that still use the cl-* functions (cl-put/map/gethash notably)
> and who knows how many others that we're not aware of.
I did a grep and a build (looking for “not known to be found” messages) when
removing the aliases, and really very few places do use them; w3, as you
mentioned, browse-cltl2.el, and sb-w3.el, which takes code from w3. Gnus
doesn’t use them if #'gethash is available. Upstream w3 doesn’t use them.
> I think you need to at least defalias the cl-* functions to the built-in
> ones.
I think this is a reasonable way to prompt the users of the cl-* functions
to change their code to use function names that have been available in
XEmacs since 1997 and GNU Emacs since 1999.
I’ll update browse-cltl2.el and sb-w3.el in the next few days, and I’ll see
is it reasonable to merge in upstream changes into w3 too; if not, I’ll
change only the function names.
Best,
Aidan
--
‘Iodine deficiency was endemic in parts of the UK until, through what has been
described as “an unplanned and accidental public health triumph”, iodine was
added to cattle feed to improve milk production in the 1930s.’
(EN Pearce, Lancet, June 2011)
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches