[boost] Re: libs/config/configure screwed up in DOS format in 1.30.1

2003-08-10 Thread David Abrahams
Pascal Bleser <[EMAIL PROTECTED]> writes:

> Just discovered that libs/config/configure is spoiled with CRLF in 1.30.1
> Shouldn't be the case for a UN*X script ;)

Fixed now.  I wonder if it really ought to be checked in as binary so
this doesn't happen?

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

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


Bug tracking (was: Re: [boost] Re: Release Manager's Checklist added)

2003-08-10 Thread Joerg Walter

- Original Message -
From: "David Abrahams" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, August 09, 2003 11:58 PM
Subject: [boost] Re: Release Manager's Checklist added


[...]

> >> > That's probably wrong. They should use a tracker first and then
discuss
> >> > them on the mailing lists.
> >>
> >> I disagree. I think that we should try to focus information instead of
> >> spreading them around.
> >
> > That's exactly what a tracker is good for IMHO.
>
> Yes, agreed.  One big problem though is that the SF trackers kinda
> suck.  I'd be interested in trying something else, like
> http://roundup.sourceforge.net/

Interestingly enough they seem to use the SF trackers for their own bugs
;-). But the more important question probably is if there are any volunteers
providing an alternative tracker for us?

[...]

> >> The trackers are IMHO a problem because they require a lot of work.
> >
> > That could be, yes.
>
> Yeah, but that might just be the SF trackers.  We don't have to use
> them as-is.

Quality assurance simply is a lot of work.

> >> The current state shows that it is not maintained well, e.g. there
> >> are open bugs which are long closed in CVS, see #451535. Sure we
> >> could do better in theory, but is it worth it? Why not use
> >> regression tests to track bugs? AFAICS people pay a lot of
> >> attention to the regression tests and the whole systems work pretty
> >> well.
> >>
> >> Also, I hope that it could make the release manager's work easier to
> >> have fewer sources to track :)
> >
> > In my opinion it should be easier for the release manager to look
> > into the tracker than to follow *all* mailing list traffic.
>
> Yeah.  Also, you can't always get people who find bugs to make
> reproducible test cases in a form that integrates with the regression
> suite.

