pkglint -Wall -r -F cad
Manually fixed the indentation in cad/ghdl/Makefile because SITES.* was
(by the current definition) not long enough to count as an outlier line,
and because of this, all other lines were aligned to that line.
* Use Qt 5 instead of Qt 4
Changelog:
0.25.3 (2018-05-03):
* Enhancement: Compile option to use libcurl instead of QtNetwork
This workaround enables builds on the native CentOS6
configuration with the package manager functional.
* Enhancement: Pass label (text) layers through DRC script
The "labels" method now allows copying labels from a layer
to the output.
* Enhancement: New "split" method for polygons
This method will fragment the polygons into two or more
smaller parts for reducing their vertex count.
* Enhancement: New "dtrans" method for RecursiveShapeIterator
This method delivers the transformation in micron unit space
* Enhancement: New "insert" methods for Shapes
Shapes can now insert from another Shapes container and
from a RecursiveShapeIterator. Possible applications are
fast flattening and fast region selection.
* Enhancement: New method to generate RDB items from shapes
RdbItem#add_value from a shape, RdbDatabase#create_items
from a shapes container or recursive shape iterator and
RdbDatabase#create_item from a shape.
* Enhancement: DXF and CIF "keep layer names"
If this option is set in the reader options, layer names
are not translated into GDS layer/datatype pairs.
Specifically a layer called "L5" for example is not
translated to 5/0 and to "L5D0" on output correspondingly.
The buddy script option is "--keep-layer-names".
* Enhancement: DXF contour joining accuracy
On the DXF reader's options, a contour joining accuracy
can be specified. Small gaps smaller than this accuracy
will be closed when forming joined contours from edges.
The buddy script option is --dxf-contour-accuracy=value.
* Bugfix: DXF display issue
In some cases, DXF cell instances did not trigger bounding
box update and the cells only got visible after save and
load.
* Bugfix: XOR progress is more realistic
The progress is updated after the layer has been computed,
not before.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/117
DTrans#itype was broken.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/116
Fixed a polygon decomposition bug when writing GDS files
with big polygons with many holes. As a side effect, the
polygons with many holes computed by a NOT operation for
example are less complex and spikes in the cutlines are
avoided.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/115
Reader options were not persisted.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/114
Custom line styles not loaded from tech's layer properties
file.
* Enhancement: https://github.com/klayoutmatthias/klayout/issues/113
The XOR tool has an option now to heal result shapes which
cross tile boundaries. The result shape count of tiled
and non-tiled mode should basically be the same then.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/112
Salt package repository relative paths have not been working.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/109
Issues with Python 3 and shape properties - property
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/108
Bugfix on Box#enlarge and Box#moved for empty boxes.
keys generated with Python 3 could not be written to GDS2.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/107
Undo not working with shapes.
* Enhancement: https://github.com/klayoutmatthias/klayout/issues/106
Search & replace help page enhancements.
0.25.2 (2018-03-20):
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/90
DRC: "extended" was not working as expected with "joined = true"
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/89
Display issue on MacOS fixed
* Enhancement: https://github.com/klayoutmatthias/klayout/issues/85
IDE debugger: files can be excluded from showing exceptions when
they are thrown. To exclude a file press the new "Ignore" button
when the debugger tells you an exception has been generated.
To re-able exception reporting, clear the list of the files
in the IDE settings ("Debugging" tab)
The macro IDE settings can now be edited in the File/Setup
dialog.
* Bugfix: https://github.com/klayoutmatthias/klayout/issues/94
Retina displays are support to some extend on MacOS.
An open topic is the quality of the icons.
* Enhancement: build system for MacOS
0.25.1 (2018-02-23):
* Enhancements: build compatibility with MacOS and Qt 5.9.
Qt 4.6 supported now as well with one restriction:
the package installation feature is not working.
* Bugfixs: Package manager
- Remove button wasn't enabled if multiple packages were selected
- A potential crash ob removing packages was fixed
* Enhancement: 64 bit coordinate support enabled on Windows builds
* Further bugfixes: See links
- https://github.com/klayoutmatthias/klayout/issues/21 (Autorun(-early) doesn't seem to run when lym files are inside a package)
- https://github.com/klayoutmatthias/klayout/issues/24 (Text insert dialog bug - Ok button isn't working)
- https://github.com/klayoutmatthias/klayout/issues/26 (Exceptions are reported every time they propagate up in the call chain in the ruby debugger)
- https://github.com/klayoutmatthias/klayout/issues/28 (CIF format detection failed)
- https://github.com/klayoutmatthias/klayout/issues/30 (Writer options dialog non-functional on a fresh configuration)
- https://github.com/klayoutmatthias/klayout/issues/32 (Rounding issue with instance properties)
- https://github.com/klayoutmatthias/klayout/issues/33 (Plugin factory not working when using with Python)
- https://github.com/klayoutmatthias/klayout/issues/36 (Hardening against destruction of object inside event handler)
- https://github.com/klayoutmatthias/klayout/issues/39 (Action cannot be reassigned)
- https://github.com/klayoutmatthias/klayout/issues/40 (Crash in Python binding)
- https://github.com/klayoutmatthias/klayout/issues/41 (Polygon#touches? issue)
- https://github.com/klayoutmatthias/klayout/issues/42 (Headless mode support with Qt5/-zz)
- https://github.com/klayoutmatthias/klayout/issues/43 (Crash when using Qt specific command line options)
- https://github.com/klayoutmatthias/klayout/issues/44 (Transformation constructor with x,y not working)
- https://github.com/klayoutmatthias/klayout/issues/45 (Partial selection does not capture instance)
- https://github.com/klayoutmatthias/klayout/issues/48 (Cancel does not reset current tool)
- https://github.com/klayoutmatthias/klayout/issues/51 (Segmentation fault on return to main window and other opportunities)
- https://github.com/klayoutmatthias/klayout/issues/53 (Unreadable 'about' text)
- https://github.com/klayoutmatthias/klayout/issues/62 (QXmlSimpleReader#parse cannot be called)
- https://github.com/klayoutmatthias/klayout/issues/63 (Wrong output on DRC non_interacting with empty second input)
- https://github.com/klayoutmatthias/klayout/issues/64 (Crash on exit)
- https://github.com/klayoutmatthias/klayout/issues/68 (OASIS reader issue with degenerated shapes)
- https://github.com/klayoutmatthias/klayout/issues/69 (DRC: 'inside' does not merge shapes of second input)
- https://github.com/klayoutmatthias/klayout/issues/71 (Target cell argument is required)
- https://github.com/klayoutmatthias/klayout/issues/72 (Edges/Region NOT issue)
- https://github.com/klayoutmatthias/klayout/issues/73 (Allow 'change layers' on PCells which support a single layer parameter)
- https://github.com/klayoutmatthias/klayout/issues/74 (Small-corner boolean issue)
- https://github.com/klayoutmatthias/klayout/issues/75 (Python PCell issue when parameters are called 'layer')
- https://github.com/klayoutmatthias/klayout/issues/79 (Replace function enabled also for read-only macros)
* Further enhancements: see links
- https://github.com/klayoutmatthias/klayout/issues/29 (Permissive mode for OASIS writer on odd-width paths)
- https://github.com/klayoutmatthias/klayout/issues/59 (Async download of package index and details)
- https://github.com/klayoutmatthias/klayout/issues/66 (Authentication dialog indicates retry)
- https://github.com/klayoutmatthias/klayout/issues/77 (Layout#copy_tree now works in non-editable mode too)
0.25 (2017-11-04):
* Enhancement: Menu customization
Menu items can be disabled or enabled now. The former
"Key Bindings" configuration page has been turned into
"Menu Customization". Check boxes allow enabling or
disabling of menu items. Disabled menu items are not
shown.
A search filter allows quick selection of menu items
by title or path.
* Enhancement: The cell tree no longer is collapsed on edits
or when the sorting order changes.
* Enhancement: Using a special menu path, macros can be
configured to appear in submenus now.
* Enhancement: KLAYOUT_HOME environment variable to
control the location of the application folder.
The application folder is the place where KLayout
keeps the configuration, macros, packages and
other things.
* Enhancements: Major overhaul of the build environment
- Qt5 supported now
- Employs qmake as build system
- Reorganisation of the sources
- Continuous integration enabled (unit tests
integrated in .pro files, JUnit output etc.)
- Compatible with the clang compiler
* Enhancements: Buddy tools: KLayout now comes with a set of
additional executables that provide some functionality
subset in a lean way. These binaries are named "strm..."
and are installed along with KLayout.
- strm2cif: converts any format to CIF
- strm2dxf: converts any format to DXF
- strm2gds: converts any format to GDS2
- strm2gdstxt: converts any format to GDS2/text
- strm2oas: converts any format to OASIS
- strm2txt: converts any format to plain text (internally)
- strmclip: creates a clip from a file
- strmcmp: compares two files (logically)
- strmxor: compares two files (geometrically)
For more information, use the "-h" or "--help" option.
* Enhancements: HTTPS support for loading files from URL's directly
* Enhancements: Numerous enhancements and optimizations in the RBA/pya
area and in the debugger.
* Enhancements: KLayout notifies the user when a file was changed and
asks whether to reload.
* Enhancements: "File cell or layer": type into the cell or layer list to jump to the
cell name typed.
* Enhancements: Advanced search features in the filter entry box
for the cell selection form: Case sensitive/insensitive,
glob pattern, clear button.
* Enhancements: Tree expansion icons have a better contrast now on Windows
with dark background.
* Enhancements: Forward and backward navigation buttons in the main window.
These buttons jump to the previous or next display state:
zoom window, hierarchy depth, etc..
* Enhancements: A Package manager is provided. Packages are add-ons for
KLayout and can include macros, script libraries, fonts
for the TEXT PCell, technologies, DRC scripts etc.
Packages can be published on GitHub or any server
supporting WebDAV. After registering a package, users
can install or update packages with a few clicks.
For more information see https://github.com/klayoutmatthias/klayout/wiki
or "About Packages" in the "Various Topics" area of the main
documentation. The package manager is found in the "Tools"
menu under "Manage Packages".
* Enhancements: LEF/DEF reader:
- Compatibility fixes with version 5.8
- Regions and Groups are supported now
- LEF/DEF is a standare format now and
can be used with "File/Open" for example.
* Enhancement: DXR reader supports variable path widths now
* Enhancement: XOR provides graphical progress
* Enhancements: Libraries can be associated with a technology. Only libraries
associated with the selected technology are shown in the selection
dialog.
* Enhancements: Overlapping instances are easier to select now (instance
selection cycling).
* Enhancements: Many more methods in RBA/pya. For example:
- Ability to directly insert "D" types (such as DBox
into layouts and cells.
- RBA::RecursiveShapeIterator now supports complex (non-rectangular)
search regions
- A more consistent type framework (consistent complex transformation
types, vectors)
- More intuitive interface in certain objects (i.e. CellView,
LayerPropertiesNode, Annotation etc.). Changing an attribute
usually has an immediate effect on the respective property now
("live objects")
- Hash functions for certain objects - Box, Edge, Trans, Polygon,
and other objects can be used as dictionary keys now.
- New import methods for Region, EdgePairs and Edges
- New features for LayerMapping and CellMapping
- Multiple selected cells in LayoutView
- RBA::TextGenerator to supply the Basic.TEXT PCell's
functionality as static feature
- Receivers can be added to signals and removed from
signals now.
- Individual instance iterator for CellInstArray
- ...
* Enhancements: Enhanced layout statistics form with detailed shape
statistics.
* Enhancements: Line styles (dashed, dotted etc.) available now.
Works best with manhattan layouts.
* Enhancements: "Marked box mode": boxes are drawn with a cross.
* Enhancements: Arbitrary pattern size for custom fill pattern (no
limited to multiples of 8). Max size is 32x32.
Enhanced annotations:
- Ellipses
- Position markers
- Text alignment
- "Auto measure" rulers (place a ruler measuring the
distances between adjacent objects with a single
click)
* Enhancements: DRC enhancements:
- Text support
- "smoothed" function
- "layers" function delivers all layers read
- Polygon with edge interactions
- middle and extent_refs methods for center point and other
references
- "corners" function
- "collect...", "select" and "each" methods
* Enhancements: GDS2 paths can now use the MultiXY extension too.
* Enhancements: X2 Support for Gerber import.
* Enhancements: A function to reset the window state after the
window has been misconfigured (i.e. detaching or closing
the dockable windows). This feature is found in
View/Restore Window.
Performing substitutions during post-patch breaks tools such as mkpatches,
making it very difficult to regenerate correct patches after making changes,
and often leading to substituted string replacements being committed.
------------------------------
(from: http://klayout.de/development.html)
Version 0.24.10
Release date: 2017-04-01
Features:
Enhancements: New method CellView#is_dirty? This method indicates
that a cell view needs saving
Bugfix: DEF reader was not able to read routing Routed segments
with vias plus continued wiring were not read. Instead an error
message was shown saying "Invalid orientation specification"
Bugfix: Setting "technology-data" configuration property did not
work Reading or writing the "technology-data" configuration
property is the only way to access technology data from a
script. Hence it's important that this property can be set. With
this patch, "technology-data" can be set to an XML string which
has the same format than the one stored within the configuration
file.
Bugfix: Reader issues with some RVE files The RVE reader could not
read files with cell names containing hyphens (like "A-B").
Bugfix: Inplace operators are now working in Python too For
example "r1 += r2" was not working (r1 and r2 are pya.Region
objects for example).
-----------------------------
From: http://klayout.de/development.html
Release date: 2016-11-29
Enhancements: The RBA::Region#smooth function was enhanced to give
somewhat better results
Enhancements: DXF's circle approximation can now also specified
through an "accuracy" parameter: if less than the number of specified
points is required to achieve the given accuracy, the number is
reduced accordingly. This also applies to the polygon interpolation
of spline and arc curves.
Enhancement: RBA integration now is compatible with Ruby 2.3 which
allows building on Ubuntu 16 as well.
Enhancement: OASIS files with instance angles >360 were rejected
before. Now, this has turned into a warning.
Bugfix: DEF reader was failing to read MASK/via combinations.
Bugfix: The marker browser's "show only rules with errors" option was
enabled again on sorting of errors.
Bugfix: DRC: Using Layout objects for inputs didn't work
Bugfix: Copying Hierarchy treets containing PCell's made the PCell's
being turned into static cells.
-----------------------------
Version 0.24.8
Release date: 2016-06-19
- Bugfix: XOR and different or big database units: With
tiling, XOR between two layouts with different database
units was still not working correctly. Also, when the
database unit was larger than 1nm, the XOR feature was
dropping results sometimes when tiling was on.
- Enhancements: progress bar shown also for "-z" mode
scripts: The solution of 0.24.7 has been modified to avoid
annoying progress bar windows popping up in
background-window mode: Now, progress bar windows will
only pop up if an active main window is present. This will
enable progress bars for scripts that open their own main
windows but still keep the application GUI-less when the
script does not do so.
- Bugfix: Crash on empty panel: When "New/Panel" is used a
view without a layout is created. An attempt to create
layout on such panels crashed the application.
- Bugfix: LEF reader now can read PIN statements including VIA
- Bugfix: Polygon smoothing was not working properly in some
cases Previously the smoothing function was sometimes
dropping vertexes from the polygons. Smoothing now does
also guarantee not to exceed the given distance.
- Bugfix: Sorting cells by area now sorts cells by name as
second choice In the previous version, cells with
identical area were grouped but the order was
arbitrary. Now the name is used as the second-level
sorting criterion which keeps such cells sorted by name.
--------------------------------------
http://www.klayout.de/development.html
--------------------------------------
Release date: 2016-05-03
Features:
- Bugfix: XOR and different database units: With tiling, XOR
between two layouts with different database units was not
working correctly.
- Enhancements: progress bar shown also for "-z" mode
scripts: Scripts running in KLayout with the "-z" option
(don't show main window) were not experiencing progress
reporting before. Now a small modal window is shown during
long-running operations that indicates the progress and
provides a Cancel button to abort the operation.
- Bugfix: Crash on using "Edit/Make cell": This happened
sometimes if the selected objects contained instances.
- Bugfix: Invalid behavior of paths with reflecting
segments: For example a path made of the points (0, 0),
(0, 1000) and (0, 0) had a reflecting segment which cause
some computations (for example the bounding box) to return
invalid results.
http://www.klayout.de/development.html
--------------------------------------------------------
Version 0.24.6
Release date: 2016-03-22
--------------------------------------------------------
- Bugfix: Early delete of plugin object when returning a new object from
PluginFactory#create_plugin. The returned object was not held, so in Ruby
the GC could destroy the object. This could lead to crashes in applications
employing the Plugin API.
- Bugfix: It was possible to edit read-only macros. For example, it was
possible to enter new lines in macros marked as read-only. However, these
changes were not saved.
- Bugfix: Shift+Tab not working in macro editor. On some platforms, Shift+Tab
was not working as expected. This key combinations was supposed to
left-shift a selected block an undo indents.
- Bugfix: Wrong scaling of layers when doing XOR's with layouts with
different database units. This happened when the layouts had different
layers and "summarize missing layers" was disabled.
- Bugfix: "Search & Replace" was not working properly if named layers were
present. Specifically the shape search was not working due to an
incorrectly formed query.
- Bugfix: Sizing produced incorrect results in case of slowly varying polygon
contours. The effect was a contour with spiky distortions where two "almost
parallel" edges connected.
- Bugfix: The diff tool was not reporting differences correctly when layers
were present in one layout while they were not present in the other. This
happened specficially when "Summarize missing layers" was disabled.
- Enhancement: New context mode in marker browser: "Current or Any". In this
mode, the markers are displayed in the context of the current cell. If that
is not possible because the markers are given for cells outside the cell
tree of the current cell, the fallback is to show the markers in the
current cell as in "Any" mode.
- Enhancement: More consistent behaviour of cell and category filters in the
marker browser. For example, the category filter is now also applied when
selecting a node for a certain cell in the cell branch and if nested
categories are present, the category filter is applied smarter - not just
on each category.
--------------------------------------------------------
Although a comparatively simple piece of software, a layout viewer is not
only just a tool for the chip design engineer. Today design's complexity
require not only a simple "viewer". Rather, a viewer is the microscope
through which the engineer looks at the design.
There are numerous viewers available, but sadly there are not many which
satisfy a few basic requirements. Most of them are commercial and
expensive. If there is need for a simple, yet powerful viewer - here it is.