1766 Commits
Author SHA1 Message Date
Matthias Koefferlein a6900e091e Fixed the core issue (nil was not working as return value of a factory method) 2026-08-25 20:36:29 +02:00
Matthias Koefferlein b369137741 Fixing issue #2362
1. Python does a range check for values passed to int, unsigned int, short, unsigned short
   (and longs on Windows)
2. The round trip of a MIN_INT value through string now works
2026-08-23 15:17:45 +02:00
Matthias Köfferlein 3937a1f4ed Merge pull request #2431 from KLayout/bugfix/issue-2429
Bugfix: Fixing issue #2429 (PEX error)
2026-08-23 14:03:58 +02:00
Matthias Koefferlein 88568c8983 Fixing unit tests 2026-08-23 10:05:43 +02:00
Matthias Koefferlein 2e2af5cc4c Removing debug code 2026-08-22 23:25:16 +02:00
Matthias Koefferlein e8e2f981fe Fixing tests for Ruby <3.0.0 2026-08-22 23:21:01 +02:00
Matthias Koefferlein 9fad2ff1fa Fixing issue #2429 by introducing a rectangular envelope for triangulation
Previously the algorithm tried to dynamically build a convex envelope.
However, in case of the #2429 polygon, this rendered extremely skinny
triangles which could not be removed.

These caused numerical issues.
2026-08-22 22:15:55 +02:00
Matthias Köfferlein e06b188633 Merge pull request #2430 from KLayout/bugfix/issue-2428
Bugfix/issue 2429
2026-08-21 23:11:23 +02:00
Matthias Köfferlein 9680621256 Merge pull request #2426 from KLayout/bugfix/issue-2419
Fixing issue #2419 (arc and angle ruler bbox considers interpolated c…
2026-08-21 23:11:06 +02:00
Matthias Köfferlein ddf6d03e00 Merge pull request #2420 from KLayout/wip
Wip
2026-08-21 23:10:53 +02:00
Matthias Koefferlein daa1d094d1 Updating test data: required, because we changed the dumper to not compress polygons 2026-08-21 17:43:00 +02:00
Matthias Koefferlein fcbb8c8e4e Adding tests 2026-08-20 18:14:28 +02:00
Matthias Koefferlein 64497a0361 Merge branch 'master' into wip 2026-08-20 11:23:50 +02:00
Matthias Koefferlein 7351a880e7 Resolving conflicts 2026-08-20 11:21:01 +02:00
Matthias Koefferlein e890bcc393 Resolving conflict with master 2026-08-20 11:19:57 +02:00
Matthias Koefferlein 570d5d50b3 Adding tests 2026-08-20 10:18:30 +02:00
Matthias Koefferlein e22aeea494 WIP: debugging, added const version of parameter getter 2026-08-17 18:54:52 +02:00
Matthias Koefferlein ca92d1c042 Fixed tests for Ruby 2 2026-08-15 20:58:44 +02:00
Matthias Koefferlein 005edf7370 Maybe fixing tests for Windows 2026-08-15 14:42:06 +02:00
Matthias Köfferlein 5ff3bb4c4b Merge pull request #2418 from KLayout/bugfix/issue-2416
Fixing bug #2416 (two-layer DRC check without merged first input prod…
2026-08-14 17:59:24 +02:00
Matthias Koefferlein 91790af0f0 Added missing test file 2026-08-11 23:52:10 +02:00
Matthias Koefferlein 8e6e72fd83 Fixing bug #2416 (two-layer DRC check without merged first input produces separation violations that 0.30.9 does not report) 2026-08-11 23:19:25 +02:00
Matthias Koefferlein f8b83357e1 Fixing strange behavior of user property generation with Python
Problem was that integers are converted to "long long"
in Python, which creates Variants rendering "#l1" as
parsable strings. These are marked as invalid by the
Syntax highlighter of the user properties editor.

