unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
       [not found] ` <20220702105957.4B7EFC016B5@vcs2.savannah.gnu.org>
@ 2022-07-22  8:51   ` Robert Pluim
  2022-07-22 12:29     ` Stefan Monnier
                       ` (2 more replies)
  0 siblings, 3 replies; 30+ messages in thread
From: Robert Pluim @ 2022-07-22  8:51 UTC (permalink / raw)
  To: emacs-devel; +Cc: Lars Ingebrigtsen

>>>>> On Sat,  2 Jul 2022 06:59:56 -0400 (EDT), Lars Ingebrigtsen <larsi@gnus.org> said:

    Lars> branch: master
    Lars> commit 05d240997aeb6ffe3db21e7f4c8e2f181edc37b6
    Lars> Author: Lars Ingebrigtsen <larsi@gnus.org>
    Lars> Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Lars>     Add native-compile-prune-cache command
    
    Lars>     * lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
    Lars>     command (bug#48108).


Should we wrap this (and perhaps `startup-redirect-eln-cache') in
(when native-comp-available-p) ? In a non-native compile Emacs they
signal an error:

Debugger entered--Lisp error: (void-variable native-comp-eln-load-path)
  (let ((--dolist-tail-- native-comp-eln-load-path)) (while --dolist-tail-- (let ((dir (car --dolist-tail--))) (setq dir (expand-file-name dir invocation-directory)) (if (file-exists-p dir) (progn (let ((--dolist-tail-- ...)) (while --dolist-tail-- (let ... ... ...))))) (setq --dolist-tail-- (cdr --dolist-tail--)))))
  native-compile-prune-cache()
  eval((native-compile-prune-cache) t)
  eval-expression((native-compile-prune-cache) nil nil 4194303)
  funcall-interactively(eval-expression (native-compile-prune-cache) nil nil 4194303)
  call-interactively(eval-expression nil nil)
  command-execute(eval-expression)

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22  8:51   ` master 05d240997a 2/2: Add native-compile-prune-cache command Robert Pluim
@ 2022-07-22 12:29     ` Stefan Monnier
  2022-07-22 12:45     ` Andrea Corallo
  2022-07-22 19:56     ` Lars Ingebrigtsen
  2 siblings, 0 replies; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 12:29 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, Lars Ingebrigtsen

> Debugger entered--Lisp error: (void-variable native-comp-eln-load-path)

BTW, I think we should try to make those native-compile-only functions
and variables usable when native-compile is not included.
E.g. native-comp-eln-load-path could simply be nil in such builds.


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22  8:51   ` master 05d240997a 2/2: Add native-compile-prune-cache command Robert Pluim
  2022-07-22 12:29     ` Stefan Monnier
@ 2022-07-22 12:45     ` Andrea Corallo
  2022-07-22 13:01       ` Robert Pluim
  2022-07-22 19:46       ` Stefan Monnier
  2022-07-22 19:56     ` Lars Ingebrigtsen
  2 siblings, 2 replies; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 12:45 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, Lars Ingebrigtsen

Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Sat,  2 Jul 2022 06:59:56 -0400 (EDT), Lars Ingebrigtsen <larsi@gnus.org> said:
>
>     Lars> branch: master
>     Lars> commit 05d240997aeb6ffe3db21e7f4c8e2f181edc37b6
>     Lars> Author: Lars Ingebrigtsen <larsi@gnus.org>
>     Lars> Commit: Lars Ingebrigtsen <larsi@gnus.org>
>
>     Lars>     Add native-compile-prune-cache command
>     
>     Lars>     * lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
>     Lars>     command (bug#48108).
>
>
> Should we wrap this (and perhaps `startup-redirect-eln-cache') in
> (when native-comp-available-p) ? In a non-native compile Emacs they
> signal an error:

Hi Robert,

do we support loading comp.el and using in non native builds?

I thought is not the case, because otherwise most of the functions there
ATM are probably broken for such a build no?

Thanks

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 12:45     ` Andrea Corallo
@ 2022-07-22 13:01       ` Robert Pluim
  2022-07-22 13:51         ` Andrea Corallo
  2022-07-22 19:46       ` Stefan Monnier
  1 sibling, 1 reply; 30+ messages in thread
From: Robert Pluim @ 2022-07-22 13:01 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: emacs-devel, Lars Ingebrigtsen

>>>>> On Fri, 22 Jul 2022 12:45:03 +0000, Andrea Corallo <akrl@sdf.org> said:
    >> Should we wrap this (and perhaps `startup-redirect-eln-cache') in
    >> (when native-comp-available-p) ? In a non-native compile Emacs they
    >> signal an error:

    Andrea> Hi Robert,

    Andrea> do we support loading comp.el and using in non native builds?

(require 'comp)

certainly works (although youʼre right, the functions
in comp.el are not available by default, which means I must have
loaded comp.el myself at some point).

    Andrea> I thought is not the case, because otherwise most of the functions there
    Andrea> ATM are probably broken for such a build no?

Right. The question is if we want to support such a case (and if so,
exactly how).

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 13:01       ` Robert Pluim
@ 2022-07-22 13:51         ` Andrea Corallo
  2022-07-22 14:15           ` Robert Pluim
  0 siblings, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 13:51 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, Lars Ingebrigtsen

Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Fri, 22 Jul 2022 12:45:03 +0000, Andrea Corallo <akrl@sdf.org> said:
>     >> Should we wrap this (and perhaps `startup-redirect-eln-cache') in
>     >> (when native-comp-available-p) ? In a non-native compile Emacs they
>     >> signal an error:
>
>     Andrea> Hi Robert,
>
>     Andrea> do we support loading comp.el and using in non native builds?
>
> (require 'comp)
>
> certainly works (although youʼre right, the functions
> in comp.el are not available by default, which means I must have
> loaded comp.el myself at some point).
>
>     Andrea> I thought is not the case, because otherwise most of the functions there
>     Andrea> ATM are probably broken for such a build no?
>
> Right. The question is if we want to support such a case (and if so,
> exactly how).

Yep, I really thought the answer was no, at least for now, but I might
be wrong.

BTW assuming the answer is no, should we add a load time check with
associated error or warning for comp.el to gate all these possible
issues?

Thanks!

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 13:51         ` Andrea Corallo
@ 2022-07-22 14:15           ` Robert Pluim
  2022-07-22 15:14             ` Andrea Corallo
  2022-07-22 19:47             ` Stefan Monnier
  0 siblings, 2 replies; 30+ messages in thread
From: Robert Pluim @ 2022-07-22 14:15 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: emacs-devel, Lars Ingebrigtsen

>>>>> On Fri, 22 Jul 2022 13:51:04 +0000, Andrea Corallo <akrl@sdf.org> said:
    >> Right. The question is if we want to support such a case (and if so,
    >> exactly how).

    Andrea> Yep, I really thought the answer was no, at least for now, but I might
    Andrea> be wrong.

    Andrea> BTW assuming the answer is no, should we add a load time check with
    Andrea> associated error or warning for comp.el to gate all these possible
    Andrea> issues?

Iʼd lean towards a warning myself (both for loading and for running
any of the commands inside comp.el)

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 14:15           ` Robert Pluim
@ 2022-07-22 15:14             ` Andrea Corallo
  2022-07-22 15:36               ` Robert Pluim
  2022-07-22 19:47             ` Stefan Monnier
  1 sibling, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 15:14 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, Lars Ingebrigtsen

Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Fri, 22 Jul 2022 13:51:04 +0000, Andrea Corallo <akrl@sdf.org> said:
>     >> Right. The question is if we want to support such a case (and if so,
>     >> exactly how).
>
>     Andrea> Yep, I really thought the answer was no, at least for now, but I might
>     Andrea> be wrong.
>
>     Andrea> BTW assuming the answer is no, should we add a load time check with
>     Andrea> associated error or warning for comp.el to gate all these possible
>     Andrea> issues?
>
> Iʼd lean towards a warning myself (both for loading and for running
> any of the commands inside comp.el)

FWIW I'd probably go just for the load-time warning.  I fear gating
every function would probably bloat the code for not getting much back.

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:14             ` Andrea Corallo
@ 2022-07-22 15:36               ` Robert Pluim
  2022-07-22 15:41                 ` Eli Zaretskii
  2022-07-22 16:50                 ` Andrea Corallo
  0 siblings, 2 replies; 30+ messages in thread
From: Robert Pluim @ 2022-07-22 15:36 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: emacs-devel, Lars Ingebrigtsen

>>>>> On Fri, 22 Jul 2022 15:14:21 +0000, Andrea Corallo <akrl@sdf.org> said:

    Andrea> Robert Pluim <rpluim@gmail.com> writes:
    >>>>>>> On Fri, 22 Jul 2022 13:51:04 +0000, Andrea Corallo <akrl@sdf.org> said:
    >> >> Right. The question is if we want to support such a case (and if so,
    >> >> exactly how).
    >> 
    Andrea> Yep, I really thought the answer was no, at least for now, but I might
    Andrea> be wrong.
    >> 
    Andrea> BTW assuming the answer is no, should we add a load time check with
    Andrea> associated error or warning for comp.el to gate all these possible
    Andrea> issues?
    >> 
    >> Iʼd lean towards a warning myself (both for loading and for running
    >> any of the commands inside comp.el)

    Andrea> FWIW I'd probably go just for the load-time warning.  I fear gating
    Andrea> every function would probably bloat the code for not getting much back.

Something like this (untested) in `normal-top-level'?

    (unless (featurep 'native-compile)
      (with-eval-after-load 'comp
        (display-warning 'comp "This emacs does not support native compilation" :warning)))

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:36               ` Robert Pluim
@ 2022-07-22 15:41                 ` Eli Zaretskii
  2022-07-22 15:46                   ` Robert Pluim
  2022-07-22 16:50                 ` Andrea Corallo
  1 sibling, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 15:41 UTC (permalink / raw)
  To: Robert Pluim; +Cc: akrl, emacs-devel, larsi

> From: Robert Pluim <rpluim@gmail.com>
> Cc: emacs-devel@gnu.org,  Lars Ingebrigtsen <larsi@gnus.org>
> Date: Fri, 22 Jul 2022 17:36:16 +0200
> 
> Something like this (untested) in `normal-top-level'?
> 
>     (unless (featurep 'native-compile)
>       (with-eval-after-load 'comp
>         (display-warning 'comp "This emacs does not support native compilation" :warning)))

Why do we need this, again?



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:41                 ` Eli Zaretskii
@ 2022-07-22 15:46                   ` Robert Pluim
  2022-07-22 16:18                     ` Eli Zaretskii
  2022-07-22 19:49                     ` Stefan Monnier
  0 siblings, 2 replies; 30+ messages in thread
From: Robert Pluim @ 2022-07-22 15:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: akrl, emacs-devel, larsi

>>>>> On Fri, 22 Jul 2022 18:41:09 +0300, Eli Zaretskii <eliz@gnu.org> said:

    >> From: Robert Pluim <rpluim@gmail.com>
    >> Cc: emacs-devel@gnu.org,  Lars Ingebrigtsen <larsi@gnus.org>
    >> Date: Fri, 22 Jul 2022 17:36:16 +0200
    >> 
    >> Something like this (untested) in `normal-top-level'?
    >> 
    >> (unless (featurep 'native-compile)
    >> (with-eval-after-load 'comp
    >> (display-warning 'comp "This emacs does not support native compilation" :warning)))

    Eli> Why do we need this, again?

I had comp.el loaded in my non-native compile capable Emacs, and tried
to run `native-compile-prune-cacheʼ, which gave me an error. Either we
accept that I did something that shouldnʼt be done, or we try to warn
people that they shouldnʼt do it (or on the gripping hand we add code
to check 'native-compile to a bunch of stuff in comp.el).

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:46                   ` Robert Pluim
@ 2022-07-22 16:18                     ` Eli Zaretskii
  2022-07-22 16:41                       ` Robert Pluim
  2022-07-22 16:42                       ` Andreas Schwab
  2022-07-22 19:49                     ` Stefan Monnier
  1 sibling, 2 replies; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 16:18 UTC (permalink / raw)
  To: Robert Pluim; +Cc: akrl, emacs-devel, larsi

> From: Robert Pluim <rpluim@gmail.com>
> Cc: akrl@sdf.org,  emacs-devel@gnu.org,  larsi@gnus.org
> Date: Fri, 22 Jul 2022 17:46:07 +0200
> 
> >>>>> On Fri, 22 Jul 2022 18:41:09 +0300, Eli Zaretskii <eliz@gnu.org> said:
> 
>     >> From: Robert Pluim <rpluim@gmail.com>
>     >> Cc: emacs-devel@gnu.org,  Lars Ingebrigtsen <larsi@gnus.org>
>     >> Date: Fri, 22 Jul 2022 17:36:16 +0200
>     >> 
>     >> Something like this (untested) in `normal-top-level'?
>     >> 
>     >> (unless (featurep 'native-compile)
>     >> (with-eval-after-load 'comp
>     >> (display-warning 'comp "This emacs does not support native compilation" :warning)))
> 
>     Eli> Why do we need this, again?
> 
> I had comp.el loaded in my non-native compile capable Emacs, and tried
> to run `native-compile-prune-cacheʼ, which gave me an error. Either we
> accept that I did something that shouldnʼt be done, or we try to warn
> people that they shouldnʼt do it (or on the gripping hand we add code
> to check 'native-compile to a bunch of stuff in comp.el).

What would be the reason to load comp.el in such a session?



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 16:18                     ` Eli Zaretskii
@ 2022-07-22 16:41                       ` Robert Pluim
  2022-07-22 18:03                         ` Eli Zaretskii
  2022-07-22 16:42                       ` Andreas Schwab
  1 sibling, 1 reply; 30+ messages in thread
From: Robert Pluim @ 2022-07-22 16:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: akrl, emacs-devel, larsi

>>>>> On Fri, 22 Jul 2022 19:18:19 +0300, Eli Zaretskii <eliz@gnu.org> said:

    >> From: Robert Pluim <rpluim@gmail.com>
    >> Cc: akrl@sdf.org,  emacs-devel@gnu.org,  larsi@gnus.org
    >> Date: Fri, 22 Jul 2022 17:46:07 +0200
    >> 
    >> >>>>> On Fri, 22 Jul 2022 18:41:09 +0300, Eli Zaretskii <eliz@gnu.org> said:
    >> 
    >> >> From: Robert Pluim <rpluim@gmail.com>
    >> >> Cc: emacs-devel@gnu.org,  Lars Ingebrigtsen <larsi@gnus.org>
    >> >> Date: Fri, 22 Jul 2022 17:36:16 +0200
    >> >> 
    >> >> Something like this (untested) in `normal-top-level'?
    >> >> 
    >> >> (unless (featurep 'native-compile)
    >> >> (with-eval-after-load 'comp
    >> >> (display-warning 'comp "This emacs does not support native compilation" :warning)))
    >> 
    Eli> Why do we need this, again?
    >> 
    >> I had comp.el loaded in my non-native compile capable Emacs, and tried
    >> to run `native-compile-prune-cacheʼ, which gave me an error. Either we
    >> accept that I did something that shouldnʼt be done, or we try to warn
    >> people that they shouldnʼt do it (or on the gripping hand we add code
    >> to check 'native-compile to a bunch of stuff in comp.el).

    Eli> What would be the reason to load comp.el in such a session?

User error. Some people might write (require ʼcomp) in their
.emacs. Iʼm sure we can come up with lots of scenarios.

Robert
-- 



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 16:18                     ` Eli Zaretskii
  2022-07-22 16:41                       ` Robert Pluim
@ 2022-07-22 16:42                       ` Andreas Schwab
  2022-07-22 18:04                         ` Eli Zaretskii
  1 sibling, 1 reply; 30+ messages in thread
From: Andreas Schwab @ 2022-07-22 16:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Robert Pluim, akrl, emacs-devel, larsi

On Jul 22 2022, Eli Zaretskii wrote:

> What would be the reason to load comp.el in such a session?

Customize can do that.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:36               ` Robert Pluim
  2022-07-22 15:41                 ` Eli Zaretskii
@ 2022-07-22 16:50                 ` Andrea Corallo
  2022-07-22 18:05                   ` Eli Zaretskii
  1 sibling, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 16:50 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel, Lars Ingebrigtsen

[-- Attachment #1: Type: text/plain, Size: 1324 bytes --]

Robert Pluim <rpluim@gmail.com> writes:

>>>>>> On Fri, 22 Jul 2022 15:14:21 +0000, Andrea Corallo <akrl@sdf.org> said:
>
>     Andrea> Robert Pluim <rpluim@gmail.com> writes:
>     >>>>>>> On Fri, 22 Jul 2022 13:51:04 +0000, Andrea Corallo <akrl@sdf.org> said:
>     >> >> Right. The question is if we want to support such a case (and if so,
>     >> >> exactly how).
>     >> 
>     Andrea> Yep, I really thought the answer was no, at least for now, but I might
>     Andrea> be wrong.
>     >> 
>     Andrea> BTW assuming the answer is no, should we add a load time check with
>     Andrea> associated error or warning for comp.el to gate all these possible
>     Andrea> issues?
>     >> 
>     >> Iʼd lean towards a warning myself (both for loading and for running
>     >> any of the commands inside comp.el)
>
>     Andrea> FWIW I'd probably go just for the load-time warning.  I fear gating
>     Andrea> every function would probably bloat the code for not getting much back.
>
> Something like this (untested) in `normal-top-level'?
>
>     (unless (featurep 'native-compile)
>       (with-eval-after-load 'comp
>         (display-warning 'comp "This emacs does not support native compilation" :warning)))

Yes something similar, wouldn't the attached be simpler?

BR

  Andrea


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Warning-the-user-if-loading-comp-on-a-non-native-cap.patch --]
[-- Type: text/x-diff, Size: 798 bytes --]

From 81bfe715e2137f0572bb17a51bdac3e4f8cd106d Mon Sep 17 00:00:00 2001
From: Andrea Corallo <akrl@sdf.org>
Date: Fri, 22 Jul 2022 18:46:33 +0200
Subject: [PATCH] * Warning the user if loading comp on a non native capable
 Emacs.

* lisp/emacs-lisp/comp.el: Warning the user if loading on a non native
capable Emacs.
---
 lisp/emacs-lisp/comp.el | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 9a635a4776..b9de0289ee 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -28,6 +28,10 @@
 
 ;;; Code:
 
+(unless (featurep 'native-compile)
+  (display-warning 'comp "This emacs does not support native compilation"
+                   :warning))
+
 (require 'bytecomp)
 (require 'cl-extra)
 (require 'cl-lib)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 16:41                       ` Robert Pluim
@ 2022-07-22 18:03                         ` Eli Zaretskii
  0 siblings, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 18:03 UTC (permalink / raw)
  To: Robert Pluim; +Cc: akrl, emacs-devel, larsi

> From: Robert Pluim <rpluim@gmail.com>
> Cc: akrl@sdf.org,  emacs-devel@gnu.org,  larsi@gnus.org
> Date: Fri, 22 Jul 2022 18:41:40 +0200
> 
> >>>>> On Fri, 22 Jul 2022 19:18:19 +0300, Eli Zaretskii <eliz@gnu.org> said:
> 
>     >> From: Robert Pluim <rpluim@gmail.com>
>     >> Cc: akrl@sdf.org,  emacs-devel@gnu.org,  larsi@gnus.org
>     >> Date: Fri, 22 Jul 2022 17:46:07 +0200
>     >> 
>     >> >>>>> On Fri, 22 Jul 2022 18:41:09 +0300, Eli Zaretskii <eliz@gnu.org> said:
>     >> 
>     >> >> From: Robert Pluim <rpluim@gmail.com>
>     >> >> Cc: emacs-devel@gnu.org,  Lars Ingebrigtsen <larsi@gnus.org>
>     >> >> Date: Fri, 22 Jul 2022 17:36:16 +0200
>     >> >> 
>     >> >> Something like this (untested) in `normal-top-level'?
>     >> >> 
>     >> >> (unless (featurep 'native-compile)
>     >> >> (with-eval-after-load 'comp
>     >> >> (display-warning 'comp "This emacs does not support native compilation" :warning)))
>     >> 
>     Eli> Why do we need this, again?
>     >> 
>     >> I had comp.el loaded in my non-native compile capable Emacs, and tried
>     >> to run `native-compile-prune-cacheʼ, which gave me an error. Either we
>     >> accept that I did something that shouldnʼt be done, or we try to warn
>     >> people that they shouldnʼt do it (or on the gripping hand we add code
>     >> to check 'native-compile to a bunch of stuff in comp.el).
> 
>     Eli> What would be the reason to load comp.el in such a session?
> 
> User error. Some people might write (require ʼcomp) in their
> .emacs. Iʼm sure we can come up with lots of scenarios.

If we want to handle user error of loading the file, then placing the
code you suggested in comp.el itself would be TRT, I think.  Not in
startup.el.



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 16:42                       ` Andreas Schwab
@ 2022-07-22 18:04                         ` Eli Zaretskii
  0 siblings, 0 replies; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 18:04 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: rpluim, akrl, emacs-devel, larsi

> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Robert Pluim <rpluim@gmail.com>,  akrl@sdf.org,  emacs-devel@gnu.org,
>   larsi@gnus.org
> Date: Fri, 22 Jul 2022 18:42:28 +0200
> 
> On Jul 22 2022, Eli Zaretskii wrote:
> 
> > What would be the reason to load comp.el in such a session?
> 
> Customize can do that.

In that case, I see no reason to produce any warnings.



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 16:50                 ` Andrea Corallo
@ 2022-07-22 18:05                   ` Eli Zaretskii
  2022-07-22 18:24                     ` Andrea Corallo
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 18:05 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: rpluim, emacs-devel, larsi

> From: Andrea Corallo <akrl@sdf.org>
> Cc: emacs-devel@gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
> Date: Fri, 22 Jul 2022 16:50:24 +0000
> 
> > Something like this (untested) in `normal-top-level'?
> >
> >     (unless (featurep 'native-compile)
> >       (with-eval-after-load 'comp
> >         (display-warning 'comp "This emacs does not support native compilation" :warning)))
> 
> Yes something similar, wouldn't the attached be simpler?

What will that do if comp.el is loaded by custom.el?



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 18:05                   ` Eli Zaretskii
@ 2022-07-22 18:24                     ` Andrea Corallo
  2022-07-22 18:59                       ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 18:24 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rpluim, emacs-devel, larsi

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: emacs-devel@gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
>> Date: Fri, 22 Jul 2022 16:50:24 +0000
>> 
>> > Something like this (untested) in `normal-top-level'?
>> >
>> >     (unless (featurep 'native-compile)
>> >       (with-eval-after-load 'comp
>> >         (display-warning 'comp "This emacs does not support native compilation" :warning)))
>> 
>> Yes something similar, wouldn't the attached be simpler?
>
> What will that do if comp.el is loaded by custom.el?

AFAIU it should just emit the warning when comp.el is loaded.

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 18:24                     ` Andrea Corallo
@ 2022-07-22 18:59                       ` Eli Zaretskii
  2022-07-22 23:20                         ` Andrea Corallo
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-22 18:59 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: rpluim, emacs-devel, larsi

> From: Andrea Corallo <akrl@sdf.org>
> Cc: rpluim@gmail.com, emacs-devel@gnu.org, larsi@gnus.org
> Date: Fri, 22 Jul 2022 18:24:51 +0000
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Andrea Corallo <akrl@sdf.org>
> >> Cc: emacs-devel@gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
> >> Date: Fri, 22 Jul 2022 16:50:24 +0000
> >> 
> >> > Something like this (untested) in `normal-top-level'?
> >> >
> >> >     (unless (featurep 'native-compile)
> >> >       (with-eval-after-load 'comp
> >> >         (display-warning 'comp "This emacs does not support native compilation" :warning)))
> >> 
> >> Yes something similar, wouldn't the attached be simpler?
> >
> > What will that do if comp.el is loaded by custom.el?
> 
> AFAIU it should just emit the warning when comp.el is loaded.

Is that a good idea for such a scenario?

Perhaps we should have a variable to inhibit the warning, which
custom.el could bind?



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 12:45     ` Andrea Corallo
  2022-07-22 13:01       ` Robert Pluim
@ 2022-07-22 19:46       ` Stefan Monnier
  2022-07-22 23:17         ` Andrea Corallo
  1 sibling, 1 reply; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 19:46 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Robert Pluim, emacs-devel, Lars Ingebrigtsen

> do we support loading comp.el and using in non native builds?

We should support loading `comp.el`, yes.
Using it (e.g. calling functions therein) probably not unless the call
can be given a reasonable semantics.


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 14:15           ` Robert Pluim
  2022-07-22 15:14             ` Andrea Corallo
@ 2022-07-22 19:47             ` Stefan Monnier
  1 sibling, 0 replies; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 19:47 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Andrea Corallo, emacs-devel, Lars Ingebrigtsen

> Iʼd lean towards a warning myself (both for loading and for running
> any of the commands inside comp.el)

Please don't warn when loading.  There can be all kinds of valid reasons
to load a file whose functions you have no intention to call.


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 15:46                   ` Robert Pluim
  2022-07-22 16:18                     ` Eli Zaretskii
@ 2022-07-22 19:49                     ` Stefan Monnier
  1 sibling, 0 replies; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 19:49 UTC (permalink / raw)
  To: Robert Pluim; +Cc: Eli Zaretskii, akrl, emacs-devel, larsi

> I had comp.el loaded in my non-native compile capable Emacs, and tried
> to run `native-compile-prune-cacheʼ, which gave me an error.

Let's fix it so it doesn't given an error, then.
It could just give a warning if it's called interactively and there's no
file to prune (that'd be useful also for builds *with* native
compilation).


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22  8:51   ` master 05d240997a 2/2: Add native-compile-prune-cache command Robert Pluim
  2022-07-22 12:29     ` Stefan Monnier
  2022-07-22 12:45     ` Andrea Corallo
@ 2022-07-22 19:56     ` Lars Ingebrigtsen
  2 siblings, 0 replies; 30+ messages in thread
From: Lars Ingebrigtsen @ 2022-07-22 19:56 UTC (permalink / raw)
  To: Robert Pluim; +Cc: emacs-devel

Robert Pluim <rpluim@gmail.com> writes:

> Should we wrap this (and perhaps `startup-redirect-eln-cache') in
> (when native-comp-available-p) ? In a non-native compile Emacs they
> signal an error:
>
> Debugger entered--Lisp error: (void-variable native-comp-eln-load-path)
>   (let ((--dolist-tail-- native-comp-eln-load-path)) (while

I've now improved the error message in native-compile-prune-cache.

I don't think issuing warnings etc when loading comp.el in a
non-nativecomp build is warranted -- you should always be able to load
any .el file in any Emacs version without being bothered by things like
that.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 19:46       ` Stefan Monnier
@ 2022-07-22 23:17         ` Andrea Corallo
  2022-07-22 23:38           ` Stefan Monnier
  0 siblings, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 23:17 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Robert Pluim, emacs-devel, Lars Ingebrigtsen

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> do we support loading comp.el and using in non native builds?
>
> We should support loading `comp.el`, yes.
> Using it (e.g. calling functions therein) probably not unless the call
> can be given a reasonable semantics.

Sounds sensible, but then should we protect all functions or just say
that using them not supported?

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 18:59                       ` Eli Zaretskii
@ 2022-07-22 23:20                         ` Andrea Corallo
  2022-07-22 23:41                           ` Stefan Monnier
  0 siblings, 1 reply; 30+ messages in thread
From: Andrea Corallo @ 2022-07-22 23:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: rpluim, emacs-devel, larsi

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: rpluim@gmail.com, emacs-devel@gnu.org, larsi@gnus.org
>> Date: Fri, 22 Jul 2022 18:24:51 +0000
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> From: Andrea Corallo <akrl@sdf.org>
>> >> Cc: emacs-devel@gnu.org, Lars Ingebrigtsen <larsi@gnus.org>
>> >> Date: Fri, 22 Jul 2022 16:50:24 +0000
>> >> 
>> >> > Something like this (untested) in `normal-top-level'?
>> >> >
>> >> >     (unless (featurep 'native-compile)
>> >> >       (with-eval-after-load 'comp
>> >> >         (display-warning 'comp "This emacs does not support native compilation" :warning)))
>> >> 
>> >> Yes something similar, wouldn't the attached be simpler?
>> >
>> > What will that do if comp.el is loaded by custom.el?
>> 
>> AFAIU it should just emit the warning when comp.el is loaded.
>
> Is that a good idea for such a scenario?

I'm not sure why custom should load it (not a custom expert here), but
assuming it is for making any use of it I'd say it is.

Maybe an example of why custom should load comp would make my ideas more
clear on this.

Thanks

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 23:17         ` Andrea Corallo
@ 2022-07-22 23:38           ` Stefan Monnier
  2022-07-23  6:43             ` Eli Zaretskii
  0 siblings, 1 reply; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 23:38 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Robert Pluim, emacs-devel, Lars Ingebrigtsen

Andrea Corallo [2022-07-22 23:17:44] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> do we support loading comp.el and using in non native builds?
>>
>> We should support loading `comp.el`, yes.
>> Using it (e.g. calling functions therein) probably not unless the call
>> can be given a reasonable semantics.
>
> Sounds sensible, but then should we protect all functions or just say
> that using them not supported?

I don't think we can/should have a general policy in this respect.
I'd rather do it on a case-by-case basis.

Regarding "prune cache" I earlier suggested that it could just "prune
nothing" when called from an Emacs with no native-compiler, but I later
saw that the docstring says:

    Remove .eln files that aren’t applicable to the current Emacs invocation.

so another valid option would be for it to delete *all* the .eln files
when called from an Emacs without support for native compilation
(because none of the .eln files are "applicable to the current Emacs
invocation").


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 23:20                         ` Andrea Corallo
@ 2022-07-22 23:41                           ` Stefan Monnier
  2022-07-24 17:55                             ` Andrea Corallo
  0 siblings, 1 reply; 30+ messages in thread
From: Stefan Monnier @ 2022-07-22 23:41 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: Eli Zaretskii, rpluim, emacs-devel, larsi

> I'm not sure why custom should load it (not a custom expert here), but
> assuming it is for making any use of it I'd say it is.
>
> Maybe an example of why custom should load comp would make my ideas more
> clear on this.

It's not just custom, there are all kinds of cases.
E.g. earlier, I loaded `comp.elc` into my no-native-compiler Emacs
session because I did `C-h o native-compile-prune-cache RET` which loaded
the file to find the docstring.
[ Actually, it loaded it before I hit RET, because I used completion,
  which triggered loading of `comp.elc` in order to provide completions
  for the `native-compile-` prefix.  ]


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 23:38           ` Stefan Monnier
@ 2022-07-23  6:43             ` Eli Zaretskii
  2022-07-23 13:47               ` Stefan Monnier
  0 siblings, 1 reply; 30+ messages in thread
From: Eli Zaretskii @ 2022-07-23  6:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: akrl, rpluim, emacs-devel, larsi

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Robert Pluim <rpluim@gmail.com>,  emacs-devel@gnu.org,  Lars
>  Ingebrigtsen <larsi@gnus.org>
> Date: Fri, 22 Jul 2022 19:38:09 -0400
> 
> Regarding "prune cache" I earlier suggested that it could just "prune
> nothing" when called from an Emacs with no native-compiler, but I later
> saw that the docstring says:
> 
>     Remove .eln files that aren’t applicable to the current Emacs invocation.
> 
> so another valid option would be for it to delete *all* the .eln files
> when called from an Emacs without support for native compilation
> (because none of the .eln files are "applicable to the current Emacs
> invocation").

I think this would be a very dangerous thing to do, especially if
someone has more than one build of the same Emacs version on the
system.  (I also don't think it could be possible, because important
variables needed by that function are undefined in such a build, which
is IMO fortunate.)



^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-23  6:43             ` Eli Zaretskii
@ 2022-07-23 13:47               ` Stefan Monnier
  0 siblings, 0 replies; 30+ messages in thread
From: Stefan Monnier @ 2022-07-23 13:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: akrl, rpluim, emacs-devel, larsi

> I think this would be a very dangerous thing to do,

That's also my opinion, BTW :-)


        Stefan




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: master 05d240997a 2/2: Add native-compile-prune-cache command
  2022-07-22 23:41                           ` Stefan Monnier
@ 2022-07-24 17:55                             ` Andrea Corallo
  0 siblings, 0 replies; 30+ messages in thread
From: Andrea Corallo @ 2022-07-24 17:55 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Eli Zaretskii, rpluim, emacs-devel, larsi

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> I'm not sure why custom should load it (not a custom expert here), but
>> assuming it is for making any use of it I'd say it is.
>>
>> Maybe an example of why custom should load comp would make my ideas more
>> clear on this.
>
> It's not just custom, there are all kinds of cases.
> E.g. earlier, I loaded `comp.elc` into my no-native-compiler Emacs
> session because I did `C-h o native-compile-prune-cache RET` which loaded
> the file to find the docstring.
> [ Actually, it loaded it before I hit RET, because I used completion,
>   which triggered loading of `comp.elc` in order to provide completions
>   for the `native-compile-` prefix.  ]

I see, yeah than I defently agree we need to support loading comp.el
also on a non native compiled Emacs.

BTW, now that we have sympol positions, I'd like to extend comp.el for
compile time analysis/diagnostic and this should be useful to all Emacs
confs, so before or later loading (but also using) comp on all confs is
probably something we might want to do.

  Andrea



^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2022-07-24 17:55 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <165675959499.8421.12451308740112322312@vcs2.savannah.gnu.org>
     [not found] ` <20220702105957.4B7EFC016B5@vcs2.savannah.gnu.org>
2022-07-22  8:51   ` master 05d240997a 2/2: Add native-compile-prune-cache command Robert Pluim
2022-07-22 12:29     ` Stefan Monnier
2022-07-22 12:45     ` Andrea Corallo
2022-07-22 13:01       ` Robert Pluim
2022-07-22 13:51         ` Andrea Corallo
2022-07-22 14:15           ` Robert Pluim
2022-07-22 15:14             ` Andrea Corallo
2022-07-22 15:36               ` Robert Pluim
2022-07-22 15:41                 ` Eli Zaretskii
2022-07-22 15:46                   ` Robert Pluim
2022-07-22 16:18                     ` Eli Zaretskii
2022-07-22 16:41                       ` Robert Pluim
2022-07-22 18:03                         ` Eli Zaretskii
2022-07-22 16:42                       ` Andreas Schwab
2022-07-22 18:04                         ` Eli Zaretskii
2022-07-22 19:49                     ` Stefan Monnier
2022-07-22 16:50                 ` Andrea Corallo
2022-07-22 18:05                   ` Eli Zaretskii
2022-07-22 18:24                     ` Andrea Corallo
2022-07-22 18:59                       ` Eli Zaretskii
2022-07-22 23:20                         ` Andrea Corallo
2022-07-22 23:41                           ` Stefan Monnier
2022-07-24 17:55                             ` Andrea Corallo
2022-07-22 19:47             ` Stefan Monnier
2022-07-22 19:46       ` Stefan Monnier
2022-07-22 23:17         ` Andrea Corallo
2022-07-22 23:38           ` Stefan Monnier
2022-07-23  6:43             ` Eli Zaretskii
2022-07-23 13:47               ` Stefan Monnier
2022-07-22 19:56     ` Lars Ingebrigtsen

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).