]> granicus.if.org Git - graphviz/log
graphviz
3 years agogvtest.py: fix: use os.remove instead of pathlib.unlink to remove a file
Matthew Fernandez [Sun, 5 Sep 2021 22:56:27 +0000 (15:56 -0700)]
gvtest.py: fix: use os.remove instead of pathlib.unlink to remove a file

There were two problems with using pathlib.unlink here:

  1. If the caller did not pass in a value for `dst`, it was assigned to the
     second return value of a `tempfile.mkstemp` call. That is, `dst` would be a
     string, not a `pathlib.Path`, and calling `.unlink()` would fail
     cryptically.

  2. The `missing_ok` parameter which this code was using was only added to
     `pathlib.unlink` in Python 3.8. The stated Python baseline for Graphviz
     currently is Python 3.6. If this code was reached with Python < 3.8 it
     would result in an exception, obscuring the original problem.

3 years agoMerge branch 'smattr/B74C4F78-BCD7-4583-AF1E-08B7BB49E964' into 'main'
Matthew Fernandez [Mon, 13 Sep 2021 14:43:00 +0000 (14:43 +0000)]
Merge branch 'smattr/B74C4F78-BCD7-4583-AF1E-08B7BB49E964' into 'main'

fix compilation errors with Bison 3.8

Closes #2127

See merge request graphviz/graphviz!2157

3 years agofix: re-align dotlex’s 'yyerror' with that expected by Bison
Matthew Fernandez [Sun, 12 Sep 2021 21:44:02 +0000 (14:44 -0700)]
fix: re-align dotlex’s 'yyerror' with that expected by Bison

