* Noisy byte compilation on master @ 2015-02-01 16:06 Eli Zaretskii 2015-02-02 16:31 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2015-02-01 16:06 UTC (permalink / raw) To: emacs-devel Byte-compiling the recent master became really noisy lately, it spews many dozens, if not hundreds, of warnings like this: In semantic-decoration-all-include-summary: cedet/semantic/decorate/include.el:803:58:Warning: `eieio-object-name-string' is an obsolete function (as of 25.1); use `eieio-named' instead. cedet/semantic/decorate/include.el:809:46:Warning: `eieio-object-name-string' is an obsolete function (as of 25.1); use `eieio-named' instead. `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. and like this: Warning: Using brain-dead macro `mm-with-unibyte-current-buffer'! utf7.el: `mm-with-unibyte-current-buffer' is an obsolete macro (as of 25.1). Would those who introduced these warnings please work on lowering the noise level? It's now so high that it effectively prevents one from seeing the real problems flagged by the byte compiler, especially when bootstrapping. Thanks in advance. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-01 16:06 Noisy byte compilation on master Eli Zaretskii @ 2015-02-02 16:31 ` Stefan Monnier 2015-02-02 16:35 ` Eli Zaretskii 2015-02-02 18:01 ` Stephen Leake 0 siblings, 2 replies; 17+ messages in thread From: Stefan Monnier @ 2015-02-02 16:31 UTC (permalink / raw) To: Eli Zaretskii; +Cc: emacs-devel > In semantic-decoration-all-include-summary: > cedet/semantic/decorate/include.el:803:58:Warning: `eieio-object-name-string' > is an obsolete function (as of 25.1); use `eieio-named' instead. > cedet/semantic/decorate/include.el:809:46:Warning: `eieio-object-name-string' > is an obsolete function (as of 25.1); use `eieio-named' instead. > `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. > `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. > `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. > `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. > `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. > `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. Not sure what to do about these: CEDET needs to work with older Emascsen, so we can't change the code to use the cl-defmethod thingies yet. But in the Emacs master code, `defmethod' is a compatibility layer which introduces notable inefficiencies, so we do want to mark those as obsolete. Maybe we should keep those as "not quite obsolete yet" and only add the obsolescence warnings when we get to Emacs-26? Or else, (define and) add extra annotations in those CEDET files to silence those warnings? > Warning: Using brain-dead macro `mm-with-unibyte-current-buffer'! > utf7.el: `mm-with-unibyte-current-buffer' is an obsolete macro (as of 25.1). This one is also problematic: I've been trying to reduce the use of this macro for several years now, but I don't know the Gnus code enough to do much further progress. Yet, this macro is sufficiently ill-defined that I think most of its uses probably suffer from latent bugs. So spewing warnings during compilation sounds like the right thing to do (tho I see they're duplicated: one from the macro itself and one from the obsolescence warning, so we can drop the "Warning:" message). Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-02 16:31 ` Stefan Monnier @ 2015-02-02 16:35 ` Eli Zaretskii 2015-02-02 18:01 ` Stephen Leake 1 sibling, 0 replies; 17+ messages in thread From: Eli Zaretskii @ 2015-02-02 16:35 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel > From: Stefan Monnier <monnier@iro.umontreal.ca> > Cc: emacs-devel@gnu.org > Date: Mon, 02 Feb 2015 11:31:39 -0500 > > Not sure what to do about these: CEDET needs to work with older > Emascsen, so we can't change the code to use the cl-defmethod thingies yet. > But in the Emacs master code, `defmethod' is a compatibility layer which > introduces notable inefficiencies, so we do want to mark those as obsolete. > > Maybe we should keep those as "not quite obsolete yet" and only add the > obsolescence warnings when we get to Emacs-26? Or else, (define and) > add extra annotations in those CEDET files to silence those warnings? I don't have anything intelligent to say about this, except that the amount of these messages is unbearably large. Please find some way of shutting them up. > > Warning: Using brain-dead macro `mm-with-unibyte-current-buffer'! > > utf7.el: `mm-with-unibyte-current-buffer' is an obsolete macro (as of 25.1). > > This one is also problematic: I've been trying to reduce the use of this > macro for several years now, but I don't know the Gnus code enough to do > much further progress. Yet, this macro is sufficiently ill-defined that > I think most of its uses probably suffer from latent bugs. So spewing > warnings during compilation sounds like the right thing to do (tho > I see they're duplicated: one from the macro itself and one from the > obsolescence warning, so we can drop the "Warning:" message). Again, the problem is the sheer number of those. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-02 16:31 ` Stefan Monnier 2015-02-02 16:35 ` Eli Zaretskii @ 2015-02-02 18:01 ` Stephen Leake 2015-02-02 23:23 ` Stefan Monnier 1 sibling, 1 reply; 17+ messages in thread From: Stephen Leake @ 2015-02-02 18:01 UTC (permalink / raw) To: emacs-devel Stefan Monnier <monnier@iro.umontreal.ca> writes: >> In semantic-decoration-all-include-summary: >> cedet/semantic/decorate/include.el:803:58:Warning: `eieio-object-name-string' >> is an obsolete function (as of 25.1); use `eieio-named' instead. >> cedet/semantic/decorate/include.el:809:46:Warning: `eieio-object-name-string' >> is an obsolete function (as of 25.1); use `eieio-named' instead. >> `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. >> `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. >> `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. >> `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. >> `defmethod' is an obsolete macro (as of 25.1); use `cl-defmethod' instead. >> `defgeneric' is an obsolete macro (as of 25.1); use `cl-defgeneric' instead. > > Not sure what to do about these: CEDET needs to work with older > Emascsen, so we can't change the code to use the cl-defmethod thingies > yet. It seems to me that means CEDET should not be in core; it should be in ELPA. Alternately, non-core CEDET can provide a compatibility file that defines cl-defmethod etc in terms of defmethod for older emacsen. -- -- Stephe ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-02 18:01 ` Stephen Leake @ 2015-02-02 23:23 ` Stefan Monnier 2015-02-03 7:03 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-02 23:23 UTC (permalink / raw) To: Stephen Leake; +Cc: Eric M. Ludlam, David Engster, emacs-devel > Alternately, non-core CEDET can provide a compatibility file that > defines cl-defmethod etc in terms of defmethod for older emacsen. Hmm... that's an idea. I could provide a cl-generic.el on GNU ELPA to provide cl-defmethod via EIEIO, and then CEDET could make use of the new macros. WDYT? Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-02 23:23 ` Stefan Monnier @ 2015-02-03 7:03 ` David Engster 2015-02-04 15:45 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-03 7:03 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >> Alternately, non-core CEDET can provide a compatibility file that >> defines cl-defmethod etc in terms of defmethod for older emacsen. > > Hmm... that's an idea. > I could provide a cl-generic.el on GNU ELPA to provide cl-defmethod via > EIEIO, and then CEDET could make use of the new macros. > WDYT? Fine with me. We could also put it in CEDET upstream so people don't have to install it. Note that I currently have no way of syncing CEDET with Emacs. So if you have a script or similar to change the calling convention, please tell me and I run it over the upstream code. -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-03 7:03 ` David Engster @ 2015-02-04 15:45 ` Stefan Monnier 2015-02-15 15:58 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-04 15:45 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel [-- Attachment #1: Type: text/plain, Size: 951 bytes --] >>> Alternately, non-core CEDET can provide a compatibility file that >>> defines cl-defmethod etc in terms of defmethod for older emacsen. >> Hmm... that's an idea. >> I could provide a cl-generic.el on GNU ELPA to provide cl-defmethod via >> EIEIO, and then CEDET could make use of the new macros. >> WDYT? > Fine with me. We could also put it in CEDET upstream so people don't > have to install it. I have now added a cl-generic forward compatibility package to GNU ELPA. It should hopefully work for any Emacs with EIEIO. > Note that I currently have no way of syncing CEDET with Emacs. Is there something we can do about that? > So if you have a script or similar to change the calling convention, > please tell me and I run it over the upstream code. I used the sed script below along with: for f in $(grep -l '(defmethod' lisp/cedet/**/*.el); do echo $f (rm $f; ./_cl-generic-rewrite.sed >$f) <$f done -- Stefan [-- Attachment #2: _cl-generic-rewrite.sed --] [-- Type: text/plain, Size: 586 bytes --] #!/bin/sed -f /^(require 'eieio)/a \ (require 'cl-generic) /^(defmethod.*[^ ] *:[sS][tT][aA][tT][iI][cC] *$/{ s/^(defmethod/(cl-defmethod/ s/ *:[sS][tT][aA][tT][iI][cC] *// n s/^\([ ]*(([^ ][^ ]* *\)\([^ ][^ ]*\)/\1(subclass \2)/ } s/^(\(defmethod.*[^ ] *\):[sS][tT][aA][tT][iI][cC] *\((([^ ][^ ]* *\)\([^ ][^ ]*\)/(cl-\1\2(subclass \3)/ s/^(\(defmethod.*[^ ] *\):BEFORE/(cl-\1:before/ s/^(\(defmethod.*[^ ] *\):AFTER/(cl-\1:after/ s/^(defmethod/(cl-defmethod/ s/^(defgeneric/(cl-defgeneric/ s/(call-next-method/(cl-call-next-method/ s/(next-method-p/(cl-next-method-p/ ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-04 15:45 ` Stefan Monnier @ 2015-02-15 15:58 ` David Engster 2015-02-16 2:56 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-15 15:58 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >>>> Alternately, non-core CEDET can provide a compatibility file that >>>> defines cl-defmethod etc in terms of defmethod for older emacsen. >>> Hmm... that's an idea. >>> I could provide a cl-generic.el on GNU ELPA to provide cl-defmethod via >>> EIEIO, and then CEDET could make use of the new macros. >>> WDYT? >> Fine with me. We could also put it in CEDET upstream so people don't >> have to install it. > > I have now added a cl-generic forward compatibility package to GNU ELPA. > It should hopefully work for any Emacs with EIEIO. Well, it just occured to me that it's not that terribly useful to have it in ELPA, as you need that macro during byte-compilation, and ELPA packages are not available from 'emacs -Q'. So I guess I'll have to install in CEDET upstream. The bigger problem is that now I get a ton of warnings during CEDET compilation because you use 'labels' instead of 'cl-labels', but with good reason, as the commentary says. Not sure what to do about that... >> Note that I currently have no way of syncing CEDET with Emacs. > > Is there something we can do about that? We need a plan how to integrate CEDET easier now that both projects moved to Git. I'm leaning towards importing lisp/cedet from a stable upstream branch as a subtree. This would at least take care of merging from CEDET to Emacs. The other way round is not as easy, but not terribly difficult either. The alternative would be that built-in ELPA thingy, but that's not available yet. Also, if I understand you correctly, this would mean that core packages cannot depend on CEDET. However, the advantage would be that I could ditch a beloved pet-peeve of mine, namely editing that file that shall not be named (hint: it logs changes). >> So if you have a script or similar to change the calling convention, >> please tell me and I run it over the upstream code. > > I used the sed script below along with: > > for f in $(grep -l '(defmethod' lisp/cedet/**/*.el); do > echo $f > (rm $f; ./_cl-generic-rewrite.sed >$f) <$f > done Thanks, that's very useful. I've now pretty much removed EIEIO from CEDET upstream, so its development is now solely in Emacs. On thing less to merge. Juhu! -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-15 15:58 ` David Engster @ 2015-02-16 2:56 ` Stefan Monnier 2015-02-16 21:11 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-16 2:56 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel > Well, it just occured to me that it's not that terribly useful to have > it in ELPA, as you need that macro during byte-compilation, and ELPA > packages are not available from 'emacs -Q'. So I guess I'll have to > install in CEDET upstream. Of course you could compile with an "emacs -Q --eval '(package-initialize)'" or something like that, but if you prefer to bundle cl-generic.el that's OK as well. > The bigger problem is that now I get a ton of warnings during CEDET > compilation because you use 'labels' instead of 'cl-labels', but with > good reason, as the commentary says. Not sure what to do about that... Try the 100% untested patch below, which should silence those warnings. > The alternative would be that built-in ELPA thingy, but that's not > available yet. I really hope we can get this "bundle some ELPA packages in the tarball" working for 25.1. > Also, if I understand you correctly, this would mean that > core packages cannot depend on CEDET. Indeed, that'd be the downside. > However, the advantage would be that I could ditch a beloved pet-peeve > of mine, namely editing that file that shall not be named (hint: it > logs changes). The ChangeLog should disappear from master "any time now", so this should be resolved in any case soonish. Stefan diff --git a/packages/cl-generic/cl-generic.el b/packages/cl-generic/cl-generic.el index df09449..8aa87f1 100644 --- a/packages/cl-generic/cl-generic.el +++ b/packages/cl-generic/cl-generic.el @@ -101,15 +101,15 @@ ;; We could just alias `cl-call-next-method' to `call-next-method', ;; and that would work, but then files compiled with this cl-generic ;; wouldn't work in Emacs-25 any more. - ;; Also we use `labels' rather than one of cl-lib's macros, so as to - ;; be compatible with older emacsen (and ELPA's cl-lib emulation - ;; doesn't provide cl-flet and provides an incomplete cl-labels). + ;; Also we fallback on `labels' if `cl-flet' is not available + ;; (ELPA's cl-lib emulation doesn't provide cl-flet). ,@(if qualifiers ;; Must be :before or :after, so can't call next-method. body - `((labels ((cl-call-next-method (&rest args) - (apply #'call-next-method args)) - (cl-next-method-p () (next-method-p))) + `((,(if (fboundp 'cl-flet) 'cl-flet 'labels) + ((cl-call-next-method (&rest args) + (apply #'call-next-method args)) + (cl-next-method-p () (next-method-p))) ,@body)))))))) (provide 'cl-generic) ^ permalink raw reply related [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-16 2:56 ` Stefan Monnier @ 2015-02-16 21:11 ` David Engster 2015-02-16 23:14 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-16 21:11 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >> The bigger problem is that now I get a ton of warnings during CEDET >> compilation because you use 'labels' instead of 'cl-labels', but with >> good reason, as the commentary says. Not sure what to do about that... > > Try the 100% untested patch below, which should silence those warnings. Thanks, it works. The next problem are those "Obsolete name arg 'foo' to constructor" messages. I cannot simply omit the names as this won't work with older EIEIO. I'm also trying to get the CEDET tests to work with latest Emacs. One reason they break is that `child-of-class-p' does not accept symbols anymore. This here (require 'ede/proj-elisp) (child-of-class-p 'ede-proj-target-elisp 'ede-target) used to work fine, but now `child-of-class-p' has those cl-check-types in it. Is that on purpose? >> The alternative would be that built-in ELPA thingy, but that's not >> available yet. > > I really hope we can get this "bundle some ELPA packages in the tarball" > working for 25.1. > >> Also, if I understand you correctly, this would mean that >> core packages cannot depend on CEDET. > > Indeed, that'd be the downside. A pretty major one, I would say. CEDET is more like a framework than an application. It'd be a shame if no core package could depend on anything from it. >> However, the advantage would be that I could ditch a beloved pet-peeve >> of mine, namely editing that file that shall not be named (hint: it >> logs changes). > > The ChangeLog should disappear from master "any time now", so this > should be resolved in any case soonish. That's not what I mean. CEDET has generated its Changelog from the commit logs for years. The problem is that this generated Changelog has to be *heavily* edited to confirm to the strict standards that are required. For instance, there's the requirement that changes have to appear under the date they entered Emacs trunk, and that you should not have several entries from the same author for the same day. So you have to look over all the changes from your merge and combine those that affect the same files/functions/variables. Then there's the problem that the Changelog will also contain changes from files that are only upstream, which you'll have to delete. And on top of that, CEDET's files are scattered across the Emacs codebase, affecting many different Changelogs: not only that for 'lisp/cedet', but also 'lisp/emacs-lisp', 'admin', 'etc', 'doc', and there's even one for 'test'! So I have to make sure to sort the entries into the correct Changelogs. All of this is a *huge* pain, and - I'm sorry, but I have to repeat myself here - for something I find to be not only useless, but even hurtful to the quality of the commit messages of the project. If moving to ELPA gets rid of Changelogs *completely* (meaning, also in the commit logs), that would be big incentive for me to consider leaving Emacs trunk, although I'd consider that a loss for Emacs core. -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-16 21:11 ` David Engster @ 2015-02-16 23:14 ` Stefan Monnier 2015-02-17 6:31 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-16 23:14 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel > The next problem are those "Obsolete name arg 'foo' to constructor" > messages. I cannot simply omit the names as this won't work with older > EIEIO. Indeed, you'd have to use `make-instance'. Or you could use a macro which either drops the name argument or passes it depending on the version of EIEIO with which it's compiled. > (require 'ede/proj-elisp) > (child-of-class-p 'ede-proj-target-elisp 'ede-target) > used to work fine, but now `child-of-class-p' has those cl-check-types > in it. Is that on purpose? Looks like a bug. It's been changed to accept class arguments (rather than class names), but it should also accept class names, as before. >>> Also, if I understand you correctly, this would mean that >>> core packages cannot depend on CEDET. >> Indeed, that'd be the downside. > A pretty major one, I would say. Agreed. > That's not what I mean. I don't understand, then. > For instance, there's the requirement that changes have to > appear under the date they entered Emacs trunk, Obviously, you won't be affected by this requirement any more once Emacs starts generating the ChangeLogs mechanically. > and that you should not have several entries from the same author for > the same day. Not sure where you ot that idea, but we don't have such a requirement. I even often setup such multiple-entries-from-the-guy-same-day *by hand*, when I feel like it helps structure the ChangeLog. > Then there's the problem that the Changelog will also contain changes > from files that are only upstream, which you'll have to delete. How would that affect you, since "we" (i.e. Paul) write the scripts that (will) generate the ChangeLogs (IIUC we'll generate a single ChangeLog for the whole Emacs tree)? > And on top of that, CEDET's files are scattered across the Emacs > codebase, affecting many different Changelogs: not only that for > 'lisp/cedet', but also 'lisp/emacs-lisp', 'admin', 'etc', 'doc', and > there's even one for 'test'! But once we start generating the ChangeLogs mechanically you won't need to care any more (maybe we'll need to care if we want to generate equivalent ChangeLogs, but so far the intention has been to do something simpler). > All of this is a *huge* pain, I understand it's annoying, but I don't understand why you think that us moving to auto-generated ChangeLogs won't solve those problems for you. Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-16 23:14 ` Stefan Monnier @ 2015-02-17 6:31 ` David Engster 2015-02-17 23:06 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-17 6:31 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >> The next problem are those "Obsolete name arg 'foo' to constructor" >> messages. I cannot simply omit the names as this won't work with older >> EIEIO. > > Indeed, you'd have to use `make-instance'. Rewriting all the constructor calls in CEDET would take me ages. Besides, `make-instance' is too verbose for my taste. > Or you could use a macro which either drops the name argument or passes > it depending on the version of EIEIO with which it's compiled. I would still have to rewrite the constructor calls, right? > Not sure where you ot that idea, but we don't have such a requirement. > I even often setup such multiple-entries-from-the-guy-same-day *by > hand*, when I feel like it helps structure the ChangeLog. Remember that I did merges maybe every few months. I had a ton of entries for the same day as result, containing things like (foo): Change 'a' to 'c'. (foo): Revert previous change. (foo): Change 'a' to 'b'. I was under the impression that stuff like this had to be cleared up. [...] > I understand it's annoying, but I don't understand why you think that us > moving to auto-generated ChangeLogs won't solve those problems for you. Sorry, I didn't know that all this could be handled automatically. I was under the impression that I'd still have to edit the generated logs. I'll be quiet, then. :-) -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-17 6:31 ` David Engster @ 2015-02-17 23:06 ` Stefan Monnier 2015-02-18 17:53 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-17 23:06 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel >> Or you could use a macro which either drops the name argument or passes >> it depending on the version of EIEIO with which it's compiled. > I would still have to rewrite the constructor calls, right? Yes, but it should be a slightly simpler rewrite (no need to find&remove the name string). > Remember that I did merges maybe every few months. I had a ton of > entries for the same day as result, containing things like > (foo): Change 'a' to 'c'. > (foo): Revert previous change. > (foo): Change 'a' to 'b'. > I was under the impression that stuff like this had to be cleared up. It's better good if you do, but it's not indispensable. > Sorry, I didn't know that all this could be handled automatically. I was > under the impression that I'd still have to edit the generated logs. The generation would happen as part of creating the tarball of a release, so you wouldn't have the opportunity to edit it. Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-17 23:06 ` Stefan Monnier @ 2015-02-18 17:53 ` David Engster 2015-02-18 19:35 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-18 17:53 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >>> Or you could use a macro which either drops the name argument or passes >>> it depending on the version of EIEIO with which it's compiled. >> I would still have to rewrite the constructor calls, right? > > Yes, but it should be a slightly simpler rewrite (no need to find&remove > the name string). The real work is finding the constructor calls and making sure the string isn't actually used for anything (which we'll have to do anyway, as the string is not saved in Emacs25 unless explicitly set with eieio-object-set-name-string). I really do not want to clutter the code with some macro before every constructor all. That would needlessly also end up in Emacs proper through merging, and it would eventually have to be removed again when we stop supporting Emacs24. I'm actually a bit confused, as I thought we agreed that EIEIO should not emit a warning when the string is provided, at least not during run-time. I could live with those warnings during byte-compilation, as I would just shush those as long as we support Emacs24. -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-18 17:53 ` David Engster @ 2015-02-18 19:35 ` Stefan Monnier 2015-02-18 19:51 ` David Engster 0 siblings, 1 reply; 17+ messages in thread From: Stefan Monnier @ 2015-02-18 19:35 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel > agreed that EIEIO should not emit a warning when the string is provided, > at least not during run-time. I could live with those warnings during > byte-compilation, as I would just shush those as long as we support > Emacs24. If you get such warnings at run-time, it's a bug. They should only appear at byte-compilation time. Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-18 19:35 ` Stefan Monnier @ 2015-02-18 19:51 ` David Engster 2015-02-18 22:44 ` Stefan Monnier 0 siblings, 1 reply; 17+ messages in thread From: David Engster @ 2015-02-18 19:51 UTC (permalink / raw) To: Stefan Monnier; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel Stefan Monnier writes: >> agreed that EIEIO should not emit a warning when the string is provided, >> at least not during run-time. I could live with those warnings during >> byte-compilation, as I would just shush those as long as we support >> Emacs24. > > If you get such warnings at run-time, it's a bug. They should only > appear at byte-compilation time. Insert (require 'eieio) (defclass foo () ()) (foo "test") then do eval-buffer and you'll see Obsolete name arg "test" to constructor foo -David ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Noisy byte compilation on master 2015-02-18 19:51 ` David Engster @ 2015-02-18 22:44 ` Stefan Monnier 0 siblings, 0 replies; 17+ messages in thread From: Stefan Monnier @ 2015-02-18 22:44 UTC (permalink / raw) To: David Engster; +Cc: Eric M. Ludlam, Stephen Leake, emacs-devel >> If you get such warnings at run-time, it's a bug. They should only >> appear at byte-compilation time. > Insert > (require 'eieio) > (defclass foo () ()) > (foo "test") > then do eval-buffer and you'll see > Obsolete name arg "test" to constructor foo That's not a bug. Because `eval-buffer' is the "byte-compilation time". For it to count as a bug, you'd have to byte-compile the above code and get the warning when you run the resulting compiled code. Stefan ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2015-02-18 22:44 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-02-01 16:06 Noisy byte compilation on master Eli Zaretskii 2015-02-02 16:31 ` Stefan Monnier 2015-02-02 16:35 ` Eli Zaretskii 2015-02-02 18:01 ` Stephen Leake 2015-02-02 23:23 ` Stefan Monnier 2015-02-03 7:03 ` David Engster 2015-02-04 15:45 ` Stefan Monnier 2015-02-15 15:58 ` David Engster 2015-02-16 2:56 ` Stefan Monnier 2015-02-16 21:11 ` David Engster 2015-02-16 23:14 ` Stefan Monnier 2015-02-17 6:31 ` David Engster 2015-02-17 23:06 ` Stefan Monnier 2015-02-18 17:53 ` David Engster 2015-02-18 19:35 ` Stefan Monnier 2015-02-18 19:51 ` David Engster 2015-02-18 22:44 ` Stefan Monnier
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.