Subject: bug#44660: closed (Re: bug#44660: [feature/native-comp] defalias to macro in compiled elisp seems to not work in smartparens)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 16 Nov 2020 14:39:02 +0000

Your bug report

#44660: [feature/native-comp] defalias to macro in compiled elisp seems to not work in smartparens

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
44660: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44660
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#44660: [feature/native-comp] defalias to macro in compiled elisp seems to not work in smartparens
From: Andrea Corallo <[email-masked]>
To: Jim Myhrberg <[email-masked]>
Cc: [email-masked]
Date: Mon, 16 Nov 2020 14:38:15 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Jim Myhrberg <[email-masked]> writes:

> Hi Andrea,
>
> Yep, it does indeed fix it. I assume it's related to byte compilation
> then, and not native-comp? Thanks for your quick response, and I'm
> sorry for wasting your time with this :(

Hi Jim,

yes this "front-end" related.

To have top level forms taking effect in the compile time those has to
be enclosed into `eval-when-compile' or `cl-eval-when'.

You should be able to see the same issue from command line using like
`batch-byte-compile-file'.

I'm closing this, thanks for reporting!

  Andrea

Subject: [feature/native-comp] defalias to macro in compiled elisp seems to not work in smartparens
From: Jim Myhrberg <[email-masked]>
To: [email-masked]
Date: Sun, 15 Nov 2020 18:14:48 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

After the following pull request was merged:
https://github.com/Fuco1/smartparens/pull/958

I started getting this error:

    Error running timer ‘sp-show--pair-function’: (invalid-function
sp--while-no-input)

The offending code seems to be:

    (defalias 'sp--while-no-input 'while-no-input)

And then later the call to "sp--while-no-input" within the
"sp-show--pair-function" function. If I manually eval the
"sp-show--pair-function" so it's no longer a natively compiled
function, things start working again.

For now in my personal config (which is not native-compiled), I've
resorted to this work-around which seems to work:

    (defun sp--while-no-input (&rest body)
      (eval (append '(while-no-input) body)))

Thanks again :)