Commit Graph

3949 Commits

Author SHA1 Message Date
Matthias Koefferlein 0ba719ad84 WIP: properties for regions, tests for flat and original layer regions 2023-01-08 22:44:23 +01:00
Matthias Koefferlein 1dfa5abc9a WIP: introducing properties for FlatRegion and others 2023-01-08 19:27:41 +01:00
Matthias Koefferlein f9ccb60dd9 WIP: experimental - introducing net DRC, first steps 2023-01-07 23:42:59 +01:00
Matthias Koefferlein af30695ab3 WIP: experimental - introducing net DRC, first steps 2023-01-07 21:56:25 +01:00
Matthias Koefferlein ef6f3f182a Fixed issue #1242 (KLayout 0.28.2 crashes when registering a plugin if a layout exists)
Problem was twofold: first, events are triggered during
construction of the plugin which met an uninitialized
pointer. Second, the clearing of existing plugins failed
because of iterating a vector while destroying it's members
erased member of it.
2023-01-04 21:17:12 +01:00
Matthias Koefferlein 8677b38d69 Merge branch 'master' into wip 2023-01-01 22:28:14 +01:00
Matthias Koefferlein a85dbd3d31 Updating copyright notice to 2023 2023-01-01 22:27:22 +01:00
Matthias Koefferlein 6136e4f8a0 Merge remote-tracking branch 'origin/issue-1240' 2023-01-01 22:23:26 +01:00
Matthias Koefferlein a3c9b6bc4a Merge remote-tracking branch 'origin/issue-1238' 2023-01-01 22:23:13 +01:00
Matthias Koefferlein 9e6965751d Merge branch 'issue-1234' 2023-01-01 22:22:44 +01:00
Matthias Koefferlein 420f8cfdc3 Fixed issue #1240 (Layer is not activated from layer properties file on first creation) 2023-01-01 18:45:37 +01:00
klayoutmatthias b213479e07 Fixed issue #1238 (Macro IDE: breakpoints not effective on Windows) 2022-12-31 18:51:08 +01:00
Matthias Koefferlein ca32b34dff Restored ability to build on Python 2 2022-12-28 23:50:38 +01:00
Matthias Koefferlein 16cd4276b7 Fixed some more small memory leaks 2022-12-28 17:45:24 +01:00
Matthias Koefferlein de6e1ffd53 Another performance fix for the many layers case 2022-12-28 17:15:51 +01:00
Matthias Koefferlein 1ad7dc0d98 More memory leaks fixed 2022-12-27 23:52:16 +01:00
Matthias Koefferlein 2cd932627c Fixed some memory leaks 2022-12-27 23:45:43 +01:00
Matthias Koefferlein 8575791fd9 Fixed a potential segfault cause by recursive call of paintEvent
This may happen when painting triggers some action that itself
triggers progress reporter (which paints itself).

The solution consists of blocking process_events during painting.
2022-12-27 22:57:14 +01:00
Matthias Koefferlein 8d025ddf9f Fixed non-Qt builds 2022-12-27 20:14:22 +01:00
Matthias Köfferlein 975a752844
Merge pull request #1231 from KLayout/issue-1228
Implemented solution for issue #1228
2022-12-27 20:12:20 +01:00
Matthias Koefferlein 4429d4c8f7 Fixed #1234 (layer list empty after clone panel) 2022-12-27 20:10:39 +01:00
Matthias Koefferlein e0e077d851 Further cleanup of Qt6 binding of QJson... classes 2022-12-26 23:48:16 +01:00
Matthias Koefferlein 76dd1b93bd Qt bindings compatibility with Qt 6.4.1 2022-12-26 21:43:27 +01:00
Matthias Koefferlein 50616ede58 Implemented solution for issue #1228
The "show parameter names" setting is now persisted.
Side effect: changing this setting will now trigger
a configuration update which has some side effects - e.g.
when "lazy update" is configured (parameters are reset).
But that appears to be acceptable.

