unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
To: Chris Vine <vine35792468@gmail.com>
Cc: Guile User <guile-user@gnu.org>
Subject: Re: Guile 3.0.7 compile cache messages
Date: Wed,  2 Jun 2021 21:52:15 +0000	[thread overview]
Message-ID: <ee5ea46f-29ab-c1ee-e3dd-f88826596f66@posteo.de> (raw)
In-Reply-To: <20210602175333.2978e3a6cec90709768cb470@gmail.com>


On 6/2/21 6:53 PM, Chris Vine wrote:
> On Wed,  2 Jun 2021 12:20:48 +0000
> Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote:
>> Hi Chris!
>> On 6/2/21 12:30 PM, Chris Vine wrote:
>>> On Wed,  2 Jun 2021 08:52:54 +0000
>>> Zelphir Kaltstahl <zelphirkaltstahl@posteo.de> wrote:
>>>> On 6/2/21 8:00 AM, Adriano Peluso wrote:
>>>>> Il giorno mar, 01/06/2021 alle 08.14 -0400, Olivier Dion via General
>>>>> Guile related discussions ha scritto:
>>>>>> On Mon, 31 May 2021, Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
>>>>>> wrote:
>>>>>>> Hello Guile Users!
>>>>>>>
>>>>>>> It seems my Guile (version 3.0.7, installed via GNU Guile, updated
>>>>>>> today) is
>>>>>>> doing something weird, or perhaps something correct but unexpected
>>>>>>> with regard
>>>>>>> to informing about it finding compile caches. When I run a program
>>>>>>> with `guile
>>>>>>> -L . main.scm`, it displays the following:
>>>>>> I also find it annoying.  I use Guile as a script language for a
>>>>>> video game engine in C.  This interferes with the logging system and it
>>>>>> annoys the hell out of me >:-)
>>>>> Does this bug help anyone of you ?
>>>>>
>>>>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=16364
>>>> To be honest my need is not as urgent as something failing because of the
>>>> messages, but rather a visual annoyance, that did not happen before. When I do
>>>> not expect a recompilation, because I did not change any code, then it is
>>>> surprising to see the cache messages appearing, even with auto compilation
>>>> switched off. For a moment I think: "Huh? Did something change?" and then "Ah,
>>>> it is only those always shown messages.". It did not use to do that.
>>>>
>>>> I am not sure what changed in my setting or with GNU Guile. My theory is, that
>>>> it is something introduced between 3.0.5 (or 4?) and 3.0.7 perhaps. Or that
>>>> something was changed in the way that GNU Guix installs GNU Guile and that
>>>> affects the caching messages somehow.
>>> You reported that when running  a program file of yours named 'main.scm'
>>> which is in your project's source directory, you get this message:
>>>
>>> $ guile -L . main.scm 
>>> ;;; note: source file ./logging.scm
>>> ;;;       newer than compiled 
>>> /home/user/.guix-profile/lib/guile/3.0/site-ccache/logging.go
>>> ;;; found fresh local cache at 
>>> /home/user/.cache/guile/ccache/3.0-LE-8-4.5/home/user/dev/guile/lf2-data-files/logging.scm.go
>>> ;;; note: source file ./file-reader.scm
>>> ;;;       newer than compiled 
>>> /home/user/.guix-profile/lib/guile/3.0/site-ccache/file-reader.go
>>> ;;; found fresh local cache at 
>>> /home/user/.cache/guile/ccache/3.0-LE-8-4.5/home/user/dev/guile/lf2-data-files/file-reader.scm.go
>>> 160
>>>
>>> On the face of it the warnings look reasonable and I would be surprised
>>> if they were something new.  You appear to have two module files
>>> logging.scm and file-reader.scm in your project's source directory
>>> /home/user/dev/guile/lf2-data-files which are newer than
>>> pre-compiled .go files for them which you (or guix on your behalf) have
>>> installed at some time in the past in guile-3.0's site-ccache,
>>> presumably by some kind of 'make install' operation carried out for
>>> your project.  When you updated logging.scm and file-reader.scm in your
>>> project, guile noticed this, recompiled the modules for you
>>> automatically and put the generated code in your local cache
>>> directory.  It now emits helpful warnings in consequence.
>> Yes, the warnings would look reasonable, if they only were shown once every
>> change. However, what confuses me about them is, that no matter how often I run
>> the same program without changing any code (!), the same messages are shown, as
>> if there was constantly a newer version than the cache. If I understand the
>> messages correctly, that is.
>>
>> (I do not doubt, that the messages can be helpful, in cases, where there really
>> is a newer version than the cache.)
>  
> If you have (i) stale compiled bytecode files installed by guix in
> site-ccache, and (ii) up-to-date bytecode files installed by guile in
> local cache, then you will necessarily get the warning each time, and I
> wouldn't want it to behave in any other way.  You need to resolve the
> matter either by (i) removing the stale bytecode files in site-ccache,
> or (ii) removing the bytecode files in local cache, recompiling your
> project and reinstalling up-to-day bytecode files in site-ccache.
>
>> In this project I do not have any makefile yet and it is a pure GNU Guile
>> project. Link: https://notabug.org/ZelphirKaltstahl/lf2-data-decrypt
>> <https://notabug.org/ZelphirKaltstahl/lf2-data-decrypt>.
> Presumably guix is doing this then.
>
> What presumably guix has done is to install the bytecode files in
> site-ccache when first building and installing your project but then
> failed to update them when you change some of your source code files.
> Is there a guix support group, or some kind of documentation about this?
> This is pretty basic stuff so there must be some way of getting guix to
> behave correctly.  Is there some simple command like "guix rebuild"
> that you are supposed to use?

