chicken-users
[Top][All Lists]
Advanced

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

Re: Installing Chicken 5.2.0 on Windows - chicken-install -update-db han


From: Mark Fisher
Subject: Re: Installing Chicken 5.2.0 on Windows - chicken-install -update-db hanging
Date: Tue, 31 Aug 2021 19:13:04 +0100

> Could you give 5.3.0rc2 a quick spin?  In it, we've simply
> dropped the custom implementation of opendir and readdir.

Sure thing. Looks good.
Sorry it's taken a while to respond, but I wanted to do some thorough tests.

TL,DR;
It's not crashing any more
I can install eggs, and use them.

I tried:
 1. compiling and installing in an MSYS2/MinGW64 shell
 2. compiling and installing in a windows CMD shell with MSYS2/MinGW64 paths
 3. compiling and installing in a windows CMD shell with chocolatey
make/gcc on the path

All of them worked.
However, of note was the ones with MSYS2/MinGW64 binaries on the path
created versions that make eggs think they should use "cp" instead of
"xcopy" in thier install bat files. (I think this is to do with
C_TARGET_INSTALL_PROGRAM)

For example, this version was the output from (2) above:

> set PATH=c:\chicken\bin;%PATH%
> chicken-install srfi-1   # i'd already compiled this in another shell
building srfi-1
installing srfi-1
A subdirectory or file C:\chicken\lib\chicken\11 already exists.
'cp' is not recognized as an internal or external command
- - - - -

In srfi-1.install.bat:
- - - 8< - - -
@echo off
cd /d "C:\Users\markj\AppData\Local\chicken-install\srfi-1"

mkdir %DESTDIR%"C:\chicken\lib\chicken\11"
cp -r "C:\Users\markj\AppData\Local\chicken-install\srfi-1\srfi-1.static.obj"
%DESTDIR%"C:\chicken\lib\chicken\11\srfi-1.obj"
cp -r "C:\Users\markj\AppData\Local\chicken-install\srfi-1\srfi-1.link"
%DESTDIR%"C:\chicken\lib\chicken\11\srfi-1.link"
if errorlevel 1 exit /b 1
... etc.
- - -

But building with option (3) is giving:
- - - 8< - - -
@echo off
cd /d "C:\Users\markj\AppData\Local\chicken-install\srfi-1"

mkdir %DESTDIR%"C:\chicken\lib\chicken\11"
copy /Y "C:\Users\markj\AppData\Local\chicken-install\srfi-1\srfi-1.static.obj"
%DESTDIR%"C:\chicken\lib\chicken\11\srfi-1.obj"
copy /Y "C:\Users\markj\AppData\Local\chicken-install\srfi-1\srfi-1.link"
%DESTDIR%"C:\chicken\lib\chicken\11\srfi-1.link"
if errorlevel 1 exit /b 1
... etc
- - -

Using option 3:

Compilation test with uri-common egg:
==============
;;; uri-test.scm
(import uri-common)
(print (uri->string (update-uri (uri-reference "") path: '("example"
"greeting") query: '((hi . "there")))))

> csc uri-test.scm
> uri-test.exe
example/greeting?hi=there

Interactive test
=============
C:\Users\markj>csi
CHICKEN
(c) 2008-2021, The CHICKEN Team
(c) 2000-2007, Felix L. Winkelmann
Version 5.3.0rc2 ((HEAD detached at 5.3.0rc2)) (rev 12bb5c31)
mingw32-windows-gnu-x86-64 [ 64bit dload ptables ]

Type ,? for help.
#;1> (import uri-common)
; loading C:/chicken/lib/chicken/11/uri-common.import.so ...
; loading C:/chicken/lib/chicken/11/uri-common.so ...
; loading C:/chicken/lib/chicken/11/srfi-1.so ...
; loading C:/chicken/lib/chicken/11/srfi-13.so ...
; loading C:/chicken/lib/chicken/11/srfi-14.so ...
; loading C:/chicken/lib/chicken/11/defstruct.so ...
; loading C:/chicken/lib/chicken/11/matchable.so ...
; loading C:/chicken/lib/chicken/11/uri-generic.so ...
#;2> (uri->string (update-uri (uri-reference "") path: '("example"
"greeting") query: '((hi . "there"))))
"example/greeting?hi=there"
#;3>

So I think that installing from a MSYS2/MinGW64 shell is still not
quite working correctly, but it appears to be spot on using chocolatey
with msys2/make installed.

Also, one other problem I have is that non of the binaries I created
have a chicken-install that works in a MSYS2/MinGW64 shell

- - - 8< - - -
$ chicken-install test
fetching test
'xcopy' is not recognized as an internal or external command,
operable program or batch file.

Error: (open-input-file) cannot open file - No such file or directory:
"C:\\Users\\markj\\AppData\\Local\\chicken-install\\test\\test.egg"
- - -

So it seems with chocolatey on my path its build seemed to make
everything fully "windows", whereas with MSYS2/MinGW64 on the path it
was slightly unixy (cp instead of xcopy, but still referring to
C:\\Users\\markj\\AppData etc).

Option (2) did mostly work though as a solution without chocolatey,
but only because unix style binaries were on the path.

mark



reply via email to

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