From: akrl--- via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Andrea Corallo <andrea.corallo@arm.com>
Cc: Mauricio Collares <mauricio@collares.org>, 45854@debbugs.gnu.org
Subject: bug#45854: 28.0.50; [feature/native-comp] autoload behavior different in the presence of errors
Date: Sun, 17 Jan 2021 15:32:35 +0000 [thread overview]
Message-ID: <xjfturfzii4.fsf@sdf.org> (raw)
In-Reply-To: <gkrim7vh9ab.fsf@arm.com> (Andrea Corallo's message of "Sun, 17 Jan 2021 16:29:00 +0100")
Andrea Corallo <andrea.corallo@arm.com> writes:
> Mauricio Collares <mauricio@collares.org> writes:
>
>> The example is a bit convoluted, but it is a reduced example from
>> another error I saw in the wild. It's not a big problem, but since this
>> might be a bug I thought a report could be useful. I wish I could reduce
>> it further, but hopefully this is enough.
>>
>> Suppose I have three files as below (I've appended an x to the original package
>> names to avoid conflict):
>>
>> * File 1: transientx.el
>>
>> ;;; transientx.el --- x -*- lexical-binding: t; -*-
>>
>> ;; Package-Requires: ((emacs "25.1"))
>> ;; Package-Version: 0
>>
>> (require 'cl-lib)
>> (require 'eieio)
>>
>> (defclass transient-suffix () ())
>> (cl-defmethod transient--init-suffix-key ((obj transient-suffix)))
>>
>> ;; (provide 'transientx) commented on purpose to cause an error when requiring
>> ;;; transientx.el ends here
>>
>> * File 2: git-commitx.el
>>
>> ;;; git-commitx.el --- x -*- lexical-binding: t; -*-
>>
>> ;; Package-Requires: ((emacs "25.1") (transientx "20200601"))
>> ;; Package-Version: 20210102.1242
>>
>> (require 'transientx)
>>
>> ;;;###autoload
>> (define-minor-mode global-git-commit-mode
>> "desc"
>> :global t
>> :initialize (lambda (symbol exp)
>> (add-hook 'find-file-hook 'git-commit-setup-check-buffer)))
>>
>> ;;;###autoload
>> (defun git-commit-setup-check-buffer ())
>>
>> (provide 'git-commitx)
>>
>> ;;; git-commitx.el ends here
>>
>> * File 3: elpa2nix.el
>>
>> (require 'package)
>> (package-initialize)
>>
>> (defun elpa2nix-install-package ()
>> (pcase command-line-args-left
>> (`(,archive)
>> (with-temp-buffer
>> (insert-file-contents archive)
>> (package-unpack (package-buffer-info))))))
>>
>> Then running the following two commands in order produces the stack
>> trace below on the native-comp branch:
>>
>> $ emacs --batch -Q -l ~/elpa2nix.el -f elpa2nix-install-package transientx.el
>> $ emacs --batch -Q -l ~/elpa2nix.el -f elpa2nix-install-package git-commitx.el
>>
>> git-commitx.el:6:1: Error: Loading file /home/collares/.emacs.d/elpa/transientx-0/transientx.elc failed to provide feature ‘transientx’
>> Done (Total of 0 files compiled, 1 failed, 2 skipped)
>>
>> Debugger entered--Lisp error: (error "transient--init-suffix-key is already defined as s...")
>> error("%s is already defined as something else than a gen..." transient--init-suffix-key)
>> cl-generic-ensure-function(transient--init-suffix-key)
>> cl-generic-define-method(transient--init-suffix-key nil ((obj transient-suffix)) nil #f(compiled-function (obj) #<bytecode 0x1bd084804d24a6d3>))
>> require(transientx)
>> load-with-code-conversion("/home/collares/.emacs.d/elpa/git-commitx-20210102...." "/home/collares/.emacs.d/elpa/git-commitx-20210102...." nil t)
>> git-commit-setup-check-buffer()
>> run-hooks(find-file-hook)
>> after-find-file(nil t)
>> find-file-noselect-1(#<buffer git-commitx.el> "~/git-commitx.el" nil nil "~/git-commitx.el" (7340496 65025))
>> find-file-noselect("/home/collares/git-commitx.el")
>> command-line-1(("-l" "/home/collares/elpa2nix.el" "-f" "elpa2nix-install-package" "/home/collares/git-commitx.el"))
>> command-line()
>> normal-top-level()
>>
>> The transient--init-suffix-key error does not appear on trunk (the
>> "failed to provide feature" error appears as expected). Reverting commit
>> 7d7bfbf0346114b116e14a4338ea235d12674f13 makes the change of behaviour
>> disappear, but I suspect it's not the true cause of the difference.
>
> Hi Mauricio,
>
> I failed to reproduce on latest native-comp 88100bed0a. Either I missed
> somenthing or is maybe fixed by the latest merge?
>
> Could you check if you still see this?
>
> Thanks
>
> Andrea
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose
> the contents to any other person, use it for any purpose, or store or
> copy the information in any medium. Thank you.
Apologies, I've mistakenly used the wrong mail account
next prev parent reply other threads:[~2021-01-17 15:32 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-14 2:52 bug#45854: 28.0.50; [feature/native-comp] autoload behavior different in the presence of errors Mauricio Collares
[not found] ` <handler.45854.B.161059277013405.ack@debbugs.gnu.org>
2021-01-14 12:01 ` Mauricio Collares
2021-01-14 14:23 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-01-17 16:03 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-01-17 15:29 ` Andrea Corallo
2021-01-17 15:32 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2021-01-18 12:36 ` Mauricio Collares
2021-01-18 20:56 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-01-22 22:00 ` Mauricio Collares
2021-01-28 21:11 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-01-28 22:04 ` Mauricio Collares
2021-01-29 9:08 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-01-30 14:24 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-01 12:49 ` Mauricio Collares
2021-02-01 14:00 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
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=xjfturfzii4.fsf@sdf.org \
--to=bug-gnu-emacs@gnu.org \
--cc=45854@debbugs.gnu.org \
--cc=akrl@sdf.org \
--cc=andrea.corallo@arm.com \
--cc=mauricio@collares.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).