|
Boost : |
From: Ed James-Beckham (edjboost_at_[hidden])
Date: 2002-02-26 02:23:38
> Oh dear, it looks like they haven't fixed anything.
Is that right?
>
> Mark
There is more than one way to measure how much a
compiler has 'improved' when compiling Boost. One is
to see how many failures happen with the little files
in the libs/config/test directory. That is basically
how I got this diff for Borland C++Builder6. It looks
like Borland C++ does pass some Boost code that it
failed before, but, unfortunately fails others where
it had passed in C++Builder 5.5.1. - It's like my
friend says: "You should upgrade. All your problems
will be ... different." :) The next step is to get
C++Builder to work better with Boost by making
workarounds in Boost, the way that the numerous VC++
bugs have been worked around, for instance.
This brings me to another way to measure how much a
compiler has 'improved' when compiling Boost: What I
call the raw score. I compile all the Boost source
files with -DBOOST_NO_CONFIG. (I leave out the
*fail.cpp files because those are negative tests.)
Using this method, here are the results for the two
vendor compilers I have handy on my Win32 machine (All
results from the latest Boost from 0800GMT
2002.02.26):
VC6 (12.00.8804 for 80x86)
Total Compile Build Run
476 60 60 54
Percentage 0.12 0.12 0.11
VC7(13.00.9254 for 80x86)
Total Compile Build Run
476 77 77 75
Percentage 0.16 0.16 0.15
BCB551
Total Compile Build Run
476 105 105 100
Percentage 0.22 0.22 0.21
BCB6
Total Compile Build Run
476 146 146 141
Percentage 0.30 0.30 0.29
You can see from these raw scores that: BCB has
always performed better on Boost than VC in the
'complete conformance' mode of BOOST_NO_CONFIG. You
can also see that from the latest that BCB has
improved about 8% on Boost, while VC has improved by
about 4%.
With the above numbers in mind, the other statistic
that I find fascinating is the 'cooked' scores. That
is, telling Boost to use its knowledge of compiler
bugs when running these same tests:
VC7
Total Compile Build Run
476 173 173 167
Percentage 0.36 0.36 0.35
VC6
Total Compile Build Run
476 250 250 230
Percentage 0.52 0.52 0.48
BCB6
Total Compile Build Run
476 221 221 208
Percentage 0.46 0.46 0.43
BCB51
Total Compile Build Run
476 228 228 217
Percentage 0.47 0.47 0.45
So what does this tell us?
1) Boost developers worked a lot harder getting VC6 up
from 12% to 52% by working around its bugs than they
did getting the BCB51 up from 22% to 47%. They eked
out a 40% increase working around VC6 bugs whereas
they have only squeaked out a 25% increase working
around BCB51 bugs - although BCB51 starts out
digesting more of Boost to begin with!
2) Boost developers have not yet as a group got their
libraries working around the VC7 bugs.
3) Assuming all is equal, if Boost developers could
raise BCB6 up as much as they have raised VC6 up, we
_could_ have a popular Win32-based C++ compiler that
scores (.30 raw + .40 increase on cooked) 70% on
Boost!
I would like to know how I can help get the BCB6
scores up. We can start by someone checking in that
change to borland.hpp. How does one go about getting
on the Boost team? I am willing to do this work, but
I don't know where to start.
-edj
__________________________________________________
Do You Yahoo!?
Yahoo! Sports - Coverage of the 2002 Olympic Games
http://sports.yahoo.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk