[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: #1842: Possibly inconsistent install/lookup behavior in the presence
From: |
Chicken Trac |
Subject: |
Re: #1842: Possibly inconsistent install/lookup behavior in the presence of CHICKEN_INSTALL_PREFIX |
Date: |
Mon, 26 Aug 2024 16:33:22 -0000 |
#1842: Possibly inconsistent install/lookup behavior in the presence of
CHICKEN_INSTALL_PREFIX
-------------------------------------+-------------------------------------
Reporter: Mario | Owner: (none)
Domenech Goulart |
Type: defect | Status: new
Priority: major | Milestone: someday
Component: core | Version: 5.4.0
libraries | Keywords: CHICKEN_INSTALL_PREFIX,
Resolution: | chicken-install, srfi-29
Estimated difficulty: |
-------------------------------------+-------------------------------------
Description changed by Mario Domenech Goulart:
Old description:
> The title is very poor and the description is going to be a paste of the
> discussion in #chicken.
>
> Basically, the issue is highlighted by one of the tests of srfi-29
>
> {{{
> -- testing Installed Test Bundle
> -------------------------------------
> (localized-template/default 'srfi-29 'srfi-29) ............... [
> FAIL]
> expected "SRFI 29" but got srfi-29
> }}}
>
> Discussion in #chicken:
>
> {{{
> <mario-goulart> klovett: apparently srfi-29 is installing the srfi-29
> bundle via the `data' section
> in the .egg file. That makes the bundle be installed
> under PREFIX/share/chicken
> when CHICKEN_INSTALL_PREFIX is *unset*. When
> CHICKEN_INSTALL_PREFIX *is set*
> (that's what salmonella does), the srfi-29 bundle is
> installed under PREFIX/share
> (no chicken directory).
> <mario-goulart> Then srfi-29 looks for bundles under include-path, which
> resolves to
> C_INSTALL_SHARE_HOME when CHICKEN_INCLUDE_PATH is
> *unset*. In that case,
> PREFIX/share/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).
> However when
> CHICKEN_INCLUDE_PATH *is set*, chicken-install installs
> the bundle under
> PREFIX/share, but in runtime it looks for bundles under
> include-path, which is the
> value of CHICKEN_INCLUDE_PATH, which is set by salmonella
> as
> <mario-goulart> PREFIX/share/chicken.
> <Bunny351> hm...
> <mario-goulart> Now I don't know if salmonella is setting
> CHICKEN_INCLUDE_PATH wrongly of if the
> default values given to override-prefix in egg-
> compile.scm is wrong.
> <Bunny351> possible
> <mario-goulart> The default values given to override-prefix definitely
> don't match the values of
> C_INSTALL_INCLUDE_HOME and C_INSTALL_SHARE_HOME.
> <klovett> originally it only looked in (chicken-home)
> <mario-goulart> I think that was the same as what now (include-path) is,
> if I'm not mistaken.
> <klovett> well, one is a set
> <mario-goulart> I _think_ (don't quote me on that) the root cause of the
> issue is the inconsistency
> between the values of
> C_INSTALL_INCLUDE_HOME/C_INSTALL_SHARE_HOME and the way that
> override-prefix assembles paths when when
> CHICKEN_INSTALL_PREFIX is set.
> <klovett> is something is chicken.platform returning PREFIX/share? i can
> code the envvar test &
> subsequent path assumption but rather not.
> <mario-goulart> That's part of the problem I'm implying. You can get
> PREFIX/share *if*
> CHICKEN_INCLUDE_PATH is set to PREFIX/share. If
> CHICKEN_INCLUDE_PATH is *not set*
> you'll get PREFIX/share/chicken (or, more accurately,
> PREFIX/share/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)).
> <mario-goulart> This whole thing is very confusing.
> <klovett> there is not a '(data-path)' so i will assume if
> CHICKEN_INSTALL_PREFIX is set then push
> "...PREFIX/share" onto the search list
> <mario-goulart> I think it would be better to wait a bit. I _think_
> srfi-29 is probably doing the
> right thing. The issue _might_ be in salmonella or in
> CHICKEN.
> <klovett> ok
> <klovett> looks like a job for chicken.platform#data-repository or
> similar
> }}}
New description:
The title is very poor and the description is going to be a paste of the
discussion in #chicken.
Basically, the issue is highlighted by one of the tests of srfi-29
{{{
-- testing Installed Test Bundle
-------------------------------------
(localized-template/default 'srfi-29 'srfi-29) ............... [
FAIL]
expected "SRFI 29" but got srfi-29
}}}
Discussion in #chicken:
{{{
<mario-goulart> klovett: apparently srfi-29 is installing the srfi-29
bundle via the `data' section in the .egg file. That
makes the bundle be installed under
PREFIX/share/chicken when CHICKEN_INSTALL_PREFIX is
*unset*. When CHICKEN_INSTALL_PREFIX *is set* (that's
what salmonella does), the srfi-29 bundle is installed
under PREFIX/share (no chicken directory).
<mario-goulart> Then srfi-29 looks for bundles under include-path,
which resolves to C_INSTALL_SHARE_HOME when
CHICKEN_INCLUDE_PATH is *unset*. In that case,
PREFIX/share/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).
However
when CHICKEN_INCLUDE_PATH *is set*, chicken-install
installs the bundle under PREFIX/share, but in runtime
it looks for bundles under include-path, which is the
value of CHICKEN_INCLUDE_PATH, which is set by
salmonella as PREFIX/share/chicken.
<Bunny351> hm...
<mario-goulart> Now I don't know if salmonella is setting
CHICKEN_INCLUDE_PATH wrongly of if the default values
given to override-prefix in egg-compile.scm is wrong.
<Bunny351> possible
<mario-goulart> The default values given to override-prefix definitely
don't match the values of C_INSTALL_INCLUDE_HOME and
C_INSTALL_SHARE_HOME.
<klovett> originally it only looked in (chicken-home)
<mario-goulart> I think that was the same as what now (include-path)
is, if I'm not mistaken.
<klovett> well, one is a set
<mario-goulart> I _think_ (don't quote me on that) the root cause of
the issue is the inconsistency between the values of
C_INSTALL_INCLUDE_HOME/C_INSTALL_SHARE_HOME and the
way that override-prefix assembles paths when when
CHICKEN_INSTALL_PREFIX is set.
<klovett> is something is chicken.platform returning PREFIX/share? i
can code the envvar test & subsequent path assumption but
rather not.
<mario-goulart> That's part of the problem I'm implying. You can get
PREFIX/share *if* CHICKEN_INCLUDE_PATH is set to
PREFIX/share. If CHICKEN_INCLUDE_PATH is *not set*
you'll get PREFIX/share/chicken (or, more accurately,
PREFIX/share/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)).
<mario-goulart> This whole thing is very confusing.
<klovett> there is not a '(data-path)' so i will assume if
CHICKEN_INSTALL_PREFIX is set then push "...PREFIX/share"
onto the search list
<mario-goulart> I think it would be better to wait a bit. I _think_
srfi-29 is probably doing the right thing. The issue
_might_ be in salmonella or in CHICKEN.
<klovett> ok
<klovett> looks like a job for chicken.platform#data-repository or similar
}}}
--
--
Ticket URL: <https://bugs.call-cc.org/ticket/1842#comment:1>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.