[boost] Re: Policy-based smart pointers revisisted (was: Re:Preliminarysubmission: command line & config file library)

2003-01-17 Thread Edward Diener
"David Abrahams" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
Terje Slettebø <[EMAIL PROTECTED]> writes:

>>From: "David Abrahams" <[EMAIL PROTECTED]>
>>
>> Please don't take this to mean I'm against a
>> policy-based smart pointer; quite the opposite.  I've
>> said all along it would be great to have one in boost.
>> I've even wished I had an appropriate occasionally.
>>
>> I just don't want to trivialize what I perceive to be
>> valid concerns, either.  Understanding the costs of
>> complexity should be as important to the designer of
>> policy-based classes as to everyone else, if not more
>> so.
>
> I understand the concern. For one thing, we don't have template typedefs,
> yet, although me may get a similar effect (if not the same type) with
e.g.:
>
> template
> struct shared_ptr : smart_ptr {};
>
> etc.
>
> However, I also understand the concern regarding understanding the
policies
> available, their responsibilities and interaction. Therefore, convenience
> templates like the above could make it easier to use them, while still
> allowing new convenience templates/template typedefs to be made, or new
> policy implementations added.
>
> Having such convenience templates is a bit like having a small
configuration
> DSL on top of the policy-based smart pointer, to use the terminology in
C&E.

-Sure, and I expected we'd do that.  Not to beat this horse to death,
-but I think even that doesn't insulate users from the parameters
-completely.  They'll see it in the documentation, and wonder what's
-going on under the covers with all that complexity, and it will be a
-distraction.

I don't think that is the distraction.

The biggest problem with policy-based template classes is the same as the
problem with functions which have many default parameters: it's difficult to
set just one somewhere in the middle because one must know the reasonable
defaults for everything preceding it. This is a weakness in C++ itself, in
the default parameters system. Previous to template classes it hasn't been
much of an issue since there has been little need to design functions with
many default parameters. However with template classes and the "policy" idea
this weakness really crops up. Policy-based template classes would work fine
if one could choose to set a particular policy within a choice of policies
of a given type without having to worry about any other policy types. But
with the method of specifying default parameters, whether for functions or
types in a template class parameter list, the idea of policy-based template
classes is much less effective simply because it becomes much harder to use
for the end-user. There is something to be said for ease-of-use for template
classes as for anything else.

I wonder if there have been any murmurs in the C++ standard committee about
the system for setting default parameters somehow being changed to solve
this problem, so that a user can override a default without having to
override all preceding ones. I know I have heard suggestions about named
default parameters but that doesn't seem to solve the problem in my mind.
Something clearer and cleaner is needed but I don't know what it is.




___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Policy-based smart pointers revisisted (was: Re:Preliminary submission: command line & config file library)

2003-01-17 Thread David Abrahams
Terje Slettebø <[EMAIL PROTECTED]> writes:

>>From: "David Abrahams" <[EMAIL PROTECTED]>
>>
>> Please don't take this to mean I'm against a
>> policy-based smart pointer; quite the opposite.  I've
>> said all along it would be great to have one in boost.
>> I've even wished I had an appropriate occasionally.
>>
>> I just don't want to trivialize what I perceive to be
>> valid concerns, either.  Understanding the costs of
>> complexity should be as important to the designer of
>> policy-based classes as to everyone else, if not more
>> so.
>
> I understand the concern. For one thing, we don't have template typedefs,
> yet, although me may get a similar effect (if not the same type) with e.g.:
>
> template
> struct shared_ptr : smart_ptr {};
>
> etc.
>
> However, I also understand the concern regarding understanding the policies
> available, their responsibilities and interaction. Therefore, convenience
> templates like the above could make it easier to use them, while still
> allowing new convenience templates/template typedefs to be made, or new
> policy implementations added.
>
> Having such convenience templates is a bit like having a small configuration
> DSL on top of the policy-based smart pointer, to use the terminology in C&E.

Sure, and I expected we'd do that.  Not to beat this horse to death,
but I think even that doesn't insulate users from the parameters
completely.  They'll see it in the documentation, and wonder what's
going on under the covers with all that complexity, and it will be a
distraction.

One way out might be not to tell them that shared_ptr is built on the
policy-based one.

I think Peter also values the fact that boost::shared_ptr has few
dependencies on other boost code, a problem I don't see such an easy
way out of.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Policy-based smart pointers revisisted (was: Re: Preliminarysubmission: command line & config file library)

2003-01-17 Thread Terje Slettebø
>From: "David Abrahams" <[EMAIL PROTECTED]>
>
> Please don't take this to mean I'm against a
> policy-based smart pointer; quite the opposite.  I've
> said all along it would be great to have one in boost.
> I've even wished I had an appropriate occasionally.
>
> I just don't want to trivialize what I perceive to be
> valid concerns, either.  Understanding the costs of
> complexity should be as important to the designer of
> policy-based classes as to everyone else, if not more
> so.

I understand the concern. For one thing, we don't have template typedefs,
yet, although me may get a similar effect (if not the same type) with e.g.:

template
struct shared_ptr : smart_ptr {};

etc.

However, I also understand the concern regarding understanding the policies
available, their responsibilities and interaction. Therefore, convenience
templates like the above could make it easier to use them, while still
allowing new convenience templates/template typedefs to be made, or new
policy implementations added.

Having such convenience templates is a bit like having a small configuration
DSL on top of the policy-based smart pointer, to use the terminology in C&E.


Regards,

Terje

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Preliminary submission: command line & config fil elibrary

2003-01-17 Thread David B. Held
"David Abrahams" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> [...]
> > We received some resistance from some developers
> > claiming it was too complex. But in my view, if you
> > don't want to look inside, the typedefs are simple
> > enough, just use them.
>
> We don't have typedef templates; you must mean
> something else
> [...]

I suspect that what he means is, for a given T, create a
typedef of the smart pointer specialized on T.

Dave




___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] type traits question

2003-01-17 Thread Ronald Garcia


On Fri, 17 Jan 2003, Aleksey Gurtovoy wrote:

> Ronald Garcia wrote:
> > Howdy.  I am trying to use KCC in strict mode to compile some
> > code that  depends on type traits.
>
> Which version? Does it support partial template specialization/template
> template parameters?
>
Here's the version blurb:

Edison Design Group C/C++ Front End, version 2.43.1 (Jan 16 2001 11:20:19)
Copyright 1988-1999 Edison Design Group, Inc.

KAI C++ 4.0d (KCC) -- Jan 16 2001 -- (C) Copyright 1994-2000 Kuck &
Associates,
Inc.


AFAIK It supports partial template specialization.
I don't even know the syntax for template template parameters :).
If you give me an example of it, I can give it a try.


Let me know if there is any more information I can give you.  Note that
KCC only gives problems when I run it in --strict mode.  Otherwise it
seems to run okay.

Cheers,

ron

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread David Abrahams
[EMAIL PROTECTED] (David Bradley) writes:

> David Abrahams wrote:
>
>>It's truly amazing how many problems are solved by the existing
>>boost::shared_ptr<> design, and it's a big advantage to have a
>>single-source smart pointer which "just works" in so many ways.
>>There's so much to learn about what it's capable of that many people
>>legitimately believe more parameterization would harm
>>understandability.
>>
>>
> A number of years ago we used a policy based smart
> pointer class. Worked really well. Allowed us to easily
> choose between intrusive and passive ref counts, as
> well as incorporate thread safe vs non-thread safe
> versions and easily use the type of smart pointer we
> needed for the task at hand all with the same interface
> and familiarity. Not to mention that once we got the
> basic implementation right, adding new policies was a
> breeze.

I don't doubt it a bit.  A parameterizable smart pointer
is surely useful.

> We received some resistance from some developers
> claiming it was too complex. But in my view, if you
> don't want to look inside, the typedefs are simple
> enough, just use them. 

We don't have typedef templates; you must mean
something else -- but I agree that it's easy to hide
parameterization in a smart pointer interface.  All the
same, I think your experience with "some developers"
proves that this hiding isn't 100% effective.  For
whatever reason, it incurred mental overhead for these
people.

> It's just like the rest of the STL that is quite
> complex, but people use it.

I really don't think so.  The STL is designed around
parameterization.  None of the components have a
similar flavor to boost::shared_ptr, which provides a
remarkably rich set of capabilities with practically no
parameterization.

> If one fear this, then why would they not fear
> std::string and std::wstring. Both those represent
> more complex templates. They each could have been
> implemented as a class, "simplifying" the
> implementation. Granted it's not a great analogy, but
> I don't think a policy based smart pointer is that
> much different.

It's not a great analogy because though the std strings
provide a complicated interface (even ignoring the
parameters), they're conceptually trivial.  The boost
shared_ptr provides a simple interface and is
conceptually rich.  The fear with smart pointers is
that a plethora of parameters will interfere with
understanding the concepts of shared_ptr which I guess
is supposed to represent the "perfect balance" for
common cases.

Please don't take this to mean I'm against a
policy-based smart pointer; quite the opposite.  I've
said all along it would be great to have one in boost.
I've even wished I had an appropriate occasionally.

I just don't want to trivialize what I perceive to be
valid concerns, either.  Understanding the costs of
complexity should be as important to the designer of
policy-based classes as to everyone else, if not more
so.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Rozental, Gennadiy
> 
> my_program ( 0, 1) ( 1, 3) (( 0, 1), 15 ), (( 0,1), (7.8) )
> This is input  of 2 points circle and line.
> 
> 
> This isn't a simple parsing task anymore.
> 
> Regards Hartmut

Depends.

Imagine we have defined input operators for Shape classes
istream& operator>>( istream&, Point& );  // accept format (x,y); in other
case throw an exception
istream& operator>>( istream&, Circle& ); // accept format ((x,y), r); in
other case throw an exception
istream& operator>>( istream&, Line& );   // accept format ((x1,y1),
(x2,y2)) in other case throw an exception

They could even exist by itself without CLA processing needs. Each one of
them is easily implemented (with tokenizer for example). Now In combination
with chain_lookup_policy we could have a cla::parser that accept above
syntax with arbitrary order of elements. The idea is originated by the
article "Industrial strength Pluggable Factories" that could be found
online.

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread Hartmut Kaiser
Gennadiy Rozental wrote:

> > Why reinvent the wheel and not reuse existing code, which
> is much more
> > flexible (and _you_ are the one, who stresses flexibility)
> and better
> > fits into the task to solve.
>
> Even with my limited knowledge of Spirit, still I do not
> believe I duplicate Spirit functionality in any way. What I
> define are the skeletons for different parsing logics. One
> could choose what parser (interpreter in my
> terms) to use to do a real job.


my_program ( 0, 1) ( 1, 3) (( 0, 1), 15 ), (( 0,1), (7.8) )
This is input  of 2 points circle and line.


This isn't a simple parsing task anymore.

Regards Hartmut




___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread David Bradley
David Abrahams wrote:


It's truly amazing how many problems are solved by the existing
boost::shared_ptr<> design, and it's a big advantage to have a
single-source smart pointer which "just works" in so many ways.
There's so much to learn about what it's capable of that many people
legitimately believe more parameterization would harm
understandability.

 

A number of years ago we used a policy based smart pointer class. Worked 
really well. Allowed us to easily choose between intrusive and passive 
ref counts, as well as incorporate thread safe vs non-thread safe 
versions and easily use the type of smart pointer we needed for the task 
at hand all with the same interface and familiarity. Not to mention that 
once we got the basic implementation right, adding new policies was a 
breeze.

We received some resistance from some developers claiming it was too 
complex. But in my view, if you don't want to look inside, the typedefs 
are simple enough, just use them. It's just like the rest of the STL 
that is quite complex, but people use it.

If one fear this, then why would they not fear std::string and 
std::wstring. Both those represent more complex templates. They each 
could have been implemented as a class, "simplifying" the 
implementation. Granted it's not a great analogy, but I don't think a 
policy based smart pointer is that much different.

David Bradley
[EMAIL PROTECTED]

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


RE: [boost] type traits question

2003-01-17 Thread Aleksey Gurtovoy
Ronald Garcia wrote:
> Howdy.  I am trying to use KCC in strict mode to compile some 
> code that  depends on type traits.  

Which version? Does it support partial template specialization/template
template parameters?

> I am getting a large quantity of errors along these lines:
> 
> "/u/garcia/src/boost/boost/type_traits/is_volatile.hpp", line 
> 33: error:
>   identifier "is_volatile_rebind" is undefined
> 
> BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv
> _traits_imp::is_volatile)
>   ^
> 
> "/u/garcia/src/boost/boost/type_traits/remove_const.hpp", 
> line 56: error:
>   identifier "remove_const_rebind" is undefined
>   BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename
> detail::remove_const_impl::type)
>   ^
[...]
> 
> Any idea what might be causing this?  

Yep. The marked line below makes the 'remove_const' definition ill-formed,
and that's what the BOOST_TT_AUX_TYPE_TRAIT_DEF1 macro expands to on
non-conforming compilers:

template< typename T > struct remove_const
{
typedef T type;

friend class remove_const_rebind;
typedef remove_const_rebind rebind; // here
};

Your KCC is the first compiler that is classified by the config system as
non-conforming (not supporting PTS/TTP), but yet complaining about the above
line :). There are several ways how I can fix the above, but before
attempting the fix I need to know answers to the foregoing questions.

Aleksey
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & confi g fil e library

2003-01-17 Thread Rozental, Gennadiy
> ... through something like lexical property map:

[skip]

This is basically how key_lookup_policy::operator[]( std::string key_name )
is implemented.

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Rozental, Gennadiy
> Why reinvent the wheel and not reuse existing code, which is much more
> flexible (and _you_ are the one, who stresses flexibility) and better
> fits into the task to solve. 

Even with my limited knowledge of Spirit, still I do not believe I duplicate
Spirit functionality in any way. What I define are the skeletons for
different parsing logics. One could choose what parser (interpreter in my
terms) to use to do a real job.

> I like the way Valodiya solves this: a
> clear, streamlined but extensible library with a simple but powerful
> interface. 

I would appreciate your comments on both submissions. Doesn't my solution is
"clear, streamlined with a simple but powerful interface. 

> If I need cla parsing (quite simple or more elabourated - as
> in your geometry sample), I can write my own parsers and make them fit
> into the picture seemless without any headache. 

So you could with my framework.

> I do not 
> expect from the
> cla framework to do the parsing for me, 

I do. Why should I repeat string->type interpretation in every program that
use cla framework. Another reason is that IMO it's more C++ like solution to
work with typed parameters and arguments. Would I work in perl I prefer
strings. Also typed parameters allowed me to perform additional validation
on whether value could be interpreted as target type.

> it should return strings
> associated with keys (which are strings too) from different locations
> (cla, cfg file, registry etc.). That's all.

I do provide an ability to return string results of course if you prefer
that.

> 
> Just my 2c worth.
> Regards Hartmut
> 

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Aleksey Gurtovoy
[EMAIL PROTECTED] wrote:
> I do not expect from the cla framework to do the parsing for me, it 
> should return strings associated with keys (which are strings too) 
> from different locations (cla, cfg file, registry etc.).

... through something like lexical property map:

template<
  typename KeyType
, typename T
, typename Compare = std::less
>
class lexical_property_map
: private std::map< KeyType,T,Compare >
{
typedef lexical_property_mapself_t;
typedef std::map< KeyType,T,Compare >   base_t;
 
 public:
typedef typename base_t::key_type   key_type;

using base_t::begin;
using base_t::end;
using base_t::empty;
using base_t::size;
using base_t::clear;
using base_t::find;

bool has_key(key_type const& a_key) const
{
return this->find(a_key) != this->end();
}

template< typename U >
self_t& put(key_type const& a_key, U const& a_value)
{
(*this)[a_key] = boost::lexical_cast(a_value);
return *this;
}

template< typename U >
U get(key_type const& a_key, U const& a_default = U()) const
{
return this->has_key(a_key)
? boost::lexical_cast( this->find(a_key)->second )
: a_default
;
}

T get(key_type const& a_key, T const& a_default = T()) const
{
return get(a_key, a_default);
}

};

int main()
{
lexical_property_map options;
options.put("delay", 50);
std::cout << options.get("delay");
}


Aleksey
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] type traits question

2003-01-17 Thread Ronald Garcia


Howdy.  I am trying to use KCC in strict mode to compile some code that
depends on type traits.  I am getting a large quantity of errors along
these lines:

"/u/garcia/src/boost/boost/type_traits/is_volatile.hpp", line 33: error:
  identifier "is_volatile_rebind" is undefined

BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp::is_volatile)
  ^

"/u/garcia/src/boost/boost/type_traits/remove_const.hpp", line 56: error:
  identifier "remove_const_rebind" is undefined
  BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename
detail::remove_const_impl::type)
  ^
...
...
...


Any idea what might be causing this?  I don't have this problem if I don't
use --strict mode.  I tried poking around but MPL and type traits are a
bit rich for my blood.

Cheers,

ron

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread Hartmut Kaiser
Gennadiy Rozental wrote:

> > > > It is not necessary. You program will be given *string*
> > > > "(0,1) (1,3)" and
> > > > can parse it using more powerfull means. I guess Spirit
> is quite
> > > > appropriate.
> > >
> > > I provide a way to parse it with very simple means.
> >
> > Spirit actually _is_ simple :-)
> >
> > Regards Hartmut
>
> I don't argue that. (Unfortunately) I am not familiar with
> Spirit enough to judge. What I sad is that I *also* provide a
> means to implement such parsing logic pretty easy. What would
> be more convinient, easier, more appropriate in every
> concreate case depends on several factors. One of them is
> whether or not you familiar with Spirit.

Why reinvent the wheel and not reuse existing code, which is much more
flexible (and _you_ are the one, who stresses flexibility) and better
fits into the task to solve. I like the way Valodiya solves this: a
clear, streamlined but extensible library with a simple but powerful
interface. If I need cla parsing (quite simple or more elabourated - as
in your geometry sample), I can write my own parsers and make them fit
into the picture seemless without any headache. I do not expect from the
cla framework to do the parsing for me, it should return strings
associated with keys (which are strings too) from different locations
(cla, cfg file, registry etc.). That's all.

Just my 2c worth.
Regards Hartmut



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Re: Re: proposal: safe arithmetic class

2003-01-17 Thread David Abrahams
"Thorsten Ottosen" <[EMAIL PROTECTED]> writes:

> As far as possible, a "safe numeric" is a type that never lead the
> user into implementation defined behavior. For most of my programs I
> wouldn't worry about if it meant a slower type; program correctness
> should be the only concern.

Something like
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost-sandbox/boost-sandbox/boost/bigint.hpp
fits that description.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Re: Re: proposal: safe arithmetic class

2003-01-17 Thread Thorsten Ottosen

<[EMAIL PROTECTED]> wrote in message
3D8559AE95B4D611B02C0002557C6C8B3C45CF@STH-EXCH">news:3D8559AE95B4D611B02C0002557C6C8B3C45CF@STH-EXCH...
[snip]
>
> 1) Controlled numeric type promotion and conversion
> This would be needed for safe(r) expressions; the rules for integral
> promotions, floating point promotions, integral conversions, floating
> integral conversions, and the usual arithmetic conversions, would be
encoded
> explicitly in types or implicitly in expressions. Unary and binary
> expressions are handled to produce the correct resulting type; conversions
> that would lead to loss of precision or range are invalidated, either at
> compile time or runtime. It is probably a nontrivial task to find
consensus
> on what to allow; for example, should the special rules for unsigned
> arithmetic be prohibited or not? [No expression templates required here
> either, but could potentially simplify and add functionality to the
> implementation.]
>
> Example:
>
> Int i=std::numeric_limits::max();
> Short s=7;
> UShort us=i+s; // i+s results in a type equivalent to unsigned int, and us
> is assigned "the least unsigned integer
> // congruent to the source integer (modulo 2n where n is the number of
bits
> used to represent the unsigned type)"
> // , i.e. it "wraps around". Should this be legal for this safe type?

My personal view would be that it should throw an exception.



> 2) Complex expression conversion and promotion control
>
> If the aforementioned mechanisms for controlling conversions and
promotions
> exist, there is still the matter of more "complex" arithmetic, involving
> intermediate steps. This is where the expression templates need to enter
the
> arena, because we can no longer simply evaluate the binary operations; we
> must consider the expression as a whole. If we don't, seemingly equivalent
> expressions will be treated differently (just as is the case with
> built-ins):
>
> int x=100;
> int y=100;
> int z=100;
>
> int r=x*y/z; // Probably a negative number, implementation-defined.
> safe_numeric throws an exception if all variables are safe_numeric.
> r=x/z*y; // 100. safe_numeric doesn't throw an exception.

As far as possible, a "safe numeric" is a type that never lead the user
into implementation defined behavior. For most of my programs I wouldn't
worry
about if it meant a slower type; program correctness should be the only
concern.

> I don't think all of the above was the intent of your proposal though?
no it wasn't. Of course, I also wanted a discussion because it is often not
as trivial
as I tend to think.

>(And
> also, there might be value in a partial solution for detecting
> errors/problems/strange results at runtime) The three problems stated
above
> seem to have great potential for solutions through class libraries (and
> unlimited precision types, where art thou?), and my point has been (and
is)
> that 0) is already covered by numeric_cast, and might not need another
> solution; the others remain open.

I think it might be hard to say if we need three levels of granularity.
Anyway, the important thing
is that there could be a need for more control of implicit
conversions/undefined behavior.

As I understand, there have been a proposal to include a recent C-standard
header which
defines int8_t, int32_t types (which are guarenteed to have the proclaimed
size) into C++ too.
Maybe these types could be defined with additional "safety" guarantees in
C++ so we could avoid
adding too many new names (it might be a bad idea if C programs compiled
with a C++ compiler must have
the same semantics).

regards

Thorsten













___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Preliminary submission: command line & config file li brary

2003-01-17 Thread Rozental, Gennadiy
> Since this discussion has been mostly between two folks, I
> thought I'd add my take on command line and configuration file
> handling.

Finnaly. I started to think that it's only me and Volodya who have an
interest in a subject.
 
> The purpose of command line parsing is to decode the arguments
> list into pieces of information, abstracting the syntax of the
> command line away from the program.  Thus, the library should be
> able to understand any of various encoding schemes.

Agree here. That's why lookup_policy is introduced - to support different
logic in parameter identification.

> The question then becomes how the library should provide the
> values from the command line.  There are a number of fundamental
> types that could be exposed by the library: bool, long, double,
> and string.  The question is whether the library should support
> any others.  I selected those types because Boolean and string
> parameters are obviously important, and long and double would
> handle pretty much all numeric arguments one would put in a
> command line.
> 
> You could use std::istream-based input mechanisms to allow types
> to parse an input string, thus making the argument to variable
> conversion extensible.  Beyond that, I don't think anything is
> needed.

Yes. Once parameter is identified the second task is to parse out value from
input. I separated this logic into interpreter class. Default one use
lexical_cast(istream) based solution. But if for whatever reason you prefer
scanf you will be able to use one.

> As for configuration files, there are myriad formats available
> and I don't think parsing them has anything to do with command
> lines.  

Agree here.

> I can see a special redirection mechanism in which you
> tell the command line library that all or some of the arguments
> that would otherwise be on the command line will appear in a
> file, but the format of such a file should be confined to a
> series of lines that conform to what could otherwise have been on
> the command line.

This is only one of the possible solutions to the task of providing unified
program parameters interface.
 
> Some configuration files include CPP-like preprocessing symbols
> and directives.  Some are section based (like Windows INI files).
> Some are just free form lines of text.  Some use special symbols
> to delimit required columns of data.  I don't think there's a
> good way to standardize this.
> 
> Sure, you could provide a means to read a file line by line and
> pass each line to a parser of some sort.  However, given all of
> the ways to parse the text one might find in such a file, I don't
> see how that could be done so it is sufficiently flexible and yet
> actually provides value.  IOW, the parsing would be little more
> than read a line, give it to the parser, read another line, give
> it to the parser, etc.  That certainly doesn't justify a special
> library.

Look on what my config_file iterator is doing. Don't you think it's reusable
and worth separating into library?

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Preliminary submission: command line & config fil elibrary

2003-01-17 Thread Andrei Alexandrescu
"David Abrahams" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I think that's a gross mischaracterization.  The only new design I've
> seen discussed in the past year is something (non-portable IIUC) that
> most people can't get their heads around and don't seem to need.  It's
> an interesting design idea which blends the advantages of intrusive
> and non-intrusive smart pointers, but I think is still largely
> unproven.

Sigh. I know it sounds corny, but... people who sent supportive answers to
my post through private email - please understand that that's not helpful at
all. Post them here.

Back to lurk mode. Thanks for answering Dave.

Andrei



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Preliminary submission: command line & config file li brary

2003-01-17 Thread Rob Stewart
Since this discussion has been mostly between two folks, I
thought I'd add my take on command line and configuration file
handling.

