50 Commits

Author SHA1 Message Date
Seth Hillbrand
c47641f454 Revert "Add asan switch indicators"
This is a good idea but only for non-nested coroutines.  We nest.

This reverts commit a9121d4cd1b8ef495645127f89fdbfc2191efd9c.
2025-08-21 12:32:48 -07:00
Seth Hillbrand
a9121d4cd1 Add asan switch indicators 2025-08-08 21:25:19 -07:00
Wayne Stambaugh
89db935910 Housekeeping in include path sub-folders. 2025-01-04 09:21:11 -05: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
Ian McInerney
85a2d6178a Add coroutine stack size to trace output 2024-02-02 11:00:08 +00:00
Kuba Sunderland-Ober
f7fe411cf5 Add stack guard page to all platforms. 2023-08-06 22:50:02 +00:00
jean-pierre charras
355575e477 Fix some (minor) issues when drawing shadow texts of RULER_ITEM and pin names.
Fixes #15019
https://gitlab.com/kicad/code/kicad/-/issues/15019
2023-06-22 13:28:43 +02:00
Marek Roszko
fd669773b6 Use guarded pages for coroutine stack on windows 2023-06-13 20:47:45 -04:00
Jeff Young
2250211ebf More wxT-ification. 2022-02-09 17:04:32 +00:00
Ian McInerney
ad705e1065 Formatting 2021-05-03 15:47:55 +01:00
Ian McInerney
ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
Ian McInerney
7f00b97586 Name Coroutine's in TSAN to make them identifiable 2021-04-18 18:20:09 +01:00
Ian McInerney
43425d7306 Add logging of the functions used in the coroutine implemntation 2021-04-16 17:49:52 +01:00
Ian McInerney
660d1596e2 Annotate the coroutines with TSAN fiber information 2021-04-16 17:49:52 +01:00
Wayne Stambaugh
2a3e921d58 Header clean up round 6. 2020-12-26 19:41:04 -05:00
Jeff Young
a207bd97bb Naming conventions. 2020-11-17 16:05:49 +00:00
Tomasz Wlostowski
151b4e4e5e libcontext: clean up own's shit when coroutine call is over (MSVC only) 2020-07-22 16:57:54 +02:00
Jon Evans
e59a3d981e Implement a new settings framework across all of KiCad
CHANGED: Settings are now stored in versioned sub-directories
ADDED: First-run dialog for migrating settings from a previous version
CHANGED: Settings are now stored as JSON files instead of wxConfig-style INI files
CHANGED: Color settings are now all stored in a separate settings file
CHANGED: The symbol editor and footprint editor now have their own settings files
CHANGED: Color settings are no longer exposed through BOARD object
CHANGED: Page layout editor now uses Eeschema's color scheme

Settings are now managed through a central SETTINGS_MANAGER held by PGM_BASE.
Existing settings will be migrated from the wxConfig format on first run of each application.
Per-application settings are now stored in one class for each application.
2020-02-19 23:44:56 -05:00
Jeff Young
116e3d6816 Fix missing member variable initialization. 2020-01-11 21:29:25 +00:00
Ian McInerney
5c0656d97f Move potrace and libcontext into thirdparty directory
Part of the cleanup in #3637
2019-12-28 18:17:55 +00:00
Seth Hillbrand
fbc19ab893 Make coroutines stack size configurable
This allows rapid debugging of the coroutine memory issues.  It moves
the default stack size to 256 * 4096 = 2^20, which will utilize full
pages on all architectures.
2019-08-15 09:25:13 -07:00
Seth Hillbrand
0b80c00678 Add Valgrind stack instrumentation
Our coroutine system can make debugging memory issues harder by not
following a standard stack allocation system.  We can get around this by
using valgrind's built-in stack instrumentation.  Each coroutine
registers a stack allocation allowing memcheck to recognize when
accesses are bounded.
2019-08-10 08:28:25 -07:00
Tomasz Wlostowski
6cab769f41 MSVC support for libcontext
This uses the Windows native Fiber API.
2019-07-17 08:10:47 -04:00
Seth Hillbrand
d15876595f Fix init order to quiet warnings 2019-02-16 12:53:45 -08:00
Seth Hillbrand
813578eba6 Fix a few coverity errors 2019-02-15 20:15:04 -08:00
John Beard
267e17d539 QA: Add a generic utility tool executable.
The intention here is to make it possible to wrap up many of the
KiCad utility tools into a single executable. This reduces link times
as well as the duplication of CMake files needed to build very
similar tools.

This particular tool should be suitable for any code in common,
code in pcbnew and other end-executables probalby will need an
analagous version linked to the relevant kiface.

