Commit Graph

7846 Commits

Author SHA1 Message Date
Matthias Koefferlein 62e45daaea Updating doc. 2026-04-03 16:23:01 +02:00
Matthias Koefferlein ad850f3d83 Merge branch 'lib-file' into bugfix/issue-2305 2026-04-03 15:42:00 +02:00
Matthias Koefferlein 87415f848c WIP 2026-04-03 11:33:46 +02:00
Matthias Koefferlein 5762bc3ecc Remove debug output 2026-04-03 11:31:53 +02:00
Matthias Koefferlein f33f8ea756 Fixing Layout::cleanup - was missing an update to establish proper cell parent relationships 2026-04-03 11:30:34 +02:00
Matthias Koefferlein 404d6fa20f Fixed BASIC lib tests - cell pointers cannot considered to be stable across lib.refresh calls as this basically would need to create cold proxies 2026-04-03 11:10:34 +02:00
Matthias Koefferlein 1abfd5363e Fixed an infinite loop 2026-04-03 00:30:01 +02:00
Matthias Koefferlein a6dce8c2ad Improving Layout::cleanup to consolidate library and cold proxies and to establish proper cell names if possible 2026-04-02 22:14:11 +02:00
dependabot[bot] 9b28e3a33b
Bump pypa/cibuildwheel from 3.3.1 to 3.4.0
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 01:45:50 +00:00
dependabot[bot] de1a36c6a2
Bump styfle/cancel-workflow-action from 0.13.0 to 0.13.1
Bumps [styfle/cancel-workflow-action](https://github.com/styfle/cancel-workflow-action) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/styfle/cancel-workflow-action/releases)
- [Commits](https://github.com/styfle/cancel-workflow-action/compare/0.13.0...0.13.1)

---
updated-dependencies:
- dependency-name: styfle/cancel-workflow-action
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 01:45:45 +00:00
Matthias Koefferlein dcc7f28c77 Updating test data 2026-03-31 22:09:27 +02:00
Matthias Koefferlein 7cec679d39 Taking care of complex library reference scenarios where libraries self-reference and under the presence of stale references. Main issue is order of resolution and indirect references due to replication. Solution is to repeat resolution until saturated. A test is supplied. 2026-03-31 21:35:33 +02:00
Matthias Koefferlein 062567f206 WIP 2026-03-29 19:41:19 +02:00
Matthias Koefferlein ddb261d708 Improving stability of library refresh
1.) Safeguard against missing cells
2.) Use topological order during refresh
    This avoid child-first issues
3.) Use cell names and basic names for mapping
    (cell names may be disambiguated while
    basic names are not)
2026-03-28 22:05:23 +01:00
Matthias Koefferlein 4c47cfb03a WIP: 'sparse_array_limit' on DSS 2026-03-23 22:49:47 +01:00
Matthias Koefferlein c03a617fe2 Added some tests for the netlist browser API 2026-03-23 21:42:49 +01:00
Matthias Koefferlein 1588e74873 Providing a way to generate netlist browser paths
You can generate paths from net, device, circuit or subcircuit
objects. To generate a path for an object from the first netlist
of a pair (layout netlist in LVS case), use

  NetlistObjectsPath#from_first

e.g.

  path = RBA::NetlistObjectsPath::from_first(net)

For an object from the second netlist (schematic in the LVS case)
use "from_second".
2026-03-23 20:36:46 +01:00
Matthias Koefferlein 92143ef543 WIP - experimental feature to resolve sparse cell arrays 2026-03-22 23:49:51 +01:00
Matthias Koefferlein 108baa4d79 New test data 2026-03-22 21:53:25 +01:00
Matthias Koefferlein 851919c42b Enabling direct storage of boxes in box scanner for (slightly) better performance 2026-03-22 21:50:26 +01:00
Matthias Koefferlein aa361277a0 Implementing replication in LStream, OASIS and GDS2 2026-03-22 21:21:11 +01:00
Matthias Koefferlein 56e84e7056 Added test for lib file reading 2026-03-22 16:01:39 +01:00
Matthias Koefferlein 4908f51e1c WIP 2026-03-22 00:07:09 +01:00
Matthias Koefferlein c211925d2a Implemented solution for #2306
First of all, NetlistBrowserDialog#current_path now has a setter.
Changing the selection will navigate to the location of the
selected object, but not issue an "on_selection_changed" event.

In addition, the following features have been added:
* NetlistBrowserDialog#db_index
* NetlistBrowserDialog#view
2026-03-21 20:32:32 +01:00
Matthias Koefferlein 355a75dafe Added a missing file (not related to the issue, but to the branch we started from) 2026-03-21 17:15:46 +01:00
Matthias Koefferlein 83b9fafa9d Added missing files 2026-03-21 17:12:10 +01:00
Matthias Koefferlein f501f039c0 Added tests and two convenience methods
The two convenience methods are

Library#library_from_file
Library#library_from_files

Both create and register a Library object tied to a file.
This object supports proper reloading and re-mapping on
"refresh".
2026-03-21 14:59:08 +01:00
Matthias Koefferlein ca3505b872 Part of the bugfix for #2305 - properly mapping cell indexes after library reload 2026-03-21 11:17:39 +01:00
Matthias Koefferlein cb9e25f1b3 Issue #2300: added documentation about KLAYOUT_DEF_FORMAT and KLAYOUT_LEF_FORMAT environment variables. 2026-03-21 09:25:17 +01:00
Matthias Koefferlein c311906298 Some refactoring 2026-03-20 16:58:53 +01:00
Matthias Koefferlein 94908162d6 LEF/DEF suffixes can be configured
The way to specify them is through the following
environment variables:

$KLAYOUT_LEF_FORMAT - LEF suffixes (default: "*.lef *.LEF *.lef.gz *.LEF.gz")
$KLAYOUT_DEF_FORMAT - DEF suffixes (default: "*.def *.DEF *.def.gz *.DEF.gz")

The string is a space-separated list of simple
match pattern. Only "*.xyz"-style pattern are allowed
currently.
2026-03-20 16:48:35 +01:00
Matthias Koefferlein 2dfcc9293e Allowing to explicity specify a format
Most tools and functions now allow to explicitly
specify a format for input and output. On input,
the format is usually detected, but for some
cases, this is not possible (e.g. DEF). So you can
specify the format attached to the file name in
square brackets:

e.g. file.defok[def]

"def" is the intended suffix, "defok" is the given one.

On output, the same is possible, specifically in strmxor
and strmclip:

strmxor a.gds b.gds out.xor[oas]
2026-03-20 16:30:28 +01:00
Matthias Koefferlein 00c826688f Added the ability to run DRC and LVS from strmrun 2026-03-20 15:48:58 +01:00
Matthias Koefferlein 4cde2fe042 New test data 2026-03-19 14:33:59 +01:00
Matthias Koefferlein 42a008efd1 Potential performance improvement for deep-mode DRC
The idea is to use broken regions for certain operations
such as booleans in deep mode (local operations). These polygons are
more efficient. To support this, a "broken polygon" view
is supplied similar for "merged" view. The translation is
handled automatically.

As a side effect, regions may appear to be composed in broken
polygons now when they have been merged before.
2026-03-19 12:53:49 +01:00
Matthias Koefferlein 95f2335fc4 [consider merging] bugfix: DeepRegion::processed with properties did not deliver polygon refs which made them unsuitable for further processing. 2026-03-19 12:53:30 +01:00
Matthias Koefferlein db9aee844d New testdata 2026-03-18 22:49:24 +01:00
Matthias Koefferlein 07de416694 New test data 2026-03-18 21:13:33 +01:00
Matthias Koefferlein f127ec9843 Updating test data 2026-03-18 21:01:18 +01:00
Matthias Koefferlein 4af2662a08 Fixing unit tests 2026-03-15 10:03:51 +01:00
Matthias Koefferlein fb2559bf75 Fixing a performance regression in the merged layer computation
Problem was that while properly implementing the reverse
cluster connection during cluster merges, cluster connection
propagation suffered a complexity explosion during generation
of the cluster interactions.

Solution is to postpone the cluster joining step until
a cell is finished connecting the clusters. To mitigate the
performance effect of that, some optimizations are
introduced (e.g. using a more efficient unordered_map).
2026-03-14 18:55:03 +01:00
Matthias Köfferlein 415650bb3a
Merge pull request #2297 from joamatab/skip_python3.8_3.9
Don't build wheels for end of life python 3.9 and 3.10
2026-03-12 21:48:21 +01:00
Joaquin Matres ebf315e799 skip 3.9 and 3.10 2026-03-08 17:52:44 -04:00
Matthias Koefferlein 6dd3e6b10f Updating change log 2026-03-07 13:30:25 +01:00
Matthias Koefferlein 1985f5663c Fixing issue #2293 2026-03-07 13:28:35 +01:00
Matthias Koefferlein f8646851e1 Updating doc and pyi files 2026-03-06 15:46:16 +01:00
Matthias Koefferlein a80d181cf1 Mutex got faster on i386, so threaded worker tests need to be adjusted 2026-03-05 21:16:17 +01:00
Matthias Koefferlein 383591b1fa Preparations for 0.30.7 release 2026-03-04 18:59:08 +01:00
Matthias Köfferlein e82d2140b3
Merge pull request #2280 from KLayout/wip
Wip
2026-03-04 18:46:10 +01:00
Matthias Koefferlein 001deab767 Fixing Python module builds 2026-03-03 23:20:43 +01:00