The purpose of command line parsing is to decode the arguments
list into pieces of information, abstracting the syntax of the
command line away from the program.  Thus, the library should be
able to understand any of various encoding schemes.

The question then becomes how the library should provide the
values from the command line.  There are a number of fundamental
types that could be exposed by the library: bool, long, double,
and string.  The question is whether the library should support
any others.  I selected those types because Boolean and string
parameters are obviously important, and long and double would
handle pretty much all numeric arguments one would put in a
command line.

You could use std::istream-based input mechanisms to allow types
to parse an input string, thus making the argument to variable
conversion extensible.  Beyond that, I don't think anything is
needed.

As for configuration files, there are myriad formats available
and I don't think parsing them has anything to do with command
lines.  I can see a special redirection mechanism in which you
tell the command line library that all or some of the arguments
that would otherwise be on the command line will appear in a
file, but the format of such a file should be confined to a
series of lines that conform to what could otherwise have been on
the command line.

Some configuration files include CPP-like preprocessing symbols
and directives.  Some are section based (like Windows INI files).
Some are just free form lines of text.  Some use special symbols
to delimit required columns of data.  I don't think there's a
good way to standardize this.

Sure, you could provide a means to read a file line by line and
pass each line to a parser of some sort.  However, given all of
the ways to parse the text one might find in such a file, I don't
see how that could be done so it is sufficiently flexible and yet
actually provides value.  IOW, the parsing would be little more
than read a line, give it to the parser, read another line, give
it to the parser, etc.  That certainly doesn't justify a special
library.

Perhaps I've missed some valuable service that should be included
in the proposed library, but I can't see that it should do more
than what I've outlined herein.  If you do, please enlighten me!


-- 
Rob Stewart   [EMAIL PROTECTED]
Software Engineer http://www.sig.com
Susquehanna International Group, LLP  using std::disclaimer;
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: any_cast improvement

2003-01-17 Thread Unai Uribarri Rodríguez
Alexander Nasonov wrote:

Unai Uribarri Rodríguez wrote:



Alexander Nasonov wrote:


Unai Uribarri Rodríguez wrote:



any_cast, as is implemented in boost 1.29, has one weakness; it doesn't
allow to compile this piece of code:

 any x=int(5);
 ++any_cast(x)


Boost.dynamic_any has extract functinos which work this way.


But this patch adds that functionality without breaking the interface.



For broken compilers it could break all because remove_reference might not 
work for them.


If you see the compiler status page, you can see that the any test and 
the remove_reference works with the all compilers except Visual C++ 6 & 
7 and SGI MIPSpro CC 7.3.1.2m. The any_test fails also with Sun Workshop 
6U2.

Therefore, this patch doesn't affect the portability of any.


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


RE: [boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Rozental, Gennadiy
> Gennadiy Rozental wrote:
> 
> > > It is not necessary. You program will be given *string*
> > > "(0,1) (1,3)" and
> > > can parse it using more powerfull means. I guess Spirit is
> > > quite appropriate.
> >
> > I provide a way to parse it with very simple means.
> 
> Spirit actually _is_ simple :-)
> 
> Regards Hartmut

I don't argue that. (Unfortunately) I am not familiar with Spirit enough to
judge. What I sad is that I *also* provide a means to implement such parsing
logic pretty easy. What would be more convinient, easier, more appropriate
in every concreate case depends on several factors. One of them is whether
or not you familiar with Spirit.

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] running regression tests

2003-01-17 Thread David Abrahams
Ronald Garcia <[EMAIL PROTECTED]> writes:

> In any case, when I run:
>
> ./compiler_status $BOOST_ROOT doh.html
> Using
> /nfs/magrathea/home/user1/garcia/src/boost/status/bin/constructors.test to
> determine compilers
>
> *** Error: std::runtime_error: boost::filesystem::directory_iterator
> constructor:
> "/nfs/magrathea/home/user1/garcia/src/boost/libs/filesystem/test/bin": No
> such file or directory
>
>
> Is there a way to get this to work without previously running the entire
> boost test suite?  I just want to test one library.

For testing one library, forget about report generation.

Just go to status/ and 

 bjam 

Or if the library has only one test:

   bjam 

where the test name is probably the basename of the test's .cpp file.
Add the --verbose-test option if you want to see the output of
successful tests.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread Hartmut Kaiser
Gennadiy Rozental wrote:

> > It is not necessary. You program will be given *string*
> > "(0,1) (1,3)" and
> > can parse it using more powerfull means. I guess Spirit is
> > quite appropriate.
>
> I provide a way to parse it with very simple means.

Spirit actually _is_ simple :-)

Regards Hartmut



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] running regression tests

2003-01-17 Thread Ronald Garcia

Howdy,