Bison 3.8 now emits a prototype for `yyerror`:¹

  To comply with the latest POSIX standard, in Yacc compatibility mode
  (options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
  yylex.  In some situations, this is breaking compatibility: if the user
  has already declared these functions but with some differences (e.g., to
  declare them as static, or to use specific attributes), the generated
  parser will fail to compile.  To disable these prototypes, #define yyerror
  (to `yyerror`), and likewise for yylex.

Because the generated prototype takes a const parameter,² this prototype
conflicts with the implementation in dotlex.c causing a compilation error.
Rather than the work around suggested by the Bison notes, this change simply
re-aligns `yyerror` with the Bison default.

Fixed #2127.

¹ https://github.com/akimd/bison/blob/master/NEWS
² https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html

3 years agofix: take a const parameter in 'gmlerror'
Matthew Fernandez [Sun, 12 Sep 2021 21:07:07 +0000 (14:07 -0700)]
fix: take a const parameter in 'gmlerror'

This function does not modify the pointed to data of its argument. However, the
immediate problem this change is addressing is that Bison 3.8 now emits a
prototype for this function:¹

  To comply with the latest POSIX standard, in Yacc compatibility mode
  (options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
  yylex.  In some situations, this is breaking compatibility: if the user
  has already declared these functions but with some differences (e.g., to
  declare them as static, or to use specific attributes), the generated
  parser will fail to compile.  To disable these prototypes, #define yyerror
  (to `yyerror`), and likewise for yylex.

Because the generated prototype takes a const parameter,² these two prototypes
now conflict causing a compilation error. Rather than the work around suggested
by the Bison notes, this change simply re-aligns `gmlerror` with the Bison
default.

Related to #2127.

¹ https://github.com/akimd/bison/blob/master/NEWS
² https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html

3 years agofix: take a const parameter in 'aagerror'
Matthew Fernandez [Sun, 12 Sep 2021 20:00:00 +0000 (13:00 -0700)]
fix: take a const parameter in 'aagerror'

This function does not modify the pointed to data of its argument. However, the
immediate problem this change is addressing is that Bison 3.8 now emits a
prototype for this function:¹

  To comply with the latest POSIX standard, in Yacc compatibility mode
  (options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
  yylex.  In some situations, this is breaking compatibility: if the user
  has already declared these functions but with some differences (e.g., to
  declare them as static, or to use specific attributes), the generated
  parser will fail to compile.  To disable these prototypes, #define yyerror
  (to `yyerror`), and likewise for yylex.

Because the generated prototype takes a const parameter,² these two prototypes
now conflict causing a compilation error. Rather than the work around suggested
by the Bison notes, this change simply re-aligns `aagerror` with the Bison
default.

Related to #2127.

¹ https://github.com/akimd/bison/blob/master/NEWS
² https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html

3 years agoexpr trace: remove some unnecessary bracketing
Matthew Fernandez [Sun, 12 Sep 2021 19:00:26 +0000 (12:00 -0700)]
expr trace: remove some unnecessary bracketing

3 years agofix: alter expr’s parser’s prefix and introduce a correct yyerror analogue
Matthew Fernandez [Sun, 12 Sep 2021 18:47:49 +0000 (11:47 -0700)]
fix: alter expr’s parser’s prefix and introduce a correct yyerror analogue

Bison documents the `yyerror` function that is expected to be supplied by the
user as taking a single string argument.¹ However expr’s parser was redirecting
this to `exerror`, a variadic function. This mostly worked out fine, but only
coincidentally due to calling conventions aligning.

In Bison 3.8, prototypes for `yyerror` are now generated:²

  To comply with the latest POSIX standard, in Yacc compatibility mode
  (options `-y`/`--yacc`) Bison now generates prototypes for yyerror and
  yylex.  In some situations, this is breaking compatibility: if the user
  has already declared these functions but with some differences (e.g., to
  declare them as static, or to use specific attributes), the generated
  parser will fail to compile.  To disable these prototypes, #define yyerror
  (to `yyerror`), and likewise for yylex.

This causes compilation failures due to type signature mismatches between the
Bison-generated prototype and the hand written `exerror` prototype. Rather than
apply Bison’s suggested work around, this commit instead changes the prefix used
for this parser and introduces a short trampoline, `ex_error` to handle
differences between the calling conventions. Not only does this fix compilation
errors, but it also makes this code robust against Bison issuing error messages
containing formatting codes (e.g. "%s") which `exerror` would previously have
misinterpreted as directives to unpack further arguments.

Note that this is backwards compatible. That is, the code following these
changes still works with Bison 3.7 series.

Related to #2127.

¹ https://www.gnu.org/software/bison/manual/html_node/Error-Reporting-Function.html
² https://github.com/akimd/bison/blob/master/NEWS

3 years agolib/expr/Makefile.am: remove some commented out lines
Matthew Fernandez [Sun, 12 Sep 2021 18:48:56 +0000 (11:48 -0700)]
lib/expr/Makefile.am: remove some commented out lines

3 years agoMerge branch 'smattr/68B86F65-F677-4E11-B60B-95C2114AAC79' into 'main' 2121-include-graphviz-source-in-svg-file
Matthew Fernandez [Sat, 11 Sep 2021 18:17:47 +0000 (18:17 +0000)]
Merge branch 'smattr/68B86F65-F677-4E11-B60B-95C2114AAC79' into 'main'

remove some legacy CI steps

See merge request graphviz/graphviz!2132

3 years agoremove /etc/redhat-release path in install script
Matthew Fernandez [Wed, 1 Sep 2021 01:56:50 +0000 (18:56 -0700)]
remove /etc/redhat-release path in install script

This is the equivalent of 80ccebe66e71c6da570ea5a27f62c21d8c8e39aa but applied
to the install script. Every Linux distro Graphviz CI now runs on appears to
have an /etc/os-release, so this code is unused.

3 years agoRevert "ensure ID_LIKE is always set on Debian in CI"
Matthew Fernandez [Wed, 1 Sep 2021 01:56:45 +0000 (18:56 -0700)]
Revert "ensure ID_LIKE is always set on Debian in CI"

This reverts the remainder of commit 029acf11d1d9a9eb20eddae84cadb61447da95f3.
There are currently no configured Linux CI jobs that run outside of Docker
containers, so this work around is unnecessary.

3 years agoMerge branch 'smattr/1B5CEE04-220F-4D0C-8A5C-0A16DD97F370' into 'main'
Matthew Fernandez [Sat, 11 Sep 2021 16:33:30 +0000 (16:33 +0000)]
Merge branch 'smattr/1B5CEE04-220F-4D0C-8A5C-0A16DD97F370' into 'main'

-Wfloat-equal based clean up

See merge request graphviz/graphviz!2138

3 years agoglCompSetDraw: remove an unnecessary cast
Matthew Fernandez [Sat, 4 Sep 2021 02:49:17 +0000 (19:49 -0700)]
glCompSetDraw: remove an unnecessary cast

This pointer implicitly coerces.

3 years agoglCompSetNew: remove an open coded NULL
Matthew Fernandez [Sat, 4 Sep 2021 02:49:06 +0000 (19:49 -0700)]
glCompSetNew: remove an open coded NULL

3 years agoglcompset.c: remove excess white space
Matthew Fernandez [Sat, 4 Sep 2021 02:48:34 +0000 (19:48 -0700)]
glcompset.c: remove excess white space

3 years agoglCompSetMouseUp: remove unnecessary cast
Matthew Fernandez [Sat, 4 Sep 2021 01:50:48 +0000 (18:50 -0700)]
glCompSetMouseUp: remove unnecessary cast

This pointer coerces implicitly.

3 years agoglCompSetMouseUp: remove pointless 'static' on locals
Matthew Fernandez [Sat, 4 Sep 2021 01:49:13 +0000 (18:49 -0700)]
glCompSetMouseUp: remove pointless 'static' on locals

The value of these variables retained from prior calls is immediately
overwritten on entry to this function.

3 years agosquarify: replace an exact floating-point comparison
Matthew Fernandez [Sat, 4 Sep 2021 01:29:46 +0000 (18:29 -0700)]
squarify: replace an exact floating-point comparison

In this case, `w` could be `fillrec.size[0]` or `fillrec.size[1]`. Replacing the
exact comparison with `<=` squashes a -Wfloat-equal compiled warning.

3 years agofullArea: remove micro-optimization of 0 value of 'm'
Matthew Fernandez [Sat, 4 Sep 2021 01:23:05 +0000 (18:23 -0700)]
fullArea: remove micro-optimization of 0 value of 'm'

This is no longer necessary on modern compilers/processors where square root is
less expensive and this code is not on a hot path.

3 years agosparse cmp: remove some unnecessary casts
Matthew Fernandez [Sat, 4 Sep 2021 01:08:33 +0000 (18:08 -0700)]
sparse cmp: remove some unnecessary casts

These pointers coerce implicitly.

3 years agosparse cmp: rephrase a comparison to avoid a -Wfloat-equal warning
Matthew Fernandez [Sat, 4 Sep 2021 01:07:41 +0000 (18:07 -0700)]
sparse cmp: rephrase a comparison to avoid a -Wfloat-equal warning

Simply makes it clearer to the compiler what this code is doing.

3 years agooverlapSeg: rephrase the order of comparisons to avoid a -Wfloat-equal warning
Matthew Fernandez [Sat, 4 Sep 2021 01:02:22 +0000 (18:02 -0700)]
overlapSeg: rephrase the order of comparisons to avoid a -Wfloat-equal warning

Simply makes it clearer to the compiler what this code is doing.

3 years agoMerge branch 'smattr/24E8A935-AED9-4957-8832-B2EFADDDED5F' into 'main'
Matthew Fernandez [Fri, 10 Sep 2021 15:46:52 +0000 (15:46 +0000)]
Merge branch 'smattr/24E8A935-AED9-4957-8832-B2EFADDDED5F' into 'main'

-Wmissing-field-initializer warning squashing

See merge request graphviz/graphviz!2139

3 years agop_tab: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:12:37 +0000 (20:12 -0700)]
p_tab: squash -Wmissing-field-initializer warning

3 years agop_note: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:11:15 +0000 (20:11 -0700)]
p_note: squash -Wmissing-field-initializer warning

3 years agop_octagon: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:10:24 +0000 (20:10 -0700)]
p_octagon: squash -Wmissing-field-initializer warning

3 years agop_septagon: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:09:40 +0000 (20:09 -0700)]
p_septagon: squash -Wmissing-field-initializer warning

3 years agop_hexagon: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:09:08 +0000 (20:09 -0700)]
p_hexagon: squash -Wmissing-field-initializer warning

3 years agop_pentagon: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:08:28 +0000 (20:08 -0700)]
p_pentagon: squash -Wmissing-field-initializer warning

3 years agop_house: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:07:56 +0000 (20:07 -0700)]
p_house: squash -Wmissing-field-initializer warning

3 years agop_parallelogram: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:07:08 +0000 (20:07 -0700)]
p_parallelogram: squash -Wmissing-field-initializer warning

3 years agop_trapezium: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:05:48 +0000 (20:05 -0700)]
p_trapezium: squash -Wmissing-field-initializer warning

3 years agop_diamond: squash -Wmissing-field-initializer warning
Matthew Fernandez [Sat, 4 Sep 2021 03:02:12 +0000 (20:02 -0700)]
p_diamond: squash -Wmissing-field-initializer warning

3 years agoMerge branch 'smattr/B7DB66F6-0A3B-4F6B-B334-2888ADA7BFBE' into 'main'
Matthew Fernandez [Fri, 10 Sep 2021 01:23:06 +0000 (01:23 +0000)]
Merge branch 'smattr/B7DB66F6-0A3B-4F6B-B334-2888ADA7BFBE' into 'main'

