Petr Kocmid | 1 Nov 01:07 2000
Picon

RE: Boost Doxygen documentation (was: 2000-10-22 Minutes )

> From: Beman Dawes [mailto:beman <at> esva.net]
> *  What kinds of experiences are others having with Doxygen?
> What problems do they run into?

I am using doxygen for several projects. It's a great tool, with many
features far ahaed of any similar one. Unfortunately for boost, most
problems for me comes in documenting templates. Due to limited parsing
capabilities (lex stuff), some constructs are not understandable by doxygen.
I had problems with specialisations too. In such incidents, doxygen silently
produced completely different declarations in documentation than source code
was or placed the documentation under incorrect entry. However, there are
easy workarounds in such cases. And if anything else fails, generated docs
can always be changed manually ;-)

Using the tool itself is easy, it has a portable build system made in perl
and is accessible from cvs site.
Lamers could download precompiled binaries from web site.

I think the main reason of relative doxygen weakness  in templates is that
it is not commonly used with template libraries. I am sure boost usage of
the tool will be a great "boost" of doxygen itself!

BTW, some months ago, feeding doxygen with complete STLport was a killing
joke. At least for win2k...

Petr Kocmid
pkocmid <at> atlas.cz

------- MSVC users only:
Here's example of part of my integration of doxygen invocation from Visual
(Continue reading)

David Abrahams | 1 Nov 01:49 2000
Picon
Picon

Re: py_cpp problem: unresolved external symbol


----- Original Message -----
From: <ron_clarke <at> hp.com>

> I've been through my
> code and the py_cpp code and cannot determine the reason the linker
> is complaining about 'from_python'.

Me neither. It would help if you could send me your project or at least the
complete source files.

-Dave

Jeff Garland | 1 Nov 05:03 2000

RE: Boost Doxygen documentation (was: 2000-10-22 Minutes )

Beman -

First off, I agree with most of what Eric and Alan 
had to say, but here are some additional thoughts...

Beman wrote:
> *  Is the generated documentation good enough?  Examples I have seen are 
> only partially convincing.  They always seem to skimp on prose 
> descriptions.
That's true.  I have seen plenty of bad documentation from
generators(much of it generated from equally ugly code).
Since I made NO modifications and none of the code is 
instrumented I expect the actual comments to be minimal.
In fact, while I think it would be cool to have the code
commented I learned allot about boost without the comments.

I find it extremely valuable to be able to see the 
relationships.  I don't know about you, but I am unable
to dig out the inheritance graph from reading the source (ok,
I can do it, but it is a pain and I never get to browse the 
whole library like I can with the generated docs).  Also,
I find it handy to be able to follow the links in the
HTML version of the code.  If you look at the link
below, you will see that the header files are hyper linked as
well as the other referenced classes (see line 200).
http://www.crystalclearsoftware.com/users/jeff/boost/random.hpp-source.html

Also, I was responding to Joerg's point about include dependencies.
Again, this is a valuable reference when trying to understand the
structure of the library implementation.  
(Continue reading)

Anton Gluck | 1 Nov 06:07 2000

py_cpp: vc6_prj and version 10-31

Dave,

