Boost logo

Boost-Build :

From: Victor A. Wagner, Jr. (vawjr_at_[hidden])
Date: 2003-11-30 00:58:19


At Friday 2003-11-28 10:25, you wrote:
>Victor A. Wagner, Jr. wrote:
> > OK, point by point....
> > At Friday 2003-11-28 03:20, you wrote:
> >
> >>Victor A. Wagner, Jr. wrote:
>
> >> This is
> >>not going to help your with convincing anybody in anything. Besides, if you
> >>have an idea to propose, you could have did it better than sending us to
> >>1985.
>
> > I wasn't sending you anywhere. I was pointing out that a solution to some
> > of these problems existed 18 years ago and that it seems to have been
> > ignored ever since. It consisted of having the LoadLibrary() function
> take
> > an optional version. The call would fail if a library of the asked for or
> > later couldn't be found.
>
>1. I'm well aware of the AmigaOS solution... My 4000T and 2000 are still
>happily running.
>2. Versioned linking and loading is available in ELF, which is used in many
>Unices, BSDs, and Linux.
>3. Any versioned linking or loading, on any platform (some minor exceptions),
>requires that you have the version as part of the name of the library so that
>old programs still have a chance of functioning, as multiple versions can
>exist without collision.
>
> >>Finally, you should not feel sorry for unix guys, really. When somebody
> wants
> >>to use, say boost regex, on Debian Linux, he just says:
> >>
> >> g++ <many-options> -lboost_regex
> >
> >
> > Neat trick. Have you tried that with the current CVS build and getting
> > 1.31 files?
> > All I'm asking that we be able to do the same thing on
> > windows...unfortunately when you bury the version in the filename, you
> > leave Visual Studio (VS) users with no choice except to change their
> > project setups. Due to the way VS works, it's easy to make global changes
> > to the path that will be searched for files, but not for
> > mangling/decorating the files themselves.
>
>Yes, making directory changes in your projects or system is conscious step.
>It's no different than making the changes for the names, other than in number
>of changes made.

the difference between 1 and many is severe. Remember I suggested
originally that we simply overwrite the old ones.

> >>and uses whatever version is installed on the system. In fact, I think it's
> >>probably be good if install process created the proper symlinks from
> >>libboost_regex.so to libbost_regex.$version_number.so. That would at least
> >>help packaging, and not do any harm.
>
> > Again, I wasn't talking about dynamic linking; Different can of worms.
> > Creating symlinks/hardlinks/whatever would be a solution also...can we get
> > it added to the "install"?
>
>Yes! And that is something that will get done eventually. But in BBv1 it's
>not
>as easy as it is in BBv2 ;-) I didn't think I needed to point out the
>obvious.. I thought the discussion was about removing the version number
>entirely, so excuse my misunderstanding if that wasn't the case.

I guess apologies are in order, when I refer to a filename, it's generally
everything AFTER the last '\' or '/'. all of the stuff before then I was
taught was "path"

>...But it is something that is very easy for a comprehensive installer, or
>updater. For example RPM, DebPKG, BSD/ports, etc.
>
> >>>the file NAMES themselves aren't changed (the path has) it's a HUGE
> >>>difference if you're using Visual Studio.. one simple change in the
> >>>directories to search and ALL projects use the new includes.
>
> >>So, you'd like boost_regex.1.31.0.lib to be boost_regex.lib? Hmm... is
> it all
> >>that hard to rename that manually or via script after you download new
> boost
> >>release. It's probably possible to make a copy with this name during
> >>installing, but IMO this is not so complex task as to doom boost into
> >>oblivion.
>
> > reading the command:
> > bjam -sTOOLS=blahblah install
> >
> > leaves one with the impression that it has actually installed something
> > useful on the system.
>
>It is useful, it's just not as versatile as you (and me) would want it to be.

There are a lot of newbies that I talk to daily on IRC. Many of them I
direct to www.boost.org for solutions that already exist. Since I do not
control _when_ boost choosed to release, nor, certainly do the newbies, I
think asking all the windows people to do manual work to do non-trivial
fixup work so what they used to have still works when all they really want
the newest widgit.lib for their new project.

> > What it currently leaves is something that now requires manual
> intervention
> > (perhaps a lot of it).
> > All I've been doing is suggesting that perhaps something else would be
> more
> > useful.
>
>Frankly, you did the suggesting in a tone that I took affront with. But I
>understand, and forgive :-)
>
> > As for how complex it is to rename/copy all of the files, I don't
> > know. Doing it manually certainly is tedious since 36 files are currently
> > created.
>
>Like all technology having something that works now, and will be improved
>later, is better than having nothing now, and something that might work much
>later...
>
>So creating a script that copies the files to the names you prefer would
>work,
>for now.