OK, I'd be willing to spend some time working with the SF trackers in the
near future (assumed we don't change the tracking system).

> >> OK, what do others think? Am I the only one who feels uncomfortable
with
> >> the SF-trackers?
>
> Nope; I dislike them also.  That doesn't mean trackers in general are
> a bad idea.

I'd still be interested to hear some more opinions, especially user's.

Thanks,
Joerg

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


Re: [boost] bind/lambda - unsupported use case?

2003-08-10 Thread Aleksey Gurtovoy
Peter Dimov wrote:
> Aleksey Gurtovoy wrote:
> > Consider the following snippet:
> >
> > void show_warning( message_dialog const&, user_message );
> > void post_command( boost::function );
> >
> > int main()
> > {
> > boost::function f(
> >   bind( &post_command
> > , ( bind( &show_warning, message_dialog(), _1 ) )
> > // what goes here?
> 
> "protect", in boost/bind/protect.hpp. Lambda has both "protect" and
> "unlambda", either will work (I think).
> 
> > )
> > );
> > }

I am afraid it's not that simple. Note that 'post_command' takes a 
_nullary_, not an unary function. To clarify the semantics of the above,
I need to construct a bind expression which would allow the original code
to become equivalent to the following:

void
post_show_warning_command( 
  message_dialog const& a_dialog
, user_message  a_message
)
{
post_command( boost::bind( &show_warning
, a_dialog
, a_message
) );
}

int main()
{
boost::function f( 
  boost::bind( 
  &post_show_warning_command
, message_dialog()
, _1
)
);
}


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


Re: [boost] Re: Boost 1.31 release?

2003-08-10 Thread Aleksey Gurtovoy
David Abrahams wrote:
> >> As far as I know the CVS is in very good health at the moment.
> >
> > Uhmm, I really wouldn't say so! If you look at the main trunk report -
> >
http://www.meta-comm.com/engineering/resources/cvs_main_trunk/developer_summary_page.html,
> > there are lots of regressions comparing to 1.30.0, and IMO we ought to
> > fix all these before we branch for the release or anything.
>
> I can't really tell what these represent.

As usual, a red cell means a regression from the 1.30.0 tarball, a dark
green one - an improvement.

> All of the new iterator library tests which weren't in 1.30.0 are
> showing  up as regressions if they're failing.

Yes, it's a known shortcoming - or a feature, depending of how you look
at it. By default, new tests are expected to pass.

> Many are simply not going to get better; they're due to compiler bugs
> which can't be worked around.

Which is totally fine. If you provide us with the list of expected
failures, these will be cleared.

> As for the others, the failures you're reporting with intel-7.1 are
> very strange; my 7.1 compiler doesn't have these problems AFAIK.

Hmm, looks like another configuration problem to me. We'll take a look
at it.

> What does the "meta-" prefix mean?

"meta-" is our prefix for non-boost toolsets.

> Do you have some special configuration of each of these compilers?

Well, most of them are not really special. For instance, bcc-* ones were
introduced for the only purpose of being able to test 5.5.1 and 5.5.4
compilers simultaneously. The complete list of differences is available
here -

http://www.meta-comm.com/engineering/resources/cs-win32_rc_1_30_0_metacomm/patches.html

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


Re: [boost] Re: Boost 1.31 release?

2003-08-10 Thread Beman Dawes
At 01:39 PM 8/8/2003, Martin Wille wrote:
>David Abrahams wrote:
>> Matthias Troyer <[EMAIL PROTECTED]> writes:
>...
>>>I would be interested in
>>>hearing about the plans for a Boost 1.31 release
>>
>>
>> As far as I know the CVS is in very good health at the moment.  The
>> only major thing I know needs to be done is to complete the
>> documentation for the new iterator adaptors.  I'd like to get that
>> over with soon, so it isn't hanging over our heads much longer.
>
>In order to avoid problems to be discovered too late for fixing them
>I'll list the tests that fail for many compilers/compiler versions
>on Linux:
>
>- filesystem::operations_test
>- function::sum_avg_portable
>- iterator::interoperable_fail (a compile_fail test that fails,
>   probably not a real problem)
>- math::octonion_test
>   math::quaternion_test
>- test::errors_handling_test
>
>I hope that lists helps.
Assuming I'm release manager for 1.31.0, I'm going to publish explicit 
release criteria for key platform/compiler pairs. Basically, the release 
criteria will be 100% accounting for all failures on those 
platform/compiler pairs.

I assume that Linux/GCC will be one of those platform/compiler pairs. I 
need input from Linux/GCC experts as to which version of GCC should be used 
for the release criteria.

I see GCC 3.3.1 has just been released, and so will be switching the 
Windows/GCC tests to use that version. Unless anyone objects, it will be 
one of the Windows release criteria compilers.

--Beman

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


Re: [boost] GUI/GDI template library

2003-08-10 Thread Beman Dawes
At 07:30 PM 8/6/2003, Joel de Guzman wrote:

>Beman Dawes <[EMAIL PROTECTED]> wrote:
>> At 10:54 AM 8/5/2003, Brock Peabody wrote:
>>
>>  >> I don't know much about other GUI systems but win32
>>  >> and MFC. I think we can try to define the low-level
>>  >> layer using win32 and/or MFC as the starting point.
>>  >> If we cover these two, it'll be a good start and prove
>>  >> of concept.
>>  >
>>  >Actually for a proof of concept we could get by with just one.
>>
>> Given the major differences between underlying GUI API's, your really
>need
>> to be developing in parallel for both Windows and Linux right from the
>> start.
>
>And don't forget the Mac ;-)
For a "proof-of-concept", implementations are needed for enough of the 
framework to make it obvious it can be make to work with GUI API's that 
follow the same general model. Particularly the 
event/callback/other-flow-of-control mechanisms. I know that Windows and X 
Window are major API's that follow very different flow-of-control models. 
Is the Mac sufficiently different to be an important proof-of-concept case? 
Are there others?

--Beman

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


Re: [boost] Re: Re: time_duration bug in Boost 1.30.0

2003-08-10 Thread Beman Dawes
At 05:27 PM 8/7/2003, Bo Persson wrote:
>
>"Paul A. Bristow" <[EMAIL PROTECTED]> wrote:
>
>>
>> (And other MS specific unhelpful warnings which could be dealt with
>by
>>
>> #ifdef _MSC_VER  or BOOST_?
>> #pragma warning (disable : 4800) // inefficient bool conversion?
>> #endif
>>
>> As a general point, is there any reason why 'known to be unhelpful'
>> warnings like this cannot be disabled in Boost code?
>>
>
>A problem here is that the "inefficient bool conversion" often
>actually *is* an inefficient implicit conversion to bool. IME, most of
>these warnings can be removed by actually producing a bool value.
>Adding == 0 or != 0 is often all it takes.
FWIW, I've done that for years in my own code, and have come to believe 
that it results in better code. It makes the intent clear to someone 
reading the code. With an implicit conversion, a reader is unsure whether 
or not the conversion was intended.

To answer Paul's question, some of the toolsets do disable "known to be 
unhelpful" warnings. But I agree with Bo that this warning shouldn't be one 
of them.

--Beman

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


Re: [boost] Can't get from anonymous CVS

2003-08-10 Thread Beman Dawes
At 11:29 PM 8/7/2003, Victor A. Wagner, Jr. wrote:

>At Thursday 2003-08-07 17:28, you wrote:
>>cvs server: [11:59:06] waiting for anoncvs_boost's lock in
>>/cvsroot/boost/boost/libs/numeric/mtl/test
>>cvs server: [15:35:09] waiting for anoncvs_boost's lock in
>>/cvsroot/boost/boost/libs/numeric/mtl/test
>>
>>that's been going on every 30 seconds for 5 1/2 hours
>>
>>does anyone know how to "fix" that problem?
>[deleted]
>Ok, so I can't subtract...but it's now
>cvs server: [20:28:39] waiting for anoncvs_boost's lock in
>/cvsroot/boost/boost/libs/numeric/mtl/test
When a SourceForge CVS lock goes stale you have to put in a request to 
SourceForge for them to clear the lock.

They are pretty prompt about fixing such problems, although it is past all 
understanding why they don't put some automated fix in place. Numerous 
project admins have asked for this in the past.

--Beman

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


Re: [boost] Hey, I have a replacement test file here! (was: Added new testfile, need help testing)

2003-08-10 Thread Beman Dawes
At 01:32 AM 8/9/2003, Daryle Walker wrote:

>I uploaded a new test file for the I/O state saving classes over a
>month ago.  How do we get the regression test guys to use the new file
>instead?
Add to or otherwise modify the Jamfile that drives the test?

Looks like the io tests are specified in boost-root/status/Jamfile:

run
  libs/io/test/ios_state_test.cpp 
../libs/test/build/boost_test_exec_monitor   # sources
  : # args
  : # input-files
  : static # requirements (static runtime required by 
Metrowerks)
  ;

So add another test or change this one.

The "regression test guys" just run bjam against the Jamfile. It is up to 
library maintainers to make Jamfile changes when needed.

When a library grows beyond a single simple test, it becomes worthwhile to 
set up a test directory with its own Jamfile. Look at say filesystem for 
how it is done.

--Beman

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


Re: [boost] Re: Release Manager's Checklist added

2003-08-10 Thread Beman Dawes
At 05:58 PM 8/9/2003, David Abrahams wrote:

>[EMAIL PROTECTED] (Joerg Walter) writes:
>>> OK, what do others think? Am I the only one who feels uncomfortable 
with
>>> the SF-trackers?
>
>Nope; I dislike them also.  That doesn't mean trackers in general are
>a bad idea.

I'm not happy with the S/F trackers either. But like Dave, I definately 
feel we need some form of tracking.

--Beman

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


Re: [boost] GUI/GDI template library

2003-08-10 Thread Kresimir Fresl
Brock Peabody wrote:

On Behalf Of E. Gladyshev

Don't know where to start...
Greek and Roman mythology?
[...]

Other ideas:

Atlas
ATLAS: Automatically Tuned Linear Algebra Software

http://math-atlas.sourceforge.net/

f.

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


Re: [boost] Re: Boost 1.31 release?

2003-08-10 Thread Aleksey Gurtovoy
David Abrahams wrote:
> Matthias Troyer <[EMAIL PROTECTED]> writes:
>
> > Dear Boosters,
> >
> > Since some of the applications and libraries we plan on releasing soon
> > rely on Boost features and bugfixes that are in the CVS but not in
> > Boost 1.30.[012] I wonder what the plans are for the Boost 1.31.0
> > release? Since we would prefer to base our released software on a
> > Boost release instead of a CVS snapshot I would be interested in
> > hearing about the plans for a Boost 1.31 release
>
> As far as I know the CVS is in very good health at the moment.

Uhmm, I really wouldn't say so! If you look at the main trunk report -
http://www.meta-comm.com/engineering/resources/cvs_main_trunk/developer_summary_page.html,
there are lots of regressions comparing to 1.30.0, and IMO we ought to fix
all these before we branch for the release or anything.

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


[boost] Re: swappable user defined types and STLport libraries

2003-08-10 Thread Alisdair Meredith
Peter Dimov wrote:

> I think that this specialization is ill-formed if the primary swap<> isn't
> in std. Your code is broken by STLport's tricks, even though it looks
> correct. :-)