I'm trying to get the regression system up by following the directions
in the docs (boost/more/regression.html#Execution) and running locally
and I'm
having some problems with the report generation.  I'm under the impression
that bjam is running my tests as expected, but I'm having trouble with the
external tools for generating the reports.

I set BOOST_ROOT to point to my boost root ($HOME/boost), and I set
TOOLS to gcc.

When I run
./process_jam_log < bin\bjam.log

I get the error:

Usage: bjam [bjam-args] | process_jam_log [locate-root]
  locate-root is the same as the bjam ALL_LOCATE_TARGET
  parameter, if any. Default is boost-root.
no errors detected

So instead I ran:

./process_jam_log $BOOST_ROOT < bin/bjam.log
no errors detected

This just might be a nit with the docs (needing to explicitly supply
BOOST_ROOT on the command line)?

In any case, when I run:

./compiler_status $BOOST_ROOT doh.html
Using
/nfs/magrathea/home/user1/garcia/src/boost/status/bin/constructors.test to
determine compilers

*** Error: std::runtime_error: boost::filesystem::directory_iterator
constructor:
"/nfs/magrathea/home/user1/garcia/src/boost/libs/filesystem/test/bin": No
such file or directory


Is there a way to get this to work without previously running the entire
boost test suite?  I just want to test one library.

thanks,

ron

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Rozental, Gennadiy
> It is not necessary. You program will be given *string* 
> "(0,1) (1,3)" and
> can parse it using more powerfull means. I guess Spirit is 
> quite appropriate.

I provide a way to parse it with very simple means.

> > Unfortunately I will be really
> > busy till the middle of February. So may not be able to 
> work on this further meanwhile. 
> 
> It's a pity, because I've only one more or less serious 
> interface change left
> in my library, and would prefer to ask for review after that. 
> Do you have any 
> idea when your library will have documentation, examples and tests?

Not before the date I mention. If you feel that your design could stand in
review go ahead. I will submit my once it's done. Hopefully really soon,
cause Boost.Test changes will rely on it.

> And... how config file parser is concerned with XML? You have option
> "input_message", which value happens to be in XML. The config file
> parser, which should work on syntactic level, would faithfully return
> that XML string. On semantic level, the "validator" function 
> would parse
> the XML. I fail to see how supporting XML depends on config 
> file parser.

Well, Yes. It was bad example. But it does not mean that I could not write
wrapper around xerses that uses config_file_iterator line output as an
input.

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread David Abrahams
"Andrei Alexandrescu" <[EMAIL PROTECTED]> writes:

>> I'd like to draw an analogy with shared_ptr. You can provide smart pointer
>> with 5 policy parameters, that user can redefine. Still, I would use
>> boost::shared_ptr, just because I don't want 10 incompatible smart
> pointers in
>> my program due to small advantage each one has in special situation.
>
> Ok, I can't hold it :o). It's funny how policy_based smart pointers have
> been vigurously disapproved by some boost participants for various reasons,
> yet anytime I log in here there's discussion about a yet another
> smart_pointer du jour, designed from scratch, and most of the time
> incompatible with all others.

I think that's a gross mischaracterization.  The only new design I've
seen discussed in the past year is something (non-portable IIUC) that
most people can't get their heads around and don't seem to need.  It's
an interesting design idea which blends the advantages of intrusive
and non-intrusive smart pointers, but I think is still largely
unproven.

It's truly amazing how many problems are solved by the existing
boost::shared_ptr<> design, and it's a big advantage to have a
single-source smart pointer which "just works" in so many ways.
There's so much to learn about what it's capable of that many people
legitimately believe more parameterization would harm
understandability.

I don't think anyone disapproves of the idea of a customizable smart
pointer design.  It would be great to have for special-purpose jobs.
If boost::shared_ptr could be implemented in terms of it, so much the
better.  If you think it would address some real needs that aren't
covered by existing boost libraries, you should bring a design up for
formal review.  If people think they need it, I'm sure it would be
accepted.

Personally, I'm not sure about the best way to get to a customizable
smart pointer.  For example, it would be very interesting to see what
it looks like to apply the new iterator adaptors design in the boost
sandbox to smart pointers.  If using one library for all smart
pointers is good, using one library for all dereferenceable types is
surely better (or maybe not, but I'd like to see how it pans out) ;-).

-Dave

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Rozental, Gennadiy
> As my example above shows, you can use simple syntax for two 
> arguments and 
> explicit/named for all others. Take a look at Boost.Graph: it 
> uses named 
> arguments, but mostly for numerous details such as 
> "color_map". You don't have 
> to write
> 
> transitive_closure(graph_param(g));

Unfortunately I am not familiar with Boost.Graph, but I believe that in
specific case of CLA I would prefer one style for all parameter's modifiers.
I do not see how description is more important that optional/required for
example. Looking on your example I already confused:
> desc3.add_options()
> ("output,o", "file", "where to send output")
> ("magic", "value", "magic value for the program")
> .default_value("43")

What is "file", "value"? Why do I need to supply default value as a string
and not 43 itself?
What is ,o? Do I need to remember everything that you will reply?

> options_description desc;
> desc.add_options()
> ("roll_trace_file?", "arg?", "roll trace file)
> ;

What id "arg" then? Keyword? Would you remember difference between first
question mark and second?

> >>And what those operator<< will do?
> > Feed option definitions to the cla::parser.
> 
> Eeh.. that's only possible if program_options, 
> config::parser, and cla::parser
> have the same interface for declaring options. If you add 
> custom modifier to
> cla::parser, you have to add it to program_options, and the 
> to config::parser
> and then to registry::parser, if you have it.

Not at all. program_option may support only common superset on all
configuration components features. It does not need to know about all
supported features of all components. In my understanding program_options is
only helper facility for one very useful case.

> 
> - Volodya

Gennadiy.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Preliminary submission: command line & config file li brary

2003-01-17 Thread Rozental, Gennadiy
> > You did not get me. I did not talk about options description at all. As
I
> > keep repeating it another level of abstraction on top of config file,
cla,
> > registry, db whatever. The only purpose of option description is to
store
> > unified description of all named options for the program. it does not
have
> > any parsing functionality inside. Instead when you need to get named
program
> > parameters from some source you feed it with option_descriptions and get
the
> > results from it (option_description may also provide unified way to
access
> > named parameter, that in fact will be a forward to component-specific
access
> > method). option_description design IMO is separate issue and should be
> > discussed separately. Here we talking about config_file component
design. 
> 
> I'm afraid you did not get me as well. You're saying that parsing level
should
> not be coupled with validation level. Yes, there's validation level in 
> config_file class. Yet, it's *rudimentary* validation. I can remove it
without
> much effect on other parts of library. But IMO, that would make the class
less 
> complete. I argue that there's no coupling that worth worrying about.

Again I did not talk about validation. Would I want to add the validation it
be third level on top of two I meant.
level 1. config_file_iterator - see below what it is doing. One more
comment: config_file_iterator produce text lines. Any parser that accept (or
could accommodate ) this kind of input could be used as second level parser.
level 2. parameters parsing - see below what it is doing
level 3. parameters description/validation - holds program parameters and
their value/presence validation functors

> > My config_file iterator is responsible for 
> > 1. comments lines
> > 2. continuation lines
> > 3. ifdef, define, undef, endif ...
> > 4. include 
> > 5. skipping empty lines


> > My parameters handling facility is responsible for parsing, storing and
> > accessing parameters defined in format (configurable) above. It does not
> > know anything about supported parameter by the program it just read what
is
> > in config file. Later you could access parameters by name and get the
value
> > if parameter with the supplied name exists.

> How parsing "test::debug"'s value or "true" differs from parsing 
> "--debug=true" from command line? How accessing "test::debug" by name
> differs from accessing value of "debug" option from command 
> line. *I* think
> that's almost the same. Consequently, I'd rather not have two 
> different 
> classes and two different code handle the same task.

Each component is much more feature reach by itself:
cla provide support for non-named parameters
parameter handling provide support for parameter names with namespaces
If there is something common in simplest cases, reuse could be achieved with
use of some shared parsers. For example parameter handling could use
KeyPolicy classes for parameter identification. But I am not sure it worth
persuading cause may be inconvenient.

Gennadiy
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] regression tests for aCC are up

2003-01-17 Thread Rene Rivera
[2003-01-17] Toon Knapen wrote:

>On Friday 17 January 2003 12:32, John Maddock wrote:
>> So only the gcc tests will be run, I assume that you have some detritus
in
>> bin directory from previous HP aCC runs, which is why you are seeing some
>> results listed.  Add the necessary toolset(s) to test_tools.
>
>Thanks John. Had some other minor trouble but finally it worked.

What are the minor troubles? Are they with the run_test.sh script? Are they
with the BJam build.sh script? Something else? Basically anything we should
point out to people and/or try and fix?



-- grafik - Don't Assume Anything
-- [EMAIL PROTECTED] - [EMAIL PROTECTED]
-- 102708583@icq
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Preliminary submission: command line & config file library

2003-01-17 Thread Thomas Wenisch
Hi all,

I have not followed this discussion closely, but I did want to add on one
point:

On Thu, 16 Jan 2003, Vladimir Prus wrote:

> > 
> > BTW what if I want ? as a part of my parameter name?
> 
> Do you need this really?
> 
> > For example:
> > 
> > my_program /roll trace file? = "yes"
> > 
> > CLA is basic facility that is used by many people with different habits. You
> > could not afford to incur too many restrictions.
> 
> I think that *existing* habits shold be supported. However, the library should
> encourage some "standard" command line style. Contrived command line style is
> only an inconvenience to user. As an example: what does "-r" option to CVS 
> does? (It has 2 unrelated meanings, and about 4 syntax variations)

Some programs might support a command line like this:

   my_program ?

To print out help information (ie same as my_program --help).  Therefore,
allowing ? as a command line argument is an important use case.  I am not
sure whether or not Vladimir's proposal would support a question mark by
itself.

Regards,
-Tom Wenisch
Computer Architecture Lab
Carnegie Mellon University

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Andrei Alexandrescu
> I'd like to draw an analogy with shared_ptr. You can provide smart pointer
> with 5 policy parameters, that user can redefine. Still, I would use
> boost::shared_ptr, just because I don't want 10 incompatible smart
pointers in
> my program due to small advantage each one has in special situation.

Ok, I can't hold it :o). It's funny how policy_based smart pointers have
been vigurously disapproved by some boost participants for various reasons,
yet anytime I log in here there's discussion about a yet another
smart_pointer du jour, designed from scratch, and most of the time
incompatible with all others.

It's not about small advantages it's about.

Andrei



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] intel-linux-tools.jam

2003-01-17 Thread David Abrahams
Toon Knapen <[EMAIL PROTECTED]> writes:

> On Friday 17 January 2003 14:59, David Abrahams wrote:
>> No, please restore that feature.  The build system offers no
>> guarantees about the order in which specified libraries will be added
>> to NEEDLIBS, and we'd rather work in all circumstances than save
>> whatever miniscule amount of link time it takes to deal with the
>> repetition.
>
> Done.
> Nevertheless I use bjam also for my own project (as you might know) and there 
> I've always removed the duplication because I don't want to allow developers 
> to create circulare dependencies. And the system has worked fine (thanks 
> again jamboosters)

It's not just about circular dependencies.  If library A depends on
library B, when you link them into an executable there's no guarantee
that they'll appear in the right order.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] regression tests for aCC are up

2003-01-17 Thread David Abrahams
Toon Knapen <[EMAIL PROTECTED]> writes:

> On Friday 17 January 2003 12:32, John Maddock wrote:
>> So only the gcc tests will be run, I assume that you have some detritus in
>> bin directory from previous HP aCC runs, which is why you are seeing some
>> results listed.  Add the necessary toolset(s) to test_tools.
>
> Thanks John. Had some other minor trouble but finally it worked.

Someone should probably remove hpux-times.html and hpux.log.gz, from
23-Apr-2002

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] regression tests for aCC are up

2003-01-17 Thread David Abrahams
Toon Knapen <[EMAIL PROTECTED]> writes:

> On Friday 17 January 2003 12:32, John Maddock wrote:
>> So only the gcc tests will be run, I assume that you have some detritus in
>> bin directory from previous HP aCC runs, which is why you are seeing some
>> results listed.  Add the necessary toolset(s) to test_tools.
>
> Thanks John. Had some other minor trouble but finally it worked.