and then I do another script for the next? Scripting in the windows world
is somewhat limited

> >>>guess what folks..... MOST programs are written for systems that are NOT
> >>>Linux, Unix, BSD. HELLO!!!!! most computers are WINDOWS!!!!!
> >>
> >>Again, please stop making statements like this. This is just flame.
>
> > No, it's not a flame. It's intended to wake up all the people who think
> > that *nix is the end all of computing. A solution for *nix solve YOUR
> > problem, it doesn't do anything for mine.
>
>Like all things in Boost, we are about making a solution that works for many
>platforms. The solution in this case does a reasonable job of working on all
>platforms, including VMS which is the hardest to deal with. But no, it's not
>as convenient as implementing a different solution for each platform.
>
> >>Maybe, you can tell us how to create static library, then? Do you know
> of any
> >>standard tool which takes several static libraries and create one
> merged one?
> >>Or do you volunteer to write such a tool?
>
> > I don't know of such a tool. Apparently there's one that takes several
> > object files and creates one. Some tool is currently making all those
> .lib
> > files that "bjam -sTOOLS=vc7.1 install" currently makes (26 .lib, 10 .dll).
> > If Microsoft's tool doesn't do the job (and I'm beginning to suspect it
> > won't) then I guess I am volunteering to create such a tool. Or modify
> the
> > "install" portion of the bjam script currently extant.
>
>Yes the "tool" you refer to is the compiler/linker. But it only transforms
>from .obj-s to .lib. It will not transform .lib-s to a .lib. Something which
>is possible in Unix/Linux/BSD.

so, what's any clues about this LIB command that seems to be on my system?
C:\Logs\UNDERnet>lib
Microsoft (R) Library Manager Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

usage: LIB [options] [files]

options:

/DEF[:filename]
/EXPORT:symbol
/EXTRACT:membername
/INCLUDE:symbol
/LIBPATH:dir
/LIST[:filename]
/MACHINE:{AM33|ARM|EBC|IA64|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|
SH3|SH3DSP|SH4|SH5|THUMB|X86}
/NAME:filename
/NODEFAULTLIB[:library]
/NOLOGO
/OUT:filename
/REMOVE:membername
/SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|
EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|
WINDOWSCE}[,#[.##]]
/VERBOSE

....there seems to be some limited information in MSDN, I'll be checking it
out.

> >>>I'm serious folks, I showed a copy of Rene's previous response to a one of
> >>>the ops on the undernet #C++ channel and he said "They expect me go update
> >>>all my projects every time they release boost? They have to be f**king
> >>>kidding."
>
>No, I was expecting people to come up with the obvious copy or rename
>files to
>your liking solution.

I don't see manually copying / renaming 36 files to be the "obvious"
solution (tho it's currently the ONLY one)

> >>I really can't understand why it's needed to use *that* much strong words
> >>when
> >>discussing a question if some file should be just copied to another one
> with
> >>a different name!
>
> > have you ever worked on Windows and tried to make stuff? We have enough
> > problems without adding new silliness to the mix.
>
>What I don't understand is how you dealt with previous versions of Boost.
>Perhaps you can explain, with examples, how you use and distribute programs
>that use Boost over different versions. How do you deal with users having
>multiple programs that use multiple versions of Boost libraries? How do you
>install them? How do you upgrade them? -- You can replace program with
>library
>above and answer the same questions.

from looking at my make files, we got the .lib files out of wherever they
were put by bjam -sTOOLS= ....
there weren't any versions in the names (though the paths moved a couple
times).
Since we statically link everything, it wasn't much of a problem to update,
we just built everything and shipped it off telling customers to replace
their old with their new.

> > I don't understand the reluctance to fix "install" so that no further work
> > is necessary.
>
>It's not a reluctance to fix it. It is not broken. It's just not currently a
>complete solution to all problems. That takes time and more importantly
>experience.
>
>--
>-- Grafik - Don't Assume Anything
>-- Redshift Software, Inc. - http://redshift-software.com
>-- rrivera_at_[hidden] - grafik_at_[hidden] - 102708583_at_icq
>
>
>
>To unsubscribe from this group, send an email to:
>jamboost-unsubscribe_at_[hidden]
>
>
>
>Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

Victor A. Wagner Jr. http://rudbek.com
The five most dangerous words in the English language:
"There oughta be a law"

 


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