some graphml2gv, gxl2gv clean up

See merge request graphviz/graphviz!2141

3 years agogxl2gv: remove unnecessary casts of 'userdata' pointers
Matthew Fernandez [Sat, 4 Sep 2021 19:35:15 +0000 (12:35 -0700)]
gxl2gv: remove unnecessary casts of 'userdata' pointers

These implicitly coerce.

3 years agogxl2gv: remove unused struct name
Matthew Fernandez [Sat, 4 Sep 2021 19:35:04 +0000 (12:35 -0700)]
gxl2gv: remove unused struct name

3 years agocharacterDataHandler: remove unnecessary casts of `agxbput_n` arguments
Matthew Fernandez [Sat, 4 Sep 2021 19:34:38 +0000 (12:34 -0700)]
characterDataHandler: remove unnecessary casts of `agxbput_n` arguments

3 years agographml2gv: remove unnecessary casts of `userdata` pointers
Matthew Fernandez [Sat, 4 Sep 2021 19:34:15 +0000 (12:34 -0700)]
graphml2gv: remove unnecessary casts of `userdata` pointers

These implicitly coerce.

3 years agographml2gv: remove unused struct name
Matthew Fernandez [Sat, 4 Sep 2021 19:33:53 +0000 (12:33 -0700)]
graphml2gv: remove unused struct name

3 years agoMerge branch 'smattr/bb628679-594c-4502-a50b-9e32e5ed7316' into 'main'
Matthew Fernandez [Thu, 9 Sep 2021 15:28:45 +0000 (15:28 +0000)]
Merge branch 'smattr/bb628679-594c-4502-a50b-9e32e5ed7316' into 'main'

neatogen warning squashing

See merge request graphviz/graphviz!2146

3 years agoneatogen multispline freeIpair: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:41:25 +0000 (12:41 -0700)]
neatogen multispline freeIpair: squash a -Wunused-parameter compiler warning

3 years agoneatogen multispline newIpair: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:40:49 +0000 (12:40 -0700)]
neatogen multispline newIpair: squash a -Wunused-parameter compiler warning

3 years agoneatogen multispline freeItem: squash -Wunused-parameter compiler warnings
Matthew Fernandez [Mon, 6 Sep 2021 19:39:34 +0000 (12:39 -0700)]
neatogen multispline freeItem: squash -Wunused-parameter compiler warnings

3 years agoneatogen multipline newItem: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:38:42 +0000 (12:38 -0700)]
neatogen multipline newItem: squash a -Wunused-parameter compiler warning

3 years agoneatogen multispline swap_ends_p: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:37:49 +0000 (12:37 -0700)]
neatogen multispline swap_ends_p: squash a -Wunused-parameter compiler warning

3 years agoneatogen multispline spline_merge: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:37:00 +0000 (12:37 -0700)]
neatogen multispline spline_merge: squash a -Wunused-parameter compiler warning

3 years agoneatogen multispline: squash a -Wmissing-field-initializer warning
Matthew Fernandez [Mon, 6 Sep 2021 19:36:02 +0000 (12:36 -0700)]
neatogen multispline: squash a -Wmissing-field-initializer warning

3 years agomakeObstacle: squash a spurious -Wswitch-default compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:56:58 +0000 (12:56 -0700)]
makeObstacle: squash a spurious -Wswitch-default compiler warning

The surrounding context ensures that the cases in this switch cover every
possibility.

3 years agoneatogen cmpitems: squash -Wunused-parameter compiler warnings
Matthew Fernandez [Mon, 6 Sep 2021 19:55:15 +0000 (12:55 -0700)]
neatogen cmpitems: squash -Wunused-parameter compiler warnings

3 years agoneatogen cmpitems: rephrase to avoid double→int conversion
Matthew Fernandez [Mon, 6 Sep 2021 19:53:39 +0000 (12:53 -0700)]
neatogen cmpitems: rephrase to avoid double→int conversion

This had a number of problems with respect to possible overflow and loss of
precision. This commit rephrases the comparison into something that does not
rely on any coercion or conversion.

3 years agoneatogen freeitem: squash -Wunused-parameter compiler warnings
Matthew Fernandez [Mon, 6 Sep 2021 19:49:57 +0000 (12:49 -0700)]
neatogen freeitem: squash -Wunused-parameter compiler warnings

3 years agoneatogen newitem: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:49:28 +0000 (12:49 -0700)]
neatogen newitem: squash a -Wunused-parameter compiler warning

3 years agoneatogen swap_ends_p: squash a -Wunused-parameter warning
Matthew Fernandez [Mon, 6 Sep 2021 19:48:08 +0000 (12:48 -0700)]
neatogen swap_ends_p: squash a -Wunused-parameter warning

3 years agoneatogen spline_merge: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:47:40 +0000 (12:47 -0700)]
neatogen spline_merge: squash a -Wunused-parameter compiler warning

3 years agofind_closest_pairs: squash a -Wmissing-field-initializer compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:26:35 +0000 (12:26 -0700)]
find_closest_pairs: squash a -Wmissing-field-initializer compiler warning

3 years agoneatogen splineInfo: squash a -Wmissing-field-initializer compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:24:17 +0000 (12:24 -0700)]
neatogen splineInfo: squash a -Wmissing-field-initializer compiler warning

3 years agodotgen splineInfo: squash a -Wmissing-field-initializer compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 19:22:30 +0000 (12:22 -0700)]
dotgen splineInfo: squash a -Wmissing-field-initializer compiler warning

3 years agoMerge branch 'smattr/659C49B6-0A1A-4490-B1DD-DE326B38C850' into 'main'
Matthew Fernandez [Thu, 9 Sep 2021 04:24:54 +0000 (04:24 +0000)]
Merge branch 'smattr/659C49B6-0A1A-4490-B1DD-DE326B38C850' into 'main'

clean up in tcldot

See merge request graphviz/graphviz!2145

3 years agotcldot-io.c: remove unnecessary bracketing
Matthew Fernandez [Mon, 6 Sep 2021 18:26:55 +0000 (11:26 -0700)]
tcldot-io.c: remove unnecessary bracketing

3 years agotcldot myiodisc_memiofread: remove unnecessary cast
Matthew Fernandez [Mon, 6 Sep 2021 18:25:32 +0000 (11:25 -0700)]
tcldot myiodisc_memiofread: remove unnecessary cast

This pointer implicitly coerces.

3 years agotcldot-io.c: remove commented out code
Matthew Fernandez [Mon, 6 Sep 2021 18:25:12 +0000 (11:25 -0700)]
tcldot-io.c: remove commented out code