In addition a second flaw was fixed: errors were not
properly reported by showing the error indicator.
The indicator was hidden immediately after showing it.
2022-12-25 20:44:56 +01:00
Matthias Koefferlein 44a2aa9ca1 Fixed #1230 (LVS browser crashes) and immediately dispatching a 0.28.2 version 2022-12-22 23:17:08 +01:00
Matthias Koefferlein 584dbcfd2f Really, really disabling doc, icon for no-Qt builds 2022-12-21 23:36:15 +01:00
Matthias Koefferlein 5a41443487 Really disabling doc and icon without Qt builds 2022-12-21 23:32:49 +01:00
Matthias Koefferlein f4957dbad2 Exclude doc/icon resources in non-Qt builds 2022-12-21 22:45:48 +01:00
Matthias Koefferlein e4e2204939 Added one missing dependencies 2022-12-21 18:34:41 +01:00
Matthias Koefferlein 7a76202411 Added a unit test to check the integrity of all XML doc pages 2022-12-20 20:43:04 +01:00
Matthias Koefferlein 9440985aed Trying to fix a segfault observed on MacOS 2022-12-18 17:43:48 +01:00
Matthias Koefferlein de784de7ea Wider data types for Windows (long is 32 bit) and for CBLOCK byte counts in OASIS reader 2022-12-18 14:31:46 +01:00
Matthias Koefferlein 24b8526361 Attempting to speed up layer list for many layers 2022-12-17 20:34:22 +01:00
Matthias Koefferlein 884203149a Added tests for recent changes 2022-12-17 20:33:50 +01:00
Matthias Koefferlein b1e78efcaa WIP: trying to enhance layout layer lookup performance. 2022-12-14 22:47:16 +01:00
Matthias Koefferlein ad27c9a51d WIP: trying to enhance layout layer lookup performance. 2022-12-13 23:41:34 +01:00
Matthias Koefferlein 199dea536a Fixed a small bug: d25 material list view background was reset to black with Auto background color 2022-12-13 22:49:49 +01:00
Matthias Koefferlein f49fa646fc Patched PR with leaner solution 2022-12-13 21:54:00 +01:00
Matthias Koefferlein 5a6ea0148a Merge remote-tracking branch 'quantamhd/fix_segfault' into wip 2022-12-13 21:52:40 +01:00
Ethan Mahintorabi 0a03a2809a
Fixes segfault on some linux systems
The static order initialization seems to be more present throughout
Klayout and might cause additional issues, but this fix stopped the
segfault on my machine. When compiling with asan there are a number
or other issues that could be addressed, but it's not clear if they're
real problems.

