Subject: bug#47169: 28.0.50; [feature/native-comp] native-compiler-error-empty-byte when batch-native-compiling is confusing to users

From: Andrea Corallo <[email-masked]>
Date: Mon, 15 Mar 2021 20:14:55 +0000

Mauricio Collares <[email-masked]> writes:

> Some packages contain valid .el files such that batch-byte-compiling
> them does not produce an .elc file, for example because they set
> "no-byte-compile" to t. Running batch-byte-compile on such a file exits
> successfully (without outputting any .elc file, of course) but running
> batch-native-compile exits with native-compiler-error-empty-byte.
>
> In the Nix package manager, we native-compile packages at installation
> time, and we do so by calling batch-native-compile for each .el file in
> the package separately. So in our use case .el files as described above
> shouldn't trigger error messages. We can work around this on the Nix
> side, but I was wondering if it would be better to turn the error into a
> warning (or even not emit a warning at all, since technically everything
> went well).
>
> Step to reproduce: batch-native-compile a file that sets no-byte-compile
> to t.
>
> (Reporting this on behalf of a user, see
> https://github.com/nix-community/emacs-overlay/issues/120)
>
> Best,
> Mauricio

Hi Mauricio, thanks for the report.

I think we have two option:

1- Assume that `no-byte-compile' implies also `no-native-compile' so
   that we don't produce the .eln and we don't complain when
   `no-byte-compile' is non-nil.

2- Manually add `no-native-compile' to all files we don't want to be
   compiled.

I'll vote for 1, Eli WDYT?

Thanks

  Andrea