chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] porting eggs experiences and questions


From: Mario Domenech Goulart
Subject: Re: [Chicken-users] porting eggs experiences and questions
Date: Fri, 17 Aug 2018 17:02:46 +0200

Hi Jörg,

On 17 Aug 2018 12:33:28 +0200 Jörg F. Wittenberger <address@hidden> wrote:

> I just ported a first egg. (Pigeon-hole, "simple" mailbox with
> capacity constraint flow control and no timeouts.)
>
> * Question: what's about the .release-info
>
> This https://wiki.call-cc.org/porting-c4-to-c5 was helpful, but does
> not mention the release process.
>
> How would I mark a release for C5?

Basically, you need a .release-info file that points to the tarball of
your egg for CHICKEN 5.

Regarding tagging on the same repo, I don't know exactly what apporach
people are using.  In svn, as eggs for CHICKEN 4 and 5 are in diferent
directories, and there are directories for tags, the versioning scheme
for eggs for CHICKEN 4 and 5 are completely independent.

> Any thought on how to have both a C4 and C5 version in the same repo?
> I'll have to support C4 for quite a while. Now I wonder how best
> reorganize the code to work for both.

I'm maintaining all my eggs in the same repo, same branch, same
.release-info file and same versioning scheme for both CHICKEN 4 and 5.
In my experience, that's not difficult.

I don't intend to maintain multiple repositories/branches for each egg,
and I don't intend to phase out my aggs for CHICKEN 4 anytime soon.

In theory, to make your eggs work with both CHICKEN 4 and 5, you just
need an extra .egg file and some `cond-expand' here and there. In the
extreme case where large portions of your code are CHICKEN
version-specific, you can use `cond-expand' to `include' files that are
specific to some particular CHICKEN version.  I intend to resort to the
`include' trick for salmonella, for example (a significant part of
salmonella for CHICKEN 4 is not compatible with CHICKEN 5, and
vice-versa).

> * Observation: chicken-install does not install dependencies
>
> This is just odd: The .egg file contains (dependencies srfi-18);
> chicken-install did the download but not install it. So compilation
> failed until I manually did
>
> chicken-install srfi-18

That's weird.  We don't observe this behavior on any of the automated
tests (http://tests.call-cc.org).

> * chicken-install -n -test
>
> Fails.  One needs to actually install first, then run the test.
>
> Better at least warn that we test the installed version, not the
> current one. (I recall this bite me before.)
>
> Best: just load the version from the working directory.

I think this pretty much depends on how tests are implemented.  If they
import things assuming that the eggs are installed, you have to install
them before running tests.  Or you can hack your tests to load/import
the code from the source directory.

> Thanks for all the work which went into C5.

All the best.
Mario
-- 
http://parenteses.org/mario



reply via email to

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