3 years agotcldot myiddisc_idregister: squash a spurious -Wswitch-default compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:21:20 +0000 (11:21 -0700)]
tcldot myiddisc_idregister: squash a spurious -Wswitch-default compiler warning

3 years agotcldot-id.c: remove unnecessary casts of state pointers
Matthew Fernandez [Mon, 6 Sep 2021 18:20:11 +0000 (11:20 -0700)]
tcldot-id.c: remove unnecessary casts of state pointers

These pointers implicitly coerce.

3 years agotcldot: myiddisc_free: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:19:11 +0000 (11:19 -0700)]
tcldot: myiddisc_free: squash a -Wunused-parameter compiler warning

3 years agotcldot myiddisc_map: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:18:51 +0000 (11:18 -0700)]
tcldot myiddisc_map: squash a -Wunused-parameter compiler warning

3 years agotcldot myagxset: use a 'size_t' for string length instead of 'int'
Matthew Fernandez [Mon, 6 Sep 2021 18:15:37 +0000 (11:15 -0700)]
tcldot myagxset: use a 'size_t' for string length instead of 'int'

Squashes a -Wconversion compiler warning.

3 years agotcldot deleteNode: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:14:42 +0000 (11:14 -0700)]
tcldot deleteNode: squash a -Wunused-parameter compiler warning

3 years agotcldot deleteEdge: squash a -Wunused-parameter compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:14:05 +0000 (11:14 -0700)]
tcldot deleteEdge: squash a -Wunused-parameter compiler warning

3 years agotcldot obj2cmd: squash a spurious -Wswitch-default compiler warning
Matthew Fernandez [Mon, 6 Sep 2021 18:12:30 +0000 (11:12 -0700)]
tcldot obj2cmd: squash a spurious -Wswitch-default compiler warning

3 years agoTcldot_string_writer: remove unnecessary cast
Matthew Fernandez [Mon, 6 Sep 2021 18:12:13 +0000 (11:12 -0700)]
Tcldot_string_writer: remove unnecessary cast

This pointer implicitly coerces.

3 years agoMerge branch 'smattr/DD0814CF-B2A0-4318-A2E6-A7F84616387A' into 'main'
Matthew Fernandez [Thu, 9 Sep 2021 03:13:07 +0000 (03:13 +0000)]
Merge branch 'smattr/DD0814CF-B2A0-4318-A2E6-A7F84616387A' into 'main'

fix remaining Pylint warnings; enabling gating Pylint CI check

See merge request graphviz/graphviz!2140

3 years agomake final Pylint step fail for any non-FIXME warning/error
Matthew Fernandez [Sat, 4 Sep 2021 16:50:03 +0000 (09:50 -0700)]
make final Pylint step fail for any non-FIXME warning/error

The gating Pylint check now fails if any warning or error is detected, excluding
FIXME comments. This should hopefully lead to improved code quality in Python
introduced into the code base in future.

3 years agodisable Pylint duplicate-code warning
Matthew Fernandez [Sat, 4 Sep 2021 17:12:05 +0000 (10:12 -0700)]
disable Pylint duplicate-code warning

This triggers for a lot of Graphviz Python code because, by its nature of being
used to write test cases in Graphviz, there is inherently always going to be a
lot of similar looking code.

3 years agovuln.py: address a Pylint missing-function-docstring warning
Matthew Fernandez [Sat, 4 Sep 2021 16:47:28 +0000 (09:47 -0700)]
vuln.py: address a Pylint missing-function-docstring warning

3 years agoshapes.py: address a Pylint missing-function-docstring warning
Matthew Fernandez [Sat, 4 Sep 2021 16:47:12 +0000 (09:47 -0700)]
shapes.py: address a Pylint missing-function-docstring warning

3 years agosilence Pylint import-errors about regression_test_helpers
Matthew Fernandez [Sat, 4 Sep 2021 16:45:17 +0000 (09:45 -0700)]
silence Pylint import-errors about regression_test_helpers

I do not know why, but Pylint does not understand this import while Python
itself does. I have tried different variations, but Pylint complains about all
of them.

