Bug#679900: package description copied from manual page

Justin B Rye jbr at edlug.org.uk
Mon Jul 2 12:42:07 UTC 2012


Martin Eberhard Schauer wrote:
> Dear Perl Maintainers,
> translating the description (1) I wondered whether it is too technical.
> Actually the text appears to be copied from the manual page (2).
> 
>    Description: Perl module containing stack trace and stack trace frame objects

(I suppose we could complain that "Perl module" seems redundant for a
package named "lib*-perl", but it's probably not worth trying to find
anything better.)

>     The Devel::StackTrace module contains two classes, Devel::StackTrace
>     and Devel::StackTraceFrame.  The goal of this object is to encapsulate
>     the information that can found through using the caller() function, as
>     well as providing a simple interface to this data.
> 
> I'm not comfortable with the wording here. I'm not a Perl programmer yet and I
> believe that a module provides code for a class that becomes instantiated in
> an object.

Or to look at it another way, a Perl "class" is a Perl package that
provides subroutines ("methods") for handling data references of a
special kind ("objects").  So... I'm not sure what the issue is here.
I'm not keen on the way it jumps to "this object" - is that it?

>     .
>     The Devel::StackTrace object contains a set of Devel::StackTraceFrame
>     objects, one for each level of the stack.  The frames contain all the
>     data available from caller() as of Perl 5.6.0 though this module still
>     works with 5.00503.
> 
> These are quite old Perl versions. They are not mentioned by upstream (2) any
> more.

Indeed, Perl 5.6 came out in 2000, so yes, this needs an update.

>     .
>     This code was created to support the Exception::Class::Base class
>     (part of Exception::Class) but may be useful in other contexts.
> 
> I doubt that this is information suitable for the clueless person considering
> whether to install this module.

Well, it may not be a -dev package, but it is a libdevel-*, so they'd
be getting the right impression.  The main reason this package would
be installed is because it's pulled in automatically as a runtime
dependency of various things like request-tracker4.
 
> Please consider this shortened version:
> 
>    Description: Perl module providing stack trace facilities
>     The Devel::StackTrace module provides two classes, Devel::StackTrace
>     and Devel::StackTraceFrame.
>     .
>     The Devel::StackTrace object encapsulates the information that can be
>     obtained by using the caller() function, as well as providing a simple
>     interface to this data.
>     .
>     The Devel::StackTrace object contains a set of Devel::StackTraceFrame
>     objects, one for each level of the stack.  The frames contain all the
>     data available from caller().

The problem here is that after it says there are two of them, D::ST
and D::STF, it's confusing that both of the following paragraphs
appear to be describing D::ST - it's not clear that the second
paragraph is effectively defining D::STF.

I may be squeezing too far, but would the following still be an
accurate summary?

      The Devel::StackTrace module provides two classes.
      .
      Devel::StackTrace objects provide a simple interface to the data
      available from caller(), encapsulating the information from a set of
      Devel::StackTraceFrame objects.
      .
      Devel::StackTraceFrame objects each contain the caller data for one
      level of the stack.

-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package






More information about the pkg-perl-maintainers mailing list