* [PR PATCH] mdocml: fix hang when rendering stress-ng(1)
@ 2023-06-08 19:40 classabbyamp
2023-06-09 9:08 ` [PR PATCH] [Merged]: " classabbyamp
0 siblings, 1 reply; 2+ messages in thread
From: classabbyamp @ 2023-06-08 19:40 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 517 bytes --]
There is a new pull request by classabbyamp against master on the void-packages repository
https://github.com/classabbyamp/void-packages mdocml-stress-reduction
https://github.com/void-linux/void-packages/pull/44319
mdocml: fix hang when rendering stress-ng(1)
see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
cc @leahneukirchen
#### Testing the changes
- I tested the changes in this PR: **YES**
A patch file from https://github.com/void-linux/void-packages/pull/44319.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-mdocml-stress-reduction-44319.patch --]
[-- Type: text/x-diff, Size: 3313 bytes --]
From ee2320c9ce8d005600e25f563ff25d637e835ac9 Mon Sep 17 00:00:00 2001
From: classabbyamp <void@placeviolette.net>
Date: Thu, 8 Jun 2023 15:38:38 -0400
Subject: [PATCH] mdocml: fix hang when rendering stress-ng(1)
see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
---
srcpkgs/mdocml/patches/stress-ng-hang.patch | 75 +++++++++++++++++++++
srcpkgs/mdocml/template | 2 +-
2 files changed, 76 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/mdocml/patches/stress-ng-hang.patch
diff --git a/srcpkgs/mdocml/patches/stress-ng-hang.patch b/srcpkgs/mdocml/patches/stress-ng-hang.patch
new file mode 100644
index 000000000000..fd6a3a7c0037
--- /dev/null
+++ b/srcpkgs/mdocml/patches/stress-ng-hang.patch
@@ -0,0 +1,75 @@
+fixes hang from rendering stress-ng(1)
+
+from https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
+
+===================================================================
+RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/out.c,v
+retrieving revision 1.54
+retrieving revision 1.55
+diff -u -r1.54 -r1.55
+--- a/out.c 2021/09/07 17:05:30 1.54
++++ b/out.c 2021/09/28 17:06:17 1.55
+@@ -121,6 +121,7 @@
+ const struct tbl_dat *dp;
+ struct roffcol *col;
+ struct tbl_colgroup *first_group, **gp, *g;
++ size_t *colwidth;
+ size_t ewidth, min1, min2, wanted, width, xwidth;
+ int done, icol, maxcol, necol, nxcol, quirkcol;
+
+@@ -254,16 +255,28 @@
+ gp = &(*gp)->next;
+ }
+
++ colwidth = mandoc_reallocarray(NULL, maxcol + 1, sizeof(*colwidth));
+ while (first_group != NULL) {
+
+ /*
++ * Rebuild the array of the widths of all columns
++ * participating in spans that require expansion.
++ */
++
++ for (icol = 0; icol <= maxcol; icol++)
++ colwidth[icol] = SIZE_MAX;
++ for (g = first_group; g != NULL; g = g->next)
++ for (icol = g->startcol; icol <= g->endcol; icol++)
++ colwidth[icol] = tbl->cols[icol].width;
++
++ /*
+ * Find the smallest and second smallest column width
+ * among the columns which may need expamsion.
+ */
+
+ min1 = min2 = SIZE_MAX;
+ for (icol = 0; icol <= maxcol; icol++) {
+- width = tbl->cols[icol].width;
++ width = colwidth[icol];
+ if (min1 > width) {
+ min2 = min1;
+ min1 = width;
+@@ -281,7 +294,7 @@
+ for (g = first_group; g != NULL; g = g->next) {
+ necol = 0;
+ for (icol = g->startcol; icol <= g->endcol; icol++)
+- if (tbl->cols[icol].width == min1)
++ if (colwidth[icol] == min1)
+ necol++;
+ if (necol == 0)
+ continue;
+@@ -298,7 +311,7 @@
+ while ((g = *gp) != NULL) {
+ done = 0;
+ for (icol = g->startcol; icol <= g->endcol; icol++) {
+- if (tbl->cols[icol].width != min1)
++ if (colwidth[icol] != min1)
+ continue;
+ if (g->wanted <= wanted - min1) {
+ tbl->cols[icol].width += g->wanted;
+@@ -315,6 +328,7 @@
+ gp = &(*gp)->next;
+ }
+ }
++ free(colwidth);
+
+ /*
+ * Align numbers with text.
diff --git a/srcpkgs/mdocml/template b/srcpkgs/mdocml/template
index 4dda1338fc9c..9b9d5394a292 100644
--- a/srcpkgs/mdocml/template
+++ b/srcpkgs/mdocml/template
@@ -1,7 +1,7 @@
# Template file for 'mdocml'
pkgname=mdocml
version=1.14.6
-revision=6
+revision=7
build_style=configure
make_build_args="all man.cgi"
make_check_target="regress"
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PR PATCH] [Merged]: mdocml: fix hang when rendering stress-ng(1)
2023-06-08 19:40 [PR PATCH] mdocml: fix hang when rendering stress-ng(1) classabbyamp
@ 2023-06-09 9:08 ` classabbyamp
0 siblings, 0 replies; 2+ messages in thread
From: classabbyamp @ 2023-06-09 9:08 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 340 bytes --]
There's a merged pull request on the void-packages repository
mdocml: fix hang when rendering stress-ng(1)
https://github.com/void-linux/void-packages/pull/44319
Description:
see https://inbox.vuxu.org/mandoc-discuss/ZIIbRuk+yJtoAJhv@asta-kit.de/
cc @leahneukirchen
#### Testing the changes
- I tested the changes in this PR: **YES**
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-06-09 9:08 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-08 19:40 [PR PATCH] mdocml: fix hang when rendering stress-ng(1) classabbyamp
2023-06-09 9:08 ` [PR PATCH] [Merged]: " classabbyamp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).