Boost logo

Boost Testing :

Subject: Re: [Boost-testing] bjam causes regression tests to fail
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2008-11-19 01:39:09


Rene Rivera wrote:

> Sorry, I'm not usually available during my daytime hours any more...
>
> Vladimir Prus wrote:
>> Markus Schöpflin wrote:
>>
>>> Hello,
>>>
>>> I just noticed the following error messages in the bjam.log file of my
>>> regression runner:
>>>
>>> ---%<---
>>> notice: found boost-build.jam at /vol2/boost/regression/boost/boost-build.jam
>>> notice: loading Boost.Build from /vol2/boost/regression/tools_bb
>>> error: escape sequences are not supported
>>> error: your version of bjam is likely out of date
>>> error: please get a fresh version from SVN.
>>> --->%---
>>>
>>> AFAICT, this has started today. Anyone else seeing this? Any idea what
>>> might be causing it?
>>
>> Oh, rats! The thing is, SVN HEAD version of Boost.Build needs SVN HEAD
>> version of Boost.Jam in order. If a user has non-SVN Boost.Jam, then
>> building Boost documentation will fail in a weird say. So, I've added
>> automatic check. Alas, regression tests use SVN Boost.Build and pinned
>> release of Boost.Jam.
>>
>> I don't really know the best solution here -- in general, SVN Boost.Build
>> will not work with any random past release of Boost.Jam -- see another
>> message on this matter I've sent earlier.
>
> At minimum the trunk of BBv2 has to work with the release of bjam. It's
> why we have a bunch of version checks, feature checks and alternate
> implementations of BBv2 code.

It is not in general possible. The issue in question is that Boost.Jam did not have
escape characters, so Boost.Build code was essentially broken in interesting ways
depending on which platform you run things. It can't me made to "work" with older
Boost.Jam, except in the "work on some platforms" sense.

> Anything else would make bring it back to
> the horrible days of yonder past where users could not test, use, or
> otherwise operate with current Boost and Boost.Build.

It seems the current situation is just the opposite -- we cannot make any
changes that rely on any Boost.Jam fixes. In fact, how is it possible to
make *any* Boost.Jam release -- if Boost.Jam trunk is not used for any testing,
you have no idea if current Boost.Jam trunk will break all of Boost.Build, or
not.

Of course, I can write Boost.Build test setup to build a private copy of Boost.Jam
from trunk sources, but that will only help with Boost.Build tests -- and it
would mean that any future Boost.Jam release can expose arbitrary bugs on C++ Boost.

- Volodya


Boost-testing list run by mbergal at meta-comm.com