chicken-janitors
[Top][All Lists]
Advanced

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

#1842: Possibly inconsistent install/lookup behavior in the presence of


From: Chicken Trac
Subject: #1842: Possibly inconsistent install/lookup behavior in the presence of CHICKEN_INSTALL_PREFIX
Date: Mon, 26 Aug 2024 16:30:43 -0000

#1842: Possibly inconsistent install/lookup behavior in the presence of
CHICKEN_INSTALL_PREFIX
-------------------------------------+-------------------------------------
            Reporter:  Mario         |       Type:  defect
  Domenech Goulart                   |
              Status:  new           |   Priority:  major
           Milestone:  someday       |  Component:  core libraries
             Version:  5.4.0         |   Keywords:  CHICKEN_INSTALL_PREFIX,
Estimated difficulty:                |  chicken-install, srfi-29
-------------------------------------+-------------------------------------
 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
 }}}

-- 
Ticket URL: <https://bugs.call-cc.org/ticket/1842>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

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