Summary
types.db not found on mingw32
Metadata
- Id: 12e95b46ec37a6ee6a911f8a93fc1f9f4b1cda30
- Trac id: 1714
- Type: defect
- Reporter: roti
- Owner:
- Cc:
- Status: closed
- Component: unknown
- Estimated difficulty:
- Resolution: wontfix
- Priority: major
- Milestone: someday
- Version: 5.2.0
- Changetime: 2026-07-04 22:18:42 UTC
- Created: 2020-08-08 15:35:38 UTC
- Keywords:
Description
Hi,
On my build (Windows, with an old mingw32) `types.db` is not found anymore.
D:\tmp\chicken\'types.db' not found>type str.scm (display "Sunday") (newline) D:\tmp\chicken\'types.db' not found>chicken str.scm -output-file "str.c" Error: default type-database `types.db' not found
Chicken is installed in "C:\Program Files (x86)\Chicken Scheme", and types.db is in "c:\Program Files (x86)\Chicken Scheme\lib\chicken\11\" . Where does csc look for `types.db`?
Changes and comments
[2020-12-13 15:46:43 UTC] roti wrote:
I found the problem. `chicken.exe` looks for `types.db` in `c:/chicken/lib/chicken/11`, because `c:/chicken` is the prefix with which chicken was compiled.
Setting the environment variable `CHICKEN_REPOSITORY_PATH` to the correct path solves the problem. Unfortunately the same happens when using `csc`:
D:\tmp\chicken>csc test.scm The system cannot find the path specified. Error: shell command terminated with non-zero exit status 1: ""c:/chicken/bin/chicken.exe" "test.scm" -output-file "test.c""
The bigger problem seems to be following: the installer I built for windows installs a precompiled version of chicken, and relies on the environment variable `CHICKEN_PREFIX` to override the prefix which was used during build. This does not seem to work.
So the question is whether and how this can be done. The various paths seem to be defined in C variables.
(define host-repo (foreign-value "C_INSTALL_EGG_HOME" c-string)) (define host-libdir (foreign-value "C_INSTALL_LIB_HOME" c-string)) (define host-bindir (foreign-value "C_INSTALL_BIN_HOME" c-string)) (define host-incdir (foreign-value "C_INSTALL_INCLUDE_HOME" c-string)) (define host-sharedir (foreign-value "C_INSTALL_SHARE_HOME" c-string)) (define host-libs (foreign-value "C_INSTALL_MORE_LIBS" c-string)) (define host-cflags (foreign-value "C_INSTALL_CFLAGS" c-string)) (define host-ldflags (foreign-value "C_INSTALL_LDFLAGS" c-string)) (define host-cc (foreign-value "C_INSTALL_CC" c-string)) (define host-cxx (foreign-value "C_INSTALL_CXX" c-string))
Can they be overridden/changed after chicken was build?
Sources for the installer are here: https://bitbucket.org/roti/chicken-installer
[2026-07-04 22:18:42 UTC] felix wrote:
obsolete.