unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andrea Corallo <akrl@sdf.org>
To: Dmitry Gutov <dgutov@yandex.ru>
Cc: Eli Zaretskii <eliz@gnu.org>,
	emacs-devel@gnu.org, Stefan Kangas <stefankangas@gmail.com>,
	rpluim@gmail.com
Subject: Re: native-comp-async-report-warnings-errors default value
Date: Thu, 30 Dec 2021 09:37:53 +0000	[thread overview]
Message-ID: <xjf35ma5t72.fsf@ma.sdf.org> (raw)
In-Reply-To: <5c75fd47-5e50-938d-6f4d-1882ac8cbdb1@yandex.ru> (Dmitry Gutov's message of "Tue, 28 Dec 2021 03:59:26 +0200")

Dmitry Gutov <dgutov@yandex.ru> writes:

> On 25.12.2021 13:53, Andrea Corallo wrote:
>> Dmitry Gutov <dgutov@yandex.ru> writes:
>> 
>>> Hi Andrea,
>>>
>>> On 24.12.2021 12:53, Andrea Corallo wrote:
>>>> this is not a trivial modification so I might easily miss some aspects
>>>> of it but...
>>>> Certanly bytecode ATM has no way to store declaration specifiers and
>>>> these are used for native compilation.  I guess we should at least
>>>> extend this first.
>>>
>>> Thanks for the answer, I really wanted at least a high-level
>>> understanding of this point. I wouldn't presume to ask you to work on
>>> this, but maybe some of the others here who also complained about the
>>> warnings, would be interested in taking the initiative?
>>>
>>> Regarding declaration specifiers, I think the new (declare (modes
>>> ...)) feature had the same problem.
>>>
>>> Not sure how it was solved (or whether it was solved at all).
>> I guess the mode declaration has affect during byte compilation so
>> it
>> should be fine.  The issue is for other declarations that are taking
>> effect afterwards in the native compilation pipeline.
>
> It has an effect at runtime: Emacs needs to look up those properties
> after the byte code is evaluated. That's why .elc files have
> additional forms added which basically call 'function-put' (as set up
> in defun-declarations-alist).

Indeed it has effect in the runtime.  But as you say this is because the
byte compiler generates different code for that (in this case a top
level form).  In the case of the native compiler we'd need to store and
reuse a bunch of information for following native compilation that has
to happen after.

> But...
>
>> As the bytecompiler pipeline was always assumed to be the only and last
>> compilation step, bytecode is ATM not designed to retain these
>> information.  I'm sure it's extensible somehow but we probably need some
>> advise on what's the best way to approach this.
>
> ...I suppose you might want to access that information without
> evaluating said additional byte code forms either.
>
> Or could it evaluate them anyway? If native compilation happens after
> the code is loaded, the symbols will have the necessary properties
> then.

Maybe a sufficient solution is an ad hoc local variable emitted (when
necessary) in the .elc file with like an a-list function -> declaration
specifiers we are interested in?

  Andrea



  reply	other threads:[~2021-12-30  9:37 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-14 11:23 native-comp-async-report-warnings-errors default value Robert Pluim
2021-10-14 11:30 ` Eli Zaretskii
2021-10-14 11:43   ` Robert Pluim
2021-10-14 11:52     ` Eli Zaretskii
2021-10-14 14:48       ` Robert Pluim
2021-10-14 15:57         ` Eli Zaretskii
2021-10-14 16:42           ` Lars Ingebrigtsen
2021-10-14 16:47             ` Eli Zaretskii
2021-10-15  8:51           ` Robert Pluim
2021-10-14 12:07     ` Stefan Kangas
2021-10-14 12:12       ` Eli Zaretskii
2021-12-02 17:03     ` Stefan Kangas
2021-12-02 17:10       ` Lars Ingebrigtsen
2021-12-02 17:14         ` Andrea Corallo
2021-12-02 21:15           ` T.V Raman
2021-12-02 18:23       ` Eli Zaretskii
2021-12-02 19:27         ` Stefan Kangas
2021-12-02 19:42           ` Eli Zaretskii
2021-12-06 20:11             ` Stefan Kangas
2021-12-06 20:26               ` Eli Zaretskii
2021-12-07  7:51                 ` Lars Ingebrigtsen
2021-12-07  9:37                   ` Andrea Corallo
2021-12-07  9:42                     ` Robert Pluim
2021-12-07  9:54                       ` Andrea Corallo
2021-12-07 12:38                         ` Robert Pluim
2021-12-07 14:28                           ` Eli Zaretskii
2021-12-07 16:54                             ` Robert Pluim
2021-12-07 17:16                               ` Eli Zaretskii
2021-12-08  9:19                                 ` Robert Pluim
2021-12-08 13:23                                   ` Eli Zaretskii
2021-12-08 13:46                                     ` Andrea Corallo
2021-12-07 13:24                     ` Stefan Monnier
2021-12-07 14:05                       ` Andrea Corallo
2021-12-07 14:33                         ` Eli Zaretskii
2021-12-07 14:15                   ` Eli Zaretskii
2021-12-07 20:20                     ` Lars Ingebrigtsen
2021-12-17 18:14                 ` Stefan Kangas
2021-12-17 19:12                   ` Eli Zaretskii
2021-12-17 19:27                     ` Óscar Fuentes
2021-12-17 19:36                     ` Stefan Kangas
2021-12-17 20:07                       ` Stefan Kangas
2021-12-17 20:38                         ` Eli Zaretskii
2021-12-17 20:53                           ` Dmitry Gutov
2021-12-17 21:20                             ` Colin Baxter 😺
2021-12-17 22:01                             ` Ken Brown
2021-12-18  0:48                               ` Dmitry Gutov
2021-12-18 14:38                                 ` Ken Brown
2021-12-18 16:58                                   ` Óscar Fuentes
2021-12-18 20:51                                     ` Ken Brown
2021-12-17 22:10                             ` Rudolf Adamkovič
2021-12-17 21:10                           ` Stefan Kangas
2021-12-18  0:24                         ` Po Lu
2021-12-20  8:29                         ` Andrea Corallo
2021-12-24  1:01                           ` Dmitry Gutov
2021-12-24  1:34                             ` T.V Raman
2021-12-24  9:53                             ` Andrea Corallo
2021-12-25  0:05                               ` Dmitry Gutov
2021-12-25 10:53                                 ` Andrea Corallo
2021-12-28  1:59                                   ` Dmitry Gutov
2021-12-30  9:37                                     ` Andrea Corallo [this message]
2022-01-08  2:29                                       ` Dmitry Gutov
2021-12-02 21:14       ` T.V Raman
2021-12-03  6:50         ` Eli Zaretskii

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=xjf35ma5t72.fsf@ma.sdf.org \
    --to=akrl@sdf.org \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rpluim@gmail.com \
    --cc=stefankangas@gmail.com \
    /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).