3 years agoregression_test_helpers.py: address a Pylint missing-function-docstring warning
Matthew Fernandez [Sat, 4 Sep 2021 16:38:41 +0000 (09:38 -0700)]
regression_test_helpers.py: address a Pylint missing-function-docstring warning

3 years agovuln.py: remove variable shadowing
Matthew Fernandez [Sat, 4 Sep 2021 16:32:48 +0000 (09:32 -0700)]
vuln.py: remove variable shadowing

3 years agoaddress Pylint missing-module-docstring warnings
Matthew Fernandez [Sat, 4 Sep 2021 16:32:26 +0000 (09:32 -0700)]
address Pylint missing-module-docstring warnings

3 years agotest_regression.py: remove unused 'stdout' variable
Matthew Fernandez [Sat, 4 Sep 2021 16:28:25 +0000 (09:28 -0700)]
test_regression.py: remove unused 'stdout' variable

3 years agochkPos: remove strcmp micro-optimization
Matthew Fernandez [Sat, 4 Sep 2021 16:24:19 +0000 (09:24 -0700)]
chkPos: remove strcmp micro-optimization

3 years agoMerge branch 'smattr/7890fb90-8b73-4677-a4f3-0f3a17dcf0ca' into 'main'
Matthew Fernandez [Thu, 9 Sep 2021 02:10:41 +0000 (02:10 +0000)]
Merge branch 'smattr/7890fb90-8b73-4677-a4f3-0f3a17dcf0ca' into 'main'

more SWIG bindings clean up

See merge request graphviz/graphviz!2147

3 years agoOCaml bindings: fix: only pass -fpermissive when compiling C++
Matthew Fernandez [Mon, 6 Sep 2021 22:11:19 +0000 (15:11 -0700)]
OCaml bindings: fix: only pass -fpermissive when compiling C++

The `-fpermissive` flag is only valid for Objective-C and C++, but was being set
for C and C++. When compiling the C part of these bindings, this was generating
the warning:

  cc1: warning: command line option ‘-fpermissive’ is valid for C++/ObjC++ but
    not for C

This flag was introduced in 8f4667edb410a6d11b53746849304fb953b5c6ae to work
around non-conformant code generation by SWIG. In future, it might be worth
investigating whether the underlying issue has been fixed in SWIG and this work
around can be removed.

3 years agoJava bindings gv_channel_writer: suppress -Wunused-parameter compiler warnings
Matthew Fernandez [Mon, 6 Sep 2021 22:07:14 +0000 (15:07 -0700)]
Java bindings gv_channel_writer: suppress -Wunused-parameter compiler warnings

3 years agoGo bindings: suppress -Wunused-function compiler warnings
Matthew Fernandez [Mon, 6 Sep 2021 22:02:58 +0000 (15:02 -0700)]
Go bindings: suppress -Wunused-function compiler warnings

SWIG generates some functions that go unused in the Graphviz bindings. There is
no value to warning about these.

3 years agoMerge branch 'smattr/ab033750-c4e7-4e83-930b-4c85fa29cdb3' into 'main'
Matthew Fernandez [Thu, 9 Sep 2021 01:04:00 +0000 (01:04 +0000)]
Merge branch 'smattr/ab033750-c4e7-4e83-930b-4c85fa29cdb3' into 'main'

BinaryHeap clean up

See merge request graphviz/graphviz!2148

3 years agoBinaryHeap: switch 'mask' in sanity check to 0 vs 1
Matthew Fernandez [Mon, 6 Sep 2021 23:53:11 +0000 (16:53 -0700)]
BinaryHeap: switch 'mask' in sanity check to 0 vs 1

Using this instead of -1 vs 1 allows slightly more efficient code.

3 years agoBinaryHeap: use 'size_t' to track heap sizes/positions instead of 'int'
Matthew Fernandez [Mon, 6 Sep 2021 23:47:36 +0000 (16:47 -0700)]
BinaryHeap: use 'size_t' to track heap sizes/positions instead of 'int'

3 years agoBinaryHeap: use 'calloc' instead of 'malloc' when allocating arrays
Matthew Fernandez [Mon, 6 Sep 2021 23:08:58 +0000 (16:08 -0700)]
BinaryHeap: use 'calloc' instead of 'malloc' when allocating arrays

