Package: groff-base; Maintainer for groff-base is Colin Watson <cjwatson@debian.org>; Source for groff-base is src:groff (PTS, buildd, popcon).
Reported by: Kenshi Muto <kmuto@debian.org>
Date: Sat, 24 Oct 2009 08:09:01 UTC
Severity: normal
Tags: patch
Found in version groff/1.20.1-6
Fixed in versions groff/1.21-1, groff/1.21-4
Done: Colin Watson <cjwatson@debian.org>
Bug is archived. No further changes may be made.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded
to debian-bugs-dist@lists.debian.org, kmuto@debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Sat, 24 Oct 2009 08:09:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Kenshi Muto <kmuto@debian.org>:
New Bug report received and forwarded. Copy sent to kmuto@debian.org, Colin Watson <cjwatson@debian.org>.
(Sat, 24 Oct 2009 08:09:07 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Package: groff-base
Version: 1.20.1-6
Severity: normal
Hi,
I noticed some whitespaces of Japanese manpages are shown too wide
after I upgraded my Debian from Lenny to Sid.
I think this problem is what you noted on 1.20.1-1,
* Dropped multibyte patch. CJK is partially supported by way of Unicode
input, but widths are wrong and proper line breaking is not implemented;
this is planned to be added by way of "character classes". However, I
can't justify holding new groff code out of Debian any longer when CJK
manual pages can more or less be read with the new release.
I attached some files.
- su-sid.png: 'LANG=ja_JP.UTF-8 man su' on sid. (problem)
- su-lenny.png: 'LANG=ja_JP.UTF-8 man su' on lenny. (OK)
- su.roff: roff file to pass "nroff -mandoc -Tutf8". This file was created
from "cat /usr/share/man/ja/man1/su.1.gz|/usr/bin/zsoelim|/usr/lib/man-db/manconv -f UTF-8:EUC-JP -t UTF-8//IGNORE|preconv -e UTF-8|tbl".
Lenny's nroff works with this file.
Thanks,
--
Kenshi Muto
kmuto@debian.org
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-2-openvz-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages groff-base depends on:
ii libc6 2.10.1-1 GNU C Library: Shared libraries
ii libgcc1 1:4.4.2-1 GCC support library
ii libstdc++6 4.4.2-1 The GNU Standard C++ Library v3
groff-base recommends no packages.
Versions of packages groff-base suggests:
pn groff <none> (no description available)
-- no debconf information
[su-lenny.png (image/png, inline)]
[su-sid.png (image/png, inline)]
[su.roff (application/octet-stream, attachment)]
Information forwarded
to debian-bugs-dist@lists.debian.org:
Bug#552201; Package groff-base.
(Sat, 24 Oct 2009 14:54:07 GMT) (full text, mbox, link).
Acknowledgement sent
to Colin Watson <cjwatson@debian.org>:
Extra info received and forwarded to list.
(Sat, 24 Oct 2009 14:54:07 GMT) (full text, mbox, link).
Message #10 received at 552201@bugs.debian.org (full text, mbox, reply):
On Sat, Oct 24, 2009 at 05:03:40PM +0900, Kenshi Muto wrote: > Package: groff-base > Version: 1.20.1-6 > Severity: normal > > Hi, > I noticed some whitespaces of Japanese manpages are shown too wide > after I upgraded my Debian from Lenny to Sid. > > I think this problem is what you noted on 1.20.1-1, > * Dropped multibyte patch. CJK is partially supported by way of Unicode > input, but widths are wrong and proper line breaking is not implemented; > this is planned to be added by way of "character classes". However, I > can't justify holding new groff code out of Debian any longer when CJK > manual pages can more or less be read with the new release. Indeed so. My initial work on this is in https://code.launchpad.net/~cjwatson/groff/charclass, but I haven't had any time to work on it recently. -- Colin Watson [cjwatson@debian.org]
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Fri, 26 Nov 2010 14:03:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Kenshi Muto <kmuto@debian.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Fri, 26 Nov 2010 14:03:03 GMT) (full text, mbox, link).
Message #15 received at 552201@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 tags: 552201 + patch thanks Hi Colin, You may already red at groff list and perhaps it is bit late for Squeeze, but Daiki Ueno created a patch for handling CJK wide characters nicely based on your Charclass. http://lists.gnu.org/archive/html/groff/2010-11/msg00018.html I received a patch from him and tested. It worked well, particularly for Japanese and Korean. As far as my tests, it won't break any other languages (tested with C, fr_FR.UTF-8, nl_NL.UTF-8, and ru_RU.UTF-8.) Here is a debdiff against 1.20.1-10. It is very helpful for CJK users that this patch is merged to Squeeze groff. Thanks, - -- Kenshi Muto kmuto@debian.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Processed by Mailcrypt 3.5.9 <http://mailcrypt.sourceforge.net/> iQIcBAEBCgAGBQJM77saAAoJEB0hyD3EUuD8BdwP/3rWKit67MkrEN1FPg5N9aU1 H/+mjuRppHyHqP8Ob9eECrPJHzMOMTN+SX0Sz7ZPkGRvc8oomh0sdl+054XwhBG7 ogYEK9AlPvKylH07AZfqFsQio2HLwJKWFvon8CM79evYDZGRYoiICZY2NAss301J zNFaVWiEffCLTCIuV5t6KoqFGvyGeNUjfZd82B2DtcGwIWMyRHPPkH2wIBULgqoz +cbQqnxoQ3RxtJxcTRJ0y6sRnkdZ5g6HBDJKQnufVgXud6TWOnJ++i5N2FGY0CcG gZsrVIRegRCBjvpOsSTPZMbaAFLS1Z1E+1cZ3Lv+3ztfv/SEmJTsUO0QMD3uKW1c JL5FyKt9cXWw9wo6MqM6Hh4V9VmuXHIwGL2kZkhkN+qivm4XVCQMV3vthVaCzGY8 gekSS5XEirceQwuBId0EUiDUUl4LPBLVlrHqB9l3xNUXg45wCrEo5ReR8eQ6MiaQ KQY1vLPg0wdApuvtwiBNUuGqOva4eG7evYza4yAFiZWY5thw6naCzTobVkh8zPa9 1wXgT7DbdQKYRqPF+ZuuvHIIeFyLX9se/or0/SCvwK0vYugU6Gu1ElStyrPOXovb C3dD3YU7wJIGvX5oYkSvpoUt2SoWIalAZWBs9FI6y11Br8DnxKDlyzDcVz7Judxb kntfpglKwUQEoCI3SBWv =lyCA -----END PGP SIGNATURE-----
[debdiff.charclass.patch (application/octet-stream, attachment)]
Added tag(s) patch.
Request was from "Kenshi Muto" <kmuto@topstudio.co.jp>
to control@bugs.debian.org.
(Fri, 26 Nov 2010 14:06:07 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org:
Bug#552201; Package groff-base.
(Sat, 04 Dec 2010 14:33:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Colin Watson <cjwatson@debian.org>:
Extra info received and forwarded to list.
(Sat, 04 Dec 2010 14:33:03 GMT) (full text, mbox, link).
Message #22 received at 552201@bugs.debian.org (full text, mbox, reply):
(CCing Daiki Ueno and the groff list, since I have some comments on the patch and this is a convenient hook for them.) On Fri, Nov 26, 2010 at 10:51:25PM +0900, Kenshi Muto wrote: > You may already red at groff list and perhaps it is bit late for > Squeeze, but Daiki Ueno created a patch for handling CJK wide > characters nicely based on your Charclass. > http://lists.gnu.org/archive/html/groff/2010-11/msg00018.html > > I received a patch from him and tested. It worked well, particularly > for Japanese and Korean. As far as my tests, it won't break any other > languages (tested with C, fr_FR.UTF-8, nl_NL.UTF-8, and ru_RU.UTF-8.) > > Here is a debdiff against 1.20.1-10. > > It is very helpful for CJK users that this patch is merged to > Squeeze groff. Thanks for letting me know! This is definitely good to see. http://lists.debian.org/debian-devel-announce/2010/11/msg00006.html makes it painfully clear that it's too late for squeeze, but I don't mind looking at this for unstable (and somebody can always build backport packages or whatever, rather than trying to rush it in now and then realising that it's broken in some way). One thing I think is wrong about this patch is: - nroff: supply "-mja" to groff if running under Japanese locales. We should be trying to reduce the cases where Japanese is handled uniquely, particularly in code rather than in configuration such as macro files, and this change introduces one. Furthermore, relying on the locale is a problematic approach we should be trying to escape, as it makes it harder to test Japanese pages in English locales or vice-versa. The agreed approach for this kind of thing can be found in this thread (the initial patch wasn't applied, but look further down the thread for the conclusion): http://lists.gnu.org/archive/html/groff/2009-02/msg00044.html Now that Fedora has at last switched to man-db (cause for celebration in these quarters!), it can take advantage of this, and there should be no need for this change to nroff; man is the only case where I think it's particularly onerous to have to manually supply options to nroff. However, because man has to have a version test to avoid spurious warning messages, this will only work once groff 1.20.2 or newer is released, which has taken much longer than I expected when I made that change to man-db 2.5.4 to take advantage of the new 'file' warning category. Werner, is there any chance that you might be able to release 1.20.2 in the near future? It's been nearly two years since 1.20.1. Are there any specific blockers (perhaps I could help), or is it just a lack of time? I certainly understand the latter, but would really like to be able to take advantage of the change above ... Relying on wcwidth is a problem for the same reasons, I think. It means that you can only use devutf8 correctly in a UTF-8 locale. That has not historically been a requirement (and indeed IMO it was one of the major problems with the old multibyte patch), and I think we should try to avoid it becoming one because there are some practical problems with this. I have to say I agree with Werner in http://lists.gnu.org/archive/html/groff/2010-08/msg00000.html when he suggests that this would be better done some other way. Fonts aren't ideal, though, because then we'd have to have separate font files for Japanese. Perhaps you could add a new charinfo flag and set this in ja.tmac using a character class? I don't know if that design is perfect either, but my feeling is that this kind of problem is why we came up with the idea of character classes in the first place. Thanks, -- Colin Watson [cjwatson@debian.org]
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Mon, 06 Dec 2010 14:03:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Werner LEMBERG <wl@gnu.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Mon, 06 Dec 2010 14:03:06 GMT) (full text, mbox, link).
Message #27 received at 552201@bugs.debian.org (full text, mbox, reply):
> (CCing Daiki Ueno and the groff list, since I have some comments on
> the patch and this is a convenient hook for them.)
>
>> I received a patch from him and tested. It worked well,
>> particularly for Japanese and Korean. As far as my tests, it won't
>> break any other languages (tested with C, fr_FR.UTF-8, nl_NL.UTF-8,
>> and ru_RU.UTF-8.)
>>
>> Here is a debdiff against 1.20.1-10.
Right now I'm going to integrate and test the patches. However, a
very important piece is still missing: documentation! I won't commit
the changes otherwise.
Please provide a patch for groff.texinfo which fully documents
`.class' (probably by adding a new section `Classes' to `Fonts and
Symbols'), the `classes' keyword for font files, and a proper
extension of the description of the `.cflags' request. Similarly, I
need updates to the `NEWS', `groff_diff.man', and `groff.man' files.
BTW, this can be rough and sketchy: There's no need to polish the
documentation since I'll do this.
Note that I don't need ChangeLog entries; I've written them already by
myself while reading the code.
> - nroff: supply "-mja" to groff if running under Japanese locales.
>
> We should be trying to reduce the cases where Japanese is handled
> uniquely, particularly in code rather than in configuration such as
> macro files, and this change introduces one. Furthermore, relying
> on the locale is a problematic approach we should be trying to
> escape, as it makes it harder to test Japanese pages in English
> locales or vice-versa.
I second that; it's not necessary to do that so I'll omit these
changes to nroff.
> Werner, is there any chance that you might be able to release 1.20.2
> in the near future?
I'll release 1.21 after integrating your and Daiki-san's patches.
Sorry for the large delay.
> Are there any specific blockers (perhaps I could help), or is it just
> a lack of time? I certainly understand the latter, but would really
> like to be able to take advantage of the change above ...
The main blocker is missing enthusiasm for groff :( Last year I was
extremely busy, and recently I've moved from Germany to Austria, and
in my spare time I've mainly concentrated on FreeType.
> I have to say I agree with Werner in
> http://lists.gnu.org/archive/html/groff/2010-08/msg00000.html when
> he suggests that this would be better done some other way. Fonts
> aren't ideal, though, because then we'd have to have separate font
> files for Japanese.
There is perhaps a misunderstanding. I don't object to using wcwidth;
this is used for TTY output only, and grotty outputs characters, not
glyphs, thus it doesn't harm if the logic for character widths is in
the UTF8 part of grotty. Given how groff + grotty works the
implementation is OK, and the actual changes to the groff code are
less than 10 lines. What I object, as you've correctly noted, is to
provide special locale-dependent support files.
> Perhaps you could add a new charinfo flag and set this in ja.tmac
> using a character class? I don't know if that design is perfect
> either, but my feeling is that this kind of problem is why we came
> up with the idea of character classes in the first place.
Yes! It would allow to overwrite the global wcwidth values if
necessary. For example, we could provide a new request `.charwidth'
which has the same syntax as `.cflags'. Values for `.charwidth' are
then only taken into account if a new `charwidth' keyword is present
in the DESC file. However, I don't consider that as essential, and I
will release 1.21 without this yet-to-be-written stuff.
Another minor thing which isn't urgent: I think that the (current)
contents of ja.tmac is essentially universal, not restricted to
Japanese. For speed considerations it is OK that character classes
are not part of standard calls to groff, however, what about moving
them to a file `cjk.tmac' which then gets included by ja.tmac,
kr.tmac, etc.?
Werner
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Wed, 08 Dec 2010 03:45:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Daiki Ueno <ueno@unixuser.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Wed, 08 Dec 2010 03:45:03 GMT) (full text, mbox, link).
Message #32 received at 552201@bugs.debian.org (full text, mbox, reply):
Thanks Werner and Colin for the insightful comments. Werner LEMBERG <wl@gnu.org> writes: > However, a very important piece is still missing: documentation! I > won't commit the changes otherwise. I'm now preparing the documentation. One question: > the `classes' keyword for font files, ... What is the keyword supposed to work? I didn't notice that since it is currently not used in any font file and seems not to affect the run-time behavior. Perhaps a wreck of the original patch? > I second that; it's not necessary to do that so I'll omit these > changes to nroff. Good to know that man-db already has the hook to load locale macros :) > I think that the (current) contents of ja.tmac is essentially > universal, not restricted to Japanese. Yes and probably CJK languages can share a single .tmac for kinsoku processing, since the kinsoku rules for those languages are not likely to overlap each other. I'm now trying to extend current ja.tmac to support Chinese and Korean: http://ueno.fedorapeople.org/groff/make-cjk-tmac/ Regards, -- Daiki Ueno
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Wed, 08 Dec 2010 06:45:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Werner LEMBERG <wl@gnu.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Wed, 08 Dec 2010 06:45:03 GMT) (full text, mbox, link).
Message #37 received at 552201@bugs.debian.org (full text, mbox, reply):
>> the `classes' keyword for font files, ...
>
> What is the keyword supposed to work? I didn't notice that since it
> is currently not used in any font file and seems not to affect the
> run-time behavior. Perhaps a wreck of the original patch?
The `classes' keyword should help reduce the size of non-TTY font
description files of CJK fonts: Instead of thousands of lines in the
`charset' section for glyphs from the CJK range(s), you just have a
single one, something like
classes
[CJK] u4E00-u9FFF
charset
...
[CJK] 1000,800,200 3 ? ?
However, the two question marks indicate that I don't know how to
handle those fields. Perhaps it should be something like
[CJK] 1000,800,200 3 %d uni%X
to programmatically derive the index value for \N'...' (field 4) and
the PS glyph name for grops (field 5), but this isn't implemented yet.
So please ignore the `classes' keyword documentation; I'll remove the
corresponding code, to be postponed for later. Alternatively, you
might add the missing bits right now :-)
Besides that, it is an interesting question how to support Japanese
fonts for CJK characters. In my CJK package for LaTeX, I've used
active characters to activate CJK fonts for CJK characters. For
groff, the probably easiest method is to register, say, a Japanese
font as `special' using either `.fspecial' or `.special'. Then any
glyph not found in the current (latin) font is taken from the fspecial
or special list.
Note that I can't remember how this has been solved in the old Debian
extension for Japanese...
> I'm now trying to extend current ja.tmac to support Chinese and Korean:
> http://ueno.fedorapeople.org/groff/make-cjk-tmac/
Very nice!
Werner
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Sun, 12 Dec 2010 21:27:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Werner LEMBERG <wl@gnu.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Sun, 12 Dec 2010 21:27:02 GMT) (full text, mbox, link).
Message #42 received at 552201@bugs.debian.org (full text, mbox, reply):
Any progress on the docs?
Werner
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Mon, 13 Dec 2010 02:57:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Daiki Ueno <ueno@unixuser.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Mon, 13 Dec 2010 02:57:03 GMT) (full text, mbox, link).
Message #47 received at 552201@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Werner LEMBERG <wl@gnu.org> writes: > Any progress on the docs? Please find below a patch to the docs. Sorry for the delay.
[groff-charclass-docs.diff (text/x-patch, inline)]
diff --git a/NEWS b/NEWS
index c5028c4..8b5f17e 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,10 @@ o There is a new warning category `file', enabled by default. The `mso'
request emits warnings in this category when the requested macro file does
not exist.
+o The new `class' request assignes a short name to a set of
+ characters, which can be referred to in `cflags' request to control
+ line-breaking and hyphenation rules in CJK languages.
+
Tbl
---
diff --git a/doc/groff.texinfo b/doc/groff.texinfo
index ae2ac6e..4a4f318 100644
--- a/doc/groff.texinfo
+++ b/doc/groff.texinfo
@@ -8726,6 +8726,7 @@ special symbols (Greek, mathematics).
* Font Families::
* Font Positions::
* Using Symbols::
+* Character Classes::
* Special Fonts::
* Artificial Fonts::
* Ligatures and Kerning::
@@ -9122,7 +9123,7 @@ this is font 1 again
@c ---------------------------------------------------------------------
-@node Using Symbols, Special Fonts, Font Positions, Fonts and Symbols
+@node Using Symbols, Character Classes, Font Positions, Fonts and Symbols
@subsection Using Symbols
@cindex using symbols
@cindex symbols, using
@@ -9458,7 +9459,9 @@ width, depth, and height, nothing else. All manipulations with the
modified with the @code{cflags} request. The first argument is the sum
of the desired flags and the remaining arguments are the characters or
symbols to have those properties. It is possible to omit the spaces
-between the characters or symbols.
+between the characters or symbols. Also you can use the character class
+references here with the escape @code{\C'[@var{class}]'} (see
+@ref{Character Classes} for more details).
@table @code
@item 1
@@ -9639,7 +9642,56 @@ The request @code{rfschar} removes glyph definitions defined with
@c ---------------------------------------------------------------------
-@node Special Fonts, Artificial Fonts, Using Symbols, Fonts and Symbols
+@node Character Classes, Special Fonts, Using Symbols, Fonts and Symbols
+@subsection Character Classes
+@cindex character classes
+@cindex classes, character
+
+A @dfn{class} (aka ``character class'') is a set of characters,
+grouped by some user aspect. The request @code{class} defines classes
+so that other requests can refer to characters belonging to a class,
+with a short class name.
+
+Classes are particularly useful for East Asian languages such as
+Chinese, Japanese, and Korean, where there is a much larger set of
+characters than in European languages.
+
+A @code{class} request takes a class name followed by a list of
+characters. For example:
+
+@Example
+.class [prepunct] , : ; > @}
+@endExample
+
+To access the contents of a class, use the escape
+@code{\C'[@var{class}]'}. With the escape, you can define nested
+classes. Also, you can use the character range notation (a starting
+character code point, followed by a @samp{-} and an ending character
+code point), to avoid enumerating characters explicitly. Here is more
+complex example:
+
+@Example
+.class [CJKprepunct] \C'[prepunct]' \[u2013]-\[u2016] ...
+@endExample
+
+The class @samp{CJKprepunct} contains the contents of the class
+@samp{prepunct}, i.e. @samp{, : ; > @}}, and characters in the range
+between @code{U+2013} and @code{U+2016}.
+
+Typical usage of the @code{class} request is to control line-breaking
+and hyphenation rules together with the @code{cflags}. For example,
+to inhibit line-break before the characters belonging to the
+@samp{CJKprepunct}, you can write:
+
+@Example
+.cflags 2 \C'[CJKprepunct]'
+@endExample
+
+See the @code{cflags} request in @ref{Using Symbols}, for more details.
+
+@c ---------------------------------------------------------------------
+
+@node Special Fonts, Artificial Fonts, Character Classes, Fonts and Symbols
@subsection Special Fonts
@cindex special fonts
@cindex fonts, special
diff --git a/man/groff_diff.man b/man/groff_diff.man
index 115c6d2..3bdfa47 100644
--- a/man/groff_diff.man
+++ b/man/groff_diff.man
@@ -1093,6 +1093,17 @@ This is useful for removing the newline from the end of diversions
that are to be interpolated as strings.
.
.TP
+.BI .class\ name\ c1\ c2\|.\|.\|.\&
+Assign a short name
+.IR name
+to a set of characters
+.IR c1 ,
+.IR c2 ,\|.\|.\|.\&
+so that they can be referred to from the other requests easily.
+This is useful to assign properties to a large set of characters (using
+.BR .cflags ).
+.
+.TP
.BI .close\ stream
Close the stream named
.IR stream ;
[Message part 3 (text/plain, inline)]
Regards, -- Daiki Ueno
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Mon, 13 Dec 2010 18:00:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Werner LEMBERG <wl@gnu.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Mon, 13 Dec 2010 18:00:03 GMT) (full text, mbox, link).
Message #52 received at 552201@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
>> Any progress on the docs?
>
> Please find below a patch to the docs. Sorry for the delay.
Thanks! I've revised all patches, updated the documentation,
normalized the import of gnulib's wcwidth, fixed a buglet in the new
`.class' request (each call caused insertion of an empty line), and it
seems that everything works fine!
Attached is a Japanese man page, gprof.1 – this is in EUC-JP
encoding –, which I've taken from the Japanese man page project
(http://sourceforge.jp/projects/linuxjm/), together with its output,
generated with
groff -K euc-japan -Tutf8 -ww -man -mja gprof.1 > gprof.jp.txt
(You should use `less' or something similar for display since the
output contains SGR escape sequences.)
The only thing which I consider bad is that there is `(' at the line
end. Can this be improved by adjusting the calls to .cflags?
Werner
[gprof.1 (text/plain, inline)]
.\" Copyright (c) 1983, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted provided .\" that: (1) source distributions retain this entire copyright notice and .\" comment, and (2) distributions including binaries display the following .\" acknowledgement: ``This product includes software developed by the .\" University of California, Berkeley and its contributors'' in the .\" documentation or other materials provided with the distribution and in .\" all advertising materials mentioning features or use of this software. .\" Neither the name of the University nor the names of its contributors may .\" be used to endorse or promote products derived from this software without .\" specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)gprof.1 6.6 (Berkeley) 7/24/90 .\" .\" Japanese Version Copyright (c) 1997-2000 NAKANO Takeo all rights reserved. .\" Translated Fri Jan 9 1998 by NAKANO Takeo <nakano@@apm.seikei.ac.jp> .\" Updated Fri 27 Oct 2000 by NAKANO Takeo .\" .TH GPROF 1 "January 29, 1993" .SH 名前 gprof \- コール・グラフ (call graph) のプロファイルを表示する .SH 書式 .B gprof [ \-abcsz ] [ \-e|\-E .I name .B ] [ \-f|\-F .I name .B ] .B [ \-k .I fromname toname .B ] [ .I objfile .B [ .I gmon.out .B ] .B ] .SH 説明 .B gprof は C, Pascal, Fortran77 プログラムの実行プロファイルを生成する。呼び出 されたルーチンの値は呼び出し元に取り込まれる。プロファイルのためのデー タはコール・グラフ (call graph: 関数コールの親子関係のグラフ) のプロファ イルデータファイル (デフォルトでは `gmon.out') から取り 込まれる。このファイルは .BR cc ( 1 ) 、 .BR pc ( 1 ) 、 .BR f77 ( 1 ) で .B \-pg オプションを指定してコンパイルされたプログラムによって作成される。 .B \-pg オプションでは、リンクされるライブラリもプロファイル用にコンパイルされ たものになる。 .B gprof は指定されたオブジェクトファイル (デフォルトは `a.out') からシンボ ルテーブルを読み、これと `gmon.out' のコール・グラフ・プロファイルとを 関連付ける。 複数のプロファイルデータファイルが指定された場合には、 .B gprof はそれらのプロファイル情報をすべて合計して表示する。 .PP .B gprof はそれぞれのルーチンによって消費された時間を計算する。次にこれらの時間 をコール・グラフの枝に沿って親ルーチンへと伝播させる。プログラムの サイクル (cycle: 再帰呼び出しの循環) をまとめ、サイクルへのコールを行っ たルーチンは、サイクルで消費した時間を共有するとみなす。最初のリストは 関数で、消費時間の順にソートされている。 消費時間にはコール・グラフでの子孫の分も含まれる。それぞれの関数エントリ の下には、その関数のコール・グラフでの (直接の) 子と、そこで消費された 時間がどのように関数に伝播したかが表示される。同様の表示は関数の上にも 表示されており、その関数とそれらの子孫で消費された時間がどのようにコー ル・グラフの (直接の) 親へ伝播するかが示される。 .PP サイクルも表示される。サイクル全体としてのエントリ、そのサイクルに属す るメンバーのリストとそれぞれのメンバーによって消費された時間、その サイクルの呼び出し回数などが表示される。 .PP 次にフラットプロファイル .RB ( prof (1) の結果と似たもの) が与えられる。このリストでは合計実行時間、呼び出し回 数、そのルーチン自身で消費した時間 (ミリ秒単位)、子孫の分も含めて消費 した時間 (ミリ秒単位) が表示される。 .PP 最後に関数名の索引が与えられる。 .SH オプション 以下のオプションが指定できる: .TP .B \-a スタティックに宣言された関数を表示しない。このオプションが指定され ると、スタティックな関数に関する全ての情報 (実行時間、他の関数の呼び出 し、他の関数から呼び出される関係など) は、ファイル `objfile' 中でこの スタティックな関数の直前にロードされた関数に属することになる。 .TP .B \-b プロファイルのそれぞれのフィールドに関する説明を表示しない。 .TP .B \-c プログラムのスタティックなコール・グラフを、オブジェクトファイルのテキ ストセグメントを調べるという発見的 (heuristic) な手法で作成する。ス タティック・コールだけの親や子の呼び出し回数は 0 として表示する。 .TP .BI "\-e " name ルーチン .I name と、その子孫すべてに関するグラフプロファイルのエントリを表示しない (子孫に関しては、別の祖先がいれば表示される)。 .B \-e オプションは複数回指定できる。一つの .B \-e オプションについて指定できる .I name は一つだけである。 .TP .BI "\-E " name .B \-e と同様にルーチン .I name とその子孫に関するグラフプロファイルのエントリを表示しない。また .I name (とその子孫) によって消費された時間も、プログラム実行の総時間 (および パーセンテージの計算) から除かれる。例えば .BI "\-E " mcount .BI "\-E " mcleanup はデフォルトになっている。 .TP .BI "\-f " name ルーチン .I name とその子孫に関してのみ、グラフプロファイルのエントリを表示する。 .B \-f オプションは複数回指定できる。一つの .B \-f オプションについて指定できる .I name は一つだけである。 .TP .BI "\-F " name .B \-f と同様に、ルーチン .I name とその子孫に関してのみ、グラフプロファイルのエントリを表示する。またこ れらによって用いられた時間だけを合計の実行時間とパーセンテージの計算に 用いる。 .B \-F オプションは複数指定できる。一つの .B \-F オプションについて指定できる .I name は一つだけである。 .B \-F オプションは .B \-E オプションによる設定を上書きする。 .TP .BI "\-k " "fromname toname" ルーチン .I fromname からルーチン .I toname までの枝を削除する。これは不要なサイクルの循環を破壊するのに便利である。 .B \-k は複数指定できる。一つの .B \-k オプションに対して指定できるのは一組のルーチン名だけである。 .TP .B \-s プロファイルファイル `gmon.sum' を作成し、指定したプロファイルファイル の情報すべてからのプロファイル情報を総計したものを書き込む。この合計プ ロファイルファイルは後に gprof を (おそらくは .B \-s と共に) 実行する際に与えて、 `objfile' ファイルを複数回実行して得られ たプロファイルデータを累積するために用いることもできる。 .TP .B \-v gprof のバージョン番号を表示して終了する。 .TP .B \-z 用いられなかった関数 (呼び出し回数と実行時間でわかる) も表示する。これ を .B \-c オプションと共に用いると、呼び出されなかったルーチンを見つけるのに役 に立つ。 .PP .SH ファイル a.out 名前のリストとテキスト空間 .br gmon.out ダイナミックなコール・グラフとプロファイル .br gmon.sum ダイナミックなコール・グラフとプロファイルのまとめ .SH 関連項目 .BR monitor ( 3 ) , .BR profil ( 2 ) , .BR cc ( 1 ) , .BR prof ( 1 ) .sp ``An Execution Profiler for Modular Programs'', by S. Graham, P. Kessler, M. McKusick; .I Software \- Practice and Experience, Vol. 13, pp. 671-685, 1983. .sp ``gprof: A Call Graph Execution Profiler'', by S. Graham, P. Kessler, M. McKusick; .I Proceedings of the SIGPLAN '82 Symposium on Compiler Construction, SIGPLAN Notices, Vol. 17, No 6, pp. 120-126, June 1982. .SH 履歴 .B gprof は 4.2 BSD から登場した。 .SH バグ サンプリングの粒度 (granularity) も表示されるが、せいぜい統計的なもの でしかない。ここでは関数の一回あたりの実行時間は、関数の消費した合計時 間を呼び出し回数で割ったものと仮定している。したがって、呼び出しグラフの 枝を伝播して関数の親に伝わる時間は、枝を通過した回数に直に比例すること になる。 .PP 自分自身がプロファイルされていない親でも、子から伝播してくる時間を保有 することになる。しかしこれらのルーチンは、呼び出しグラフの中で (どこか ら呼び出されたのでもなく) 勝手に起動するように見えるので、その時間はそ れ以上どこへも伝播しない。同様に、シグナルをキャッチしたルーチンは、プ ロファイルされていても勝手に起動するように見えてしまう (理由はもう少し 複雑だが)。シグナルをキャッチしたルーチンの子がプロファイルされてい ればその時間を正しく伝播させることができるが、親ルーチンがプロファ イルルーチンの途中でシグナルがキャッチされた場合には全ての情報は失われる。 .PP プロファイルされるプログラムは .BR exit ( 2 ) をコールして終了するか、 main ルーチンからの return で終了しなければな らない。さもないと終了時にプロファイル情報が `gmon.out' ファイルにセー ブされない。
[gprof.txt (text/plain, inline)]
GPROF(1) GPROF(1)
[1m名前[0m
gprof - コール・グラフ (call graph) のプロファイルを表示する
[1m書式[0m
[1mgprof [ -abcsz ] [ -e|-E [4m[22mname[24m [1m] [ -f|-F [4m[22mname[24m [1m] [ -k [4m[22mfromname[24m [4mtoname[24m [1m] [[0m
[4mobjfile[24m [1m[ [4m[22mgmon.out[24m [1m] ][0m
[1m説明[0m
[1mgprof [22mは C, Pascal, Fortran77 プログラムの実行プロファイルを生成する。
呼び出 されたルーチンの値は呼び出し元に取り込まれる。プロファイルのため
のデー タはコール・グラフ (call graph: 関数コールの親子関係のグラフ) の
プロファ イルデータファイル (デフォルトでは `gmon.out') から取り 込まれ
る。このファイルは [1mcc[22m([1m1[22m)[1m、 pc[22m([1m1[22m)[1m、 f77[22m([1m1[22m) で [1m-pg [22mオプションを指定してコ
ンパイルされたプログラムによって作成される。 [1m-pg [22mオプションでは、リンク
されるライブラリもプロファイル用にコンパイルされ たものになる。 [1mgprof[0m
は指定されたオブジェクトファイル (デフォルトは `a.out') からシンボ ルテ
ーブルを読み、これと `gmon.out' のコール・グラフ・プロファイルとを 関連
付ける。 複数のプロファイルデータファイルが指定された場合には、 [1mgprof[0m
はそれらのプロファイル情報をすべて合計して表示する。
[1mgprof [22mはそれぞれのルーチンによって消費された時間を計算する。次にこれら
の時間 をコール・グラフの枝に沿って親ルーチンへと伝播させる。プログラム
の サイクル (cycle: 再帰呼び出しの循環) をまとめ、サイクルへのコールを
行っ たルーチンは、サイクルで消費した時間を共有するとみなす。最初のリス
トは 関数で、消費時間の順にソートされている。 消費時間にはコール・グラ
フでの子孫の分も含まれる。それぞれの関数エントリ の下には、その関数のコ
ール・グラフでの (直接の) 子と、そこで消費された 時間がどのように関数に
伝播したかが表示される。同様の表示は関数の上にも 表示されており、その関
数とそれらの子孫で消費された時間がどのようにコー ル・グラフの (直接の)
親へ伝播するかが示される。
サイクルも表示される。サイクル全体としてのエントリ、そのサイクルに属す
るメンバーのリストとそれぞれのメンバーによって消費された時間、その サイ
クルの呼び出し回数などが表示される。
次にフラットプロファイル ([1mprof[22m(1) の結果と似たもの) が与えられる。この
リストでは合計実行時間、呼び出し回 数、そのルーチン自身で消費した時間 (
ミリ秒単位)、子孫の分も含めて消費 した時間 (ミリ秒単位) が表示される。
最後に関数名の索引が与えられる。
[1mオプション[0m
以下のオプションが指定できる:
[1m-a [22mスタティックに宣言された関数を表示しない。このオプションが指定さ
れ ると、スタティックな関数に関する全ての情報 (実行時間、他の関
数の呼び出 し、他の関数から呼び出される関係など) は、ファイル
`objfile' 中でこの スタティックな関数の直前にロードされた関数に
属することになる。
[1m-b [22mプロファイルのそれぞれのフィールドに関する説明を表示しない。
[1m-c [22mプログラムのスタティックなコール・グラフを、オブジェクトファイル
のテキ ストセグメントを調べるという発見的 (heuristic) な手法で作
成する。ス タティック・コールだけの親や子の呼び出し回数は 0 とし
て表示する。
[1m-e [4m[22mname[0m
ルーチン [4mname[24m と、その子孫すべてに関するグラフプロファイルのエン
トリを表示しない (子孫に関しては、別の祖先がいれば表示される)。
[1m-e [22mオプションは複数回指定できる。一つの [1m-e [22mオプションについて指
定できる [4mname[24m は一つだけである。
[1m-E [4m[22mname[0m
[1m-e [22mと同様にルーチン [4mname[24m とその子孫に関するグラフプロファイルの
エントリを表示しない。また [4mname[24m (とその子孫) によって消費された
時間も、プログラム実行の総時間 (および パーセンテージの計算) か
ら除かれる。例えば [1m-E [4m[22mmcount[24m [1m-E [4m[22mmcleanup[24m はデフォルトになってい
る。
[1m-f [4m[22mname[0m
ルーチン [4mname[24m とその子孫に関してのみ、グラフプロファイルのエント
リを表示する。 [1m-f [22mオプションは複数回指定できる。一つの [1m-f [22mオプシ
ョンについて指定できる [4mname[24m は一つだけである。
[1m-F [4m[22mname[0m
[1m-f [22mと同様に、ルーチン [4mname[24m とその子孫に関してのみ、グラフプロフ
ァイルのエントリを表示する。またこ れらによって用いられた時間だ
けを合計の実行時間とパーセンテージの計算に 用いる。 [1m-F [22mオプショ
ンは複数指定できる。一つの [1m-F [22mオプションについて指定できる [4mname[0m
は一つだけである。 [1m-F [22mオプションは [1m-E [22mオプションによる設定を上書
きする。
[1m-k [4m[22mfromname[24m [4mtoname[0m
ルーチン [4mfromname[24m からルーチン [4mtoname[24m までの枝を削除する。これは
不要なサイクルの循環を破壊するのに便利である。 [1m-k [22mは複数指定でき
る。一つの [1m-k [22mオプションに対して指定できるのは一組のルーチン名だ
けである。
[1m-s [22mプロファイルファイル `gmon.sum' を作成し、指定したプロファイルフ
ァイル の情報すべてからのプロファイル情報を総計したものを書き込
む。この合計プ ロファイルファイルは後に gprof を (おそらくは [1m-s[0m
と共に) 実行する際に与えて、 `objfile' ファイルを複数回実行して
得られ たプロファイルデータを累積するために用いることもできる。
[1m-v [22mgprof のバージョン番号を表示して終了する。
[1m-z [22m用いられなかった関数 (呼び出し回数と実行時間でわかる) も表示す
る。これ を [1m-c [22mオプションと共に用いると、呼び出されなかったルー
チンを見つけるのに役 に立つ。
[1mファイル[0m
a.out 名前のリストとテキスト空間
gmon.out ダイナミックなコール・グラフとプロファイル
gmon.sum ダイナミックなコール・グラフとプロファイルのまとめ
[1m関連項目[0m
[1mmonitor[22m([1m3[22m)[1m, profil[22m([1m2[22m)[1m, cc[22m([1m1[22m)[1m, prof[22m([1m1[22m)
``An Execution Profiler for Modular Programs'', by S. Graham, P.
Kessler, M. McKusick; [4mSoftware[24m [4m-[24m [4mPractice[24m [4mand[24m [4mExperience,[24m Vol. 13, pp.
671-685, 1983.
``gprof: A Call Graph Execution Profiler'', by S. Graham, P. Kessler,
M. McKusick; [4mProceedings[24m [4mof[24m [4mthe[24m [4mSIGPLAN[24m [4m'82[24m [4mSymposium[24m [4mon[24m [4mCompiler[24m [4mCon‐[0m
[4mstruction,[24m SIGPLAN Notices, Vol. 17, No 6, pp. 120-126, June 1982.
[1m履歴[0m
[1mgprof [22mは 4.2 BSD から登場した。
[1mバグ[0m
サンプリングの粒度 (granularity) も表示されるが、せいぜい統計的なもの
でしかない。ここでは関数の一回あたりの実行時間は、関数の消費した合計時
間を呼び出し回数で割ったものと仮定している。したがって、呼び出しグラフ
の 枝を伝播して関数の親に伝わる時間は、枝を通過した回数に直に比例するこ
と になる。
自分自身がプロファイルされていない親でも、子から伝播してくる時間を保有
することになる。しかしこれらのルーチンは、呼び出しグラフの中で (どこか
ら呼び出されたのでもなく) 勝手に起動するように見えるので、その時間はそ
れ以上どこへも伝播しない。同様に、シグナルをキャッチしたルーチンは、プ
ロファイルされていても勝手に起動するように見えてしまう (理由はもう少し
複雑だが)。シグナルをキャッチしたルーチンの子がプロファイルされてい れ
ばその時間を正しく伝播させることができるが、親ルーチンがプロファ イルル
ーチンの途中でシグナルがキャッチされた場合には全ての情報は失われる。
プロファイルされるプログラムは [1mexit[22m([1m2[22m) をコールして終了するか、 main ル
ーチンからの return で終了しなければな らない。さもないと終了時にプロフ
ァイル情報が `gmon.out' ファイルにセー ブされない。
January 29, 1993 GPROF(1)
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Tue, 14 Dec 2010 08:03:06 GMT) (full text, mbox, link).
Acknowledgement sent
to Daiki Ueno <ueno@unixuser.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Tue, 14 Dec 2010 08:03:06 GMT) (full text, mbox, link).
Message #57 received at 552201@bugs.debian.org (full text, mbox, reply):
Werner LEMBERG <wl@gnu.org> writes:
> I've revised all patches, updated the documentation, normalized the
> import of gnulib's wcwidth, fixed a buglet in the new `.class' request
> (each call caused insertion of an empty line), and it seems that
> everything works fine!
Thanks! I confirmed the current CVS code working fine.
> The only thing which I consider bad is that there is `(' at the line
> end. Can this be improved by adjusting the calls to .cflags?
Hmm, I tried to add `(' to CJKpostpunct class, but it did not help.
> リストでは合計実行時間、呼び出し回 数、そのルーチン自身で消費した時間 (
Groff adds a space between (non-punct) Japanese characters instead of
breaking the line. The expected result would be something like:
> リストでは合計実行時間、呼び出し回数、そのルーチン自身で消費した時間
> (...
or:
> リストでは合計実行時間、呼び出し回数、そのルーチン自身で消費した時
> 間 (...
Perhaps assigning IGNORE_HCODE to whole CJK range is not perfectly
enough to control the line breaking rule.
Regards,
--
Daiki Ueno
Information forwarded
to debian-bugs-dist@lists.debian.org, Colin Watson <cjwatson@debian.org>:
Bug#552201; Package groff-base.
(Sat, 18 Dec 2010 09:15:09 GMT) (full text, mbox, link).
Acknowledgement sent
to Werner LEMBERG <wl@gnu.org>:
Extra info received and forwarded to list. Copy sent to Colin Watson <cjwatson@debian.org>.
(Sat, 18 Dec 2010 09:15:09 GMT) (full text, mbox, link).
Message #62 received at 552201@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
>> The only thing which I consider bad is that there is `(' at the
>> line end. Can this be improved by adjusting the calls to .cflags?
>
> Hmm, I tried to add `(' to CJKpostpunct class, but it did not help.
>
>> リストでは合計実行時間、呼び出し回 数、そのルーチン自身で消費した時間 (
>
> Groff adds a space between (non-punct) Japanese characters instead
> of breaking the line. The expected result would be something like:
>
>> リストでは合計実行時間、呼び出し回数、そのルーチン自身で消費した時間
>> (...
>
> or:
>
>> リストでは合計実行時間、呼び出し回数、そのルーチン自身で消費した時
>> 間 (...
>
> Perhaps assigning IGNORE_HCODE to whole CJK range is not perfectly
> enough to control the line breaking rule.
I should have activated my brain before asking such questions :-)
Here are my observations.
. Attached you can find an improved version of the Japanese
`gprof.1' man page (I'm calling it `gprofx.1' for convenience).
Note the many backslashes at the end of lines to suppress unwanted
spaces caused by newline characters. Alternatively, it might be
useful to have long lines to avoid linebreaks at all. Most
editors provide automatic line breaking anyways.
In groff, there is nothing similar to a `CJK*' environment (as
provided by my CJK package for LaTeX) to handle suppression of
unwanted spaces automatically. It would need more cflags trickery
(with new values) to emulate this behaviour since groff doesn't
know the concept of active characters.
. Formatting the improved man page, you get a lot of warning
messages like
gprofx.1:45: warning [p 1, 2.2i]: cannot adjust line
This gets much better if you ensure that the indented part of the
main page (which is the majority of text) has an even number of
characters so that the double-width CJK characters fit exactly.
Try, for example, this:
groff -Keuc-japan -Tutf8 -rIN=8n \
-ww -man -mja gprofx.1 > gprofx.txt
and the number of warnings decreases from 15 to only 4 (output
attached). I strongly suggest to add something like this to the
Japanese locale configuration for man.
. To get really rid of the warnings, and to improve formatting CJK
stuff in general, we need inter-character glue between CJK
characters. Without that, groff produces too short lines (it then
emits the `cannot adjust line' warning). This is a TODO.
An alternative is to add `.ad l' for Japanese manpages.
. To come back to the abovementioned problem of `(' in the original
output of `gprof.1', this isn't solvable at all with the current
set of cflags: The problem is conflicting cflags values: The
character right after the open parenthesis, `ミ', has value 66,
which means
lines can be broken before the character (regardless of the
hcode values of the surrounding characters)
What ever cflags value I set for `(', the value `66' of `ミ'
inserts a breakpoint, causing a line break right before the
character.
I've now implemented three new cflags values, completely
independent of hcode values:
don't break before character but allow break after: 128
don't break after character but allow break before: 256
allow break before and after character: 512
which are handled internally similar to kern pairs so that the new
`inter_char_space_node'[1] sees the cflags values of both the left
and right character to decide whether there should be a zero-width
break inbetween. I've also updated ja.tmac accordingly.
Please test.
Werner
[1] Contrary to its name, inter-character spacing isn't yet
implemented. As soon as it is, value 512 becomes `allow
inter-character breaks and insert stretchable space'; this should
eventually fix all line adjust warnings.
[gprofx.1 (text/plain, inline)]
.\" Copyright (c) 1983, 1990 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms are permitted provided .\" that: (1) source distributions retain this entire copyright notice and .\" comment, and (2) distributions including binaries display the following .\" acknowledgement: ``This product includes software developed by the .\" University of California, Berkeley and its contributors'' in the .\" documentation or other materials provided with the distribution and in .\" all advertising materials mentioning features or use of this software. .\" Neither the name of the University nor the names of its contributors may .\" be used to endorse or promote products derived from this software without .\" specific prior written permission. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. .\" .\" @(#)gprof.1 6.6 (Berkeley) 7/24/90 .\" .\" Japanese Version Copyright (c) 1997-2000 NAKANO Takeo all rights reserved. .\" Translated Fri Jan 9 1998 by NAKANO Takeo <nakano@@apm.seikei.ac.jp> .\" Updated Fri 27 Oct 2000 by NAKANO Takeo .\" .TH GPROF 1 "January 29, 1993" .SH 名前 gprof \- コール・グラフ (call graph) のプロファイルを表示する .SH 書式 .B gprof [ \-abcsz ] [ \-e|\-E .I name .B ] [ \-f|\-F .I name .B ] .B [ \-k .I fromname toname .B ] [ .I objfile .B [ .I gmon.out .B ] .B ] .SH 説明 .B gprof は C, Pascal, Fortran77 プログラムの実行プロファイルを生成する。呼び出\ されたルーチンの値は呼び出し元に取り込まれる。プロファイルのためのデー\ タはコール・グラフ (call graph: 関数コールの親子関係のグラフ) のプロファ\ イルデータファイル (デフォルトでは `gmon.out') から取り\ 込まれる。このファイルは .BR cc ( 1 ) 、 .BR pc ( 1 ) 、 .BR f77 ( 1 ) で .B \-pg オプションを指定してコンパイルされたプログラムによって作成される。 .B \-pg オプションでは、リンクされるライブラリもプロファイル用にコンパイルされ\ たものになる。 .B gprof は指定されたオブジェクトファイル (デフォルトは `a.out') からシンボ\ ルテーブルを読み、これと `gmon.out' のコール・グラフ・プロファイルとを\ 関連付ける。\ 複数のプロファイルデータファイルが指定された場合には、 .B gprof はそれらのプロファイル情報をすべて合計して表示する。 .PP .B gprof はそれぞれのルーチンによって消費された時間を計算する。次にこれらの時間\ をコール・グラフの枝に沿って親ルーチンへと伝播させる。プログラムの\ サイクル (cycle: 再帰呼び出しの循環) をまとめ、サイクルへのコールを行っ\ たルーチンは、サイクルで消費した時間を共有するとみなす。最初のリストは\ 関数で、消費時間の順にソートされている。\ 消費時間にはコール・グラフでの子孫の分も含まれる。それぞれの関数エントリ\ の下には、その関数のコール・グラフでの (直接の) 子と、そこで消費された\ 時間がどのように関数に伝播したかが表示される。同様の表示は関数の上にも\ 表示されており、その関数とそれらの子孫で消費された時間がどのようにコー\ ル・グラフの (直接の) 親へ伝播するかが示される。 .PP サイクルも表示される。サイクル全体としてのエントリ、そのサイクルに属す\ るメンバーのリストとそれぞれのメンバーによって消費された時間、その\ サイクルの呼び出し回数などが表示される。 .PP 次にフラットプロファイル .RB ( prof (1) の結果と似たもの) が与えられる。このリストでは合計実行時間、呼び出し回\ 数、そのルーチン自身で消費した時間 (ミリ秒単位)、子孫の分も含めて消費\ した時間 (ミリ秒単位) が表示される。 .PP 最後に関数名の索引が与えられる。 .SH オプション 以下のオプションが指定できる: .TP .B \-a スタティックに宣言された関数を表示しない。このオプションが指定され\ ると、スタティックな関数に関する全ての情報 (実行時間、他の関数の呼び出\ し、他の関数から呼び出される関係など) は、ファイル `objfile' 中でこの\ スタティックな関数の直前にロードされた関数に属することになる。 .TP .B \-b プロファイルのそれぞれのフィールドに関する説明を表示しない。 .TP .B \-c プログラムのスタティックなコール・グラフを、オブジェクトファイルのテキ\ ストセグメントを調べるという発見的 (heuristic) な手法で作成する。ス\ タティック・コールだけの親や子の呼び出し回数は 0 として表示する。 .TP .BI "\-e " name ルーチン .I name と、その子孫すべてに関するグラフプロファイルのエントリを表示しない (子孫に関しては、別の祖先がいれば表示される)。 .B \-e オプションは複数回指定できる。一つの .B \-e オプションについて指定できる .I name は一つだけである。 .TP .BI "\-E " name .B \-e と同様にルーチン .I name とその子孫に関するグラフプロファイルのエントリを表示しない。また .I name (とその子孫) によって消費された時間も、プログラム実行の総時間 (および\ パーセンテージの計算) から除かれる。例えば .BI "\-E " mcount .BI "\-E " mcleanup はデフォルトになっている。 .TP .BI "\-f " name ルーチン .I name とその子孫に関してのみ、グラフプロファイルのエントリを表示する。 .B \-f オプションは複数回指定できる。一つの .B \-f オプションについて指定できる .I name は一つだけである。 .TP .BI "\-F " name .B \-f と同様に、ルーチン .I name とその子孫に関してのみ、グラフプロファイルのエントリを表示する。またこ\ れらによって用いられた時間だけを合計の実行時間とパーセンテージの計算に\ 用いる。 .B \-F オプションは複数指定できる。一つの .B \-F オプションについて指定できる .I name は一つだけである。 .B \-F オプションは .B \-E オプションによる設定を上書きする。 .TP .BI "\-k " "fromname toname" ルーチン .I fromname からルーチン .I toname までの枝を削除する。これは不要なサイクルの循環を破壊するのに便利である。 .B \-k は複数指定できる。一つの .B \-k オプションに対して指定できるのは一組のルーチン名だけである。 .TP .B \-s プロファイルファイル `gmon.sum' を作成し、指定したプロファイルファイル\ の情報すべてからのプロファイル情報を総計したものを書き込む。この合計プ\ ロファイルファイルは後に gprof を (おそらくは .B \-s と共に) 実行する際に与えて、 `objfile' ファイルを複数回実行して得られ\ たプロファイルデータを累積するために用いることもできる。 .TP .B \-v gprof のバージョン番号を表示して終了する。 .TP .B \-z 用いられなかった関数 (呼び出し回数と実行時間でわかる) も表示する。これ\ を .B \-c オプションと共に用いると、呼び出されなかったルーチンを見つけるのに役\ に立つ。 .PP .SH ファイル a.out 名前のリストとテキスト空間 .br gmon.out ダイナミックなコール・グラフとプロファイル .br gmon.sum ダイナミックなコール・グラフとプロファイルのまとめ .SH 関連項目 .BR monitor ( 3 ) , .BR profil ( 2 ) , .BR cc ( 1 ) , .BR prof ( 1 ) .sp ``An Execution Profiler for Modular Programs'', by S. Graham, P. Kessler, M. McKusick; .I Software \- Practice and Experience, Vol. 13, pp. 671-685, 1983. .sp ``gprof: A Call Graph Execution Profiler'', by S. Graham, P. Kessler, M. McKusick; .I Proceedings of the SIGPLAN '82 Symposium on Compiler Construction, SIGPLAN Notices, Vol. 17, No 6, pp. 120-126, June 1982. .SH 履歴 .B gprof は 4.2 BSD から登場した。 .SH バグ サンプリングの粒度 (granularity) も表示されるが、せいぜい統計的なもの\ でしかない。ここでは関数の一回あたりの実行時間は、関数の消費した合計時\ 間を呼び出し回数で割ったものと仮定している。したがって、呼び出しグラフの\ 枝を伝播して関数の親に伝わる時間は、枝を通過した回数に直に比例すること\ になる。 .PP 自分自身がプロファイルされていない親でも、子から伝播してくる時間を保有\ することになる。しかしこれらのルーチンは、呼び出しグラフの中で (どこか\ ら呼び出されたのでもなく) 勝手に起動するように見えるので、その時間はそ\ れ以上どこへも伝播しない。同様に、シグナルをキャッチしたルーチンは、プ\ ロファイルされていても勝手に起動するように見えてしまう (理由はもう少し\ 複雑だが)。シグナルをキャッチしたルーチンの子がプロファイルされてい\ ればその時間を正しく伝播させることができるが、親ルーチンがプロファ\ イルルーチンの途中でシグナルがキャッチされた場合には全ての情報は失われる。 .PP プロファイルされるプログラムは .BR exit ( 2 ) をコールして終了するか、 main ルーチンからの return で終了しなければな\ らない。さもないと終了時にプロファイル情報が `gmon.out' ファイルにセー\ ブされない。
[gprofx.txt (text/plain, inline)]
GPROF(1) GPROF(1)
[1m名前[0m
gprof - コール・グラフ (call graph) のプロファイルを表示する
[1m書式[0m
[1mgprof [ -abcsz ] [ -e|-E [4m[22mname[24m [1m] [ -f|-F [4m[22mname[24m [1m] [ -k [4m[22mfromname[24m [4mtoname[24m [1m][0m
[1m[ [4m[22mobjfile[24m [1m[ [4m[22mgmon.out[24m [1m] ][0m
[1m説明[0m
[1mgprof [22mは C, Pascal, Fortran77 プログラムの実行プロファイルを生成す
る。呼び出されたルーチンの値は呼び出し元に取り込まれる。プロファイルの
ためのデータはコール・グラフ (call graph: 関数コールの親子関係のグラ
フ) のプロファイルデータファイル (デフォルトでは `gmon.out') から取り
込まれる。このファイルは [1mcc[22m([1m1[22m)[1m、 pc[22m([1m1[22m)[1m、 f77[22m([1m1[22m) で [1m-pg [22mオプションを指
定してコンパイルされたプログラムによって作成される。 [1m-pg [22mオプションで
は、リンクされるライブラリもプロファイル用にコンパイルされたものにな
る。 [1mgprof [22mは指定されたオブジェクトファイル (デフォルトは `a.out') か
らシンボルテーブルを読み、これと `gmon.out' のコール・グラフ・プロファ
イルとを関連付ける。複数のプロファイルデータファイルが指定された場合に
は、 [1mgprof [22mはそれらのプロファイル情報をすべて合計して表示する。
[1mgprof [22mはそれぞれのルーチンによって消費された時間を計算する。次にこれら
の時間をコール・グラフの枝に沿って親ルーチンへと伝播させる。プログラム
のサイクル (cycle: 再帰呼び出しの循環) をまとめ、サイクルへのコールを
行ったルーチンは、サイクルで消費した時間を共有するとみなす。最初のリス
トは関数で、消費時間の順にソートされている。消費時間にはコール・グラフ
での子孫の分も含まれる。それぞれの関数エントリの下には、その関数のコー
ル・グラフでの (直接の) 子と、そこで消費された時間がどのように関数に伝
播したかが表示される。同様の表示は関数の上にも表示されており、その関数
とそれらの子孫で消費された時間がどのようにコール・グラフの (直接の) 親
へ伝播するかが示される。
サイクルも表示される。サイクル全体としてのエントリ、そのサイクルに属す
るメンバーのリストとそれぞれのメンバーによって消費された時間、そのサイ
クルの呼び出し回数などが表示される。
次にフラットプロファイル ([1mprof[22m(1) の結果と似たもの) が与えられる。この
リストでは合計実行時間、呼び出し回数、そのルーチン自身で消費した時間
(ミリ秒単位)、子孫の分も含めて消費した時間 (ミリ秒単位) が表示される。
最後に関数名の索引が与えられる。
[1mオプション[0m
以下のオプションが指定できる:
[1m-a [22mスタティックに宣言された関数を表示しない。このオプションが指定
されると、スタティックな関数に関する全ての情報 (実行時間、他の
関数の呼び出し、他の関数から呼び出される関係など) は、ファイル
`objfile' 中でこのスタティックな関数の直前にロードされた関数に
属することになる。
[1m-b [22mプロファイルのそれぞれのフィールドに関する説明を表示しない。
[1m-c [22mプログラムのスタティックなコール・グラフを、オブジェクトファイ
ルのテキストセグメントを調べるという発見的 (heuristic) な手法
で作成する。スタティック・コールだけの親や子の呼び出し回数は 0
として表示する。
[1m-e [4m[22mname[24m ルーチン [4mname[24m と、その子孫すべてに関するグラフプロファイルのエ
ントリを表示しない (子孫に関しては、別の祖先がいれば表示され
る)。 [1m-e [22mオプションは複数回指定できる。一つの [1m-e [22mオプションに
ついて指定できる [4mname[24m は一つだけである。
[1m-E [4m[22mname[24m [1m-e [22mと同様にルーチン [4mname[24m とその子孫に関するグラフプロファイル
のエントリを表示しない。また [4mname[24m (とその子孫) によって消費さ
れた時間も、プログラム実行の総時間 (およびパーセンテージの計
算) から除かれる。例えば [1m-E [4m[22mmcount[24m [1m-E [4m[22mmcleanup[24m はデフォルトに
なっている。
[1m-f [4m[22mname[24m ルーチン [4mname[24m とその子孫に関してのみ、グラフプロファイルのエン
トリを表示する。 [1m-f [22mオプションは複数回指定できる。一つの [1m-f [22mオ
プションについて指定できる [4mname[24m は一つだけである。
[1m-F [4m[22mname[24m [1m-f [22mと同様に、ルーチン [4mname[24m とその子孫に関してのみ、グラフプロ
ファイルのエントリを表示する。またこれらによって用いられた時間
だけを合計の実行時間とパーセンテージの計算に用いる。 [1m-F [22mオプ
ションは複数指定できる。一つの [1m-F [22mオプションについて指定できる
[4mname[24m は一つだけである。 [1m-F [22mオプションは [1m-E [22mオプションによる設
定を上書きする。
[1m-k [4m[22mfromname[24m [4mtoname[0m
ルーチン [4mfromname[24m からルーチン [4mtoname[24m までの枝を削除する。これ
は不要なサイクルの循環を破壊するのに便利である。 [1m-k [22mは複数指定
できる。一つの [1m-k [22mオプションに対して指定できるのは一組のルーチ
ン名だけである。
[1m-s [22mプロファイルファイル `gmon.sum' を作成し、指定したプロファイル
ファイルの情報すべてからのプロファイル情報を総計したものを書き
込む。この合計プロファイルファイルは後に gprof を (おそらくは
[1m-s [22mと共に) 実行する際に与えて、 `objfile' ファイルを複数回実行
して得られたプロファイルデータを累積するために用いることもでき
る。
[1m-v [22mgprof のバージョン番号を表示して終了する。
[1m-z [22m用いられなかった関数 (呼び出し回数と実行時間でわかる) も表示す
る。これを [1m-c [22mオプションと共に用いると、呼び出されなかったルー
チンを見つけるのに役に立つ。
[1mファイル[0m
a.out 名前のリストとテキスト空間
gmon.out ダイナミックなコール・グラフとプロファイル
gmon.sum ダイナミックなコール・グラフとプロファイルのまとめ
[1m関連項目[0m
[1mmonitor[22m([1m3[22m)[1m, profil[22m([1m2[22m)[1m, cc[22m([1m1[22m)[1m, prof[22m([1m1[22m)
``An Execution Profiler for Modular Programs'', by S. Graham, P.
Kessler, M. McKusick; [4mSoftware[24m [4m-[24m [4mPractice[24m [4mand[24m [4mExperience,[24m Vol. 13, pp.
671-685, 1983.
``gprof: A Call Graph Execution Profiler'', by S. Graham, P. Kessler,
M. McKusick; [4mProceedings[24m [4mof[24m [4mthe[24m [4mSIGPLAN[24m [4m'82[24m [4mSymposium[24m [4mon[24m [4mCompiler[24m [4mCon‐[0m
[4mstruction,[24m SIGPLAN Notices, Vol. 17, No 6, pp. 120-126, June 1982.
[1m履歴[0m
[1mgprof [22mは 4.2 BSD から登場した。
[1mバグ[0m
サンプリングの粒度 (granularity) も表示されるが、せいぜい統計的なもの
でしかない。ここでは関数の一回あたりの実行時間は、関数の消費した合計時
間を呼び出し回数で割ったものと仮定している。したがって、呼び出しグラフ
の枝を伝播して関数の親に伝わる時間は、枝を通過した回数に直に比例するこ
とになる。
自分自身がプロファイルされていない親でも、子から伝播してくる時間を保有
することになる。しかしこれらのルーチンは、呼び出しグラフの中で (どこか
ら呼び出されたのでもなく) 勝手に起動するように見えるので、その時間はそ
れ以上どこへも伝播しない。同様に、シグナルをキャッチしたルーチンは、プ
ロファイルされていても勝手に起動するように見えてしまう (理由はもう少し
複雑だが)。シグナルをキャッチしたルーチンの子がプロファイルされていれ
ばその時間を正しく伝播させることができるが、親ルーチンがプロファイル
ルーチンの途中でシグナルがキャッチされた場合には全ての情報は失われる。
プロファイルされるプログラムは [1mexit[22m([1m2[22m) をコールして終了するか、 main
ルーチンからの return で終了しなければならない。さもないと終了時にプロ
ファイル情報が `gmon.out' ファイルにセーブされない。
January 29, 1993 GPROF(1)
Reply sent
to Colin Watson <cjwatson@debian.org>:
You have taken responsibility.
(Sun, 09 Jan 2011 14:51:13 GMT) (full text, mbox, link).
Notification sent
to Kenshi Muto <kmuto@debian.org>:
Bug acknowledged by developer.
(Sun, 09 Jan 2011 14:51:13 GMT) (full text, mbox, link).
Message #67 received at 552201-close@bugs.debian.org (full text, mbox, reply):
Source: groff
Source-Version: 1.21-1
We believe that the bug you reported is fixed in the latest version of
groff, which is due to be installed in the Debian FTP archive:
groff-base_1.21-1_i386.deb
to main/g/groff/groff-base_1.21-1_i386.deb
groff_1.21-1.debian.tar.gz
to main/g/groff/groff_1.21-1.debian.tar.gz
groff_1.21-1.dsc
to main/g/groff/groff_1.21-1.dsc
groff_1.21-1_i386.deb
to main/g/groff/groff_1.21-1_i386.deb
groff_1.21.orig.tar.gz
to main/g/groff/groff_1.21.orig.tar.gz
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 552201@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Colin Watson <cjwatson@debian.org> (supplier of updated groff package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Sun, 09 Jan 2011 13:15:30 +0000
Source: groff
Binary: groff-base groff
Architecture: source i386
Version: 1.21-1
Distribution: experimental
Urgency: low
Maintainer: Colin Watson <cjwatson@debian.org>
Changed-By: Colin Watson <cjwatson@debian.org>
Description:
groff - GNU troff text-formatting system
groff-base - GNU troff text-formatting system (base system components)
Closes: 369254 450434 540477 545807 552201 599648
Changes:
groff (1.21-1) experimental; urgency=low
.
* New upstream release:
- New warning category 'file'. (man-db uses this as part of
automatically enabling language-specific hyphenation rules, which
should now work.)
- CJK line-breaking and hyphenation support (closes: #552201).
- Fix typo in groff_man(7) (closes: #369254).
- Fix typo in "Character Translations" info node (closes: #450434).
- Fix white heart and diamond Unicode values in groff_char(7) (closes:
#540477).
- Point to troff(1) for -w and -W in groff(1) (closes: #545807).
* Document reasons for groff's Recommends in its package description
(closes: #599648).
* Switch build-dependency from byacc to bison, as that's what was used to
generate the parsers in the 1.21 release.
* Force YACC='bison -y' when configuring, to avoid problems if byacc is
also installed.
* Use a separate build directory, eliminating the requirement to preserve
some files by hand.
* Policy version 3.9.1:
- Rename debian/README.build to debian/README.source.
- Add a Homepage field.
- Refer to /usr/share/common-licenses/GFDL-1.3 in debian/copyright
rather than quoting it (although the GPL v3 governs this package, as
explained in detail in debian/copyright).
- Use Breaks rather than Conflicts.
Checksums-Sha1:
f435d24a1186aabdfcb23af5c6fb1efea0b87d2f 1958 groff_1.21-1.dsc
a513aca4a7530a6e63325addd6ba2d282c8f1608 3863837 groff_1.21.orig.tar.gz
bcf7cce2abd75301911af7cde0c4513bae0c06cb 37682 groff_1.21-1.debian.tar.gz
8cb49607c8a504a587819b201f3e5217d9f22b05 1129636 groff-base_1.21-1_i386.deb
4d57a09789a1c64a6c64864964767afe92281e8a 3556538 groff_1.21-1_i386.deb
Checksums-Sha256:
d5ecf81b9624cba03da754708439057b0b076e04311117c3050c61e556b2f8f7 1958 groff_1.21-1.dsc
344e6af5480e7ab4ec51e2a2ed10acd69ba3e062d285b6d5f6d49fb5ed2f9f7a 3863837 groff_1.21.orig.tar.gz
03341660115919ad414ee12f2a0849d0959f7cf5809e7327b89af9933659378d 37682 groff_1.21-1.debian.tar.gz
6673fa61c7cae16a1cd3515b0e4b8e63a87c26dcfb6d5652a643336bc1c3c88d 1129636 groff-base_1.21-1_i386.deb
00e6231171bf835d10a77bdace744bef4af47984f98b3fb354479a58918fb5a1 3556538 groff_1.21-1_i386.deb
Files:
35c32af31abb323b431a53fe68ace882 1958 text important groff_1.21-1.dsc
8b8cd29385b97616a0f0d96d0951c5bf 3863837 text important groff_1.21.orig.tar.gz
d830e95d3d1770f61dbef3b475c24299 37682 text important groff_1.21-1.debian.tar.gz
693afa7ac4e6fc7779b8c00dee1c472f 1129636 text important groff-base_1.21-1_i386.deb
379233c47ab24e0db9a0fb40495090f5 3556538 text optional groff_1.21-1_i386.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Colin Watson <cjwatson@debian.org> -- Debian developer
iQIVAwUBTSm6zDk1h9l9hlALAQilow/+LMhaoOe3KZazIIZUzueP5xVtPvN+jKGJ
3ZexmSIahqleaYjJIppmHuKibyaZ4FXiXM8/1yh2xARHHCZtug178LdIfwduz+gt
GrLEOrL5AmQ+j7HvT7wFamS2XxapQhbG9gOQpqHISMxkO5Sn+ZKCYw1bpf7pnnal
k2VvqcnkI773EqyHpVZdZ70bVMHbwMR7vROMEX6PmsQI1BoV2iugICy7jFVDLJy/
X9QYDTgXcJYcWqkoQvKzFl44hr1uAX1u+53KZZMBBLjlUYjcPXaMYXmii1GZv1L3
QPLL6q6lZalOoCrCm1u51C9DwSyUxVGARNU097eqbLF3OiRK3yfYZZcmg09dxXWz
zQ17KMCtg+oiPqURIDPMsucwbeSvawNY3f3hpaH7I1U5H3FQeuieFn4Mxakk5S0+
ntPuAZVjFEdH0I91Jm4Mzbk7WoDkfte/zwNFsexNOAv8IlZuLjZcILfdAIBIxOW9
qALm4FvutxYdJnLDaLB0EhxnXsQCEIJIkEawMS7NyUjoCes2O41ZY2lg6plPJPP8
x36eWyRz6jDihkXAC/Ajgo1YzvIbJwhgmEXhaPLoulebfqH2C1A6AQhSA8AABchT
NkcTuC4SSH80Psnp7rVpNqMgzvgLmqf/HgZ4x9VdHMOkAAFaklgkqtcGiRXIHamM
66ozujFn+wg=
=eQcv
-----END PGP SIGNATURE-----
Reply sent
to Colin Watson <cjwatson@debian.org>:
You have taken responsibility.
(Tue, 08 Feb 2011 10:51:16 GMT) (full text, mbox, link).
Notification sent
to Kenshi Muto <kmuto@debian.org>:
Bug acknowledged by developer.
(Tue, 08 Feb 2011 10:51:16 GMT) (full text, mbox, link).
Message #72 received at 552201-close@bugs.debian.org (full text, mbox, reply):
Source: groff
Source-Version: 1.21-4
We believe that the bug you reported is fixed in the latest version of
groff, which is due to be installed in the Debian FTP archive:
groff-base_1.21-4_i386.deb
to main/g/groff/groff-base_1.21-4_i386.deb
groff_1.21-4.debian.tar.gz
to main/g/groff/groff_1.21-4.debian.tar.gz
groff_1.21-4.dsc
to main/g/groff/groff_1.21-4.dsc
groff_1.21-4_i386.deb
to main/g/groff/groff_1.21-4_i386.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 552201@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Colin Watson <cjwatson@debian.org> (supplier of updated groff package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Tue, 08 Feb 2011 10:29:38 +0000
Source: groff
Binary: groff-base groff
Architecture: source i386
Version: 1.21-4
Distribution: unstable
Urgency: low
Maintainer: Colin Watson <cjwatson@debian.org>
Changed-By: Colin Watson <cjwatson@debian.org>
Description:
groff - GNU troff text-formatting system
groff-base - GNU troff text-formatting system (base system components)
Closes: 369254 450434 540477 545807 552201 599648 609459
Changes:
groff (1.21-4) unstable; urgency=low
.
* Upload to unstable.
.
groff (1.21-3) experimental; urgency=low
.
* Go back to installing groff.info from the source directory, not the
build directory; timestamps are such that make won't rebuild it (closes:
#609459).
.
groff (1.21-2) experimental; urgency=low
.
* Build-depend on texinfo (closes: #609459).
* Only emit a single backspace for bold/underline in no-SGR mode.
.
groff (1.21-1) experimental; urgency=low
.
* New upstream release:
- New warning category 'file'. (man-db uses this as part of
automatically enabling language-specific hyphenation rules, which
should now work.)
- CJK line-breaking and hyphenation support (closes: #552201).
- Fix typo in groff_man(7) (closes: #369254).
- Fix typo in "Character Translations" info node (closes: #450434).
- Fix white heart and diamond Unicode values in groff_char(7) (closes:
#540477).
- Point to troff(1) for -w and -W in groff(1) (closes: #545807).
* Document reasons for groff's Recommends in its package description
(closes: #599648).
* Switch build-dependency from byacc to bison, as that's what was used to
generate the parsers in the 1.21 release.
* Force YACC='bison -y' when configuring, to avoid problems if byacc is
also installed.
* Use a separate build directory, eliminating the requirement to preserve
some files by hand.
* Policy version 3.9.1:
- Rename debian/README.build to debian/README.source.
- Add a Homepage field.
- Refer to /usr/share/common-licenses/GFDL-1.3 in debian/copyright
rather than quoting it (although the GPL v3 governs this package, as
explained in detail in debian/copyright).
- Use Breaks rather than Conflicts.
Checksums-Sha1:
f826f44076c07de6028e5d53089a7b7df184bcb0 1976 groff_1.21-4.dsc
063960715346770b0884cdc05b48e21d8a872c36 37929 groff_1.21-4.debian.tar.gz
b7de89afab8eb202efa34dc8260e6f776ac152fe 1129810 groff-base_1.21-4_i386.deb
29f3e3c12ff3734cbf000182fcc106547bf235bd 3556340 groff_1.21-4_i386.deb
Checksums-Sha256:
552385f5e6a4a6020ccee7cacecfdd763c2d1e4467da81f034442160552ab588 1976 groff_1.21-4.dsc
55434b38251a99a6c6a9b2397b6edb64fe5bc25c4b5870e14546f5dfa6f666b6 37929 groff_1.21-4.debian.tar.gz
0212ed3b4d3709ee39f59482f80412da13783494102e0da899c61e5e10587013 1129810 groff-base_1.21-4_i386.deb
49196fdd59844772e88e7c325e651b61087b31282e64b058861698d74ae23dd5 3556340 groff_1.21-4_i386.deb
Files:
ca6a0c9e6ed20f7d9d1453ffb9942509 1976 text important groff_1.21-4.dsc
aa9f509bee37ae8e45c5b87f599f1628 37929 text important groff_1.21-4.debian.tar.gz
945601485a5d3aa79fd5b44618256751 1129810 text important groff-base_1.21-4_i386.deb
1294c8d59b567707e45dbfad8bb46f22 3556340 text optional groff_1.21-4_i386.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Colin Watson <cjwatson@debian.org> -- Debian developer
iQIVAwUBTVEcfDk1h9l9hlALAQih9RAAor1wcBH+D5ykU6F2hNkBOxavvR41DAy3
7zsXlm85h41pX+jRpihQhuCuV+Sb166NZo330uuXnjeR6sv2z2Tb7tWm+dryatUC
qtIHa4GQ72S8b2bvS68UZl07T8P5OQZdTWGk190d2W9+/pr0JOzcpQfphrV54M1s
zuk3GQ5FZKEFKTfSup9qK9OpEjkucqSX/QJfHw2HYxqrdh0fBXwrBnFE+Ku5u1ba
k77faz50BDwFUjKwvzTzlk72UgrZzZYaVOo/rKRzfgbW0IT4wyyEL542rbb1D4g6
4DPHNv0i5D3RN9t50acBgacIQDuBqfz/OZtrb11j14tHD8VdrS0fYitlsLxphiaf
b3QSA2bXSSHfu4A/J6/YZN9tRB+c6r8j+VZbAgo3CKLFcwAGiKWuY0mpFCoCtAYt
3QJ5CzH9Tav6by0aMpimAN3Mo7eAS8YoobEhwzGa709TfbFbpn1o43eC6Klu+CJm
5Hu6JlbEO2VuV7EX/JVwyLuFR6MfXL4ohuP9zo0hTifcUMfzIJMW8tmtn4+nRinB
9XyuPxHA/f8qob35+/ZoVJEeAFUUPwj7SnQMsIG9Uwp+gVudcemSu2AtkkEwfeqc
DFVFPzJoLyvrEfpseERLHohAkgKj/5PP+Vb6g2wj44gBNPLQj/xirFlhktcYpwWb
JkAzG+PepHs=
=zUiT
-----END PGP SIGNATURE-----
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Sat, 19 Mar 2011 07:30:50 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.