chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Re: Eggs not installing on msys-mingw32


From: Matt Welland
Subject: Re: [PATCH] Re: Eggs not installing on msys-mingw32
Date: Sun, 5 Nov 2023 09:59:51 -0500

Well, I have no idea what is going on but I'm suspecting a hardware problem. In my last reply I was confident the problem was reproducible but as I continued to try things that proved to not be the case.

I switched to working with Chicken-5.3.0rc2 and the build there failed on creation of modules.db, again it was very reliably reproducible. Thinking this was maybe a race condition between the creation of the modules.db file and the following file copy I added a little code to read the file back and compare it. The problem went away. Unfortunately when I reverted the code the problem did not return. That does not make any sense whatsoever.

Currently I'm able to get to where when I install the sqlite3 egg it fails with:

Error: unterminated list

If I run the install a couple times it results in a working egg.

I'll keep chipping away at this but I don't think I have anything tangible to offer in terms of a problem statement other than ... "Windows sucks".

On Tue, Oct 31, 2023 at 3:25 AM Peter Bex <peter@more-magic.net> wrote:
On Mon, Oct 30, 2023 at 05:45:28PM -0400, Matt Welland wrote:
> Well, maybe there is a silver lining here, I can currently reliably
> reproduce the problem!

That's excellent!  Do you have to do any special steps, or does it
simply always happen?

> One hypothesis I'm looking at is replacing calls using with-input-from-file
> and with-output-to-file with open-*-file ... close loops for the reading
> and creation of the egg-info files.

You're probably on the wrong track there.  AFAICT, egg-info files are
only *created* in the foo.install.sh / foo.install.bat file, at the very
end where (on *nix) it uses cat(1) to write into it.

If the file is already empty, changing how it's read won't make a
difference.

The only way it would fail that I can see is if one presses ^C to abort
installation at a very unlucky time.  This sounds like a race condition
but depending on the shell, it might be that it will process that signal
after evaluating the line that redirects stdout to the egg-info file,
but before actually invoking cat.  Dunno, grasping at straws here :)

Since you're using mingw, it's a UNIX shell at least.  Could you try
inserting a sync(1) call at the end of the .install.sh file to see if
that fixes things?

Cheers,
Peter


--
--
Complexity is your enemy. Any fool can make something complicated.
It is hard to keep things simple. - Richard Branson.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]