* How to solve "abiI-check: recompilation needed"
@ 2021-09-16 10:56 Hartmut Goebel
2021-09-16 14:23 ` Ricardo Wurmus
2021-09-16 15:46 ` Ryan Sundberg
0 siblings, 2 replies; 6+ messages in thread
From: Hartmut Goebel @ 2021-09-16 10:56 UTC (permalink / raw)
To: Guix-devel
Hi,
quite often, after "git pull" I'm facing this error when running
"make-make-go":
$ make make-go
Compiling Scheme modules...
Compiling Scheme modules...
[ 69%] LOAD gnu/packages/admin.scm
error: failed to load 'gnu/packages/check.scm':
ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <package>>:
record ABI mismatch; recompilation needed
make: *** [Makefile:7096: make-packages-go] Fehler 1
How can I solve this, without removing and rebulding *all* files - which
is time consuming and a waste of electric power.
I already tried without success "rm gnu/package.go" as well as removing
some other .go-files listed in the output.
--
Regards
Hartmut Goebel
| Hartmut Goebel | h.goebel@crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to solve "abiI-check: recompilation needed"
2021-09-16 10:56 How to solve "abiI-check: recompilation needed" Hartmut Goebel
@ 2021-09-16 14:23 ` Ricardo Wurmus
2021-09-17 20:03 ` Maxim Cournoyer
2021-09-16 15:46 ` Ryan Sundberg
1 sibling, 1 reply; 6+ messages in thread
From: Ricardo Wurmus @ 2021-09-16 14:23 UTC (permalink / raw)
To: Hartmut Goebel; +Cc: guix-devel
Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
> Hi,
>
> quite often, after "git pull" I'm facing this error when running
> "make-make-go":
>
> $ make make-go
> Compiling Scheme modules...
> Compiling Scheme modules...
> [ 69%] LOAD gnu/packages/admin.scm
> error: failed to load 'gnu/packages/check.scm':
> ice-9/eval.scm:293:34: In procedure abi-check: #<record-type
> <package>>: record ABI mismatch; recompilation needed
> make: *** [Makefile:7096: make-packages-go] Fehler 1
>
> How can I solve this, without removing and rebulding *all* files
> -
> which is time consuming and a waste of electric power.
You need to rebuild all users of the modified record types. I
don’t know if you can easily figure out which files these are.
The suggested fix is in fact to rebuild all go files, i.e. “make
clean-go” and then “make -j”.
--
Ricardo
PS: electricity from renewable energy sources for the win!
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to solve "abiI-check: recompilation needed"
2021-09-16 10:56 How to solve "abiI-check: recompilation needed" Hartmut Goebel
2021-09-16 14:23 ` Ricardo Wurmus
@ 2021-09-16 15:46 ` Ryan Sundberg
2021-09-16 16:47 ` Ricardo Wurmus
1 sibling, 1 reply; 6+ messages in thread
From: Ryan Sundberg @ 2021-09-16 15:46 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1.1: Type: text/plain, Size: 1196 bytes --]
I turn auto-compilation off with --no-auto-compile when developing guile
code, that helps. I don't think there's a perfect way around this issue
regarding stale caches without fixing up guile itself. Other than that
if you put your code for make-go (I don't know what this program is,
sorry) into a (package), it should compile correctly without any cache
issues for release builds.
+$0.02
--
Sincerely,
Ryan Sundberg
On 9/16/21 3:56 AM, Hartmut Goebel wrote:
> Hi,
>
> quite often, after "git pull" I'm facing this error when running
> "make-make-go":
>
> $ make make-go
> Compiling Scheme modules...
> Compiling Scheme modules...
> [ 69%] LOAD gnu/packages/admin.scm
> error: failed to load 'gnu/packages/check.scm':
> ice-9/eval.scm:293:34: In procedure abi-check: #<record-type <package>>:
> record ABI mismatch; recompilation needed
> make: *** [Makefile:7096: make-packages-go] Fehler 1
>
> How can I solve this, without removing and rebulding *all* files - which
> is time consuming and a waste of electric power.
>
> I already tried without success "rm gnu/package.go" as well as removing
> some other .go-files listed in the output.
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to solve "abiI-check: recompilation needed"
2021-09-16 15:46 ` Ryan Sundberg
@ 2021-09-16 16:47 ` Ricardo Wurmus
0 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2021-09-16 16:47 UTC (permalink / raw)
To: Ryan Sundberg; +Cc: guix-devel
Ryan Sundberg <ryan@arctype.co> writes:
> if you put your code for make-go (I don't know what this program
> is,
> sorry) into a (package), it should compile correctly without any
> cache
> issues for release builds.
“make-go” is a Makefile target that builds .go files from .scm
files.
--
Ricardo
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to solve "abiI-check: recompilation needed"
2021-09-16 14:23 ` Ricardo Wurmus
@ 2021-09-17 20:03 ` Maxim Cournoyer
2021-09-18 13:13 ` Maxime Devos
0 siblings, 1 reply; 6+ messages in thread
From: Maxim Cournoyer @ 2021-09-17 20:03 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: guix-devel
Hello,
Ricardo Wurmus <rekado@elephly.net> writes:
> Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
>
>> Hi,
>>
>> quite often, after "git pull" I'm facing this error when running
>> "make-make-go":
>>
>> $ make make-go
>> Compiling Scheme modules...
>> Compiling Scheme modules...
>> [ 69%] LOAD gnu/packages/admin.scm
>> error: failed to load 'gnu/packages/check.scm':
>> ice-9/eval.scm:293:34: In procedure abi-check: #<record-type
>> <package>>: record ABI mismatch; recompilation needed
>> make: *** [Makefile:7096: make-packages-go] Fehler 1
>>
>> How can I solve this, without removing and rebulding *all* files -
>> which is time consuming and a waste of electric power.
>
> You need to rebuild all users of the modified record types. I don’t
> know if you can easily figure out which files these are.
>
> The suggested fix is in fact to rebuild all go files, i.e. “make
> clean-go” and then “make -j”.
For this example, there's no good way as 'package' is used in a majority
of the Guile modules. It it had been something more specific, such as
the <bootloader-configuration> record, you could have gotten away with:
$ git grep -l bootloader-configuration | grep '.scm' \
| sed 's/.scm/.go/' | xargs rm
$ make
Which I often though to save recompilation time.
HTH,
Maxim
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to solve "abiI-check: recompilation needed"
2021-09-17 20:03 ` Maxim Cournoyer
@ 2021-09-18 13:13 ` Maxime Devos
0 siblings, 0 replies; 6+ messages in thread
From: Maxime Devos @ 2021-09-18 13:13 UTC (permalink / raw)
To: Maxim Cournoyer, Ricardo Wurmus; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1751 bytes --]
Maxim Cournoyer schreef op vr 17-09-2021 om 16:03 [-0400]:
> Hello,
>
> Ricardo Wurmus <rekado@elephly.net> writes:
>
> > Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
> >
> > > Hi,
> > >
> > > quite often, after "git pull" I'm facing this error when running
> > > "make-make-go":
> > >
> > > $ make make-go
> > > Compiling Scheme modules...
> > > Compiling Scheme modules...
> > > [ 69%] LOAD gnu/packages/admin.scm
> > > error: failed to load 'gnu/packages/check.scm':
> > > ice-9/eval.scm:293:34: In procedure abi-check: #<record-type
> > > <package>>: record ABI mismatch; recompilation needed
> > > make: *** [Makefile:7096: make-packages-go] Fehler 1
> > >
> > > How can I solve this, without removing and rebulding *all* files -
> > > which is time consuming and a waste of electric power.
> >
> > You need to rebuild all users of the modified record types. I don’t
> > know if you can easily figure out which files these are.
> >
> > The suggested fix is in fact to rebuild all go files, i.e. “make
> > clean-go” and then “make -j”.
>
> For this example, there's no good way as 'package' is used in a majority
> of the Guile modules. It it had been something more specific, such as
> the <bootloader-configuration> record, you could have gotten away with:
>
> $ git grep -l bootloader-configuration | grep '.scm' \
> | sed 's/.scm/.go/' | xargs rm
>
> $ make
>
> Which I often though to save recompilation time.
The ‘dependency tracking‘ patch in <https://issues.guix.gnu.org/50384#9>
could be adapted to let all source files using the ‘package’ macro depend
on guix/packages.scm. Likewise for origin records and other records.
Greetings,
Maxime.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-09-18 13:13 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-16 10:56 How to solve "abiI-check: recompilation needed" Hartmut Goebel
2021-09-16 14:23 ` Ricardo Wurmus
2021-09-17 20:03 ` Maxim Cournoyer
2021-09-18 13:13 ` Maxime Devos
2021-09-16 15:46 ` Ryan Sundberg
2021-09-16 16:47 ` Ricardo Wurmus
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.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).