The first tool is the coroutine_example.cpp test case, which
can be useful when learning, debugging or porting the coroutine
infrastructure.
2019-01-22 09:04:38 -05:00
Seth Hillbrand
8f11a2133e Revert "QA: Add a generic utility tool executable."
This reverts commit 502306314e507ba56350b2948a480aab50026ada.
2019-01-06 16:17:44 -08:00
John Beard
502306314e QA: Add a generic utility tool executable.
The intention here is to make it possible to wrap up many of the
KiCad utility tools into a single executable. This reduces link times
as well as the duplication of CMake files needed to build very
similar tools.

This particular tool should be suitable for any code in common,
code in pcbnew and other end-executables probalby will need an
analagous version linked to the relevant kiface.

The first tool is the coroutine_example.cpp test case, which
can be useful when learning, debugging or porting the coroutine
infrastructure.
2019-01-06 07:51:23 -08:00
Maciej Suminski
7f9202842d Fix an initialization order warning in coroutine.h 2018-01-10 08:52:17 +01:00
Mark Roszko
b98cc0b937 Some coverity fixes 2018-01-05 22:51:03 -07:00
Tomasz Włostowski
eedf7cb243 Switched coroutine library from Boost libcotext to custom libcontext.
Fixes lp:1658249

https://bugs.launchpad.net/kicad/+bug/1658249
2017-03-07 11:45:29 -05:00
jean-pierre charras
a9d6af8001 Fix a comment 2017-02-23 13:17:23 +01:00
jean-pierre charras
10396ff435 Tool manager: renames Yield() to KiYield(), due to a collision name between the Yield macro in wxWidgets and Tool manager Yield.
Can be dependent on platforms.
2017-02-23 08:30:29 +01:00
Maciej Suminski
682da70a86 Fixed the issue of creating and event handling in context menus (GAL).
When creating a copy of CONTEXT_MENU, always a CONTEXT_MENU instance was
constructed, whereas an inherited type should be used. Solved with
CONTEXT_MENU::create() that has to be overridden in inheriting classes.

Event & update handlers are now virtual functions, instead of setting
the handlers with Set{Event,Update}Handler().
2017-01-23 11:40:59 +01:00
decimad
ee3d75f273 Add coroutine call invocation context to identify the main stack frame.
Run the text draw-tool on the main stack frame.

Fixes: lp:1547282
* https://bugs.launchpad.net/kicad/+bug/1547282
2016-09-21 11:56:40 +02:00
decimad
18b7dbf4d1 Refactor coroutine to improve readability and removed unnecessary heap allocations. Added documentation/links to various boost doc revisions. 2016-08-02 11:39:39 +02:00
decimad
78bc3c65de use a guarded stack for coroutines in boost version 1.61 2016-07-05 18:02:50 +02:00
Michael Steinberg
06d4894fdb boost::context fixes to make it compatible with boost 1.61 2016-07-05 00:14:32 +02:00
jean-pierre charras
4def0958a5 Fix some coverity warnings. Fix typo and errors in comments. Very minor other fixes. 2015-04-03 11:13:06 +02:00
Maciej Suminski
b30e0dd869 Boost 1.56 compatibility fix. 2014-08-26 11:16:56 +02:00
Maciej Suminski
5f806cfa18 Minor fixes to the Tool Framework. 2014-07-09 13:50:27 +02:00
Maciej Suminski
2ee890d74b Minor changes. 2014-07-09 11:59:24 +02:00
Maciej Suminski
bc305859b2 Mainly case changes. 2013-10-14 20:40:36 +02:00
Maciej Suminski
0ac3e1fbf2 Namespace KiGfx->KIGFX.
template<> -> template <>
Some more reformatting according to uncrustify results.
2013-10-14 16:13:35 +02:00
Maciej Suminski
22045b61ea Converted tabs to spaces. Removed trailing whitespaces. 2013-10-14 13:43:57 +02:00
Maciej Suminski
6b74b5771a Even more code comments and reformatting. 2013-09-27 18:51:21 +02:00
Maciej Suminski
7837dfa3ac Fixed build for Mac OS 2013-09-23 17:02:25 +02:00
Maciej Suminski
6ee32b9912 Fixed the 64 bit build. 2013-08-26 14:08:32 +02:00
Maciej Suminski
12e10fd43a Reformatting. 2013-08-08 14:59:59 +02:00
tomasz.
241061025b Added core tool framework files + boost::context assembly stuff (initial, very buggy and unfinished work). 2013-08-02 16:46:53 +02:00