363 Commits

Author SHA1 Message Date
Seth Hillbrand
6e2b20ed0e Update BS Threadpool to 5.0 2025-09-10 13:02:24 -07:00
Jeff Young
6f59821930 Prefer const &. 2025-08-30 17:45:49 +01:00
Seth Hillbrand
c995d47c87 Force overlapping wires to share labels
Crossing wires with pathological label in the center are actually
connected for the netlist.  This is an ERC error but we should keep
things consistent.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21494
2025-08-19 13:19:00 -07:00
Mark Roszko
8d37fc8e80 Fix driver candidates sort not enforcing ordering if two buses have identical members 2025-08-12 20:27:02 -04:00
Mark Roszko
5895c27f4a Rename Prj() on schematic to avoid conflict with global function 2025-08-07 23:21:41 -04:00
Seth Hillbrand
4aa2047f45 Replace alg::delete and alg::delete_if with std c++20 2025-08-04 09:03:16 -07:00
Seth Hillbrand
52f8bf83f6 Remove threading from connection vec update
At most, we will have 4 items.  Or maybe a few more with stacked pins.
But not enough to thread.  The overhead of starting threads and using
mutexes is greater than any savings
2025-08-03 09:18:54 -07:00
Seth Hillbrand
b21e3e45d9 Extract generic item connectivity update and add QA 2025-08-03 08:09:01 -07:00
Seth Hillbrand
15ca4b1ba2 Extract symbol connectivity routine and add QA 2025-08-03 08:09:01 -07:00
Seth Hillbrand
7102b2d5e5 Clarify some driver sorting logic and add addl QA 2025-08-03 06:46:28 -07:00
Seth Hillbrand
c5545d202d Remove doubly-included kicad_algo 2025-08-02 19:55:55 -07:00
Seth Hillbrand
094870e7a4 String fixes
- Clarify wording in a couple places
- Fix missing 'not' and remove non-standard dashes
- Standardize on single-quote for strings in strings
2025-07-23 17:36:51 -07:00
Seth Hillbrand
3a06de0076 Consolidate ERC label warnings
If global or local labels are floating -> error
If global or local labels are only connected to one pin -> warning

Rather than forcing two different errors depending on whether the label
is local or global
2025-07-18 16:47:25 -07:00
Marek Roszko
dea46f7780 Add a TRANSACTION class to experiment with performance metrics in nightlies 2025-06-07 11:43:11 -04:00
Jeff Young
e615fcfe90 Improve progress reporting for opening and importing schematics. 2025-06-01 21:05:50 +01:00
Jeff Young
2dd28d18e8 Performance improvements for ERC. 2025-05-26 13:37:57 +01:00
JamesJCode
019921cb48 Add new CONNECTIVITY_CANDIDATE flag
We reuse the CANDIDATE flag in various places across the codebase,
which is probably incorrect given the original intention for the
flag. Clearing it before use would be a performance hit for incremental
connectivity - and we can't rely on other users of the flag to clear
it for us. So we now use a new flag just for connectivity to avoid
other users trampling on connectivity updates.
2025-05-05 22:17:57 +01:00
JamesJCode
fabcab1a86 Fix grammar in DRC error message 2025-04-30 00:03:51 +01:00
Wayne Stambaugh
31374906af Fix crash in connection graph when loading a version 8.0 schematic.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20777

(cherry picked from commit c4f9710f98d4dd0b94d998c3e27381a464bada2e)
2025-04-29 17:17:34 -04:00
Wayne Stambaugh
6dcac5bded Test for hierarchical labels in root sheet when running ERC.
Hierarchical labels in the root sheet cannot be attached to a parent sheet
pin.  By definition they are unconnected.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20810.
2025-04-29 14:21:54 -04:00
Wayne Stambaugh
c810ef716d Actually prevent recursion when building connection sub-graph.
Propagating to neighboring connections when not a net will cause an
infinite recursion crash.  Use the wxCHECK2 instead of wxASSERT to
prevent this.