I think this is the consensus.

> Try
> 
> template<> void std::swap( empty &lhs, empty &rhs )
> {
> }
> 
> instead and see if it works. (I think it's broken too but the compiler may
> like it better.)

Has problems implementing functions inside namespaces with earlier BCBs
so I didn't think to try it.  This is much better, as the compiler
rejects the swap straight away, so the error is found on the correct
line, rather than in shared_ptr 

I am still not clear on the 'best' solution though.
Clearly the quickest fix is to simply put the swap specialization in the
correct namespace.

However, boost code does not seem to specialize std::swap at all, but
rather provide its own swaps in namespace boost.  Is this the preferred
approach?  [using my own namespaces, obviously!]

No-throw swap operations are clearly important tool when we are worrying
about the exception guarantees, but I am not 100% clear on the 'correct'
way to do this anymore.

-- 
AlisdairM

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


RE: [boost] Re: Preliminary submission: FC++

2003-08-10 Thread Paul A. Bristow
| -Original Message-
| From: [EMAIL PROTECTED]
| [mailto:[EMAIL PROTECTED] Behalf Of Brian McNamara
| Sent: Tuesday, July 29, 2003 5:43 AM
| To: Boost mailing list
| Subject: Re: [boost] Re: Preliminary submission: FC++
|
|
| Based on David's suggestion, I'll try to briefly define all the terms
| I've used in my earlier post.

This is most helpful and shows impressive potential.

But there is quite a lot to curry ones mind ;-)

May I suggest that as well as promised documentation,
the excellent set of examples would benefit from a couple of enhancements:

1  Paste the output at the end as a comment,

/*

Output is:
2 4 6 8 10

*/

2 paste output or notes for more significant lines as a comment, for example:

f(3, 2); // yields 5

3  Don't put

using namespace boost::fcpp;

but instead

using fcpp::plus;
using fcpp::minus; ...

so the less functional programmer can see immediately what fcpp is providing for
this module.

(Just as using std::cout; std::transform; is very helpful to the less STL
literate).

4  And of course examples like BOOST_CHECK(plus(2, 2) == 4); will also be useful
to readers as well as providing a test suite.

I look forward to getting my mind further round this stuff.

Paul

Paul A Bristow, Prizet Farmhouse, Kendal, Cumbria, LA8 8AB  UK
+44 1539 561830   Mobile +44 7714 33 02 04
Mobile mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]


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


Re: Re: Re: [boost] boost and DLL's

2003-08-10 Thread E. Gladyshev

--- Edward Diener <[EMAIL PROTECTED]> wrote:
> Exporting/importing C++ classes is completely
> implementation dependent, due
> mainly to name mangling, and requires a DLL for a
> particular
> platform/compiler/release to be built. 

There are several issues with DLL and C++, to name
few:
1. Name mangling
2. Using inline methods in the exported class.
3. Global class instanses in the DLL.

How does boost ensure that inline methods don't
conflict with the exported methods.  The conflict can
be platform specific.

Is it allowed to have global instances of a class in
boost's DLLs?

Are there any development policies on how exported C++
classes should be implemented/tested in boost?

Eugene


__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] FW: Eric Ford Units - changes needed for MSVC 7.1

2003-08-10 Thread Paul A. Bristow


--- Begin Message ---
I have found that there are some changes are needed for Eric Ford Units system
in ebf_units.zip (in the files section)

to meet the requirements of MSVC 7.1 - I presume to comply with C++ Standard
better.
(I surmise that other recent compiler versions will also require this).

In dimension_list.hpp
 there are numerous requirements for typename to prefix add_frac, sub_frac ...

so these already long lines become, for example:

  typedef dimlist< typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value,  typename add_frac::value
> diml_type;

I suspect there are many other similar changes needed.

There is also what looks like a mistake in base_dimen.hpp where 'type' should be
'inv_diml'

//  struct mul_return_type::type >
struct mul_return_type::diml_type >

With these changes, I can execute example1.

It compiles without 'langauge extensions' but there are also very many warnings
at level 4 about unused variables, and very many examples of:

j:\Cpp\FordFunctions\units\base_dimen.hpp(82): warning C4180: qualifier applied
to function type has no meaning; ignored

Is anyone working on this units system? Eric?
Is anyone working on NIST/ Walter Brown units system now that it might compile
with MSVC 7.1?

There is still a great need for a units system.

Paul

Paul A Bristow, Prizet Farmhouse, Kendal, Cumbria, LA8 8AB  UK
+44 1539 561830   Mobile +44 7714 33 02 04
Mobile mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]

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


[boost] GUI sublanguage ?

2003-08-10 Thread Bohdan
 Recently there was idea about "spirit-like" dialog sublanguage
implemented in c++. I still can't get why someone may need
it ?
 Spirit is forced to use such language to build QUOTED code, which
works only when parsing occur. In case of GUI lib
sutiation is different :
 We are not building code, but tree of gui objects placed in