There is not much we can do about the `realloc` calls, but we can at least do
initial allocation in a less error prone way.

3 years agoBinaryHeap: rephrase 'sizeof(type)' code to 'sizeof(arr[0])'
Matthew Fernandez [Mon, 6 Sep 2021 22:58:55 +0000 (15:58 -0700)]
BinaryHeap: rephrase 'sizeof(type)' code to 'sizeof(arr[0])'

This has no effect on functionality, but it makes it clearer what this code is
doing and makes it more robust against changing the underlying types.

3 years agoBinaryHeap_realloc: rephrase division by 5 code
Matthew Fernandez [Mon, 6 Sep 2021 22:39:12 +0000 (15:39 -0700)]
BinaryHeap_realloc: rephrase division by 5 code

This makes the intent of this code clearer as well as squashing a
-Wfloat-conversion compiler warning.

3 years agoMerge branch 'add-ubuntu21-04-static-build-job-to-CI' into 'main'
Magnus Jacobsson [Wed, 8 Sep 2021 20:16:24 +0000 (20:16 +0000)]
Merge branch 'add-ubuntu21-04-static-build-job-to-CI' into 'main'

Add static build for Ubuntu 21.04 to CI

See merge request graphviz/graphviz!2134

3 years agoCI: add ubuntu21-04-static-build job
Magnus Jacobsson [Sat, 7 Aug 2021 15:22:44 +0000 (17:22 +0200)]
CI: add ubuntu21-04-static-build job

3 years agoCI: remove incorrect path to .gz file in deb build template
Magnus Jacobsson [Sat, 4 Sep 2021 16:53:24 +0000 (18:53 +0200)]
CI: remove incorrect path to .gz file in deb build template

No .gz file is produced by the builds that use this template anyway.

3 years agoci/build.sh: add support for static builds using configure options
Magnus Jacobsson [Mon, 30 Aug 2021 13:48:10 +0000 (15:48 +0200)]
ci/build.sh: add support for static builds using configure options

3 years agotclpkg: install .so files only when linking dynamically
Magnus Jacobsson [Sat, 4 Sep 2021 13:55:54 +0000 (15:55 +0200)]
tclpkg: install .so files only when linking dynamically

Fixes errors like this when using static linking:

cp: cannot stat '/home/magjac/graphviz/build/lib/graphviz/ruby/libgv_ruby.so': No such file or directory

3 years agogvpack_static: force the C++ compiler to be used also for static linking
Magnus Jacobsson [Wed, 1 Sep 2021 05:27:25 +0000 (07:27 +0200)]
gvpack_static: force the C++ compiler to be used also for static linking

The trick to force the C++ compiler to be used for linking was applied
only for gvpack, not for gvpack_static.

Fixes many errors like this:

/usr/bin/ld: ../../lib/vpsc/.libs/libvpsc_C.a(csolve_VPSC.o): in function `newVariable':
csolve_VPSC.cpp:(.text+0x20): undefined reference to `operator new(unsigned long)'

3 years agoMerge branch 'add-cygwin-cmake-build-to-ci' into 'main'
Magnus Jacobsson [Wed, 8 Sep 2021 19:08:04 +0000 (19:08 +0000)]
Merge branch 'add-cygwin-cmake-build-to-ci' into 'main'

Add Cygwin CMake build to CI

See merge request graphviz/graphviz!2137

3 years agoCI: add windows-cygwin-cmake-build job
Magnus Jacobsson [Sat, 21 Aug 2021 09:09:58 +0000 (11:09 +0200)]
CI: add windows-cygwin-cmake-build job

3 years agoCPack: silence CPACK_CYGWIN_PATCH_NUMBER not set warning
Magnus Jacobsson [Thu, 2 Sep 2021 22:19:22 +0000 (00:19 +0200)]
CPack: silence CPACK_CYGWIN_PATCH_NUMBER not set warning

Silences this warning:

CPack Warning: CPACK_CYGWIN_PATCH_NUMBER not specified using 1