]> granicus.if.org Git - graphviz/log
graphviz
2 years agotreat 'X_OK' as an alias of 'R_OK' in the Windows unistd.h shim
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

2 years agoimplement a 'S_ISDIR' shim for Windows
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

2 years agocommon: make #include of unistd.h unconditional
Matthew Fernandez [Sat, 16 Apr 2022 00:05:38 +0000 (17:05 -0700)]
common: make #include of unistd.h unconditional

Gitlab: #2204

2 years agocgraph: control Flex unistd.h suppression by whether we are on Windows
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

2 years agosfio: make #include of unistd.h unconditional
Matthew Fernandez [Thu, 14 Apr 2022 04:31:43 +0000 (21:31 -0700)]
sfio: make #include of unistd.h unconditional

Gitlab: #2204

2 years agogvc: make #include of unistd.h unconditional
Matthew Fernandez [Thu, 14 Apr 2022 03:01:33 +0000 (20:01 -0700)]
gvc: make #include of unistd.h unconditional

Gitlab: #2204

2 years agolefty: make a unix #include of unistd.h unconditional
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

2 years agogml2gv: control Flex unistd.h suppression by whether we are on Windows
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

2 years agomove Windows unistd.h shim to its own directory
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

2 years agocommon: remove unused unistd.h #include
Matthew Fernandez [Wed, 13 Apr 2022 06:36:12 +0000 (23:36 -0700)]
common: remove unused unistd.h #include

Gitlab: #2204

2 years agodoc sccmap: remove unused unistd.h #include
Matthew Fernandez [Wed, 13 Apr 2022 06:33:05 +0000 (23:33 -0700)]
doc sccmap: remove unused unistd.h #include

Gitlab: #2204

2 years agoremove unistd.h check in plugin.demo
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

2 years agoMerge branch 'smattr/30329BC5-7D90-4D80-84EC-0821124864B6' into 'main'
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

2 years agoupgrade Pylint
Matthew Fernandez [Thu, 14 Apr 2022 14:47:40 +0000 (07:47 -0700)]
upgrade Pylint

2 years agoMerge branch 'doc' into 'main'
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

2 years agoadd doxygen comment to cell::edges
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

2 years agoMerge branch 'smattr/CE3E9D6F-BFB1-44FB-BCCE-FAD52D1FE9F1' into 'main'
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

2 years agolib/neatogen: replace inline stack with generic implementation
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

2 years agoMerge branch 'smattr/9060F827-8691-4085-BB0D-430A545CC103' into 'main'
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

2 years agosfio: remove function pointer dereferences and parens
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

2 years agosfio: remove unnecessary casts
Matthew Fernandez [Wed, 20 Apr 2022 04:46:21 +0000 (21:46 -0700)]
sfio: remove unnecessary casts

Gitlab: #1998

2 years agosfio: remove open coded 'NULL'
Matthew Fernandez [Wed, 20 Apr 2022 04:45:31 +0000 (21:45 -0700)]
sfio: remove open coded 'NULL'

Gitlab: #1998

2 years agosfio: use 'SIG_IGN' instead of custom ignoring signal handler
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

2 years agosfio: remove unnecessary C++ guards in a C file
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

2 years agosfio: remove legacy '__SFDPP__directive' support
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

2 years agosfio: remove unused '_sfgetpath'
Matthew Fernandez [Wed, 20 Apr 2022 04:36:49 +0000 (21:36 -0700)]
sfio: remove unused '_sfgetpath'

Gitlab: #1998

2 years agosfio: remove unused 'sfresize'
Matthew Fernandez [Wed, 20 Apr 2022 03:51:58 +0000 (20:51 -0700)]
sfio: remove unused 'sfresize'

Gitlab: #1998

2 years agoMerge branch 'smattr/94A38AB0-13D5-4797-B464-88C8BE016582' into 'main'
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

2 years agocommon: inline and remove 'agputs'
Matthew Fernandez [Wed, 20 Apr 2022 02:42:20 +0000 (19:42 -0700)]
common: inline and remove 'agputs'

2 years agocommon: fuse adjacent 'print' calls
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.

2 years agocommon: inline and remove 'printdouble'
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.

2 years agocommon: inline and remove 'printint'
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.

2 years agocommon: inline and remove 'printstring'
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.

2 years agocommon: remove “slimey” comment
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.

2 years agoAPI BREAK: change 'Agiodisc_t' output function from puts-alike to printf-alike
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.

2 years agoMerge branch 'smattr/23C59ACB-D5E2-4D3C-AED1-16F3145755B9' into 'main'
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

2 years agopack: replace inline stack with generic implementation
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

2 years agoMerge branch 'smattr/3777e2b7-e748-48b3-be40-2d466eeb7d6d' into 'main'
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

2 years agodot2gxl: fix crashes when given an empty node id
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

2 years agotests: adjust #2092 test case to expect failure
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

2 years agotests: fix 'gvtest' import adjustment
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.

2 years agoMerge branch 'smattr/1FB0FD97-370C-4494-96C7-660729E080FD' into 'main'
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

2 years agodotgen: replace inline stack with generic implementation
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

2 years agoMerge branch 'smattr/92B5C0E4-9DD0-486F-BCF8-6CD2CF4D606A' into 'main'
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

2 years agocore plugin: remove 'GVPUTS' optimization
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

2 years agoMerge branch 'simplify-pdf-generation' into 'main'
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

2 years agoSimplify PDF generation
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.

2 years ago`AC_CHECK_PROG(EGREP,...)` -> `AC_PROG_EGREP`
David Seifert [Sun, 17 Apr 2022 10:53:37 +0000 (12:53 +0200)]
`AC_CHECK_PROG(EGREP,...)` -> `AC_PROG_EGREP`

2 years ago`AC_CHECK_PROGS(SED,...)` -> `AC_PROG_SED`
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.

2 years ago`AC_PROG_LIBTOOL` -> `LT_INIT`
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.

2 years agoMerge branch 'smattr/504AC3D8-C9CA-4DBE-ADB1-61A6EC6E31E5' into 'main'
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

2 years agocgraph: also flush C++ iostreams in exit wrapper
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

2 years agoMerge branch 'smattr/2876ED0F-59E3-4EAD-BF53-380662F6B6CF' into 'main'
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

2 years agogvgen: replace inline stack with generation implementation
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

2 years agoMerge branch 'smattr/D117C632-7F81-42C4-859F-F6CA7D69D211' into 'main'
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

2 years agoremove 'HAVE_LIBXPMFORLEFTY' comment in Windows config.h
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.

2 years agoMerge branch 'smattr/95332056-80BA-49C3-9F43-72BD2F1E2060' into 'main'
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

2 years agopack: take a const parameter in 'parsePackModeInfo'
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.

2 years agocgraph: fix legacy type signature in man page
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.

2 years agoMerge branch 'smattr/8B7C6044-6EC5-46EC-975D-79D9082F9A78' into 'main'
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

2 years agosccmap: replace inline stack with generation implementation
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

2 years agoMerge branch 'remove-__USE_GNU-hacks-for-stdlib.h' into 'main'
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

2 years agorender: unconditionally include stdlib.h
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.

2 years agoMerge branch 'smattr/FEF51FF4-CEC3-46E0-B585-34C3E7E6311E' into 'main'
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

2 years agoadd a CONTRIBUTING.md, spelling out some implicit development practices
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

2 years agoMerge branch 'smattr/DA9E7312-A451-4627-BCFB-778A8505ED48' into 'main'
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

2 years agogml2gv: replace 'liststk' stack with generic implementation
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

2 years agoMerge branch 'smattr/2BDF9A34-A358-4559-A1F7-55A3385F3088' into 'main'
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

2 years agotests: use 'gvtest.dot' to simplify a test case
Matthew Fernandez [Sat, 16 Apr 2022 20:57:23 +0000 (13:57 -0700)]
tests: use 'gvtest.dot' to simplify a test case

2 years agotests: switch test_large_graphs.py to *nix line endings
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.

2 years agotests: suppress 'gvtest' Pytest warnings by name instead of code
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.

2 years agoadd a changelog entry for CMake plugin enabling since last release
Matthew Fernandez [Mon, 11 Apr 2022 14:58:15 +0000 (07:58 -0700)]
add a changelog entry for CMake plugin enabling since last release

2 years agoMerge branch 'smattr/12B33EC1-2DD6-4415-92C4-A3914D178A24' into 'main'
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

