unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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).