2d (+z order). Sure boost::gui should deal with actions,
but generally they are much more compicated than spirit ones
and can't be easyly implemented by binders/bll/phoenix.
Besides, average gui control has a lot of properties which
may change in runtime. Would be convenient and
effective to fill/change such properties using spirit like
language ?

Why invent new shape for wheel ? :

void my_action( component & sender )
{
show_dialog( "sender is " + sender.title() );
}

main()
{
window w;
w.title("sample boost application");
w.width( 400 );
w.height( 200 )

button b;
b.title("click it!");
b.on_click.connect( &my_action );
w.insert( b );
b.align( alignment::vcenter | alignment::hcenter );

progress_bar pb;
pb.align( alignment::bottom );
pb.min( 0 );
pb.max( 100 );
pb.step( 5 );
pb.smooth( true );
w.insert( pb );

w.show(); //or w.show_modal();

window::main_loop();
}

regards,
bohdan



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


RE: [boost] Re: GUI/GDI template library

2003-08-10 Thread E. Gladyshev

--- Brock Peabody <[EMAIL PROTECTED]>
wrote:
> > 
> > Oh, and I really want the ability to select layers
> 1 and 2 at runtime,
> in
> > a
> > single place in my code, on a per top-level window
> basis.
> 
> Let's just try to get it working first.  I don't
> doubt that we could do
> this but is it worth the cost in increased
> complexity to both the
> implementation _and_ the interface?

If decide to use method 1, I think the ability to use
different layer1 implementations in the same program
will come as a natural benefit w/o any additional
complexity.  Actually it is true for method 2 as well.

Eugene



__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Re: UI++ [was: GUI sublanguage;Re: Re: Re: Re: GUI/GDI template library]

2003-08-10 Thread brock

- Original Message -
From: "Beman Dawes" <[EMAIL PROTECTED]>
To: "Boost mailing list" <[EMAIL PROTECTED]>; "Boost mailing list"
<[EMAIL PROTECTED]>
Sent: Sunday, August 10, 2003 3:51 PM
Subject: Re: [boost] Re: UI++ [was: GUI sublanguage; Re: Re: Re: Re: GUI/GDI
template library]

[...]

> Well, a Vice-President is normally an officer of the corporation, so can
> give permission. I'm not quite sure "thinks it's great" is what a lawyer
> would call "permission". To protect yourself, you might want to be sure
the
> VP understands that you have posted an excerpt from some code owned by the
> company.

Thanks for the advice Beman, it never hurts to CYA :)

This makes me wonder what the legal ramifications are of developing code for
a boost or other non 'work' project while at work?  I also made it clear to
my boss, who is a good programmer and uses boost, that I planned on devoting
a significant amount of time to this new GUI project.  Again, he thought it
was great.  Should I get this permission formalized?

Thanks,

Brock

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


Re: [boost] Re: Boost 1.30.1 released

2003-08-10 Thread Douglas Gregor
- Original Message - 
From: "Fredrik Blomqvist" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, August 04, 2003 4:40 PM
Subject: [boost] Re: Boost 1.30.1 released


> Shouldn't the documentation for function and signals be added when your're
> making an official release also?

Yep, we should add that to the release manager's TODO list. We can just pull
in the 1.30.0 docs, because nothing has changed in either library for
1.30.1.

> What's the status regarding the new doc-system btw? (too lazy/tired to dig
> through the archives right now ;-)

It's there, and it's not half bad, although development has been a little
slow over the summer. Doxygen extraction has been improved a bit in recent
times.

Doug

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


[boost] question regarding boost array

2003-08-10 Thread Robert Ramey
Currently boost array contains a copy of the array that initialized it.

Is there any reason that boost array can't be enhanced  to contain a reference
to the original C array?  I think this would make it more useful
to me as well as others.  

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


[boost] Re: GUI/GDI template library

2003-08-10 Thread David B. Held
"Daryle Walker" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> [...]
> Yikes!!  The "X" in "Mac OS X" has NOTHING to do with X-Windows!

I didn't mean to suggest that it does.

> (The Mac's "X" is for the Roman numeral for "ten".)  Macs use an
> independent GUI API.  But, like Windows, there are programs that
> allow X-Windows programs to work on Macs.

Oh, one of my die-hard Mac programmer friends told me that OS X
was using X, but with their own custom X server (and widget set,
and window manager, obviously).

Dave




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


Re: [boost] Re: Wrong version.hpp in Boost 1.30.1 download

2003-08-10 Thread Beman Dawes
At 01:13 PM 8/5/2003, Daryle Walker wrote:

>On Monday, August 4, 2003, at 11:27 PM, David Abrahams wrote:
>
>> Alisdair Meredith <[EMAIL PROTECTED]> writes:
>>
>>> version.hpp still claims to be version 1.30.0
>>
>> Oh well.  I guess there are some details missing from the release
>> manager's responsibilities on the release procedure page.
>
>Can you (or Beman, who I think usually does the releases) add these
>directions to CVS?  You may want to ask Beman if there are any other
>details not yet mentioned in the docs.
I'll try to update it. The problem is that the actual checklist I use is 
quite a bit longer, and a lot of the steps are specific to my environment. 
For example, it gives the steps needed to run the particular graphical FTP 
program I use.

--Beman

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


[boost] Re: automating registering of events (was: Re: GUI/GDI templatelibrary)

2003-08-10 Thread Bohdan

"John Torjo" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>
> Eugene,
> one more thing when you implement the GUI library.
>
> I ALWAYS hated the message maps from MFC/WTL.
> So now I came up with a quite cute method of automating registering of events
for a given window.
>
> (this should work for registering messages, etc.)
>
> It's very flexible. In other words, when you add an event for wnd_widget,
> it does not couple the header file wnd_widget.h to the resource file (think
MFC
> for a moment ;) ) So, in case you modify the ID of a resource, all
> you have to do is recompile the source file (wnd_widget.cpp), not the whole
files
> depending on wnd_widget.h.


AFAIK, some gui toolkits use not event, but callback system.
IMHO it is more evective. Definitely it should be discussed
carefully.

regatds,
bohdan




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


Re: [boost] Boost.Filesystem: naming, canonical path

2003-08-10 Thread Beman Dawes
At 08:06 PM 8/9/2003, David Abrahams wrote:

>As a user of the filesystem library, I am having the experience that
>obvious things are hard to find, and the docs are much harder to
>understand than they ought to be.  The use of creative naming really
>gets in the way.  For example, the term "complete" is never defined
>anywhere.
It is defined by the is_compler() returns clause.

>  The closest we come is in the following naming rationale.
>
>is_complete
>
>bool is_complete() const;
>
>Returns: For single-root operating systems,
>has_root_directory(). For multi-root operating systems,
>has_root_directory() && has_root_name().
>
>Naming rationale: The alternate name, is_absolute(), causes
>confusion and controversy because on multi-root operating systems
>some people believe root_name() should participate in
>is_absolute(), and some don't.
>
>I'm sorry if this sounds harsh, but I think the cure for someone being
>confused about the term "absolute" on multi-root OSes is to pick the
>definition that allows the term to be meaningful (an absolute path
>identifies a specific location, and so must include the root) and *add
>a clarifying note or definition for the corner case*, not to pick some
>new term which nobody knows about and makes the library hard to
>approach.
The library isn't all that large that people can't just read about each 
function.

There were lengthy discussions on the list of this and other naming issues 
during development, during review, and during the resolution of review 
issues. Many people had fairly strong views. IIRC, the idea that 
is_absolute( "/foo" ) was false on some operating systems was impeded by 
long-held beliefs. By giving the function an unfamiliar name, people are 
forced to actually read the specs instead of just assuming what it does, 
and that ends up being a good thing, IMO.

I suppose if we were to discuss the names all over again we would come up 
with a different set of names. But unless the new names are markedly 
superior to the old names, it would just be churn to change them, and might 
be a real step backwards.

>--- aside ---
>Regarding complete paths, is there any guarantee that they are
>canonical?  Is foo/bar/../baz reduced to foo/baz?
Yes. That is documented as a postcondition specifying canonical form for 
all the functions that modify a path. I've just double checked, and it 
doesn't look like any were missed, but let me know if you spot any way to 
alter path state that doesn't supply that postcondition.

>  See
>http://java.sun.com/j2se/1.3/docs/api/java/io/File.html#getCanonicalPath()
>for an example of the possible semantics.  We could learn a lot about
>what's useful and broadly implementable by studying the libraries of
>Java and/or Python (yes, I realize that the portability of Java ain't
>quite what it's cracked up to be).
Yes, I often found other libraries helpful, although many of them offer 
syntactic portability rather than semantic portability.

The legacy operating system API's interesting because they sometimes take 
different approaches. Sometimes what we think of as a path is just a key 
used to find the actual path via some external mapping mechanism.

>--- aside ---
>
>The formal description of some of the function semantics leaves
>something to be desired.  For example, the docs for remove_all say:
>
>unsigned long remove_all( const path & ph );
>
>Precondition: !ph.empty()
>Postcondition: !exists( ph )
>Returns: The number of files and directories removed.
>Throws: if ph.empty(). See empty path rationale.
>
>So, what does this do?  At first I thought it removed all the
>directories along the branch described by ph.  I think I'm now
>inferring that if ph is a file, it is the same as remove( ph ) and
>otherwise it removes all of the files and subdirectories in ph and
>then removes ph.  A plain English description would help a lot here.
>This applies to many other functions in the library also.
Yes, a general prose description for each library would help.

>I also have some doubts about the validity of the postcondition, since
>another process can come along and create ph again before remove_all
>returns.  This applies to many other functions in the library also.
The docs really weren't clear enough about postcondition/race-condition 
interactions. I've just added a paragraph to 
boost-root/libs/filesystem/doc/index.htm#Common_Specifications to make it 
clear that postcoditions don't hold if race-conditions exist.

Because of the race-condition problem, the original docs did not specify 
postconditions. Someone pointed out how much clearer they because if 
postconditions were used, and the docs got converted at that point.

>The difference between is_empty(ph) and ph.empty() is too slight, IMO,
>for their differing semantics.  IMO it's not useful to have one
>function which reports both empty files and empty directories - the
>implications of the two are much too different.
Early v

Re: [boost] Re: Re: Re: the boost::signal sample crashes

2003-08-10 Thread E. Gladyshev

--- Bohdan <[EMAIL PROTECTED]> wrote:
> 
> "E. Gladyshev" <[EMAIL PROTECTED]> wrote in message
>
news:[EMAIL PROTECTED]
> > Well, how can I use boost::threads with my toy
> > operating system?
> 
> If you are writing application for your toy OS, you
> should :
> 1. Edit boost::thread implementation to
> work for your OS.
> 2. Edit build system to produce
> boost::thread
> library for your OS.
> 3. Link your toy OS applications with THIS
> library .
> 
> Idea is simple : you are writing application for ONE
> OS (toy or serious) hence you don't need
> boost::thread
> implementation for more than ONE OS in ONE
> application.
> IMO, it is true for GUI library :)
> 

What is exactly wrong with my solution that doesn't
have the ONE OS limitations, doesn't have any
compilation time problems and supports my toy OS (or
any other OS) directly (w/o editing the boost::thread
implementation)?

Eugene


__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


[boost] Re: Files of types *.ipp are unfriendly, especially to MSVC ?

2003-08-10 Thread David Abrahams
"Paul A. Bristow" <[EMAIL PROTECTED]> writes:

> OK, I'm persuaded.
>
> Yet another thing one needs to know  and my brain is already full :-(
>
> Since I couldn't find how to make the editor work with .ipp files from the MS
> documentation, but it ws kindly provided by a diligent Booster, can you suggest
> where this info shold be stored?

I dunno.  Wiki? 

> PS Do files of type .ipp get checked for nasties like tabs, dud newlines?

I dunno.  You can check the "scripts" as well as I can.
-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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


RE: [boost] Files of types *.ipp are OK even for MSVC ?

2003-08-10 Thread Paul A. Bristow
RTFM again :-((

Except that even knowing that answer, I couldn't get the help system to help.

But Thanks

Paul

| -Original Message-
| From: [EMAIL PROTECTED]
| [mailto:[EMAIL PROTECTED] Behalf Of Victor A. Wagner, Jr.
| Sent: Saturday, August 09, 2003 8:38 PM
| To: Boost mailing list
| Subject: Re: [boost] Files of types *.ipp are unfriendly, especially to
| MSVC ?
| 
| 
| in vs.net 2003 you can   menu->tools->options->projects->VC++Build
| add  *.ipp  to the list
| things then hilight, etc, just fine
 
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Iterator adaptor question

2003-08-10 Thread Thomas Witt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Rozental, Gennadiy wrote:

|>1) Since only 1 object can be passed to the iterator adaptor
|>constructor, I
|>had to pass a pair.
|
|
| Use object generators.
|
|
|>2) Distance uses only one of the base iterators.
|
|
| Use minimal distance.
Different distances are most certainly a precondition violation. AFAIAC
assert on differing distances.
|
|
|>3) iterator_category uses only 1 of the iterators.
|
| Use most restrictive category.
In general don't use the old iterator_adaptor unless you really have to.

Thomas

- --
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet
Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQE/MWiy0ds/gS3XsBoRAg/mAKCFxhPTSwxfrqQloTThZN9HfNjt0gCgkgKB
32RUc1R4EOJzUgw4dmlRgoE=
=gADX
-END PGP SIGNATURE-
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


RE: [boost] Re: time_duration bug in Boost 1.30.0

2003-08-10 Thread Paul A. Bristow
In that case, you might prefer to mail me off-list a zip of your most recent
version.

This might help you get a MSVC 7.1 strictly tested version ready for 1.31.0

Paul


| -Original Message-
| From: [EMAIL PROTECTED]
| [mailto:[EMAIL PROTECTED] Behalf Of Jeff Garland
| Sent: Saturday, August 09, 2003 10:59 PM
| To: Boost mailing list
| Subject: RE: [boost] Re: time_duration bug in Boost 1.30.0
|
|
| On Sat, 9 Aug 2003 20:00:08 +0100, Paul A. Bristow wrote
| > I suggest that I wait for the 30.1 release to be available, retest
| > with strict mode and then mail you off-list with results from .net
| > 2003 aka 7.1.
|
| Do you mean 1.31.0 or 1.30.2?  The changes I'm speaking of are not
| in 1.30.2.  I expect it will be awhile before 1.31.0.
|
| Jeff
|
| ___
| Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
|
|

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


Re: [boost] GUI/GDI template library

2003-08-10 Thread Pietrobon Marcello
Hi,
I read today all this thread because this subject is very interesting.
I know I am coming very late so I don't want to re-ignite the discussion again
Just to put a word

I have some doubts about  the TraitsImpl approach, as opposed to the pImpl
approach.
On one side the use of template can give you more flexibility.
On an other side less.
IMO it will depend on what you what to do with them.

The use of templates is a very good tool for create flexible components, building
blocks of a program, and integrating them
in your program.
But to put all of them(components) together in the form of some template of
template of ... of template...
that I think it will be too much and you'll end up by loosing flexibility and
giving to the final users
a big headache.

Similarly, because you are working for Boost you are going to probably set a
programming paradigm for the GUI programming
in C++ as the STL has successfully become for data structures and other
algorithms.
Even MFC has somehow done that. And you know with what results.
At the beginning it was seeming to be a good framework. But now, at least by
experience, we know that it is better not to use it
unless for creating very 'standard' programs.

In other words, the choice of putting everything in terms of TraitsImpl and of
always avoiding the pImpl approach
risks to force people to do GUI programming in a way that is going to give people
more trouble than it is worth it.

Perhaps this can be decided only after you'll make your efforts in your new
project.


For me the whole template thing boils down to this: template are great for compile
time components.
I.e. I have a list that I *know* at compile is going to be a list of double.
It will not change dynamically into a list of std::string at runtime.
However, much of UI programming/frameworks is about dynamic changes at *runtime*
NOT compile time.
That's why I am more convinced of the pImpl approach



Also, IMHO, I would keep in mind that programmers successfully use the templates
only after some experience with a more common programming.
I wouldn't start to set up a standard keeping an eye only to 'real' programmers
and scare all the others away.
Which are the vast majority.

I felt I had to express my opinion even if I come very late in the discussion
Maybe it will help.


About the boos_gui and boos_gui_test projects, they do not link under vc6 sp5
( And if I use STLport the not even link, not with vc7.0 either )
It would have been useful to have them working in order to better understand your
concepts.


Best Regards,
Marcello



"E. Gladyshev" wrote:

> --- Douglas Gregor <[EMAIL PROTECTED]> wrote:
> > > template < typename IT, typename PhysicalGuiLayer
> > >
> > > class ListControl
>
> I came with a name for this idiom, ImplTraits idiom.
>
> template <... typename ImplTraits >
> class someclass
>
> It is like the name of the pImpl idiom.
>
> Eugene




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


[boost] Re: Boost.Filesystem: naming, canonical path

2003-08-10 Thread David B. Held
"David Abrahams" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> [...]
> As a user of the filesystem library, I am having the experience that
> obvious things are hard to find, and the docs are much harder to
> understand than they ought to be.
> [...]

Just out of curiosity, is the filesystem library being used to create a
new build or regression test system, like it was originally designed
to do?

Dave




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


RE: [boost] Re: GUI sublanguage ?

2003-08-10 Thread Brock Peabody


> -Original Message-
> From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
> On Behalf Of Philippe A. Bouchard
> Sent: Thursday, August 07, 2003 4:04 PM
> To: [EMAIL PROTECTED]
> Subject: [boost] Re: GUI sublanguage ?
> 
> [EMAIL PROTECTED] wrote:
> 
> [...]
> 
> > After having followed this thread I wander if we are trying to
> > reinvent
> > the wheel. By googling a bit one can find plenty of "Gui Toolkits"
and
> > here I saw little of them. Not a word on Qt, for example. I never
> > used it for an important project but they give a (good ?) solution
for
> > example to the layout issues discussed so far.
> > If I should criticize them (as a lazy user who is in troble finding
> > his way among all those features) if the fact that there are huge
> > classes that probably need further decomposition of resposibilities.
> >
> > Anyway Qt make life simple for simple apps and provides something
> > that scales quite well for larger projects (I haven't used it but
> > I can use KDE as witness).
> >
> > So I would like to have a clearer idea of the difference between
> > the goal of this thread and existing solutions (i.e. Qt).
> 
> At some degree it becomes political issues.  I doubt Boost would want
to
> take the same risky path I took (Corel).
> 

Qt is a commercial library for one thing.  For another, developing a
platform independent GUI environment is only half of our purpose.  The
other is to leverage modern C++ techniques to simplify making GUIs.  A
quick glance at Qt's class hierarchy should be enough to see that they
are not using such a design:
http://www.trolltech.com/images/classchart.gif.


Brock

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


[boost] Re: [MPL] Metafunction classes

2003-08-10 Thread David Abrahams
"David B. Held" <[EMAIL PROTECTED]> writes:

> "David Abrahams" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>> [...]
>> Don't pass metafunctions directly; it's bad for interoperability.
>> Then you get a metafunction taking a template template
>> parameter, and you can't use it in lambda expressions.
>
> Hmm...ok, I'm not getting anywhere talking about it abstractly, so
> I'll just say that I'm trying to figure out how to improve the policy
> adaptor interface for smart_ptr.  In particular, I would like to go
> from this:
>
> smart_ptr, my_other_policy<_> > p;
>
> to this:
>
> smart_ptr p;
>
> I know I can do this by changing my_*policy to a metafunction
> class.  

Yes, and I'm trying to say, "don't do it by switching to template
template parameters".

> But then smart_ptr doesn't know where the guts are.

Huh?  What guts?  Precise speaking, please!
Aren't they in the nested apply<>?

> Aleksey gave me the impression that I could mix and match, since the
> policy adaptor uses lambda to deal with the policies.  But when I
> tried to do that

What, specifically, did you try?

> I found out the rude way that the policy client (smart_ptr) could no
> longer find the stuff in the nested apply<> template, because it
> assumed the policy contained all the stuff.

This is way too vague for me to say anything useful.

> Now that I think about it, things would "just work" if I declared
> the policies this way:
>
> 
  ^--something's missing here
> class smart_ptr
> {
> public:
> typedef OwnershipPolicy::apply ownership_policy;
> typedef StoragePolicy::apply storage_policy;
> // ...
> };
>
> But then, that doesn't work for policies which are *not*
> metafunction classes.  I have a feeling the policy adaptor
> needs to detect whether the policy is a metafunction class
> or a lambda expression,

No; just transform everything into a metafunction class using lambda,
and you're done.

> but I don't really know what I'm talking about at this point.

Me neither ;->

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

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


RE: [boost] Re: time_duration bug in Boost 1.30.0

2003-08-10 Thread Jeff Garland
On Sat, 9 Aug 2003 20:00:08 +0100, Paul A. Bristow wrote
> I suggest that I wait for the 30.1 release to be available, retest 
> with strict mode and then mail you off-list with results from .net 
> 2003 aka 7.1.

Do you mean 1.31.0 or 1.30.2?  The changes I'm speaking of are not
in 1.30.2.  I expect it will be awhile before 1.31.0.

Jeff

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


Re: [boost] [BGL] bug in incremental_components examples /documentation

2003-08-10 Thread Jeremy Siek
Thanks Janusz. I've checked in the fixes.

On Saturday, August 9, 2003, at 12:27 PM, Janusz Piwowarski wrote:

Hi all

I've found bug in incremental_components examples and
documentation. Type _Rank_ is expected to be size_type, but
container _rank_ is created from vertex_descriptor. Examples work
because adjacency_list VertexList container type is vector.
// ...
  typedef adjacency_list  Graph;
  typedef Graph::vertex_descriptor Vertex;
// ...
  // create the disjoint-sets structure, which requires
  // rank and parent vertex properties
  std::vector rank(num_vertices(G));
//^^
  std::vector parent(num_vertices(G));
  typedef std::vector::iterator Rank;
//
  typedef std::vector::iterator Parent;
  disjoint_sets ds(rank.begin(), parent.begin());
//...
Regards,
Janusz
___
Unsubscribe & other changes: 
http://lists.boost.org/mailman/listinfo.cgi/boost
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


Re: [boost] Iterator adaptor question

2003-08-10 Thread Thomas Witt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Rozental, Gennadiy wrote:

|>-BEGIN PGP SIGNED MESSAGE-
|>Hash: SHA1
|>
|>Rozental, Gennadiy wrote:
|>
|>| What is the problem adapting pair of iterators to scalar vectors to
|>produce
|>| an iterator with complex value type?
|>
|>The problem is you can hardly adapt a pair. So using
|>iterator_adaptor (the new class template) does not provide
|>any benefit.
|
|
| Why is that?
The whole point in adapting is that you modify some but not all
behaviour/interface of a thing. Ther is nothing a pair provides that can
be reused so adaption is pointless.
That's why the new version provides iterator_facade and
iterator_adaptor. iterator_facade helps with implementing iterators,
iterator_adaptor is for adapting iterator like types.
| I did not look in depth on new version but I remember that old
| one allowed to adapt any source.
You needed to do this as the iterator interface implementation was not
seperated from the actual iterator_adaption.
Thomas

- --
Dipl.-Ing. Thomas Witt
Institut fuer Verkehrswesen, Eisenbahnbau und -betrieb, Universitaet
Hannover
voice: +49(0) 511 762 - 4273, fax: +49(0) 511 762-3001
http://www.ive.uni-hannover.de
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQE/MVHC0ds/gS3XsBoRAsJLAJ4gb8KM3GJGi3wYM65ppMSfasuXtACghiD3
dGgVfgSioFYgEm0ihB0r9zY=
=wm0V
-END PGP SIGNATURE-
___
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost


RE: [boost] Re: Gcc problem in variant library

2003-08-10 Thread Hartmut Kaiser
Eric Friedman wrote:

> > > The variant library developers were checking in changes 
> almost daily 
> > > until a week or two ago, so you might want to make sure 
> you have the 
> > > latest from CVS.
> >
> > Thanks for your response.
> > Yes, I have the latest CVS (Boost::HEAD) snapshot. BTW this error 
> > shows up for the variant tests too.
> >
> > > They haven't been active since then, however, so may be 
> on vacation 
> > > or otherwise busy.
> >
> > Ok, I'll wait a bit and retry it later.
> 
> I believe the problem should now be fixed. Let me know if it 
> still doesn't work.

I've checked a new CVS snapshot just right now, but the problem
persists. Sorry.

 cd $(BOOST_ROOT)/libs/variant/test
 gcc -I$(BOOST_ROOT) test1.cpp
 In file included from D:/cvs/boost/boost/variant/variant.hpp:25,
 from D:/cvs/boost/boost/variant.hpp:22,
 from test1.cpp:18:
 D:/cvs/boost/boost/variant/detail/forced_return.hpp:57: default
argument
   specified in explicit specialization

Regards Hartmut


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


[boost] Re: switch-based runtime type selection (for variant)

2003-08-10 Thread Eric Friedman
Brian,

Brian Simpson wrote:
> A fundamental problem encountered by boost::variant is that of invoking an
> overloaded function for the correct type, where the type is not known
until
> runtime.  As near as I can tell, all proposed solutions to this problem
have
> involved uncomfortable space or time tradeoffs.  I have read several posts
> which asked why we couldn't use a switch statement--it would avoid the
> expenses of the current solutions without incurring any of its own.
> Until recently, I agreed with those (whose expertise I highly respect) who
> said it was not possible.

I don't think anyone ever said it wasn't possible. It was just whether it
would actually improve anything -- i.e., it was unclear whether compilers
would optimize recursively-inlined switch statements better than
recursively-inlined if statements.


> However, while perusing the source for the current implementation of
> boost::variant, a possible solution occurred to me.
> I have spent some time fleshing out the proposed solution, and it seems to
> be all standard C++ (no non-standard).  I think it might be referred to as
> "sequence unrolling".
> Here's how it works:
[snip]
>
> Questions or comments?

Sorry, I've just gotten back from vacation. I haven't spent *too* much time
looking through your code, but I can't see how it improves on my current
code, which features sequence unrolling. If you could explain to me I'd
appreciate it.


> p.s.  I must acknowledge Itay's and Eric's efforts in the current
> implementation of boost::variant.  I've learned a lot just from studying
the
> code.

Thanks! It's nice to know our efforts are being recognized :)


> It was while I was browsing the recently added implementation of
> switched type selection based on the variadic template parameters that
this
> idea occurred to me.

Wait, hold on a second. The current implementation isn't tied to any
particular "unrolling constant." The current visitation mechanism after
preprocessing should like like this (see function template
apply_visitor_impl):

  typedef typename step0::type T0;
  typedef typename step0::next step1;
  typedef typename step1::type T1;
  typedef typename step1::next step2;
  // ...and so on until unrolling constant...

  switch (var_which)
  {
case (Which::value + (0)):
return apply_visitor_impl(visitor, storage, static_cast(0),
1L);
case (Which::value + (1)):
return apply_visitor_impl(visitor, storage, static_cast(0),
1L);
// ...and so on until unrolling constant...
  }

  // ...else continue unrolling next "chunk" of types (by recursively
calling the above w/ stepN)...

Thus, if we are to assume O(1) complexity for a switch, then the complexity
of the visitation mechanism becomes O( N / unrolling-size ), where
unrolling-size is exposed as BOOST_VARIANT_APPLY_VISITOR_UNROLLING_LIMIT. I
think this is as good as it gets.

Let me know if your implementation is achieving a better result.

Thanks,
Eric



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


[boost] Re: GUI/GDI template library

2003-08-10 Thread Bohdan

"E. Gladyshev" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
>
> --- Brock Peabody <[EMAIL PROTECTED]>
>
>
> > We can get a simple sub-language running on top of
> > those few controls
> > quickly enough.
>
> I agree. I was thinking about setting up a sourcesafe
> project. What do you think about the name, boost::SGTL
> (Standrad GUI Template Library)?
>

1. Boost isn't standart but near :)
2. Finally your lib may become non-template ( i mean cpp files) ...

What about simple boost::gui ?

regards,
bohdan



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


RE: [boost] GUI/GDI template library

2003-08-10 Thread Brock Peabody


> -Original Message-
> From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
> On Behalf Of E. Gladyshev
> Sent: Wednesday, August 06, 2003 3:42 PM
> To: Boost mailing list
> Subject: RE: [boost] GUI/GDI template library
> 
> 
> --- Brock Peabody <[EMAIL PROTECTED]>
> wrote:
> > I think now we need to decide which
> > *nix GUI API to use
> > and get started on a proof of concept.
> 
> I am currently working with win32 only. I can take
> care of this one. I think it'll be nice to have
> support for X as well.
> 
> > Maybe we should decide which elements of the layer 1
> > API to implement
> > first.  What do you think about: window, button,
> > edit, and static_text?
> > We can get a simple sub-language running on top of
> > those few controls
> > quickly enough.
> 
> I think it'll be nice to include a container like
> control like list/tree control to demonstrate how they
> could be linked to STL iterators.

Agreed.  I vote for the list control then, I think it's a little more
straightforward.

> 
> I was thinking about starting to work on on the layer
> 2 design first. The idea is to design the layer 2 the
> way we'd like it to be first. It'll provide a set of
> natural requirements for layer 1.

Agreed.  I think the layer 2 interface is where we're going to need the
most feedback from other boosters too.

>  Using these
> requirement, we'll try to design the layer 1
> traits/polices. Then we review it and decide whether
> it could be implemented on win32/X platform. If it
> doesn't work, we'll revisit the layer 2 design again
> and correct the layer 1 requirements. I'd suggest a
> recursive design procedure. :)

Agreed. 
> 
> I think we'll have to establish some basic
> design/implemntation polices/idioms.
> 1. For instance how we handle memory allocations, are
> we going to use std::allocator idiom or just
> new/delete.
> 2. Is the library thread-safe or not.
> 3. Event handling polices (send/post, etc.).

I think we're going to have to allow the users to specify traits at
layer 2 at least.  You could specify things like allocators and and
default behaviours.  Maybe we could even use some sort of named template
parameter mechanism since there are so many different things that can be
specified.  I don't think we need to worry about traits in the first
cycle or two of our recursive (I thought they called it iterative?)
design though.

(2) I'd say the library should be no less thread safe than the
underlying API.  Some APIs may be inherently thread-unsafe (MFC for
instance).

(3) Use function objects ala boost::function<>?

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