this did reintroduce hundreds of warnings:
defined(%hash) is deprecated at ...ngspice/tests/bin/runQaTests.pl line 331.
(Maybe you should just omit the defined()?)
this was deprecated aproximately 2001 with perl version
v5.6.1
see
https://perldoc.perl.org/perl561delta.html
obviously for good reason, because defined(%hash) did have a semantics which
did not exactly match the users expectation.
does not work when "configured" in a separate working directory.
apart from that, repeatedly executing a ngspice solely to check the version
is slow, and actually useless because the test harness is part of the Makefile
and thus the version is known to be exactly that of the currently
checked out commit.
which have been invalidated by commit:
ifparm, #4/16, missing IF_REDUNDANT for some aliases, introduce IOPAPR
before this commit, sensitivity to "capacitance" was published twice,
once with name "c1" (reference name of a CAP device)
and as "c1_c" (reference name of a CAP concatenated with param name "c")
after said commit, sensitivity is no longer published as "c1_c"
(because "c" is only an "alias"/IF_REDUNDANT of the main parameter
which is named "capacitance", and "capacitance" is a IF_PRINCIPAL
and thus avoids "concatenation" of the parameter name)
identified and reported by Marcel Hendrix,
expressions of this kind could trigger a segmentation violation.
PTdifferentiate() roughly evaluates to
ternary_fcn(ge0(0-expr), 0, PTdifferentate(expr))
and mkb() optimizes
0 - expr --> unary_minus(expr)
IFeval() invokes PTeval() for the derivative too,
PTeval() looks at the incorrect tree->funcnum
and tries to PTeval for a second argument which is not there,
(unary_minus does not have a second argument)
causing a segmentation fault.