As far as I know, the environment is recreated every time it is activated by
calling the env.sh script I have in guix-env/, unless there is a change in
dependencies specified in the manifest.scm or channels.scm file. It should not
be necessary to do any cleanup, unless I am mistaken and my ideas about how it
works are actually wrong. (I thought (think?) I had finally found the way to
perfectly isolate my projects and make their environments reproducible across
machines.)

>>> The question is how did you get into this position?  More particulaly,
>>> what installed logging.go and file-reader.go in site-ccache (presumably
>>> 'make install') and, when logging.scm and file-reader.scm were updated,
>>> why didn't you recompile and reinstall your modules?
>> I am not sure. I am merely calling `guile -L . main` in the project root
>> directory and have not had any other call to it, when I noticed this behavior. I
>> basically did not do anything special before.
> See above.  Running 'guile -L . main'  will not install anything in
> site-ccache, so something else (most likely guix) has done that.
> Instead, guile run as 'guile -L . main' will cause it to save its
> compiled bytecode in local cache.
>
> I suppose one other point to address is why you are using guix at all.
> If all you want to do is run your program with 'guile -L . main' then
> that is all you need to do.  What are you trying to achieve with guix?
> Aren't you supposed to run your program within the guix environment
> instead of outside it?
Yes, I am supposed to be running the program inside that environment and I think
that is what I did. Unless I was silly and somehow managed to forget to activate
the environment.
>>> The most immediate solution is to delete your local cache and reinstall
>>> your program modules.  Alternatively, I suspect from your comments that
>>> your normal work methods may be better served by not pre-compiling/
>>> installing the modules at all, and instead rely on their automatic
>>> compilation and installation into the local cache by guile on need.
>> How do I go about it? Simply removing the cache folder the messages point to?
>>
>> And what commands would that alternative workflow entail?
> Dunno.  See above.

I think the assumption is that I was installing my project in any way. However,
I am merely running its Guile code, without installing it anywhere in Guix or my
system.

Thank you for the idea with the caches, I will try that.

Best regards,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl




  reply	other threads:[~2021-06-02 21:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-31 19:46 Guile 3.0.7 compile cache messages Zelphir Kaltstahl
2021-06-01 12:14 ` Olivier Dion via General Guile related discussions
2021-06-02  6:00   ` Adriano Peluso
2021-06-02  8:52     ` Zelphir Kaltstahl
2021-06-02 10:30       ` Chris Vine
2021-06-02 12:20         ` Zelphir Kaltstahl
2021-06-02 12:38           ` Matt Wette
2021-06-02 16:53           ` Chris Vine
2021-06-02 21:52             ` Zelphir Kaltstahl [this message]
2021-06-02 23:09               ` Chris Vine
2021-06-02 20:51           ` Adriano Peluso
2021-06-02 21:45             ` Zelphir Kaltstahl
2021-06-02 22:15               ` Zelphir Kaltstahl

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/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee5ea46f-29ab-c1ee-e3dd-f88826596f66@posteo.de \
    --to=zelphirkaltstahl@posteo.de \
    --cc=guile-user@gnu.org \
    --cc=vine35792468@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.
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).