dbLayout change occured when using the python API to read a DEF layout.
When the layout is updated the code uses a const iterator which
implicitly wraps the non-const iterator. In the loop the end() is
implicitly wrapped, which tries to dereference a nullptr. My fix
checks to ensure that the non-const iterator is not null before trying
blindly dereference it.
2022-12-12 19:03:59 +00:00
Matthias Koefferlein 43089f31e4 Doc updates 2022-12-09 23:53:41 +01:00
Matthias Koefferlein 9607594020 Doc updates 2022-12-09 23:33:31 +01:00
Matthias Koefferlein 3e9d66ea6d Doc fixes 2022-12-09 23:21:09 +01:00
Matthias Koefferlein 88e960b7cf Regenerating doc. 2022-12-09 22:31:13 +01:00
Koefferlein Matthias (IFAG DES TCP FLP) 78383c88f3 Grml .. fixed implementation of previous commit 2022-12-09 16:33:02 +01:00
Koefferlein Matthias (IFAG DES TCP FLP) ffe3722001 Better backward compatibility for ruler configuration 2022-12-09 16:26:21 +01:00
Koefferlein Matthias (IFAG DES TCP FLP) c10cb86b68 Robust configuration of new ruler settings 2022-12-09 16:07:31 +01:00
Matthias Koefferlein 8d6508f69c Doc XML fixed 2022-12-09 07:26:10 +01:00
Matthias Koefferlein a5a3fff1f0 Fixed #1214 (LEF VIA parsing issue) 2022-12-08 22:36:14 +01:00
Matthias Koefferlein 299cea51a5 OASIS writer: Writing repetitions for edge-representation paths too 2022-12-08 20:36:03 +01:00
Matthias Koefferlein 2c94179589 Fixed #1216 (issue with moved - internal error)
This issue is fixed. In addition the following problems were fixed/found:
* General issue with handling merged state in in-place transform (merge shadow region needs to be updated too)
* moved now is hierarchical (also for edges)
2022-12-08 20:27:42 +01:00
Matthias Koefferlein 92d0174711 Fixed a build issue 2022-12-08 00:48:23 +01:00
Matthias Koefferlein d81e0ba51e Merge branch 'points-as-db-objects' 2022-12-07 21:59:02 +01:00
Matthias Koefferlein 5a252f2b29 Updated golden test data for fast DRC 2022-12-07 21:58:24 +01:00
Matthias Koefferlein a9833bf32e Small bugfix: do not mess up annotation templates after used older KLayout versions again. 2022-12-07 21:43:43 +01:00
Matthias Koefferlein 4281cde169 (maybe) fix builds for Qt without SSL 2022-12-06 22:40:41 +01:00
Matthias Koefferlein dc6408a068 Some cleanup 2022-12-06 18:44:29 +01:00
Matthias Koefferlein 4543eaabac Fixed some small flaws in instance properties dialog: sort by cell name, update tree on apply 2022-12-05 23:47:46 +01:00
Matthias Koefferlein 2601f870ec Fixed compile errors 2022-12-05 07:39:03 +01:00
Matthias Koefferlein 035232c978 Providing single-linked list implementation with fast size to address DRC merge performance issue on CentOS 2022-12-05 02:22:08 +01:00
Matthias Koefferlein 43ff59750a Fixed a race condition in DRC local processor with multiple threads 2022-12-04 21:04:21 +01:00
Matthias Koefferlein 0c89d8fec8 WIP: points as db objects - added tests, bug fixes 2022-12-04 19:54:29 +01:00
Matthias Koefferlein 4d04cf4fe3 WIP: introducing points as valid objects into database - implementation. Includes: edge pair perimeter and area. 2022-12-04 19:54:26 +01:00
Matthias Koefferlein 63ad38e9d9 Region#inside/not_inside/covering/not_covering is faster as it skips the merge step now. Fixed deep mode implementation (counting mode detection) with performance effect on outside/interacting too 2022-12-03 20:59:36 +01:00
Matthias Koefferlein cca20773a7 Include performance patch for array-vs-array interactions in deep mode 2022-12-02 17:53:15 +01:00
Matthias Koefferlein 77e9b511cf Fixed slow 'show only selected' with many layers (reason: too many updates of recent editor options layer list) 2022-12-02 17:32:18 +01:00
Matthias Koefferlein 78a139494a Avoid recursion in Application#notify during exception processing - more stable debugging 2022-12-02 17:21:12 +01:00
Matthias Koefferlein 2178b23d8d Fixed #1198 - 0.28 ignores link to script folder 2022-12-01 23:54:43 +01:00
Matthias Koefferlein 13874986b2 Bugfix, tests updated 2022-11-28 23:40:11 +01:00
Matthias Koefferlein a752257f52 Multiple empty-input shortcuts for DeepRegion - tests need update 2022-11-28 01:35:49 +01:00
Matthias Koefferlein 5597ee8960 DeepRegion performance: take fast path for DeepRegion::edges if merged polygons are available. 2022-11-27 21:59:06 +01:00
Matthias Koefferlein 5db45d7aee Proper setting of merged status after interacting/inside etc. 2022-11-27 19:43:53 +01:00
Matthias Koefferlein d76eef10af GSI enabling of Edges#in_and_out, Region#in_and_out and corresponding DRC feature 2022-11-27 15:59:18 +01:00
Matthias Koefferlein f6f4dbeb67 Edges#in/in_and_out: tests added 2022-11-27 15:31:25 +01:00
Matthias Koefferlein 0304930136 WIP: introducing Region#in_and_out and Edges#in_and_out, support for hierachical Edges#in, Tests updated 2022-11-27 14:53:30 +01:00
Matthias Koefferlein 25e61205d2 Deep implementation of in/not_in 2022-11-27 10:37:43 +01:00
Matthias Koefferlein 9008464268 WIP: hierarchical mode for Region#in and Region#not_in 2022-11-27 10:26:01 +01:00
Matthias Köfferlein 1f2e8b4012
Merge pull request #1193 from KLayout/issue-1189
Issue 1189 High memory footprint for DRC deck
2022-11-26 19:55:40 +01:00
Matthias Koefferlein fb60212a5b More numerical stability for reproducible tests drcSimpleTests:56 and 57 (45 degree angles) 2022-11-25 22:36:19 +01:00
Matthias Koefferlein 5057b0a626 Merge branch 'issue-1190' 2022-11-25 07:51:34 +01:00
Matthias Koefferlein 20b6608410 Test updated 2022-11-24 22:12:01 +01:00
Matthias Koefferlein 66b10245fe Another update of golden data 2022-11-24 21:54:04 +01:00
Matthias Koefferlein dc24ec2d15 Updated golden test data 2022-11-24 21:46:56 +01:00
Matthias Koefferlein d8dcb41ee0 force GC on LVS tests too. 2022-11-24 21:28:13 +01:00
Matthias Koefferlein 53d6e8d3cb DSS now keeps layouts (avoids excessive cell mapping), frequent GC in DRC tests for heavy GC load testing 2022-11-24 20:41:19 +01:00
Matthias Koefferlein e04875b4e0 Fixed a problem with object lifetime and tiling processor input found after GC became active. Added a documentation hint. 2022-11-23 01:03:36 +01:00
Matthias Koefferlein 7431ec6f43 Solved an ownership issue in DRC which popped up after universal DRC nodes got deleted. 2022-11-23 00:36:08 +01:00
Matthias Koefferlein 86cc523c77 Bugfixed GCLocker implementation - is now recursive 2022-11-23 00:33:37 +01:00
Matthias Koefferlein d5725c3ed5 DRC performance issue fix attempt
Problem was that destruction of database objects was postponed during
callbacks, specifically the interpreter callback.

This caused db::Region objects to pile up.

The original feature was introduced to prevent issues when Ruby/C++
code interacts inside Qt UIs. The new fix does not disable GC, but
protects Ruby objects during method calls. Maybe that solves the problem too.
2022-11-22 22:06:10 +01:00
Matthias Koefferlein 6e2310186b Added tests 2022-11-21 23:33:28 +01:00
Matthias Koefferlein 16d662229d Fixed issue #1190 (Edges#extended_xx in deep mode) 2022-11-21 23:30:28 +01:00
Matthias Koefferlein c51f6ef18b Don't crash netlist browser when there is no netlist 2022-11-21 22:57:44 +01:00
Matthias Koefferlein 30ab1a13ca Added tests, documentation, doc bug fixes for angle-class edge selectors 2022-11-12 18:16:57 +01:00
Matthias Koefferlein 2341170065 First tests 2022-11-12 00:29:50 +01:00
Matthias Koefferlein b02d3b24a8 WIP: first draft of angle-class selectors for edges and edge pairs for simplifying edge orientation checks 2022-11-11 23:46:45 +01:00
Matthias Koefferlein aadb8510d2 Merge branch 'performance' into wip 2022-11-11 21:55:39 +01:00
Matthias Koefferlein f17719b43c Fixed builds for MSVC 2017 python module builds with setuptools. 2022-11-11 00:32:03 +01:00
Matthias Koefferlein 462976fc05 Convenience isotropic versions for Box::enlarge(d) 2022-11-10 22:31:13 +01:00
Matthias Koefferlein 67690b8ae8 Array properties are not grayed out in read-only mode on instance properties page 2022-11-10 22:18:53 +01:00
Matthias Koefferlein d7263eac74 Square and rectangle convenience ctor for GSI Box and DBox 2022-11-10 22:08:41 +01:00
Matthias Koefferlein 719cd28f76 Some enhancement for specifying klayout paths
$KLAYOUT_HOME can now be empty which has the same effect
than setting it to /dev/null - no home folder is present and
no packages will be searched there.

$KLAYOUT_PATH can be empty which makes KLayout not choose
the installation folder as the default path location as before.
2022-11-10 22:01:07 +01:00
Matthias Koefferlein c220ed0cbc Merge branch 'master' into wip 2022-11-09 23:30:38 +01:00
Matthias Koefferlein ea2486eaed Fixed a merge issue 2022-11-09 23:30:08 +01:00
Matthias Köfferlein 7589efd781
Merge pull request #1182 from KLayout/issue-1178
Fixed issue #1178 (technology-data xml results in SEGV)
2022-11-09 23:29:06 +01:00
Matthias Koefferlein 1edbd6232f Merge branch 'python-typehints' 2022-11-09 23:13:31 +01:00
Matthias Koefferlein 15ce9a79ea Small bug fixed: color chooser button was not showing the colors from the palette 2022-11-06 19:19:33 +01:00
Matthias Koefferlein 5b710fa3a4 More stable result of antenna debug output text placement 2022-11-06 19:02:35 +01:00
Matthias Koefferlein 65e11498d4 Fixed issue #1178 (technology-data xml results in SEGV)
Problem was that the test case contained multiple technologies
inside the config file and the cached values were not updated
in the XML reader upon migrating to the new multi-stack capable
scheme.
2022-11-06 16:53:26 +01:00
Matthias Köfferlein 4a80a10a2d
Merge pull request #1175 from KLayout/wip
Wip
2022-11-06 09:11:38 +01:00
Matthias Koefferlein cd3ca9e536 Do not use zstd compression for Qt6 as there is no built-in decompression 2022-11-06 01:23:39 +01:00
Matthias Koefferlein 240281d9ff [consider merging] Important patch: avoids incorrect initialization of Python classes 2022-11-06 01:12:16 +01:00
Matthias Koefferlein f338c13309 [consider merging] Important bug fix - do not use NDEBUG as ruby.h redefines it and this will lead to crashes in the debugger 2022-11-05 14:28:40 +01:00
Matthias Koefferlein f67b28c52a Supporting LayerInfo objects in fill pattern generation, doc updates 2022-11-04 23:45:10 +01:00
Matthias Koefferlein 131745433d Doc fixes 2022-11-04 23:16:15 +01:00
Matthias Koefferlein 25409a3d33 Doc updates 2022-11-04 22:08:12 +01:00
Matthias Koefferlein 9dac047003 Fixed small doc error 2022-11-04 21:25:12 +01:00
Matthias Koefferlein 8779e2a4cc Enabling build with Qt6 2022-11-03 14:26:17 +01:00
Matthias Koefferlein 27e04c61a0 Less compiler warnings 2022-11-02 23:35:18 +01:00
Matthias Koefferlein 9ec7c0ca44 layout_diff GSI binding: provide interface for edge pair diffs 2022-11-02 23:35:06 +01:00
Matthias Koefferlein a8ea234522 Enable Qt6 build from build.sh (gcc needs c++17) and less noisy builds with gcc 11 etc. 2022-11-02 23:09:44 +01:00
Matthias Koefferlein a759492f1e Avoid an assertion in macro editor when no script support is compiled in 2022-11-02 23:08:47 +01:00
Matthias Koefferlein d47cbeb231 [consider merging] Bugfix: generation of texts for antenna results 2022-11-02 23:07:55 +01:00
Matthias Koefferlein c8e60d666c Fixed #1167 (delete_cells slow) 2022-11-01 14:57:39 +01:00
Matthias Köfferlein c021a1834c
Fixed #1173 (DXF reader compatibility issue with ezdxf) (#1174) 2022-11-01 14:28:51 +01:00
Matthias Koefferlein 9f2cf7275f Fixed display of XOR progress (wasn't properly painting the error bitmaps) 2022-11-01 14:17:37 +01:00
Matthias Koefferlein 54833db00b Added feature for computing area and perimeter from selection 2022-11-01 13:46:48 +01:00
Matthias Koefferlein 2dc5c98416 Implemented readonly for PCell line-edit parameters as QLineEdit::readOnly 2022-11-01 13:46:36 +01:00
Matthias Koefferlein 548db003ed Debugged Ruby PCellDeclarationHelper, small enhancements 2022-10-30 10:00:51 +01:00
Matthias Koefferlein b1b51d3152 Bug fix Ruby PCell declaration helper - needs testing 2022-10-30 00:23:32 +02:00
Matthias Koefferlein 8aa135b964 Python implementation of PCell helper with callback 2022-10-30 00:15:48 +02:00
Matthias Koefferlein 1b666e1cc8 Bug fixes. 2022-10-29 23:43:56 +02:00
Matthias Koefferlein 194a6f3526 Added callback helper for Ruby PCellDeclarationHelper 2022-10-29 22:38:33 +02:00
Matthias Koefferlein 0e5842d36e Fixed some qrc files, added more attributes to PCellParameterState (tool tip, readonly, icon), added option to show parameter names 2022-10-29 21:20:16 +02:00
Matthias Koefferlein d00c4a94d6 WIP: first version GSI binding for callbacks 2022-10-29 00:22:54 +02:00
Matthias Koefferlein eb8c96054c WIP: preparations for callbacks in PCell code 2022-10-28 23:41:31 +02:00
Matthias Koefferlein d82ff4d3f8 [consider merging] Fixed a problem with editing guiding shapes 2022-10-28 23:40:48 +02:00
Matthias Koefferlein e6da3fc22c WIP: callbacks for PCells 2022-10-27 00:42:28 +02:00
Matthias Koefferlein 879059f830 Package manager: show details only when enabling the 'show details' button 2022-10-26 21:28:10 +02:00
Matthias Koefferlein 6e2055b555 Removed original doc for type hints 2022-10-26 17:02:29 +02:00
Matthias Koefferlein 0262926b11 Moved __deepcopy__ implementation and NotImplemented fallback from db.__init__ to C++ implementation for better performance and generalization. Added tests 2022-10-26 10:40:20 +02:00
Matthias Koefferlein a72888e331 Enabling polymorphic re-throw, hence supporting TypeError 2022-10-24 22:03:31 +02:00
Matthias Koefferlein 2b60e2f6e9 Preventing overriding of getters by is_.. predicates 2022-10-24 21:06:03 +02:00
Matthias Koefferlein c8d86f8e73 Improved doc, enough slots for getters and setters for Qt namespace 2022-10-24 20:53:58 +02:00
Matthias Koefferlein 24c6224a84 Do not produce Python methods masked by properties. 2022-10-24 20:31:46 +02:00
Matthias Koefferlein a39d22c438 Fixed problems with reserved words 2022-10-24 19:44:28 +02:00
Matthias Koefferlein 9011af54ac Class properties 2022-10-23 23:47:26 +02:00
Matthias Koefferlein eb31f67aeb Include .pyi in deployment, scrips enhanced for more compatibility with stubtest 2022-10-23 23:18:09 +02:00
Matthias Koefferlein daad80d5d5 Synthesize getters from is_... predicates, added getter for RecursiveShapeIterator#shape_flags 2022-10-23 22:08:06 +02:00
Matthias Koefferlein be6e05da55 WIP: refactoring, added special GSI methods for Python binding 2022-10-23 19:00:41 +02:00
Matthias Koefferlein 2c18bc6c46 WIP: refactoring 2022-10-23 18:31:13 +02:00