chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] Argvector all the things!


From: Mario Domenech Goulart
Subject: Re: [Chicken-hackers] Argvector all the things!
Date: Sat, 22 Aug 2015 21:46:49 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Hello,

On Sat, 22 Aug 2015 20:14:52 +0200 Peter Bex <address@hidden> wrote:

> On Fri, Jul 24, 2015 at 06:08:50PM +0200, Peter Bex wrote:
>> The tricky part is bootstrapping our way into
>> a working CHICKEN 5 because so much other stuff has changed already.
>> The timing of finding a fundamental problem with our calling convention
>> is unfortunate, but we'll manage, as always.
>
> Bootstrapping is simple, once you have a working argvector CHICKEN 4.
> You just build a boot-chicken with an argvector CHICKEN 4, and then use
> said boot-chicken to build the CHICKEN 5 version.  Because this is so
> easy to do, I decided to skip making a chicken-5-argvector-bootstrap
> branch.
>
> Now, what shall we do with these argvector things?  It looks like
> SayHEY (Bevuta's application which needed the argvector changes) is
> working perfectly on ARM64, so I think that proves the viability of
> this new approach.  We can try to make it faster, later, I think.
>
> I am in favor of merging both branches.  This will cause massive
> breakage on all the Salmonella boxes, so I think this needs to be
> rolled out carefully.  Perhaps we can make a development snapshot
> for CHICKEN 4.10.1 (which includes the argvector changes)?
> This cannot be done in the usual way, because that is automated:
> by tagging the branch, a compilation process is automatically
> triggered on call-cc.org.  So we'd have to do the tagging and version
> bumping locally, then build the snapshot manually and upload it,
> and only *then* push the git repo, I think.
>
> Mario: Is that the correct way of doing it?

It looks ok, if I understand it correctly.  Alternatively, we can just
disable the automatic generation of dev-snapshots while we are tagging
the repo.

One thing is not clear to me: we currently have to build the static
bootstrap compiler for argvector in a branch then switch to another
branch to build the final compiler.  How would we do that?  Manually?

> We could do the same for CHICKEN 5, but that would have to have
> a slightly different naming convention because there is no 5.0.0
> release yet (so "5.0.1" would be weird).  Perhaps use a tag name
> like "5.0.0pre1" or something?

Looks fine to me.

> Finally, I would really like a clean Salmonella comparison of "before"
> and "after" the argvector version, but as soon as we push the
> merged version, all the Salmonella boxes will start breaking until
> the branches are reconfigured to be built with the argvector snapshots.
> Is there an easy way to do this in a sane way, such that we can compare
> the breakage caused by argvector?

We can just let things break and manually generate a salmonella diff
with the logs immediately before and after the switch to argvector.
salmonella-diff's usage is very simple.

One thing we should be careful with is the build system.
salmonella-run-publish won't tolerate build errors.  So, we should make
sure that we can use a chicken tarball to build the bootstrap compiler
("make boot-chicken" should run successfully) and complete the build
with "make install check" using the bootstrap compiler.  If these steps
work, salmonella is likely to run without problems.

Best wishes.
Mario
-- 
http://parenteses.org/mario



reply via email to

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