Boost logo

Boost-Build :

From: David Abrahams (gclbb-jamboost_at_[hidden])
Date: 2003-06-09 06:47:10


Vladimir Prus <ghost_at_[hidden]> writes:

> David Abrahams wrote:
>> Vladimir Prus <ghost_at_[hidden]> writes:
>> > David Abrahams wrote:
>> >> Vladimir Prus <ghost_at_[hidden]> writes:
>> >> >> plus it would have drawn path.jam into the kernel,
>> >> >
>> >> > Not sure code duplication is better.
>> >>
>> >> It's not duplication. My normalize-raw-paths is smaller, cleaner,
>> >> easier to understand, and better-documented ;-)
>> >
>> > Good statement! Whether it's smaller/cleaner/easier/whatever is
>> > orthogonal question. There's two pieces of code which do the same
>> > thing, and that's code duplication, by definition.
>>
>> Not by my definition. My definition of code duplication is code
>> which is syntactically substantially identical. This is duplication
>> of functionality,
>
> Ah... ok. I don't distinguish between the two.
>
>> which is definitely also an evil, but perhaps a smaller one.
>
> It's certainly still evil.
>
>> What about replacing the complicated implementation in path.jam with
>> something based on normalize-raw-paths?
>
> The problem is that 'normalize-raw-paths' does something less --- it cannot
> join two paths together.

Most of what join is doing happens after the split. You realize that
normalize-raw-paths is really based on simplify-path-tokens from
allyourbase.jam?

> I'll probably see how path.join can be improved, by anyway: unless
> path.jam is moved to "kernel", "modules.jam" cannot benefit from it.
>
>> > Besides, the email you've responded to questioned the need to call
>> > 'normalize-raw-paths' at all. Do you have any comments on this?
>>
>> I put it in there because I wanted to be able to move modules from
>> "tools/new" to tools/xxx as follows:
>>
>> 1. Copy the file to tools/xxx
>>
>> 2. Modify the version in tools/new to generate an error when
>> executed, to be sure it isn't getting used.
>
> Why not "cvs rm -f tools/new/something.jam"? Or just "rm
> tools/new/something.jam"?

I'm not sure, honestly.

>> 3. Run all the tests.
>>
>> The problem in that case is that other modules still in tools/new
>> would always pick up the wrong version without even trying.
>>
>> It could be seen, I suppose, as a transitional measure.
>
> I'm probably missing something, but you can move files without this
> measure.

It's true.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com
 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk