[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on st
From: |
Stefan Monnier |
Subject: |
bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup |
Date: |
Sat, 15 Oct 2022 10:19:57 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Re-reading this discussion what I see is two different options, neither
of which is significantly better than the other.
So the motivation to change is not very high.
Stefan
Lars Ingebrigtsen [2022-10-15 12:13:32] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>> After spending many milliseconds thinking about it, my conclusion is
>> that the bytecompiler should add a little code snippet like
>> (puthash load-file-name t comp--no-native-compile) in the
>> file if `no-native-compile` was specified. So it then be easy for the
>> lazy native compilation to detect that it should skip this file (since
>> lazy native compilation is triggered after loading the file) by just
>> consulting `comp--no-native-compile`.
>>
>> For that, there's no need to change the way `no-native-compile` is specified.
>
> True, but it's kinda hacky, and if possible, I'd like to avoid adding
> more hacks in this area...
>
>>> That is, in this case, we'd say
>>>
>>> (pragma 'no-native-compile)
>>>
>>> somewhere in the file.
>>
>> I guess that could work for `no-native-compile`, indeed. But if you ask
>> to native compile this file and the pragma is halfway down the file,
>> what happens?
>
> Yes, that's no good. Uhm... we could make a rule that all `pragma's
> have to appear as the first form(s) in a Lisp file? And error out if
> somebody tries to add a `pragma' later in the file.
>
> I think that would make sense in general -- we're trying to express
> something about the file as a whole, after all.
>
>>> We could have
>>>
>>> (pragma 'dynamic-binding)
>>
>> I guess this one could work (of course, it'd have to be at top-level),
>> and we could switch back&forth within the same file (yuck!).
>>
>> But if we allow such `pragma` to be output by macros, then it becomes
>> tricky for `eval-region` to reliably decide which dialect to use.
>
> Hm, yes... But we have the same issue today, don't we? That is
>
> (progn
> (pop-to-buffer "*foo*")
> (emacs-lisp-mode)
> (insert ";;; -*- lexical-binding: t -*-\n(message \"Lex: %s\"
> lexical-binding)")
> (eval-region (pos-bol) (point)))
>
> Well, OK, that's the same result with point-min, but...
>
>> So we could allow such `pragma`, but we'd likely end up restricting its
>> syntax so we're able to find it with something like a regexp search, so
>> in the end it's not clear what's the advantage over
>> file-local variables.
>
> If they have to be the first forms, there may be some advantages...
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/14
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Stefan Monnier, 2022/10/14
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/15
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup,
Stefan Monnier <=
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/16
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Andrea Corallo, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Andrea Corallo, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Eli Zaretskii, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Arash Esbati, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Arash Esbati, 2022/10/17
- bug#57627: 29.0.50; [native-compilation] cl-loaddefs.el recompiled on startup, Lars Ingebrigtsen, 2022/10/17