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.
The fix implements a dynamic buffer for the InflateFilter
which is dynamically enlarged if needed. That fix is universal
and does not only apply to OASIS.
@abdelq Thanks for the test case
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.
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]
1. The script API "map_file" attribute has been changed
to accept and supply nil (for no file), a string (for
a file, empty is equivalent to "no file") and a list
for multiple files which are merged. The split at "+"
or "," has been dropped.
2. The strm* tools option ("--lefdef-map") has been changed
to allow multiple occurances instead of split at "+" or ",".
* The original issue ("sw" etc for "tri")
* Implementing "magscale"
* Interpolation of environment variables on paths
* Warnings include file positions now
* Ignoring "<< properties >>" pseudo-layer
* MAG writer uses zero-area boxes for empty ones
* New test
* Only check for layers in the selected stack - this
avoids problems with "masking" pin shapes for example
* Use shape transformation for shapes inside hierarchy
* you can zoom in now to select the end point. Problem was
actually that zooming in was a problem when the start point
went out of the viewport
In addition:
* Messages are sticky now ("Click on second point")
* "Esc" will cancel path trace mode
* The cursor switches back to normal after tracing