I moved http://boost.sourceforge.net/regression-logs/index.html so it
would be easier to browse all the logs.  I hope nobody minds.

-Dave

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] regression tests for aCC are up

2003-01-17 Thread Toon Knapen
On Friday 17 January 2003 12:32, John Maddock wrote:
> So only the gcc tests will be run, I assume that you have some detritus in
> bin directory from previous HP aCC runs, which is why you are seeing some
> results listed.  Add the necessary toolset(s) to test_tools.

Thanks John. Had some other minor trouble but finally it worked.
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: Re: Preliminary submission: command line & configfil e library

2003-01-17 Thread Vladimir Prus
Gennadiy Rozental wrote:

my_program ( 0, 1) ( 1, 3) (( 0, 1), 15 ), (( 0,1), (7.8) ) >
This is input  of 2 points circle and line. Here chain_lookup_policy


could


be useful.


What if I want C++ expression specified on the command line? Sure, I don't
want make C++ parser operate on command line. Rather, I'd write

my_program "f(1, 2) + 10"

I don't need "chain_lookup_policy" where a couple of quote characters will


do.

IT doesn't matter weather or not you are using quotes. To parse out Point,
Point, Circle, Line out of input above you need chain of responsibilities
logic.


It is not necessary. You program will be given *string* "(0,1) (1,3)" and
can parse it using more powerfull means. I guess Spirit is quite appropriate.


I really can't comment further without seeing the code.



Ok. I put in vault area some snapshot. I take some not testes functionality
out of there. But you should get the feeling. 

Looking at it now. It might take some time to form an opinion.


Unfortunately I will be really
busy till the middle of February. So may not be able to work on this further
meanwhile. 

It's a pity, because I've only one more or less serious interface change left
in my library, and would prefer to ask for review after that. Do you have any 
idea when your library will have documentation, examples and tests?

No. Does yours? Getting really picky, does yours allows to validate XML
against DTD?



In fact yes. My test configuration file look like this:

input_message \
 \
<> \
<>

"expected_output after transformation 1" "cxvbxbxb"
"expected_output after transformation 2" "df  sdf sdf"

Now my test program read test configuration file and feed value of
"input_message" parameter to the xerces parser.


And... how config file parser is concerned with XML? You have option
"input_message", which value happens to be in XML. The config file
parser, which should work on syntactic level, would faithfully return
that XML string. On semantic level, the "validator" function would parse
the XML. I fail to see how supporting XML depends on config file parser.

- Volodya

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Comments on date/time library

2003-01-17 Thread Steven Kirk
> > Default Construction
> > 
> > It would be useful if default constructors for gregorian::date and
> > posix_time::ptime were provided. The default constructors could maybe
work
> > as follows:
> >
> > gregorian::date() ==>   gregorian::date(not_a_date_time)
> > posix_time::ptime() ==>
posix_time::ptime(gregorian::date(not_a_date_time),
> >   time_duration(0, 0, 0))
>
> There has been some recent discussion on this very issue, so
> here are a couple boost-user archive links:
>
> This one shows you how you can create your own default
> constructor:
>
> http://groups.yahoo.com/group/Boost-Users/message/2701
>
>
> At least one user wanted this at first, but after using the library
> for awhile decided it wasn't really necessary.  See:
>
> http://groups.yahoo.com/group/Boost-Users/message/2705
>
>
> I didn't put these in because I never felt comfortable
> about choosing the default values.
>
Hmmm while I can see your point, I still think a default constructor should
be provided. And as I, along with all of the users in the messages you cited
seemed to have expected that default constructed dates would be set to
'not_a_date_time', I'd suggest that this would be the most sensible default
value. I don't see any point in *not* providing a default value.

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Equivalence Relation class

2003-01-17 Thread Jeffrey Yasskin
On Fri, 17 Jan 2003 12:28:50 +0100, Miroslav Silovic wrote:

> Jeffrey Yasskin wrote:
> 
>> I have a small class that uses the union/find algorithm to implement a 
>> dynamic equivalence relation. With some work, it could probably also 
>> be used to iterate through the equivalent partition.
>>
>> Would this be a good thing to add to boost?
>>
> Isn't this functionality equivalent to the dynamic connected components 
> in the Boost graph library?
> 
> Miro

Oops. Yes. Never mind.

Jeffrey

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] intel-linux-tools.jam

2003-01-17 Thread Toon Knapen
On Friday 17 January 2003 14:59, David Abrahams wrote:
> No, please restore that feature.  The build system offers no
> guarantees about the order in which specified libraries will be added
> to NEEDLIBS, and we'd rather work in all circumstances than save
> whatever miniscule amount of link time it takes to deal with the
> repetition.

Done.
Nevertheless I use bjam also for my own project (as you might know) and there 
I've always removed the duplication because I don't want to allow developers 
to create circulare dependencies. And the system has worked fine (thanks 
again jamboosters)

toon

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Comments on date/time library

2003-01-17 Thread Jeff Garland
> Default Construction
> 
> It would be useful if default constructors for gregorian::date and
> posix_time::ptime were provided. The default constructors could maybe work
> as follows:
> 
> gregorian::date() ==>   gregorian::date(not_a_date_time)
> posix_time::ptime() ==> posix_time::ptime(gregorian::date(not_a_date_time),
>   time_duration(0, 0, 0))

There has been some recent discussion on this very issue, so
here are a couple boost-user archive links:

This one shows you how you can create your own default
constructor:

http://groups.yahoo.com/group/Boost-Users/message/2701


At least one user wanted this at first, but after using the library
for awhile decided it wasn't really necessary.  See:

http://groups.yahoo.com/group/Boost-Users/message/2705


I didn't put these in because I never felt comfortable 
about choosing the default values.  
 
> DATE_TIME_INLINE
> 
> It seems wrong that when using the default build of the date/time library, I
> have to #define DATE_TIME_INLINE in all compilation units that use the
> date/time library. Wouldn't it be better to reverse this logic and define
> DATE_TIME_NO_INLINE only when a non-default build is required?
> 
> Also, shouldn't this symbol be called BOOST_DATE_TIME_INLINE (or
> BOOST_DATE_TIME_NO_INLINE :)
>
> Building
> 
> When building the current CVS state with Borland C++ Builder 5, I am still
> getting all tests and examples built when I only want the library built.

Yes, these issues will be fixed.  Of course with sourceforge down we can't 
really do much of anything :-(  Hopefully it will be back soon...

Jeff
 
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] intel-linux-tools.jam

2003-01-17 Thread David Abrahams
Toon Knapen <[EMAIL PROTECTED]> writes:

> On Friday 17 January 2003 13:55, David Abrahams wrote:
>> Toon Knapen <[EMAIL PROTECTED]> writes:
>> > In intel-linux tools, the link-line first contains -l$(FINDLIBS) and next
>> > $(NEEDLIBS). Whould'nt it make more sense to revert the order. NEEDLIBS
>> > typically contains other libs in the same project (==boost) whereas
>> > FINDLIBS typically contains external and/or system libs. NEEDLIBS is thus
>> > very likely to depend on FINDLIBS and thus needs to be in front of
>> > FINDLIBS.
>> >
>> > (I remember to have made the same remark about the link-line in
>> > gcc-tools.jam but still wanted first an 'OK' of everyone involved)
>>
>> I think you're right; it's OK with me if you change it.
>
> Done. I've also retained only one of the two NEEDLIBS (all libs appeared twice 
> in the link-line). Is that OK ? This would only be necessary in case there 
> would be circulare dependencies and I'm sure a well designed project like 
> boost does not suffer from circular dependencies ;)

No, please restore that feature.  The build system offers no
guarantees about the order in which specified libraries will be added
to NEEDLIBS, and we'd rather work in all circumstances than save
whatever miniscule amount of link time it takes to deal with the
repetition.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: Re: Preliminary submission: command line & config fil e library

2003-01-17 Thread Gennadiy Rozental
> > my_program ( 0, 1) ( 1, 3) (( 0, 1), 15 ), (( 0,1), (7.8) ) >
> > This is input  of 2 points circle and line. Here chain_lookup_policy
could
> > be useful.
>
> What if I want C++ expression specified on the command line? Sure, I don't
> want make C++ parser operate on command line. Rather, I'd write
>
>  my_program "f(1, 2) + 10"
>
> I don't need "chain_lookup_policy" where a couple of quote characters will
do.

