GNU bug report logs - #46495
28.0.50; [native-comp] Build fails for 32bit --with-wide-int

Previous Next

Package: emacs;

Reported by: Andy Moreton <andrewjmoreton <at> gmail.com>

Date: Sat, 13 Feb 2021 17:58:02 UTC

Severity: normal

Found in version 28.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Forwarded to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99126

Full log


Message #175 received at 46495 <at> debbugs.gnu.org (full text, mbox):

From: Andrea Corallo <akrl <at> sdf.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: andrewjmoreton <at> gmail.com, dmalcolm <at> redhat.com, 46495 <at> debbugs.gnu.org
Subject: Re: bug#46495: 28.0.50; [native-comp] Build fails for 32bit
 --with-wide-int
Date: Wed, 31 Mar 2021 12:24:07 +0000
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Andrea Corallo <akrl <at> sdf.org>
>> Cc: andrewjmoreton <at> gmail.com, dmalcolm <at> redhat.com, 46495 <at> debbugs.gnu.org
>> Date: Wed, 31 Mar 2021 10:33:43 +0000
>> 
>> >>   libgccjit-0.dll: note: disable pass tree-isolate-paths for functions in the range of [0, 4294967295]
>> >
>> > Oh, I see: it's because batch-native-compile runs the final
>> > compilation phase in a subprocess.  But doesn't that mean the
>> > non-default setting of comp-debug will not have its effect in this
>> > case?
>> 
>> `comp-debug' at that point is captured in the compilation context
>> `comp-ctxt', we have a slot for that in the structure.
>
> OK, thanks.
>
>> > Btw, I find the doc strings of the various top-level native-compile
>> > functions not very helpful when I need to understand under what
>> > circumstances they run the compilation asynchronously.  I always need
>> > to read the code, and read it carefully, to figure that out.  Can this
>> > please be improved?
>> 
>> Sure, if you have a list of the one that you have found troublesome
>> (and/or some suggestion) I'll try to improve them.
>
> I think these:
>
>   comp--native-compile, native-compile, batch-native-compile,
>   batch-byte-native-compile-for-bootstrap
>
> The first of these is an internal function, but it's used a lot, and
> its doc string describes most of what it does -- except the async
> aspect.
>
> One question I have, that perhaps will be answered by the enhanced doc
> strings, is this: how to run a batch compilation of a non-preloaded
> file such that no subprocesses at all are used?

ATM there's no way.  The idea is that we typically don't want to run in
the same process as libgccjit leaks memory (and contribute to memory
fragmentation).  We do it only for
`batch-byte-native-compile-for-bootstrap' as we know that the Emacs
process will not last long.

> There's
> comp-async-jobs-number, but a zero value doesn't disable async
> compilation, it means something else.
>
> Another question is: the documentation sometimes mentions async
> compilation and sometimes mentions deferred compilation -- but these
> are not the same, right?

I'd say:

- async compilation is the mechanism that allow for compiling
  asynchronously.

- deferred is the mechanism that allow for loading bytecode, triggering
  an async compilation and eventually perform the swap of the function
  definition when the async compilation is done.


Regards

  Andrea




This bug report was last modified 4 years and 43 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.