99 Commits

Author SHA1 Message Date
John Beard 7b5cc357cb QA: Add an Lsan leak suppression file
Actually haven't tested with lsan, but this works great with heaptrack
which declares to use the same format.
2026-03-10 22:32:20 +08:00
Seth Hillbrand ca7259ab95 Add LEAK_AT_EXIT wrapper to skip destructor calls at program exit
GlobalLibraries and PreloadedFootprints each have deep object
hierarchies that take noticeable time to destroy during shutdown.
Since the OS reclaims all process memory anyway, running these
destructors is wasted work. The new LEAK_AT_EXIT template wrapper
heap-allocates the wrapped object on first access and never frees it,
speeding up program exit.

When built with address sanitizer, it uses __lsan_ignore_object to
prevent false positive leak reports.  Also added a valgrind
suppression file for the same purpose.
2026-01-23 17:26:37 -08:00
Seth Hillbrand 51f99c747c Fix zone data races with mutex protection for m_FilledPolysList and m_layerSet
Add mutex protection to ZONE class to fix data races during parallel zone
filling and DRC operations. The m_FilledPolysList and m_layerSet members
are now protected with dedicated mutexes.

- Add m_filledPolysListMutex to protect m_FilledPolysList access
- Add m_layerSetMutex to protect m_layerSet access
- Protect SetFilledPolysList, GetFilledPolysList, GetFill
- Protect HasFilledPolysForLayer, TransformShapeToPolygon
- Protect TransformSolidAreasShapesToPolygon, GetEffectiveShape
- Protect HitTestFilledArea, BuildHashValue, CacheTriangulation
- Protect GetLayerSet, SetLayerSet, SetLayerSetAndRemoveUnusedFills
- Protect GetLayer, GetFirstLayer, IsOnCopperLayer
- Protect ViewGetLayers, IsOnLayer
- Update GetFillFlag and SetFillFlag to use m_fillFlagsMutex
2026-01-20 21:48:44 -08:00
Seth Hillbrand d85dcd1779 Fix multiple ThreadSanitizer data races
- Make arc_tolerance_factor arrays thread_local in SHAPE_POLY_SET::inflate2
and inflateLine2 to avoid races during parallel zone filling.

- Remove redundant m_maxError assignment in ZONE_FILLER::fillCopperZone
since it's already initialized in the constructor. This prevents multiple
threads from writing to the member variable concurrently.

- Add mutex protection to FOOTPRINT::GetBoundingBox to synchronize cache
access when multiple threads compute bounding boxes concurrently.
2026-01-20 21:48:44 -08:00
Seth Hillbrand cfefd0cf30 Add ThreadSanitizer suppression file for external library issues
Suppresses known false positives from:
- GLib/GIO/GObject: DBus implementation and memory allocation races
- Pango/Fontconfig: Font caching thread races
- GObject type system: Lock order warnings during type registration

Use this by setting TSAN_OPTIONS="suppressions=tools/tsan.supp"
2026-01-20 21:48:44 -08:00
David Schneider 52a5fc9904 fontconv.py: generate WOFF for newstroke 2026-01-14 12:07:13 -08:00
Seth Hillbrand 8f8b7a37da Add some tools to run Fedora CI locally 2025-09-21 19:36:01 -07:00
Roberto Fernandez Bautista 8d8bd7253f Windows CI: custom vcpkg triplet to ensure shareable binary cache 2025-09-12 11:18:50 +00:00
Seth Hillbrand 0acc659676 Try to fix MSW build error 2025-09-09 06:15:30 -07:00
Ethan Chien d96479dd34 Windows: Add post-build script for installation and file copying 2025-02-02 07:55:11 +08: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
John Beard 8de99b8077 Cmake: avoid policy warning in newstorke upgrade target 2024-11-27 19:21:36 +08:00
John Beard 410e200f80 Newstroke: neaten some Chinese characters.
Many characters have doubled-up or broken
strokes. There are thousands, but fix a few of the most
common ones (e.g. numbers, colours, a few electronic
terms)
2024-08-28 13:49:35 +01:00
John Beard 18aa74a33b Newstroke: Add readable glyphs to character names
This means you don't have to keep referring to a Unicode
table to know which character is where - you can see it in the
list and use the symbol search system.

No change to generated output (such suffixes are stripped by the
fontconv.py script).
2024-08-28 13:49:35 +01:00
John Beard 38daf2e2fa Newstroke: Upgrade symbol library files
This results in much re-ordering and reformatting of the libraries due
to cosmetic changes in the output filter. But there is no graphical
changes.
2024-08-28 13:49:34 +01:00
John Beard 889aee3b1a Newstroke: add CMake targets to manage the files 2024-08-14 14:28:54 +01:00
John Beard 1ea5671228 Newstroke: replace font.pro with a new project that shows all codepoints
It also has all the libraries as project libraries for easier opening.
2024-08-14 14:28:54 +01:00
Kuba Sunderland-Ober 8f02944437 Optimize the newstroke font representation
Remove redundant strokes that start where the last stroke ended.
2024-06-24 19:44:06 +00:00
John Beard 1280b3d379 Add bash completion for kicad-cli, kicad, pcbnew, eeschema 2024-05-01 23:33:29 +08:00
Ian McInerney 743e9d669a Push library management into IO_BASE 2023-12-27 01:21:53 +00:00
Jon Evans 6cb046a4eb macOS: add a few more known file types
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14206
2023-11-16 12:11:42 -05:00
Jon Evans c8f8b2589f Update macOS application names to current standard 2023-11-15 17:36:20 -05:00
Marek Roszko 00e51da845 Get rid of tools/property_tree that wont build anyway 2023-09-08 07:14:34 -04:00
Marek Roszko 1a6d459fb1 Fix wrong path slash 2023-09-07 22:09:26 -04:00
Marek Roszko 5da88d1d0e Move UTF8 to core 2023-09-07 20:55:16 -04:00
Kuba Sunderland-Ober 589030d672 Add the fraction numeric form glyphs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14398
2023-07-25 16:58:16 +00:00
Kuba Sunderland-Ober b8fc45b14d Implement fontconv in Python.
This fixes metrics of U+1F98 (ᾘ)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14398
2023-07-24 22:23:11 +00:00
Kuba Sunderland-Ober bb27f09108 Fix the missing segments in certain newstroke glyphs.
Fixes #14987 https://gitlab.com/kicad/code/kicad/-/issues/14987
2023-07-05 17:19:01 +00:00
Kuba Sunderland-Ober 95b9196703 Update the scripts to make the font source file fully reproducible. 2023-06-27 20:23:22 +00:00
Ian McInerney 20ec8ed303 Fix GitLab URLs to point to the correct project page
GitLab 16.0 removes support for URLs that don't contain /-/ after the
repository name, so the report bug feature and various links we had in
the source (including the git-fixes script) would lead to a 404 error.

See GitLab docs for deprecation/removal notice:
https://docs.gitlab.com/ee/update/deprecations.html?removal_milestone=16.0#legacy-urls-replaced-or-removed

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14759
2023-05-17 11:23:00 +01:00
Mikolaj Wielgus d836fbaaaa Sim: Add VBIC model support
Update generate_sim_model_ngspice_data.bash a little, but it's still
outdated.
2022-11-28 04:45:36 +01:00
Mikolaj Wielgus 70a038877e Sim: Restore the sim_model_ngspice_data.cpp generation script
Make some small improvements in it.
2022-11-27 10:35:21 +01:00
Seth Hillbrand 1b38acd9c6 Add "Letter-like character" Omega for Unicode x2126
Fixes https://gitlab.com/kicad/code/kicad/issues/12531
2022-10-01 16:39:00 -07:00
jean-pierre charras 397a93029e Fix some outdated things (mainly about fix_swig_imports.py, useless with swig version 4)
Fixes #12414
https://gitlab.com/kicad/code/kicad/issues/12414
2022-09-14 13:36:43 +02:00
Marek Roszko 47fe8ff8eb bitmaps and template are resources. 2022-07-21 20:14:10 -04:00
Marek Roszko 552f724cac helpers and tools are the same thing
Make it so!
2022-07-21 19:16:16 -04:00
Marek Roszko b6b4ae959e Shuffle around the helper script folders 2022-07-21 19:04:08 -04:00
luz paz 79fa911e0e Fix various typos
Found via `codespell -q 3 -S *.po,./thirdparty,./Documentation/changelogs -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,ba,busses,dout,einstance,leaded,modul,ontext,ot,overide,serie,te,,tesselate,tesselator,tht`
2022-07-21 16:31:41 +00:00
Sylwester Kocjan a9c2a59049 tools: add mock generator script
Rough version, generates MOCK_METHOD macros to the qa/mocks/out.txt
2022-03-18 17:51:09 +00:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Jon Evans e570b9b548 Update dark mode icons 2021-03-11 08:39:24 -05:00
Jon Evans afc11ca771 Preliminary take on dark theme colors
Script added to generate dark theme from light.
Target colors can be adjusted and then icons can be
re-generated until we're happy with the starting point,
then individual icons can be tweaked.
2021-03-01 21:24:30 -05:00
Jon Evans 7df3df3381 Add basic netlist QA test 2020-04-19 19:13:24 -04:00
Ian McInerney 06c979dfaa Convert all CMake paths to absolute instead of relative
It is cleaner and safer to handle the include and source paths
as absolute from the source directory instead of relative to every
path.
2020-01-22 23:27:20 +00:00
Jon Evans 27db1c90bc Add netlist comparison script 2020-01-15 18:52:49 -05:00
Seth Hillbrand 77c60d9655 Remove the last vestiges of dlist
It served us (mostly) well for more than a decade.  It helped KiCad grow
before the std:: came into decent shape or speed.  It was a good little
list.

RIP DLIST 2008-2020
2020-01-10 06:37:08 -08:00
Ian McInerney f0c386f5dd Update GitLab CI script
Changes SHA detection to find the start of the MR and makes check_coding return non-zero when formatting changes needed
2019-12-03 18:51:59 +00:00
Seth Hillbrand 2ce7d9a708 Adding merge CI
Adds GitLab merge CI for code formatting.
2019-11-29 21:55:36 -08:00
John Beard 241127788e Format: add some formatting aliases, improve dev docs
The aliases are easier than calling check_coding.sh manually,
and we already provide an alias file for the fixes alias, so
do the same for these.
2019-05-23 21:28:42 +01:00