Add a bunch of question comments where the use of wxASSERT is questionable.
2025-04-10 16:31:59 -04:00
Seth Hillbrand
bccf365380 Isolate thread pool loops
Now that we are threading things in different frames, we need to watch
that we are not waiting for a process to complete in one frame while
working in another.  To accomplish this, we only wait for our own loop
results

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20572
2025-04-07 12:17:11 -07:00
Mike Williams
c67924ccac schematic: convert RunOnChildren to also take recursion mode argument
Prepping for SCH_GROUPS, making consistent with the PCB code.
2025-03-27 13:16:09 -04:00
Wayne Stambaugh
7bc1404956 Fix broken Eeschema QA test when building jumper connectivity.
Don't attempt to access the library symbol jumper pin information when the
symbol doesn't have a valid library symbol reference.
2025-03-25 10:44:30 -04:00
Jon Evans
805ca0c791 ADDED: Jumpers for symbols
Support explicit jumper symbols, defined either by a
flag that all pins with the same number are connected,
or by explicit groups of jumpered pins

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:08:46 -04:00
Seth Hillbrand
4f6a73d83c Prevent ERC error with NC pin+NC marker
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20222
2025-03-07 15:24:30 -08:00
Seth Hillbrand
2b557c5497 Revert "Allow a no-connect to connect to a single pin (but not multiple pins)."
This reverts commit ee4a6127c6bed91f0d153983b8dc88da1e3375f1.
2025-03-07 08:10:04 -08:00
Jeff Young
ee4a6127c6 Allow a no-connect to connect to a single pin (but not multiple pins).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20222
2025-03-06 10:27:11 +00:00
Jon Evans
32b5cf6221 Fix broken build 2025-03-04 21:32:42 -05:00
Seth Hillbrand
49a4699d5a ADDED: Local power symbol option
Local power symbols work like regular power symbols except that they are
scoped only the the sheet in which they are instantiated

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2075
2025-03-04 17:07:46 -08:00
Jeff Young
f951497a4f Code brevity. 2025-03-01 21:58:31 +00:00
Wayne Stambaugh
f45915ba93 Eeschema folder housekeeping. 2025-02-06 09:47:00 -05:00
Seth Hillbrand
452e69de85 Move thread pool into true singleton
Thread pool needs to be stored in a single location for all of KiCad
otherwise each kiface will spin up its own pool of persistent threads
2025-01-09 09:03:08 -08:00
Seth Hillbrand
074e6df3bc Revert "Move thread pool to singleton class"
This reverts commit 361f61a02380881efb59b1cebfdc3e73322b3d3c.
2025-01-03 21:22:44 -08:00
Seth Hillbrand
361f61a023 Move thread pool to singleton class
Having thread pool as its own singleton in the library meant that each
kiface had its own threadpool, leading to many multiples of the threads
being started.  Placing a singleton class in PGM_BASE ensures that all
kifaces use the same thread pool.

The singleton class can be extended to provide single instance
guarantee for any element across kifaces
2025-01-03 13:51:11 -08:00
Ian McInerney
e845db1977 Implement dnagling wire to bus entry ERC
Also, rename the dangling flag/getter to match the flag in SCH_LINE for
consistency.
2025-01-03 14:58:57 +00:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Seth Hillbrand
6e09649a70 Fix crash on net highlighting
When navigating to a sheet without the highlighted net, there was a
chance for an uninitialized pointer deref.  This also gathers the
highlighted nets into the navigator as well as their subsuming buses

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18419
2024-12-24 14:46:47 -08:00
Seth Hillbrand
ad985aff9d Check secondary driver names when merging
If two nets are joined by a global power pin but both have global labels
that override the net name, we still want them to be merged.  This
checks for all net names in the drivers when looking for subgraph
merging candidates

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18092
2024-12-10 15:54:47 -08:00
Jan Wichmann
30cebd17e0 Added ERC check for directive labels
Checks to see if directive labels are connected in the same manner that other labels are

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19075
2024-11-20 18:11:05 +00:00
jean-pierre charras
16d389a488 ERC: fix "label not connected anywhere" ERC does not have configurable severity
Fix also the right message if the label is a global label.
Rename ERCE_GLOBLABEL to a better name ERCE_GLOBLABEL_DANGLING

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19119
2024-11-12 13:35:05 +01:00
Alex Shvartzkop
371a1b711f Fix some warnings. 2024-08-07 00:51:24 +03:00
James J
7ce00e511b Multi-netclass support 2024-07-26 20:49:29 +00:00
JamesJCode
559854ec0f Add ERC check for dangling wire endpoints 2024-07-22 23:16:08 +01:00
JamesJCode
90304e0639 Remove unnecessary erase of netclasses from netclass map
We start from an empty map now, so no need to delete entries
individually
2024-07-16 18:43:49 +01:00
JamesJCode
924b027503 Resolve netclasses on vector buses embedded in buses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16545
2024-07-15 20:40:46 +01:00
Jeff Young
16340e6cf4 Support both short and long item descriptions. 2024-06-28 22:10:22 +01:00
Mike Williams
a5e2615251 Revert "SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL"
This reverts commit 0b187e71227d2129d271f24fb92ae0b99b6f93bd.
2024-06-12 13:30:29 -04:00
JamesJCode
0826c10a20 Don't re-add deleted netclass assignments in incremental connectivity
Ensures that if moving or deleting a netclass directive label, the
netclass on the previously-assigned net doesn't have the stale
netclass re-applied.
2024-06-10 20:19:07 +01:00
Mike Williams
0b187e7122 SCH/LIB SYMBOL: never allow null LIB_SYMBOLs in SCH_SYMBOL
Also always always flatten incoming lib symbols.
2024-06-10 08:36:42 -04:00