← Back to team overview

kicad-developers team mailing list archive

Re: [RFC/PATCH] Generic utility tool



On 19.01.19 15:30, John Beard wrote:

> 1) These kinds of utilities are wanted at all, or are they adding
> maintenance overhead for tools no-one ever uses? I'd understand that
> perspective, as I appreciate developer time is highly limited and
> cross-platform breakage is so easy to perpetrate.

Any test cases are useful, but we should probably also get a sensible
framework for tracking results in CI, and later on, also show coverage

Jenkins can parse jUnit/xUnit files directly, if we can manage to output
these (ideally, one that combines all results and has a fixed name so we
don't need to adapt the job description for extra tests), that would be
a tremendous help. Not sure what is more sensible here as a framework:
Boost.Test or CTest, they seem to both suffer from the "top of the
foodchain" problem where they do not integrate well with other systems
controlling them.

> 2) If wanted, is a "merged" approach appreciated, or keep them
> separate, in the hopes of once day having shared libs and much reduced
> link time/effort?

The current state is already a problem. Compile time is dominated by
pcbnew_wrap.cxx, so the pcbnew objects are almost guaranteed to be
completed last, and all linker invocations using them run in parallel,
requiring 3 GB of RAM each, so we get several spurious failures.

As a workaround, we can probably introduce a pseudo-dependency to
serialize the linker invocations, but that will slow down the build on
those machines that have enough memory.

For proper shared libraries, we'd need to merge the internal units,
because common code calls into kiface-specific code here. With ELF, this
is theoretically allowed (but has a few drawbacks), but on Windows and
MacOS, this doesn't work. This is fairly complex[1], and would require
other changes beforehand (my current approach would be 64 bit
coordinates with nanometers — designs can get fairly large until the
memory we lose with the larger types is more than what we save by not
keeping three copies of the same code in memory).


[1] https://lists.launchpad.net/kicad-developers/msg38399.html

Attachment: signature.asc
Description: OpenPGP digital signature