Matthew Fernandez [Sat, 5 Feb 2022 06:05:42 +0000 (17:05 +1100)]
gxl2gv: replace custom 'slist' string stack with generic stack
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. Apart from reducing code duplication and complexity, this
removes an unnecessary rounding of allocations. The prior code rounded up
`slist` allocations to `sizeof(void*)`, but `malloc` effectively does this
internally anyway. This also adds checks for allocation failures that were
previously missing.
Gitlab: #1793
Matthew Fernandez [Sat, 5 Feb 2022 01:28:06 +0000 (12:28 +1100)]
gxl2gv: replace inline stack implementation with generic API
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This removes the previously hard coded nested subgraph limit of
32. The number of supported subgraphs in now solely limited by available memory.
Gitlab: #1793
Matthew Fernandez [Sun, 24 Apr 2022 17:32:40 +0000 (17:32 +0000)]
Merge branch 'smattr/
06F42B8C-5B6E-438F-8110-
3B743FAF61E9' into 'main'
de-dupe unistd compat headers; remove unistd detection
Closes #2204
See merge request graphviz/graphviz!2614
Matthew Fernandez [Mon, 18 Apr 2022 03:17:49 +0000 (20:17 -0700)]
remove no longer used compat_unistd.h
Gitlab: closes #2204
Matthew Fernandez [Mon, 18 Apr 2022 02:00:39 +0000 (19:00 -0700)]
remove no longer used unistd.h detection
Gitlab: #2204
Matthew Fernandez [Sat, 16 Apr 2022 17:07:30 +0000 (10:07 -0700)]
gvpr: make #includes of unistd.h unconditional
Gitlab: #2204
Matthew Fernandez [Sat, 16 Apr 2022 20:34:55 +0000 (13:34 -0700)]
ast: make #includes of unistd.h unconditional
Only the one in pathfind.c was actually having the intended effect, because the
other two files were not #including config.h.
Gitlab: #2204
Matthew Fernandez [Sat, 16 Apr 2022 22:05:30 +0000 (15:05 -0700)]
treat 'X_OK' as an alias of 'R_OK' in the Windows unistd.h shim
This is not technically correct (Windows does not have `X_OK` at all), but this
is an accurate approximation for the ways in which Graphviz uses `X_OK`. This is
another step towards replacing lib/ast/compat_unistd.h.
Gitlab: #2204
Matthew Fernandez [Sat, 16 Apr 2022 22:01:35 +0000 (15:01 -0700)]
implement a 'S_ISDIR' shim for Windows
This will enable further migration away from lib/ast/compat_unistd.h. Note that
the `S_ISDIR` wrapper there appears incorrect, in using a platform-specific
constant for the mask. Its definition of `X_OK` also seems incorrect, as this
value has no documented meaning when calling `_access` on Windows.
Gitlab: #2204
Matthew Fernandez [Sat, 16 Apr 2022 00:05:38 +0000 (17:05 -0700)]
common: make #include of unistd.h unconditional
Gitlab: #2204
Matthew Fernandez [Thu, 14 Apr 2022 14:33:08 +0000 (07:33 -0700)]
cgraph: control Flex unistd.h suppression by whether we are on Windows
Windows is the only non-unistd.h-having platform we support.
Gitlab: #2204
Matthew Fernandez [Thu, 14 Apr 2022 04:31:43 +0000 (21:31 -0700)]
sfio: make #include of unistd.h unconditional
Gitlab: #2204
Matthew Fernandez [Thu, 14 Apr 2022 03:01:33 +0000 (20:01 -0700)]
gvc: make #include of unistd.h unconditional
Gitlab: #2204
Matthew Fernandez [Thu, 14 Apr 2022 02:57:15 +0000 (19:57 -0700)]
lefty: make a unix #include of unistd.h unconditional
On unices, it is fine to assume the existence of unistd.h.
Gitlab: #2204
Matthew Fernandez [Thu, 14 Apr 2022 00:37:36 +0000 (17:37 -0700)]
gml2gv: control Flex unistd.h suppression by whether we are on Windows
This aligns more closely with the idiom used in lib/cgraph, and Windows is the
only non-unistd.h-having platform we support.
Gitlab: #2204
Matthew Fernandez [Wed, 13 Apr 2022 06:41:44 +0000 (23:41 -0700)]
move Windows unistd.h shim to its own directory
Graphviz contains two shims for platforms lacking unistd.h:
1. windows/include/unistd.h
2. lib/ast/compat_unistd.h
(1) is more comprehensive than (2), and we would like to replace (2) entirely
with (1). However, it is not currently possible to put (1) in the compiler’s
include path during the CMake build. Because it lives in the same directory as
the config.h used in the MS Build build, putting it in the compiler’s include
path also makes this config.h eligible for inclusion. This conflicts with the
CMake build system’s own generated config.h.
Moving this unistd.h to its own directory allows us to more selectively put it
in the include path when relevant. Though surprisingly this file seems unused
right now; even the adjacent config.h does not define `HAVE_UNISTD_H`,
indicating it should not be included.
With unistd.h available natively on every supported platform except Windows,
this change should allow removing unistd.h detection in future and
unconditionally including it when desired.
Gitlab: #2204
Matthew Fernandez [Wed, 13 Apr 2022 06:36:12 +0000 (23:36 -0700)]
common: remove unused unistd.h #include
Gitlab: #2204
Matthew Fernandez [Wed, 13 Apr 2022 06:33:05 +0000 (23:33 -0700)]
doc sccmap: remove unused unistd.h #include
Gitlab: #2204
Matthew Fernandez [Wed, 13 Apr 2022 06:31:22 +0000 (23:31 -0700)]
remove unistd.h check in plugin.demo
Nothing in plugin.demo uses unistd.h anymore.
Gitlab: #2204
Matthew Fernandez [Sun, 24 Apr 2022 06:29:31 +0000 (06:29 +0000)]
Merge branch 'smattr/
30329BC5-7D90-4D80-84EC-
0821124864B6' into 'main'
upgrade Pylint
See merge request graphviz/graphviz!2624
Matthew Fernandez [Thu, 14 Apr 2022 14:47:40 +0000 (07:47 -0700)]
upgrade Pylint
Matthew Fernandez [Sun, 24 Apr 2022 05:06:02 +0000 (05:06 +0000)]
Merge branch 'doc' into 'main'
add doxygen comment to cell::edges
See merge request graphviz/graphviz!2623
Costa Shulyupin [Thu, 21 Apr 2022 17:30:37 +0000 (20:30 +0300)]
add doxygen comment to cell::edges
The first two lines (brief) will shown in description
of the `struct cell`
The list will be shown in detailed description of cell::edges
Matthew Fernandez [Sun, 24 Apr 2022 04:02:38 +0000 (04:02 +0000)]
Merge branch 'smattr/
CE3E9D6F-BFB1-44FB-BCCE-
FAD52D1FE9F1' into 'main'
lib/neatogen: replace inline stack with generic implementation
See merge request graphviz/graphviz!2622
Matthew Fernandez [Sun, 6 Feb 2022 07:07:28 +0000 (18:07 +1100)]
lib/neatogen: replace inline stack with generic implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This also introduces some missing allocation failure checks.
Gitlab: #1793
Matthew Fernandez [Sun, 24 Apr 2022 02:34:10 +0000 (02:34 +0000)]
Merge branch 'smattr/
9060F827-8691-4085-BB0D-
430A545CC103' into 'main'
sfio: remove some dead code
See merge request graphviz/graphviz!2621
Matthew Fernandez [Thu, 21 Apr 2022 00:00:23 +0000 (17:00 -0700)]
sfio: remove function pointer dereferences and parens
The C compiler knows how to dereference a function pointer and call through it
without needing to be explicitly told.
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:46:21 +0000 (21:46 -0700)]
sfio: remove unnecessary casts
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:45:31 +0000 (21:45 -0700)]
sfio: remove open coded 'NULL'
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:29:15 +0000 (21:29 -0700)]
sfio: use 'SIG_IGN' instead of custom ignoring signal handler
This is a simpler, more efficient, and more concise way of achieving the same
thing that has existed since at least C89.
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:15:42 +0000 (21:15 -0700)]
sfio: remove unnecessary C++ guards in a C file
This file is compiled with the C compiler, so the ifdef condition on these
guards is always false.
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:13:41 +0000 (21:13 -0700)]
sfio: remove legacy '__SFDPP__directive' support
This seems to be support for some legacy platform lost to the sands of time.
Various internet code searches turn up some clues, but I cannot precisely
determine what platform or system was expected to define these. AFAIK these are
undefined on all currently supported Graphviz platforms.
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 04:36:49 +0000 (21:36 -0700)]
sfio: remove unused '_sfgetpath'
Gitlab: #1998
Matthew Fernandez [Wed, 20 Apr 2022 03:51:58 +0000 (20:51 -0700)]
sfio: remove unused 'sfresize'
Gitlab: #1998
Matthew Fernandez [Sun, 24 Apr 2022 01:09:21 +0000 (01:09 +0000)]
Merge branch 'smattr/
94A38AB0-13D5-4797-B464-
88C8BE016582' into 'main'
API BREAK: change 'Agiodisc_t' output function from puts-alike to printf-alike
See merge request graphviz/graphviz!2620
Matthew Fernandez [Wed, 20 Apr 2022 02:42:20 +0000 (19:42 -0700)]
common: inline and remove 'agputs'
Matthew Fernandez [Wed, 20 Apr 2022 02:41:31 +0000 (19:41 -0700)]
common: fuse adjacent 'print' calls
With a `printf` API, there is no longer a need to make all these I/O calls
separately.
Matthew Fernandez [Wed, 20 Apr 2022 02:36:42 +0000 (19:36 -0700)]
common: inline and remove 'printdouble'
With the `Agiodisc_t` output function now taking a format string, this code can
be written more readably and concisely. This also avoids the need for
intermediate buffering.
Matthew Fernandez [Wed, 20 Apr 2022 02:33:47 +0000 (19:33 -0700)]
common: inline and remove 'printint'
With the `Agiodisc_t` output function now taking a format string, this code can
be written more readably and concisely. This also avoids the need for
intermediate buffering.
Matthew Fernandez [Wed, 20 Apr 2022 02:32:36 +0000 (19:32 -0700)]
common: inline and remove 'printstring'
With the `Agiodisc_t` output function now taking a format string, this code can
be written more readably and concisely.
Matthew Fernandez [Thu, 21 Apr 2022 03:53:18 +0000 (20:53 -0700)]
common: remove “slimey” comment
It is unclear what this comment is referring to. It seems to only make this code
more confusing.
Matthew Fernandez [Wed, 20 Apr 2022 02:27:22 +0000 (19:27 -0700)]
API BREAK: change 'Agiodisc_t' output function from puts-alike to printf-alike
This enables writing calling code in a simpler manner that removes the need for
intermediate buffering. This will be demonstrated in upcoming commits.
Matthew Fernandez [Sat, 23 Apr 2022 19:11:27 +0000 (19:11 +0000)]
Merge branch 'smattr/
23C59ACB-D5E2-4D3C-AED1-
16F3145755B9' into 'main'
pack: replace inline stack with generic implementation
See merge request graphviz/graphviz!2625
Matthew Fernandez [Sat, 5 Feb 2022 08:12:32 +0000 (19:12 +1100)]
pack: replace inline stack with generic implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation.
Gitlab: #1793
Matthew Fernandez [Sat, 23 Apr 2022 17:50:25 +0000 (17:50 +0000)]
Merge branch 'smattr/
3777e2b7-e748-48b3-be40-
2d466eeb7d6d' into 'main'
dot2gxl: fix crashes when given an empty node id
Closes #2092
See merge request graphviz/graphviz!2627
Matthew Fernandez [Fri, 22 Apr 2022 04:53:41 +0000 (21:53 -0700)]
dot2gxl: fix crashes when given an empty node id
An empty node id is now treated as if id was missing altogether.
Gitlab: fixes #2092
Matthew Fernandez [Fri, 22 Apr 2022 04:51:59 +0000 (21:51 -0700)]
tests: adjust #2092 test case to expect failure
Even when this is fixed to not crash, it should still not exit with success
because the input it is given is invalid. Unfortunately we need to also adjust
the xfail condition to be non-strict because this passes under ASan, due to
exiting with 1 when an invalid memory reference is detected.
Gitlab: #2092
Matthew Fernandez [Fri, 22 Apr 2022 04:17:57 +0000 (21:17 -0700)]
tests: fix 'gvtest' import adjustment
This appended path was clearly wrong. Yet this test was running (and passing) in
CI. It seems somehow `./rtest` is already in the `$PYTHONPATH` in CI. A bit
mysterious, but this correction lets the test suite run locally correctly too.
Matthew Fernandez [Sat, 23 Apr 2022 14:58:49 +0000 (14:58 +0000)]
Merge branch 'smattr/
1FB0FD97-370C-4494-96C7-
660729E080FD' into 'main'
dotgen: replace inline stack with generic implementation
See merge request graphviz/graphviz!2626
Matthew Fernandez [Fri, 22 Apr 2022 00:01:24 +0000 (17:01 -0700)]
dotgen: replace inline stack with generic implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation.
Gitlab: #1793
Matthew Fernandez [Thu, 21 Apr 2022 01:19:28 +0000 (01:19 +0000)]
Merge branch 'smattr/
92B5C0E4-9DD0-486F-BCF8-
6CD2CF4D606A' into 'main'
core plugin: remove 'GVPUTS' optimization
See merge request graphviz/graphviz!2616
Matthew Fernandez [Mon, 18 Apr 2022 04:31:41 +0000 (21:31 -0700)]
core plugin: remove 'GVPUTS' optimization
This macro was implemented to optimize the case of calling `gvputs` with a
string literal. It has since proven error prone to use.¹ The sharp edge is that
it is possible to call the macro with something that is not a string literal:
const char *hello = "hello world";
GVPUTS(job, hello);
This will pass through the compiler with no warnings, but on e.g. x86-64 will
result in a `gvputs` of `"hello wo"`. For safety, we remove it.
This effectively reverts commit
1764f50bcbdf944e003fe475aba2c26e2fd370ff. The
`GVPUTS` macro was originally introduced to optimize I/O resulting in a ~1%
runtime improvement on tests/regression_tests/large/long_chain. That example
should probably no longer be considered “expensive.” I/O is typically an
insignificant fraction of the computation done by currently known expensive
inputs that spend most of their time in layout or cycle resolution. If I/O _is_
a factor in an expensive graph, we could consider providing a vectorized
interface in future in the style of `writev`.
¹ E.g. https://gitlab.com/graphviz/graphviz/-/merge_requests/2472#note_861834540
Matthew Fernandez [Wed, 20 Apr 2022 01:43:48 +0000 (01:43 +0000)]
Merge branch 'simplify-pdf-generation' into 'main'
Simplify PDF generation
See merge request graphviz/graphviz!2608
David Seifert [Sun, 17 Apr 2022 10:53:37 +0000 (12:53 +0200)]
Simplify PDF generation
* Make the suffix rule visible unconditionally, make only the PDF
target (`pdf_DATA`) visible if `groff` is available and the user
hasn't explicitly disabled PDF generation.
David Seifert [Sun, 17 Apr 2022 10:53:37 +0000 (12:53 +0200)]
`AC_CHECK_PROG(EGREP,...)` -> `AC_PROG_EGREP`
David Seifert [Sun, 17 Apr 2022 10:53:37 +0000 (12:53 +0200)]
`AC_CHECK_PROGS(SED,...)` -> `AC_PROG_SED`
* `AC_PROG_SED` is more portable and the Autoconf builtin.
David Seifert [Sun, 17 Apr 2022 10:53:37 +0000 (12:53 +0200)]
`AC_PROG_LIBTOOL` -> `LT_INIT`
* `AC_PROG_LIBTOOL` is the deprecated name from libtool 1.x days.
Matthew Fernandez [Tue, 19 Apr 2022 15:50:10 +0000 (15:50 +0000)]
Merge branch 'smattr/
504AC3D8-C9CA-4DBE-ADB1-
61A6EC6E31E5' into 'main'
cgraph: also flush C++ iostreams in exit wrapper
See merge request graphviz/graphviz!2611
Matthew Fernandez [Sun, 17 Apr 2022 21:31:35 +0000 (14:31 -0700)]
cgraph: also flush C++ iostreams in exit wrapper
This exit wrapper works around an issue where processes running under MinGW can
exit with unbuffered data remaining in their stdout and stderr internal buffers
without being flushed. The C stdio and C++ iostreams implementations can have
separate buffers. Thus when using this wrapper in C++ code in combination with
C++ iostreams (e.g. cmd/mingle/minglemain.cpp) we need to additionally flush the
C++ buffers as well.
Gitlab: #2178
Matthew Fernandez [Tue, 19 Apr 2022 05:24:24 +0000 (05:24 +0000)]
Merge branch 'smattr/
2876ED0F-59E3-4EAD-BF53-
380662F6B6CF' into 'main'
gvgen: replace inline stack with generation implementation
See merge request graphviz/graphviz!2612
Matthew Fernandez [Sat, 5 Feb 2022 07:52:15 +0000 (18:52 +1100)]
gvgen: replace inline stack with generation implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This also introduces some missing allocation failure checks.
Gitlab: #1793
Matthew Fernandez [Tue, 19 Apr 2022 04:05:02 +0000 (04:05 +0000)]
Merge branch 'smattr/
D117C632-7F81-42C4-859F-
F6CA7D69D211' into 'main'
remove 'HAVE_LIBXPMFORLEFTY' comment in Windows config.h
See merge request graphviz/graphviz!2613
Matthew Fernandez [Mon, 18 Apr 2022 02:06:20 +0000 (19:06 -0700)]
remove 'HAVE_LIBXPMFORLEFTY' comment in Windows config.h
The originating Autotools code from which this was derived was removed in
ba574d9f2579cda134d30b2ad5c8729012296a83.
Matthew Fernandez [Tue, 19 Apr 2022 02:15:02 +0000 (02:15 +0000)]
Merge branch 'smattr/
95332056-80BA-49C3-9F43-
72BD2F1E2060' into 'main'
cgraph man page fix, pack const-ify a param
See merge request graphviz/graphviz!2610
Matthew Fernandez [Thu, 14 Apr 2022 00:26:38 +0000 (17:26 -0700)]
pack: take a const parameter in 'parsePackModeInfo'
This string is not modified internally.
Matthew Fernandez [Thu, 14 Apr 2022 00:17:24 +0000 (17:17 -0700)]
cgraph: fix legacy type signature in man page
`agattr` was updated to take a `const char*` for `value` in
c5789870553e56ca80bcf233a1c7488538561ca3.
Matthew Fernandez [Mon, 18 Apr 2022 15:33:12 +0000 (15:33 +0000)]
Merge branch 'smattr/
8B7C6044-6EC5-46EC-975D-
79D9082F9A78' into 'main'
sccmap: replace inline stack with generation implementation
See merge request graphviz/graphviz!2609
Matthew Fernandez [Sat, 5 Feb 2022 07:35:35 +0000 (18:35 +1100)]
sccmap: replace inline stack with generation implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This also introduces some missing allocation failure checks.
Gitlab: #1793
Magnus Jacobsson [Mon, 18 Apr 2022 07:23:30 +0000 (07:23 +0000)]
Merge branch 'remove-__USE_GNU-hacks-for-stdlib.h' into 'main'
render: unconditionally include stdlib.h
See merge request graphviz/graphviz!2607
Magnus Jacobsson [Sun, 3 Apr 2022 06:49:41 +0000 (08:49 +0200)]
render: unconditionally include stdlib.h
Without this change, attempting to include geomproc.h in render.h
would cause the following warning:
In file included from /home/magjac/graphviz/lib/common/shapes.c:12:
/home/magjac/graphviz/lib/common/render.h:24: warning: "__USE_GNU" redefined
24 | #define __USE_GNU
|
In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
from /usr/include/limits.h:26,
from /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h:203,
from /usr/lib/gcc/x86_64-linux-gnu/11/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-linux-gnu/11/include/limits.h:34,
from /home/magjac/graphviz/lib/common/arith.h:21,
from /home/magjac/graphviz/lib/common/geom.h:16,
from /home/magjac/graphviz/lib/common/geomprocs.h:21,
from /home/magjac/graphviz/lib/common/shapes.c:11:
/usr/include/features.h:407: note: this is the location of the previous definition
407 | # define __USE_GNU 1
|
This is casued by arith.h defining _GNU_SOURCE to 1 which seems to
implicitly set __USE_GNU.
Matthew Fernandez [Mon, 18 Apr 2022 04:29:02 +0000 (04:29 +0000)]
Merge branch 'smattr/
FEF51FF4-CEC3-46E0-B585-
34C3E7E6311E' into 'main'
add a CONTRIBUTING.md, spelling out some implicit development practices
See merge request graphviz/graphviz!2586
Matthew Fernandez [Mon, 11 Apr 2022 15:23:54 +0000 (08:23 -0700)]
add a CONTRIBUTING.md, spelling out some implicit development practices
This is still incomplete, but it at least documents some things we have largely
been doing implicitly for awhile.
Gitlab: #2199
Matthew Fernandez [Mon, 18 Apr 2022 03:09:10 +0000 (03:09 +0000)]
Merge branch 'smattr/
DA9E7312-A451-4627-BCFB-
778A8505ED48' into 'main'
gml2gv: replace 'liststk' stack with generic implementation
See merge request graphviz/graphviz!2606
Matthew Fernandez [Sat, 5 Feb 2022 06:23:11 +0000 (17:23 +1100)]
gml2gv: replace 'liststk' stack with generic implementation
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This also introduces some missing allocation failure checks.
Gitlab: #1793
Matthew Fernandez [Mon, 18 Apr 2022 00:14:24 +0000 (00:14 +0000)]
Merge branch 'smattr/
2BDF9A34-A358-4559-A1F7-
55A3385F3088' into 'main'
misc improvements
See merge request graphviz/graphviz!2605
Matthew Fernandez [Sat, 16 Apr 2022 20:57:23 +0000 (13:57 -0700)]
tests: use 'gvtest.dot' to simplify a test case
Matthew Fernandez [Sun, 17 Apr 2022 01:03:32 +0000 (18:03 -0700)]
tests: switch test_large_graphs.py to *nix line endings
Not sure how this one incurred Windows line endings, in contrast to the rest of
the tree.
Matthew Fernandez [Sat, 16 Apr 2022 20:45:01 +0000 (13:45 -0700)]
tests: suppress 'gvtest' Pytest warnings by name instead of code
This has the same effect, but is slightly less cryptic to people reading this
code.
Matthew Fernandez [Mon, 11 Apr 2022 14:58:15 +0000 (07:58 -0700)]
add a changelog entry for CMake plugin enabling since last release
Matthew Fernandez [Sun, 17 Apr 2022 22:44:44 +0000 (22:44 +0000)]
Merge branch 'smattr/
12B33EC1-2DD6-4415-92C4-
A3914D178A24' into 'main'
graphml2gv: replace inline stack implementations with generic API
See merge request graphviz/graphviz!2600
Matthew Fernandez [Fri, 4 Feb 2022 10:36:21 +0000 (21:36 +1100)]
graphml2gv: replace custom 'slist' string stack with generic stack
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. Apart from reducing code duplication and complexity, this
removes an unnecessary rounding of allocations. The prior code rounded up
`slist` allocations to `sizeof(void*)`, but `malloc` effectively does this
internally anyway.
Gitlab: #1793
Matthew Fernandez [Fri, 4 Feb 2022 07:49:15 +0000 (18:49 +1100)]
graphml2gv: replace inline stack implementation with generic API
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation. This removes the previously hard coded nested subgraph limit of
32. The number of supported subgraphs in now solely limited by available memory.
Gitlab: #1793
Matthew Fernandez [Sun, 17 Apr 2022 17:21:46 +0000 (17:21 +0000)]
Merge branch 'smattr/
F75A68E4-8CEB-47C7-9183-
FB9033461020' into 'main'
CI: retry macOS libANN installation up to 2× on failure
See merge request graphviz/graphviz!2603
Matthew Fernandez [Sat, 16 Apr 2022 15:39:32 +0000 (08:39 -0700)]
CI: retry macOS libANN installation up to 2× on failure
libANN availability seems erratic, with Macports sometimes reporting:
Error: Port libANN not found
only for a retry of the job to succeed. This change introduces an auto-retry
loop on libANN’s installation, hoping this will ameliorate the issue.
Matthew Fernandez [Sun, 17 Apr 2022 16:03:22 +0000 (16:03 +0000)]
Merge branch 'smattr/
B0797CFF-D97C-4D8F-B2BB-
08A472AB2C8A' into 'main'
bcomps: replace inline stack implementation with generic API
See merge request graphviz/graphviz!2604
Matthew Fernandez [Fri, 4 Feb 2022 10:53:23 +0000 (21:53 +1100)]
bcomps: replace inline stack implementation with generic API
Similar to previous changes to `gc` in
4e2875fd7376338259dcb3ccc8f029d58bdf22dd,
this replaces some duplicated functionality with the generic Graphviz stack
implementation.
Gitlab: #1793
Magnus Jacobsson [Sun, 17 Apr 2022 10:29:58 +0000 (10:29 +0000)]
Merge branch 'minor-poly_init-cleanup' into 'main'
Minor cleanup in poly_init
See merge request graphviz/graphviz!2601
Magnus Jacobsson [Sat, 16 Apr 2022 13:37:01 +0000 (15:37 +0200)]
poly_init: narrow scope of P, Q and R
Magnus Jacobsson [Sat, 26 Mar 2022 18:54:54 +0000 (19:54 +0100)]
poly_init: remove useless assignment of P
P is not read after this before assigning it a new value.
Magnus Jacobsson [Sun, 17 Apr 2022 08:31:14 +0000 (08:31 +0000)]
Merge branch 'remove-unused-shape_t-struct' into 'main'
Breaking change: remove unused shape_t struct from public header types.h
See merge request graphviz/graphviz!2599
Magnus Jacobsson [Sat, 16 Apr 2022 13:14:15 +0000 (15:14 +0200)]
remove unused shape_t struct
Matthew Fernandez [Sun, 17 Apr 2022 00:30:51 +0000 (00:30 +0000)]
Merge branch 'conditionalize-man-page-installation' into 'main'
Conditionalize man page installation on binary/script
See merge request graphviz/graphviz!2602
David Seifert [Sat, 16 Apr 2022 18:12:09 +0000 (20:12 +0200)]
Conditionalize man page installation on binary/script
* Previously man pages were installed even though the respective binary/script wasn't.
Matthew Fernandez [Sat, 16 Apr 2022 20:30:58 +0000 (20:30 +0000)]
Merge branch 'bugfix/many-clusters' into 'main'
Increase the size of mark to handle more clusters
See merge request graphviz/graphviz!2595
Thomas Gibson-Robinson [Fri, 15 Apr 2022 07:13:15 +0000 (08:13 +0100)]
common: increase the size of mark to handle more clusters
Thomas Gibson-Robinson [Fri, 15 Apr 2022 07:10:51 +0000 (08:10 +0100)]
tests: add a regression test for a crash with >= 128 clusters
Matthew Fernandez [Sat, 16 Apr 2022 17:14:50 +0000 (17:14 +0000)]
Merge branch 'man-handling' into 'main'
Respect autoconf defaults
See merge request graphviz/graphviz!2598
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
Update spec file for --docdir changes
* We nest `pdf` and `html` in separate directories in $(docdir), to
mimic the old documentation packaging structure.
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
Define `$(pkgconfigdir)` using `PKG_INSTALLDIR` in configure.ac
* This allows overriding the default using `--with-pkgconfigdir`
passed to the configure script. FreeBSD for instance doesn't use
the standard `$libdir/pkgconfig` directory. This macro has been
present in pkg.m4 for over 9 years:
https://gitlab.freedesktop.org/pkg-config/pkg-config/-/commit/
5fc77a96b7a1114e296f968037342f060d4bc34b
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
`$(txtdir)` -> `$(docdir)`
* All documentation directories should be a function of `$(docdir)`, and
not `$(datadir)`, which is to be used for files that the program
actually needs at runtime.
* Also amend the debian install rules, since documentation is now
natively installed into `$(docdir)` == `usr/share/doc/graphviz`.