This patch fixes the user properties editor syntax
highlighter to cover all Variant variants and
uses "long" type for Variant if possible.
2026-08-10 00:09:42 +02:00
Matthias Koefferlein 22042a0b10 DXF: avoiding generating duplicates of zero layer during DXF read/write spin. 2026-08-07 00:12:52 +02:00
Matthias Koefferlein 52a96a618c Refinement
* Option added to buddy tools ("lefdef-skip-duplicate-macros")
* Properly adding to GSI
* Tests for GSI binding in LoadLayoutOptions
2026-08-05 18:29:23 +02:00
Matthias Koefferlein a654c707b3 Refining solution
- Properly handling copy constructor and initialization
- Simplify code
- Added test
2026-08-05 17:57:45 +02:00
Matthias Koefferlein 5055d4fcf4 Merge remote-tracking branch 'origin/master' into wip 2026-07-20 23:20:47 +02:00
Matthias Köfferlein 7332de7260 Merge pull request #2397 from KLayout/bugfix/issue-2396
Fixed issue #2396 (support weak refs in Python)
2026-07-20 23:03:34 +02:00
Matthias Koefferlein a50319fcbb Updating test data 2026-07-20 22:58:14 +02:00
Matthias Koefferlein 116602f662 Updating test data 2026-07-20 21:42:19 +02:00
Matthias Koefferlein 93c43d049a Bugfix: Region#edges wasn't working properly in deep mode with properties - edges are not separated according to polygon properties 2026-07-20 01:09:47 +02:00
Matthias Koefferlein 604db5a1aa Updating test data 2026-07-19 20:56:05 +02:00
Matthias Koefferlein 484ab91850 WIP: deep mode implementation of enhanced 2-layer check, tests 2026-07-19 20:53:27 +02:00
Matthias Koefferlein b51187bf7c Merge branch 'master' into wip 2026-07-19 15:13:40 +02:00
Matthias Koefferlein 6253f04966 Fixed issue #2396 (support weak refs in Python) 2026-07-19 10:45:51 +02:00
Matthias Koefferlein ca61d8d4af Fixing issue #2392 (PCell rebinding fails aber technology change)
The bug was that the rebinding by name did not happen
because the name was looked up in the wrong layout.

A testcase has been added to test proper PCell rebinding
in case of technology switches.
2026-07-18 15:44:25 +02:00
Matthias Koefferlein edad8f5221 Bugfix: update layer names in layer list (when used in secondary fashion) on reload
1. The readers will overwrite the layer names if given in secondary fashion
   (additionally to layer/datatype)
2. The layer properties nodes will update the "real source" according to
   the actual name if the name is used in addition to layer/datatypes
2026-07-17 23:46:14 +02:00
Matthias Köfferlein 3c6b342448 Merge pull request #2387 from querielo/kirill/pixelbuffer-to-bytes
Add PixelBuffer#to_bytes for zero-overhead pixel access
2026-07-16 22:58:35 +02:00
Kirill Osipov 9a606ec4e9 Cap PixelBuffer.from_bytes dimensions at 64k x 64k
Following review feedback, the reader now rejects a header claiming a
width or height beyond 65536, guarding against malformed byte streams
that would otherwise trigger an unreasonable allocation. The writer
stays full 32-bit ('unlimited'), and native little-endian order and the
transparency mask are kept as-is. Adds Ruby and Python tests for the
oversized-header rejection.

Ref: https://github.com/KLayout/klayout/pull/2387#issuecomment-4984941409
2026-07-16 19:03:34 +02:00
Kirill Osipov 2fa7b24345 Add PixelBuffer#from_bytes and width/height header to to_bytes 2026-07-16 19:03:34 +02:00
Matthias Köfferlein 4ac26d686d Merge pull request #2388 from KLayout/bugfix/issue-2384
Fixed issue #2384
2026-07-12 00:23:03 +02:00
Matthias Koefferlein abe9479ced Bugfix: removing a pin from a Circuit does not crash if the pin was not disconnected before. Now it's disconnected automatically. 2026-07-12 00:14:30 +02:00
Matthias Koefferlein 1cd9cbc8ba Enhancement: using PCell parameter 'name' won't break PCell's cell_name_impl default implementation 2026-07-11 22:32:42 +02:00
Matthias Koefferlein b2afb55fe3 Convenience constructor for Layout from a cell (hierarchical copy) 2026-07-11 21:56:02 +02:00
Matthias Koefferlein 43a5d8c548 Fixed issue #2384
Problem was that the magnification was applied twice
when running the checks inside compound DRC checks.
2026-07-09 23:43:25 +02:00
Matthias Koefferlein d352db146f Trying to fix unit tests with Python 3.14 - it delivers a different reference count under unit test conditions 2026-06-20 00:06:42 +02:00
Matthias Koefferlein 7d5f61db59 Issue #2360: Implemented name sorting by default (can be turned off) for 'make_top_level_pins' 2026-05-26 23:26:16 +02:00
Matthias Koefferlein be8b165b6a Merge remote-tracking branch 'origin/bugfix/issue-2350' into wip 2026-05-25 20:51:42 +02:00
Matthias Koefferlein a10cfce1e7 Testdata variants needed (one for clang?) 2026-05-25 19:23:56 +02:00
Matthias Koefferlein 37977d21e9 Fixing issue #2350 (strm2oas writes empty OAS)
Problem was that the OASIS writer was simply ignoring
all top level proxy cells (PCells, Library references).

The original bug #1835 fixed that by changing the
reader behavior, so it would keep top level proxies.
However, doing the spin through the writer got them
removed and in addition, the cleanup happing during
editing would also remove them.

Solution is to centralize the strategy of cleaning
cells. The cleanup now is changed to not remove
proxy top cells if they are the only ones. This is
consistent with the previous reader-only behavior.

The writer implements the same behavior by means
dropping cells marked for cleanup, instead of simply
skipping all proxy cells.
2026-05-25 00:09:38 +02:00