IT doesn't matter weather or not you are using quotes. To parse out Point,
Point, Circle, Line out of input above you need chain of responsibilities
logic.

> I really can't comment further without seeing the code.

Ok. I put in vault area some snapshot. I take some not testes functionality
out of there. But you should get the feeling. Unfortunately I will be really
busy till the middle of February. So may not be able to work on this further
meanwhile. It's located here:
http://groups.yahoo.com/group/boost/files/cla_framework.zip

> No. Does yours? Getting really picky, does yours allows to validate XML
> against DTD?

In fact yes. My test configuration file look like this:

input_message \
 \
<> \
<>

"expected_output after transformation 1" "cxvbxbxb"
"expected_output after transformation 2" "df  sdf sdf"

Now my test program read test configuration file and feed value of
"input_message" parameter to the xerces parser.


> - Volodya

Gennadiy.



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: compile-time binary constants

2003-01-17 Thread Fredrik Blomqvist
"David Abrahams" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> "Fredrik Blomqvist" <[EMAIL PROTECTED]> writes:
>
> > Hi there,
> >
> > I thought I'd forward this little link:
> >
http://www.flipcode.com/cgi-bin/msg.cgi?showThread=Tip-CPPCompileTimeBinCons
> > t&forum=totd&id=-1
> > (several improved versions of the initial code appear in the thread)
> >
> > This has most likely been done before but IMO a boostified version using
MPL
> > and PP could
> > actually be a useful convenience utility.
>
>
> Aleksey and I were just discussing this one.  As soon as he's done
> implementing the "for_" algorithm it could look like this:
>
> template  // N must be an *octal* constant
> struct binary
> : for_ >, // "forward" state,
condition, step
> plus >, _2>  // "backward" step
>   >
> {};
>
cool!
The octal "feature" was also discussed in the link above and a good idea was
to use the PP to _always_ insert a leading zero, eliminating a potentially
very annoying bug..

Secondly, another idea that was presented by Jarkko L. was simply to create
a "mega-enum" something like this:
enum {
b0, b1,
};
enum {
b00, b01, b10, b11,
};
enum {
b000, b001, b010, 
}
etcetera...

as I said, quite a few variantions came up in the previous thread, many
along this second version.



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



RE: [boost] Re: Re: proposal: safe arithmetic class

2003-01-17 Thread Bjorn . Karlsson
> From: Thorsten Ottosen [mailto:[EMAIL PROTECTED]]

> Sorry for not understanding why "exceptionally creative use 
> of expression
> templates" is necessary :-) Could you
> elaborate a little on it?

I'll try. :-)

We are now talking about (if I understand you and Dave correctly) three
related problems and solutions, which poses somewhat different challenges:

0) Partially controlled conversions at compile time and runtime
This is the case that is covered by your outline, as well as numeric_cast
(at least the hopefully-soon-to-be-reviewed numeric_cast that is part of
Fernando Cacciola's Numeric Conversion Library). The cast, or the type, is
responsible for preserving ranges when converting between types. For
integral constant expressions, invalid conversions are detected at compile
time, others are caught at runtime. It's partial control, because
expressions such as Int i(100*10) obviously aren't detected. [No
expression templates required.]

Example: 

int i1=-42;
Int i2=-42;
unsigned char c1=boost::numeric_cast(i);
UChar c2=i2;


1) Controlled numeric type promotion and conversion
This would be needed for safe(r) expressions; the rules for integral
promotions, floating point promotions, integral conversions, floating
integral conversions, and the usual arithmetic conversions, would be encoded
explicitly in types or implicitly in expressions. Unary and binary
expressions are handled to produce the correct resulting type; conversions
that would lead to loss of precision or range are invalidated, either at
compile time or runtime. It is probably a nontrivial task to find consensus
on what to allow; for example, should the special rules for unsigned
arithmetic be prohibited or not? [No expression templates required here
either, but could potentially simplify and add functionality to the
implementation.]

Example:

Int i=std::numeric_limits::max();
Short s=7;
UShort us=i+s; // i+s results in a type equivalent to unsigned int, and us
is assigned "the least unsigned integer 
// congruent to the source integer (modulo 2n where n is the number of bits
used to represent the unsigned type)"
// , i.e. it "wraps around". Should this be legal for this safe type?


2) Complex expression conversion and promotion control

If the aforementioned mechanisms for controlling conversions and promotions
exist, there is still the matter of more "complex" arithmetic, involving
intermediate steps. This is where the expression templates need to enter the
arena, because we can no longer simply evaluate the binary operations; we
must consider the expression as a whole. If we don't, seemingly equivalent
expressions will be treated differently (just as is the case with
built-ins):

int x=100;
int y=100;
int z=100;

int r=x*y/z; // Probably a negative number, implementation-defined.
safe_numeric throws an exception if all variables are safe_numeric.
r=x/z*y; // 100. safe_numeric doesn't throw an exception.

Of course, the example is too contrived; but when passed as arguments,
different variable values (potentially) lead to completely different results
(ehrm, they probably should in most cases, but I'm referring to those that
should yield the same result...). 

When adding integral constants to the expressions, such as x*y/3+z%10,
expression templates would be used for evaluation and optimization. They'd
also be used for evaluating and organizing expressions involving more than
one operator.

So, it is for this purpose that "exceptionally creative use of expression
templates" is needed (of course, my view of exceptionally creative doesn't
necessarily correlate with that of others :-)). 

I don't think all of the above was the intent of your proposal though? (And
also, there might be value in a partial solution for detecting
errors/problems/strange results at runtime) The three problems stated above
seem to have great potential for solutions through class libraries (and
unlimited precision types, where art thou?), and my point has been (and is)
that 0) is already covered by numeric_cast, and might not need another
solution; the others remain open. 

Bjorn





___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] compile-time binary constants

2003-01-17 Thread David Abrahams
"Fredrik Blomqvist" <[EMAIL PROTECTED]> writes:

> Hi there,
>
> I thought I'd forward this little link:
> http://www.flipcode.com/cgi-bin/msg.cgi?showThread=Tip-CPPCompileTimeBinCons
> t&forum=totd&id=-1
> (several improved versions of the initial code appear in the thread)
>
> This has most likely been done before but IMO a boostified version using MPL
> and PP could
> actually be a useful convenience utility.


Aleksey and I were just discussing this one.  As soon as he's done
implementing the "for_" algorithm it could look like this:

template  // N must be an *octal* constant
struct binary
: for_ >, // "forward" state, condition, step
plus >, _2>  // "backward" step
  >
{};

Now binary<01101>::type::value = 13


> (since I also remember the discussions of a roman-number utility for example
> :)

Left as an exercise for the reader ;-)

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] compile-time binary constants

2003-01-17 Thread Daniel Frey
Fredrik Blomqvist wrote:
> 
> Hi there,
> 
> I thought I'd forward this little link:
> http://www.flipcode.com/cgi-bin/msg.cgi?showThread=Tip-CPPCompileTimeBinCons
> t&forum=totd&id=-1
> (several improved versions of the initial code appear in the thread)

Nice idea. If you add an operator long() to the class, you can even get
rid of the ::value

> This has most likely been done before but IMO a boostified version using MPL
> and PP could
> actually be a useful convenience utility.
> (since I also remember the discussions of a roman-number utility for example
> :)

Well, I cannot say whether or not we really need it, but who cares? ;)

Regards, Daniel

-- 
Daniel Frey

aixigo AG - financial training, research and technology
Schloß-Rahe-Straße 15, 52072 Aachen, Germany
fon: +49 (0)241 936737-42, fax: +49 (0)241 936737-99
eMail: [EMAIL PROTECTED], web: http://www.aixigo.de
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] intel-linux-tools.jam

2003-01-17 Thread Toon Knapen
On Friday 17 January 2003 13:55, David Abrahams wrote:
> Toon Knapen <[EMAIL PROTECTED]> writes:
> > In intel-linux tools, the link-line first contains -l$(FINDLIBS) and next
> > $(NEEDLIBS). Whould'nt it make more sense to revert the order. NEEDLIBS
> > typically contains other libs in the same project (==boost) whereas
> > FINDLIBS typically contains external and/or system libs. NEEDLIBS is thus
> > very likely to depend on FINDLIBS and thus needs to be in front of
> > FINDLIBS.
> >
> > (I remember to have made the same remark about the link-line in
> > gcc-tools.jam but still wanted first an 'OK' of everyone involved)
>
> I think you're right; it's OK with me if you change it.