Is there a chance that vc6_prj doesn't work with the changes made for the
new release? I got your release 10-31 and customarily wanted to compile 
its demo.dll (just checking that everything's ok :-), but got these
errors:

Compiling...
extclass_demo.cpp
d:\py_cpp\init_function.h(34) : warning C4181: qualifier applied to
reference type ignored
        d:\py_cpp\init_function.h(58) : see reference to class template
instantiation 'py::detail::const_ref_selector<0>::const_ref<int const &>'
being compiled
        d:\py_cpp\init_function.h(87) : see reference to class template
instantiation 'py::detail::parameter_traits<int const &>' being compiled
        d:\py_cpp\init_function.h(188) : see reference to class template
instantiation 'py::detail::reference_parameter<int const &>' being
compiled
        d:\py_cpp\init_function.h(183) : while compiling class-template
member function 'class py::InstanceHolderBase *__thiscall py::Init1<class
py::InstanceValueHolder<class extclass_demo::Foo,class
extclass_demo::FooCallback>,int const &>::create
_holder(class py::ExtensionInstance *,struct _object *,struct _object
*) const'
d:\py_cpp\init_function.h(34) : error C2529: '<Unknown>' : reference to
reference is illegal
        d:\py_cpp\init_function.h(58) : see reference to class template
instantiation 'py::detail::const_ref_selector<0>::const_ref<int const &>'
being compiled
(Continue reading)

Anton Gluck | 1 Nov 06:19 2000

Re: py_cpp: exposing implied no-args functions

Dave,

> Just add an overload:
> 
> static void myclass_addvar0(MyClass& x)
> {
>   x.AddVar();
> }
> ...
> MyClass_class.def(myclass_addvar0, "AddVar");

Thanks, it works beautifully.

Toni

David Abrahams | 1 Nov 06:52 2000
Picon
Picon

Re: py_cpp: vc6_prj and version 10-31


----- Original Message -----
From: "Anton Gluck" <gluc <at> midway.uchicago.edu>

> Is there a chance that vc6_prj doesn't work with the changes made for the
> new release? I got your release 10-31 and customarily wanted to compile
> its demo.dll (just checking that everything's ok :-), but got these
> errors:
<snip>
> Since I see a lot of the (with me) infamous "const"s, I'm wondering
> whether the vc6_prj code is perhaps not up to date.

I just downloaded the project to a fresh directory and everything worked,
but I think that's because I checked an MSVC bug workaround into boost a few
days ago which hasn't made it into a release yet. You can get the fix at:

http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/boost/boost/detail/ob_type_tra
its.hpp?cvsroot=boost

(mind the line breaks)

[Beman, perhaps you'd consider posting an update soon?]

> Two other, minor points: vc6_prj.dsp is read-only, but I would guess that
> most people need to do a bit of customization. And in the release version,
> "warning D4025 : overriding '/Ot' with '/Os'" still shows up.

That's just an artifact of my version control. When it goes into boost
distribution, I think that will go away.

(Continue reading)

Anton Gluck | 1 Nov 08:02 2000

Re: py_cpp: vc6_prj and version 10-31

Dave,

> I just downloaded the project to a fresh directory and everything worked,
> but I think that's because I checked an MSVC bug workaround into boost a few
> days ago which hasn't made it into a release yet. You can get the fix at:
> 
> http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/boost/boost/detail/ob_type_tra
> its.hpp?cvsroot=boost

Yessss - that did it. However: There's still a problem with my own wrapper
code. If you remember, you told me earlier to wrap std::ifstream as if it
were a class of my own so that I could use it as a parameter for my
TextRecordIterator (the constructor is TextRecordIterator(std::ifstream&
inputData)). This works well with the older version of py_cpp, but with
the new version it gives me these errors:

d:\py_cpp/init_function.h(188) : error C2665: 'from_python' : none of the
123 overloads can convert parameter 2 from type 'struct py::Type<char
const * const &>'
        d:\py_cpp/init_function.h(183) : while compiling class-template
member function 'class py::InstanceHolderBase *__thiscall py::Init1<class
py::InstanceValueHolder<class std::basic_ifstream<char,struct
std::char_traits<char> >,class py::HeldInstance<class
std::basic_ifstream<char,struct std::char_traits<char> > >
>,char const * const &>::create_holder(class py::ExtensionInstance
*,struct _object *,struct _object *) const'
d:\py_cpp/init_function.h(189) : error C2661: 'InstanceValueHolder<class
std::basic_ifstream<char,struct std::char_traits<char> >,class
py::HeldInstance<class std::basic_ifstream<char,struct
std::char_traits<char> > > >::InstanceValueHolder<class 
(Continue reading)

Eric Weitzman | 1 Nov 08:07 2000
Picon

RE: Boost Doxygen documentation (was: 2000-10-22 Minutes )

> From: David Abrahams [mailto:abrahams <at> mediaone.net]
> Sent: Tuesday, October 31, 2000 11:39 AM
>  <snip>
> All the same, I'd wager it trips over specializations.

I have one template specialization and it gets documented as a separate
class. For testing, I've made both the template and the specialization
inherit/not inherit from a
bogus base class, and doxygen showed the correct inheritance relationships
in all cases.

- Eric

Jeff Garland | 1 Nov 14:27 2000

RE: Boost Doxygen documentation (was: 2000-10-22 Minutes )

Petr wrote:

> I am using doxygen for several projects. It's a great tool, with many
> features far ahaed of any similar one. Unfortunately for boost, most
> problems for me comes in documenting templates. Due to limited parsing
> capabilities (lex stuff), some constructs are not understandable
> by doxygen.

I haven't seen any problems with the parsing of templates.  We can debate
the effectiveness of the documentation of templates, but I would say
nothing does a better job at this point.

> Using the tool itself is easy, it has a portable build system made in perl
> and is accessible from cvs site.
> Lamers could download precompiled binaries from web site.

Put me in the "Lamer" group.  I just downloaded the binaries b/c I'm
not interested in taking it apart, only using it.

>I am sure boost usage of
> the tool will be a great "boost" of doxygen itself!

Agreed!

> BTW, some months ago, feeding doxygen with complete STLport was a killing
> joke. At least for win2k...

Hmmm.  Thanks for the idea!  I feed STLPort-4.0 to Doxygen last night and it
ran through just fine on my Win98 box :-)

(Continue reading)

Jeff Garland | 1 Nov 15:20 2000

Re: Is header dependency table useful?

Jeremy -

> Doxygen isn't picking up the indirect includes, and so 
>  gives a less useful view, IMO.  I don't know if it has 
>  an indirect include 
>  option.

The problem isn't indirect includes, it is a macro expansion issue.  
My Doxygen options were not set to expand macros, so all the 
includes in regex.hpp under the #ifdef __cplusplus were not 
picked up.  I have rerun it and it works fine, but I have to 
go to work now so I won't be able to post the change till 
later :-(

Jeff


Gmane