2 years agographml2gv: replace custom 'slist' string stack with generic stack
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

2 years agographml2gv: replace inline stack implementation with generic API
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

2 years agoMerge branch 'smattr/F75A68E4-8CEB-47C7-9183-FB9033461020' into 'main'
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

2 years agoCI: retry macOS libANN installation up to 2× on failure
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.

2 years agoMerge branch 'smattr/B0797CFF-D97C-4D8F-B2BB-08A472AB2C8A' into 'main'
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

2 years agobcomps: replace inline stack implementation with generic API
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

2 years agoMerge branch 'minor-poly_init-cleanup' into 'main'
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

2 years agopoly_init: narrow scope of P, Q and R
Magnus Jacobsson [Sat, 16 Apr 2022 13:37:01 +0000 (15:37 +0200)]
poly_init: narrow scope of P, Q and R

2 years agopoly_init: remove useless assignment of P
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.

2 years agoMerge branch 'remove-unused-shape_t-struct' into 'main'
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

2 years agoremove unused shape_t struct
Magnus Jacobsson [Sat, 16 Apr 2022 13:14:15 +0000 (15:14 +0200)]
remove unused shape_t struct

2 years agoMerge branch 'conditionalize-man-page-installation' into 'main'
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

2 years agoConditionalize man page installation on binary/script
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.

2 years agoMerge branch 'bugfix/many-clusters' into 'main'
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

2 years agocommon: increase the size of mark to handle more clusters
Thomas Gibson-Robinson [Fri, 15 Apr 2022 07:13:15 +0000 (08:13 +0100)]
common: increase the size of mark to handle more clusters

2 years agotests: add a regression test for a crash with >= 128 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

2 years agoMerge branch 'man-handling' into 'main'
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

2 years agoUpdate spec file for --docdir changes
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.

2 years agoDefine `$(pkgconfigdir)` using `PKG_INSTALLDIR` in configure.ac
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

2 years ago`$(txtdir)` -> `$(docdir)`
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`.

2 years ago`$(pkgdatadir)/doc/html` -> `$(htmldir)`
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
`$(pkgdatadir)/doc/html` -> `$(htmldir)`

* The schemas are documentation, and should be nested in
  `$(docdir)` and not `$(datadir)`.

2 years agoLet Autoconf set `$(htmldir)`
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
Let Autoconf set `$(htmldir)`

* The previous variable would not respect `--docdir` passed to configure.
  Autoconf sets `$(htmldir)` to `$(docdir)` by default and AC_SUBST()s
  this value.

2 years agoLet Autoconf set `$(pdfdir)`
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
Let Autoconf set `$(pdfdir)`

* The previous variable would not respect `--docdir` passed to configure.
  Autoconf sets `$(pdfdir)` to `$(docdir)` by default and AC_SUBST()s
  this value.

2 years agominor whitespace fix
David Seifert [Sat, 16 Apr 2022 16:00:18 +0000 (18:00 +0200)]
minor whitespace fix

2 years agoMerge branch 'smattr/DF7C7988-7949-4124-8FE4-D6ADE0795B76' into 'main'
Matthew Fernandez [Sat, 16 Apr 2022 16:24:06 +0000 (16:24 +0000)]
Merge branch 'smattr/DF7C7988-7949-4124-8FE4-D6ADE0795B76' into 'main'

CMake: fix version check for 'add_link_options'

See merge request graphviz/graphviz!2581

2 years agoCMake: fix version check for 'add_link_options'
Matthew Fernandez [Sun, 10 Apr 2022 18:04:55 +0000 (11:04 -0700)]
CMake: fix version check for 'add_link_options'

This command was added in CMake 3.13.0.¹ Note that the earlier check for this
was already using the correct CMake version.

¹ https://cmake.org/cmake/help/v3.13/command/add_link_options.html

2 years agoMerge branch 'smattr/F4FD20FF-112C-4973-B303-12D257F09982' into 'main'
Matthew Fernandez [Sat, 16 Apr 2022 05:46:36 +0000 (05:46 +0000)]
Merge branch 'smattr/F4FD20FF-112C-4973-B303-12D257F09982' into 'main'

tred: [nfc] replace inline stack implementation with generic API

See merge request graphviz/graphviz!2593