Done. I've also retained only one of the two NEEDLIBS (all libs appeared twice 
in the link-line). Is that OK ? This would only be necessary in case there 
would be circulare dependencies and I'm sure a well designed project like 
boost does not suffer from circular dependencies ;)

toon

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Comments on date/time library

2003-01-17 Thread Steven Kirk
Hi, I have just begun to use the boost date/time library and would like to
make some comments:

Default Construction

It would be useful if default constructors for gregorian::date and
posix_time::ptime were provided. The default constructors could maybe work
as follows:

gregorian::date() ==>   gregorian::date(not_a_date_time)
posix_time::ptime() ==> posix_time::ptime(gregorian::date(not_a_date_time),
  time_duration(0, 0, 0))

DATE_TIME_INLINE

It seems wrong that when using the default build of the date/time library, I
have to #define DATE_TIME_INLINE in all compilation units that use the
date/time library. Wouldn't it be better to reverse this logic and define
DATE_TIME_NO_INLINE only when a non-default build is required?

Also, shouldn't this symbol be called BOOST_DATE_TIME_INLINE (or
BOOST_DATE_TIME_NO_INLINE :)

Building

When building the current CVS state with Borland C++ Builder 5, I am still
getting all tests and examples built when I only want the library built.

Cheers
S.


__
Inflex - installed on mailserver for domain @status-scientific.com
Queries to: [EMAIL PROTECTED]
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] intel-linux-tools.jam

2003-01-17 Thread David Abrahams
Toon Knapen <[EMAIL PROTECTED]> writes:

> In intel-linux tools, the link-line first contains -l$(FINDLIBS) and next 
> $(NEEDLIBS). Whould'nt it make more sense to revert the order. NEEDLIBS 
> typically contains other libs in the same project (==boost) whereas FINDLIBS 
> typically contains external and/or system libs. NEEDLIBS is thus very likely 
> to depend on FINDLIBS and thus needs to be in front of FINDLIBS.
>
> (I remember to have made the same remark about the link-line in gcc-tools.jam 
> but still wanted first an 'OK' of everyone involved)

I think you're right; it's OK with me if you change it.

-- 
   David Abrahams
   [EMAIL PROTECTED] * http://www.boost-consulting.com
Boost support, enhancements, training, and commercial distribution

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] Re: any_cast improvement

2003-01-17 Thread Alexander Nasonov
Unai Uribarri Rodríguez wrote:

> Alexander Nasonov wrote:
>> Unai Uribarri Rodríguez wrote:
>> 
>>>any_cast, as is implemented in boost 1.29, has one weakness; it doesn't
>>>allow to compile this piece of code:
>>>
>>>   any x=int(5);
>>>   ++any_cast(x)
>> 
>> Boost.dynamic_any has extract functinos which work this way.
> 
> But this patch adds that functionality without breaking the interface.

For broken compilers it could break all because remove_reference might not 
work for them.

-- 
Alexander Nasonov
Remove -mycop from my e-mail address for timely response


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] compile-time binary constants

2003-01-17 Thread Fredrik Blomqvist
Hi there,

I thought I'd forward this little link:
http://www.flipcode.com/cgi-bin/msg.cgi?showThread=Tip-CPPCompileTimeBinCons
t&forum=totd&id=-1
(several improved versions of the initial code appear in the thread)

This has most likely been done before but IMO a boostified version using MPL
and PP could
actually be a useful convenience utility.
(since I also remember the discussions of a roman-number utility for example
:)

/Fredrik



___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] cvs web access down?

2003-01-17 Thread Pavol Droba
Sourceforge web and pserver based access to cvs is offline.


On Fri, Jan 17, 2003 at 11:41:23AM -, John Maddock wrote:
> Is anyone able to connect to
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost ?
> 
> I've been getting:
> 
> Server Error
> The following error occurred:
> Could not connect because of networking problems. Contact your system
> administrator. (CANT_CONNECT)
> 
> for the last few days now.
> 
> John Maddock
> http://ourworld.compuserve.com/homepages/john_maddock/index.htm
> 
> 
> ___
> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] cvs web access down?

2003-01-17 Thread John Levon
On Fri, Jan 17, 2003 at 11:41:23AM -, John Maddock wrote:

> Is anyone able to connect to
> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost ?

Sourceforge viewcvs/anoncvs is offline and looks like it will be for
some unspecified period

regards
john
-- 
"We're standing there pounding a dead parrot on the counter, and the management
response is to frantically swap in new counters to see if that fixes the
problem."
- Peter Gutmann
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] regression test on HP-UX

2003-01-17 Thread John Maddock
>It's the run_tests.sh with minor modifs.
>I also attached the output.
Toon,

Your test script has:

#
# "test_tools" are the Boost.Build toolsets to use for building and running
the
# regression tests. Specify a space separated list, of the Boost.Build
toolsets.
# Each will be built and tested in sequence.
#
test_tools=gcc


So only the gcc tests will be run, I assume that you have some detritus in
bin directory from previous HP aCC runs, which is why you are seeing some
results listed.  Add the necessary toolset(s) to test_tools.

regards,

John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/index.htm






___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Fw: compile problems on solaris 2.8

2003-01-17 Thread John Maddock

> I don't know.  The current CVS uses the Borland configuration for
> __BORLANDC__, __IBMC__, __IBMCPP__, __SUNPRO_CC.  I assume that
__SUNPRO_CC
> is the operative symbol here, but I don't know if it's the same compiler
or
> not.  If not, than whatever compiler it is needs to be added to the config
> file.

Yes, it's __SUNPRO_CC, with boost-1.29.0.

Thanks for the help.

John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/index.htm


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



[boost] cvs web access down?

2003-01-17 Thread John Maddock
Is anyone able to connect to
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost ?

I've been getting:

Server Error
The following error occurred:
Could not connect because of networking problems. Contact your system
administrator. (CANT_CONNECT)

for the last few days now.

John Maddock
http://ourworld.compuserve.com/homepages/john_maddock/index.htm


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Equivalence Relation class

2003-01-17 Thread Miroslav Silovic
Jeffrey Yasskin wrote:


I have a small class that uses the union/find algorithm to implement a 
dynamic equivalence relation. With some work, it could probably also 
be used to iterate through the equivalent partition.

Would this be a good thing to add to boost?

Isn't this functionality equivalent to the dynamic connected components 
in the Boost graph library?

   Miro


___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] intel-linux-tools.jam

2003-01-17 Thread Toon Knapen
In intel-linux tools, the link-line first contains -l$(FINDLIBS) and next 
$(NEEDLIBS). Whould'nt it make more sense to revert the order. NEEDLIBS 
typically contains other libs in the same project (==boost) whereas FINDLIBS 
typically contains external and/or system libs. NEEDLIBS is thus very likely 
to depend on FINDLIBS and thus needs to be in front of FINDLIBS.

(I remember to have made the same remark about the link-line in gcc-tools.jam 
but still wanted first an 'OK' of everyone involved)

toon
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] Re: some thoughts about serialisation

2003-01-17 Thread Dave Harris
In-Reply-To: <[EMAIL PROTECTED]>
On Tue, 14 Jan 2003 15:05:55 -0700 Greg Colvin ([EMAIL PROTECTED]) 
wrote:
> >> > How do you see archive versioning being done? For example,
> >> > suppose field TOTAL is a double in version 1 and a
> >> > fixed-point user-defined type in version 2.
> 
> One answer is "don't do that."  Add a new field which can
> be initialized from the old one, and stop using the old one.

Adding a new field, with a different name, is what I suggested in the 
email you're commenting to. Removing the old field isn't an option if it 
is needed, either for loading old archives, or for interfacing to old 
Python code (or whatever it is the reflection stuff is used for).

-- Dave Harris

___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost



Re: [boost] regression test on HP-UX

2003-01-17 Thread Toon Knapen
On Sunday 12 January 2003 13:32, John Maddock wrote:
> > Rene, how can I get the aCC compile to work (it's reporting "Missing" the
> > whole time as you can see)
>
> Likely options:
>
> 1) the HP results aren't being filtered through process_jam_log.
> 2) you ran out of disk space and the targets weren't built.
> 3) some other bjam invocation problem.
>
> Can you post the actual script you used to run the tests?

It's the run_tests.sh with minor modifs.
I also attached the output.


run_tests.sh
Description: application/shellscript


hpux_run_tests.out.gz
Description: GNU Zip compressed data
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost