Known Bugs and Issues

Those are the known issues listed by the version in which they have been found. Unless noted, these bugs are fixed in the following release.

A note on bug tracking: internally, I keep an issue tracker using the awesome Trac tool (http://trac.edgewall.org/). Currently that ticket database contains roughly 500 entries, ranging from refactoring ideas to critical bugs. The list below is an excerpt containing the issues with relevance for the end user community.

If you encounter bugs not found in that list, please use to mail address listed on the contacts page or the forum to report issues.

Version 0.24.9

  • Inplace operators not working in Python with pya.Region The application will crash when using the inplace operators ("+=", "-=" etc.) on the pya.Region object. A workaround is to use the explicit operator methods (like "__iadd__"):
    r1 = pya.Region()
    r2 = pya.Region()
    # will crash:
    r1 += r2
    # will not crash:
    r1.__iadd__(r2)

Version 0.24.8

  • Ruby integration is not compatible with Ruby 2.3 This prevents building on Ubuntu-16 which has deprecated Ruby 1.9 and only provides 2.3 natively. Building your own Ruby 2.2 is a workaround.
  • DEF reader issue The DEF reader cannot digest combinations of MASK and via placements.
  • DRC Using RBA::Layout objects with DRC's "source" statement does not work.

Version 0.24.7

  • Problems on XOR in tiled mode with database units larger than 1 nm The XOR tool does not work properly and may skip differences if the database unit is larger than 1nm and tiled mode is used. This bug will be fixed in 0.24.8.
  • LEF reader does not read PINs with VIAs PIN statements containing VIA objects will make the LEF reader abort with an error message.

Version 0.24.6

  • A crash happens on "Edit/Make cells" Sometimes a crash is observed if Edit/Make cells is used on a selection that contains instances of other cells.
    This bug will be fixed in 0.24.7.
  • Problems on XOR with different database units The XOR does not work as expected when different database units are present and tiling is enabled.

Version 0.24.5

  • GC destroys plugin object returned by PluginFactory#create_plugin

    The object returned from PluginFactory#create_plugin is not protected against destruction by the garbage collector which may lead to occasional crashes in the application. A workaround is to explicitly protect the object:

      def create_plugin(manager, main_window, view)
        pi = PluginTest.new
        pi._unmanage
        pi
      end
    
    This bug will be fixed in 0.24.6.
  • Size function problems with slowly varying contours

    For "almost parallel" connected edges, the sizing algorithm will produce incorrect output with spiky distortions.
    This bug will be fixed in 0.24.6.

  • Diff tool issues when the input files contain different layers

    The diff tool reports too many or too few differences if the input layouts contain different layers and one of the following options is used:

    • Summarize missing layers: OFF
    • Run XOR on differences: ON
    This bug will be fixed in 0.24.6.
  • Search feature does not work on layers with names and layer/datatype specification

    If layers with names and layer/datatype specification are present, the search feature does not work on shapes. The reason is a incorrect query which cannot be executed. A workaround is to edit the query in the "Custom" page: replace the layer expression (like "NAME (1/0)") by a plain layer/datatype specification. For example, replace

    shape on layer NAME (1/0) ...
    by
    shape on layer 1/0 ...
    and run the query from the custom page.
    This bug will be fixed in 0.24.6.

Version 0.24.4

  • OASIS writer: 1x1 array instances stop OASIS writer

    The OASIS writer will refuse to write 1x1 array instances and bail out with an assertion. This bug will be fixed in 0.24.5.

  • OASIS writer: wrong S_TOP_CELL property type when using standard properties

    The property value is written as a "bstring", but it should be a "nstring". This bug will be fixed in 0.24.5.

  • QFont, QColor and some other types cannot be assigned to QVariant

    Unlike C++, QFont and QColor are not valid types storable within a QVariant. This currently leaves it impossible to change the font or colors for a QTreeWidgetItem for example. This bug will be fixed in 0.24.5.

Version 0.24.3

  • OASIS writer: wrong S_TOP_CELL property when using standard properties with "Save Current Cell As"

    Instead of writing the chosen top cell, the real top cell of the layout is written. This bug will be fixed in 0.24.4.

  • OASIS reader: CELLNAME properties are not associated with cells Instead CELLNAME properties are ignored. According to the specification, CELLNAME properties shall be associated with the cells described by the CELLNAME record. KLayout's OASIS writer will not produce such properties for cell-level user properties, so this is just an issue for externally created layouts. This bug will be fixed in 0.24.4.
  • OASIS writer: strict mode compatibility issues

    Strict mode is not implemented with respect to these topics:

    • File level PROPERTY records are not put right at the beginning of the file
    • Empty tables are not listed with 0 position
    • Property value strings are not referenced by ID
    • The property modal variables are referenced sometimes after name records (specifically CELLNAME with standard properties enabled). Instead, the name records reset these variables so this is not correct. Other reader may report errors for such files.
    These bugs will be fixed in 0.24.4.

Version 0.24.2

  • Cells messed up in certain cases upon strict OASIS reading

    Cells starting with a single "$" character and followed by a number (for example, "$1") may get messed up when reading strict mode OASIS. This bug will be fixed in 0.24.3.

  • Single boxes will not vanish on undersize of a layer containing a single box

    The DRC "size" operation does not size away small boxes (smaller than twice the sizing value) for layers containing a single box on top level only. This bug will be fixed in 0.24.3.

  • Library references lost on load/reload

    When using nested libraries (libraries referencing other libraries), cells may get lost when closing and reloading layouts. This bug will be fixed in 0.24.3.

  • Crash on DRC files containing partial properties

    DRC files with properties can be loaded into the marker browser, but will make the browser crash if the properties are not filled uniform - i.e. some markers are lacking some properties. This will be fixed in 0.24.3.

  • Wrong type of RBA::SaveLayoutOptions#oasis_write_std_properties attribute

    According to the documentation, the type of this attribute should be integer, since the accepted values are 0, 1 or 2. This will be fixed in 0.24.3.

  • OASIS spec compliance issue in strict mode

    Contrary to the OASIS specification, S_BOUNDING_BOX standard properties are not written into the cell table, but along with the cell itself. This will be fixed in 0.24.3.

Version 0.24.1

  • "klayout_vo.exe" is not a pure viewer executable

    The "klayout_vo.exe" binary found in the installation directory is not a pure "viewer-only" version as is was before. This will be fixed in 0.24.2.

  • "Flip" and "Rotate" is not behaving properly sometimes

    In a descended view, the "Flip" and "Rotate" functions do not maintain the center of the selection as they do in a non-descended view. Instead the shapes and instances are shifted far ways. This will be fixed in 0.24.2.

  • Expressions using arithmetic operations between integers and floating-point values sometimes chose the wrong type

    Expressions are used in search & replace operations for example. Among others, they provide arithmetic operations. When using binary arithmetic operators such as "+", the expression is evaluated with the first type. If that type is an integer, the computation is done in integers too. For example "to_i(2)+1.4" renders 3. The expected behavior (as seen in other languages) is to use floating-point arithmetics instead. This will be fixed in 0.24.2.

Version 0.24

  • PYTHONPATH environment variable needs to be set sometimes

    In some cases, the PYTHONPATH environment variable needs to be set to point KLayout to the proper place for the Python libraries. This is the case if KLayout is built against a Python version that does not come with a proper PYTHONPATH built into it. This is not an issue when building against a Python package that comes with a Linux distribution or for the binary package on Windows.
    If the PYTHONPATH is required and not set correctly, the Python interpreter aborts on initialization. Unfortunately this a feature of Python and cannot be worked around easily.

  • 'Add all other layers' feature creates duplicate layers when named + unnamed layers are present

    In several places, ".lyp" files can be combined with "add all other layers". This will create entries for layers not listed in the ".lyp" file. There is a bug in that feature if the ".lyp" file uses named layers and the layout does not and vice versa. For example, if the ".lyp" file specifies "NAME 1/0" for the layer source (name "NAME" and/or layer 1, datatype 0) and the layout is a GDS2 file which can only have a "1/0" layer, a new entry will be created with "NAME 1/0" because that layer is considered different from "1/0".
    This will be fixed in 0.24.1.

  • Too aggressive optimization (RHEL 6) induces crashes in the net tracer

    Apparently, the -O3 optimization used in the standard release build configuration is too aggressive for the gcc version present in RHEL 6 releases. Crashes have been reported in the net tracer module which appear to be related to that combination. A workaround is to reduce the optimization in the configuration file ("config/Makefile.conf.linux-64-gcc-release") to -O2.
    Because runtime effects appear to be minimal between -O3 and -O2 in recent CPU/compiler combinations, I'll switch to -O2 in version 0.24.1.

  • Using shape method on ObjectInstPath object delivered by LayoutView#each_object_selected fails

    In 0.24, the shape method became non-const to allow modification of the selection. But as an undesired side effect, "shape" cannot be called any more on the ObjectInstPath object delivered by LayoutView#each_object_selected. Hence the following code fails with a message saying that a non-const method (shape) cannot be called on a const object (s):

    view.each_object_selected { |s| puts s.shape.to_s }
    A workaround is to use a copy of the ObjectInstPath object:
    view.each_object_selected { |s| puts s.dup.shape.to_s }
    This issue will be fixed in version 0.24.1.
  • StopIteration exception appears in the debugger (Python)

    Python marks the end of an iteration sequence by raising a StopIteration exception. This exception appears in the debugger which is not desired. It should be ignored. This will be fixed in 0.24.1.

  • Taking an iterator from a temporary object may crash the application (Python)

    The following code causes an application crash since the object returned by "dup()" is short-living and the iterator delivered by "each()" does not keep a reference. Hence the object is destroyed before the iterator finishes:

      shapes = pya.Shapes()
      shapes.insert(pya.Box(0, 1, 2, 3))
      for s in shapes.dup().each():
        print(str(s))
    
    A workaround is to assign the duplicate to a variable which lives longer:
      shapes = pya.Shapes()
      shapes.insert(pya.Box(0, 1, 2, 3))
      shapes_dup = shapes.dup()
      for s in shapes_dup.each():
        print(str(s))
    

Version 0.23.10

  • Problems reading CIF files with line breaks in P statements

    Deviating from the spec, only single separator characters between x and y coordinate of points are allowed. This will be fixed in 0.23.11.

  • DEF reader problems

    The DEF reader takes 0 for the default path extension. The default extension should be half the width of the path. This will be fixed in 0.23.11.

  • DRC crash on reading a layer that was overwritten

    The following DRC script will crash, because in the "output" statement, the layer used for input a second time is overwritten:

        a = input(1)
        b = input(2)
        (b - a).output(1)
        # will crash, because a source has been overwritten by "output":
        (a - b).output(10)
      
    This will be fixed in 0.24.

Version 0.23.9

  • Crash when loading big images

    When loading or creating big images (more than ~ 12k x 12k pixels) the application will crash. This is due to the limitation of Qt library which computes the memory requirement for an image as 32bit integer.
    Version 0.23.10 does not crash but rejects such images. In Ruby scripting, an option will be provided to create monochrom images. For rasterization purposes, this will extend the capabilities to creating images of more than 100k x 100k pixels.

  • Crash when deleting a layer and something is selected on that layer


    This issue will be fixed with 0.23.10.

  • Crash when deleting the top cell


    This issue will be fixed with 0.23.10.

  • CIF reader compatibility

    The CIF reader is not fully compatible with the CIF specification. For example, lower-case characters are not ignored as they should.
    This issue will be fixed with 0.23.10.

Version 0.23.8

  • DEF reader bug

    E and W orientation on DEF PIN statements are swapped.
    This issue will be fixed with 0.23.9.

Version 0.23.7

  • DRC's inside and not_inside functions are not working

    Sometimes shapes are reported as inside even though they are not.
    This issue will be fixed with 0.23.8.

Version 0.23.6

  • DRC crashes observed on repeated runs

    This happens in particular if an input layer is overwritten.
    This issue will be fixed with 0.23.7.

  • RBA::InputDialog::ask_double does not accept negative numbers


    This issue will be fixed with 0.23.7.

Version 0.23.5

  • DRC width/spacing check issue

    In certain configurations (big polygons embracing smaller ones) width/spacing errors are reported more than once. The error count is too high.
    This issue will be fixed with 0.23.6.

Version 0.23.4

  • Ruby console issue

    The following commands on the Ruby console make the program crash: "require 'net/http'; uri = URI('xyz')"
    This issue will be fixed with 0.23.5.

Version 0.23.3

  • UTF8 encoding ignored on XML files (will be fixed in 0.23.4)

    UTF8 encoding is not implemented correctly for the XML reader. That is causing problems for macros containing characters with ordinals >= 128, for example german umlaut characters. This applies to all XML files, specifically .lym macros, where such characters are not read properly when they appear in the code or description texts for example.
    This issue will be fixed with 0.23.4.

  • PCell context information in GDS files not backward compatible (will be fixed in 0.23.4)

    GDS files with embedded PCell's written with previous versions (0.22.x and less) are not read correctly in some cases. Vice versa, PCell context information written with 0.23.x cannot be read by 0.22.x and less.

  • Horizontal alignment broken for texts in default font (will be fixed in 0.23.4)

    The scalable fonts work as expected.

Version 0.23.2

  • DRC: addressing layout views with the "@n" notation does not work

    Addressing layout views using the "@n" notation in "target", "source" and "layout" gives an error about an undefined variable "i".

Version 0.23.1

  • Build issues with MacOS 10.9 (Xcode)

    Currently, the source code does not build with Xcode on MacOS 10.9. Xcode uses the clang/LLVM compiler and unfortunately the issue could not be reproduced on Linux systems with clang 3.0 and 3.3.

  • DRC issues related to database units

    Multiple inputs with different database units do not work as expected and the database unit of output file generated by DRC scripts (target command) is always 0.001, regardless of the input file's database unit.

  • DRC: log to file not working

    The "log to file" function does not work as described.

  • Wrong display context of markers produced by search and replace

    Items in child cells are now shown relative to the current cell. Instead, the position in their direct parent cell is shown which typically does not match if the parent is not the current cell.

  • Layer properties files not forward compatible

    Since KLayout 0.23 introduced a new feature for .lyp files (valid/invalid layers), layer properties files written with version 0.23 and later cannot be read by older versions. This is because the XML reader was implemented in a strict fashion and will refuse to load files with unknown elements. This will be changed in the future, but it won't be ported back to the older versions. Hence the solution will not become effective immediately.

    A workaround is to remove all "valid" elements from a .lyp file written by version 0.23.

Version 0.23

  • RBA: Polygon#inside?, DPolygon#inside?, SimplePolygon#inside?, DSimplePolygon#inside? broken (Bugfix planned for 0.23.1)

    The method reports false if only if the point is on the polygon edge. If the point is outside, the method reports true again.

  • DRC: report database output is not working (Bugfix planned for 0.23.1)

    Report database output is not working as described. Currently there is no simple workaround for that issue.

Version 0.22.7

  • CIF reader broken (Bugfix planned for 0.22.8)

    In many CIF files, GDS layer numbers are not assigned properly, resulting in duplicate or missing shapes.

Version 0.22.5

  • Net tracer issues (Bugfix planned for 0.23)

    Performance may be poor in certain configurations, in particular when boolean operations are involved. In addition, the output generated by the net tracer's export function may contain many overlapping shapes.

  • Net tracer does not work properly for OASIS file read on viewer mode (Bugfix planned for 0.23)

    It is recommended to use editor mode when working with the net tracer. In viewer mode, OASIS shape arrays are used internally which slows down the net tracer and sometimes leads to wrong results.

Version 0.22.4

  • Macro IDE console issue

    When the macro editor is closed and opened again the list of entries in the console is doubles. This may render huge configuration files. A quick workaround is to delete the line with the "<macro-editor-console-mru>" entry in the configuration file (on Linux in "$HOME/.klayout/klayoutrc") regularily.

  • Crash when a view is closed while the "insert instance" form is open

    KLayout crashes when a panel is closed while the "insert instance" form is still open. A workaround is to choose "Select" mode or hit Esc before closing a view.

Version 0.22.3

  • Crash when loading a layout while the net tracer is open

    KLayout crashes when a layout is loaded into the current view while the net tracer is highlighting a net.

  • Memory leak when stopping the XOR tool

    When the XOR tool is stopped, some memory is not released. This will create a memory leak and that memory is no longer available for other features.

  • Help index initialization can be cancelled

    On the first start of a new version, the help system's index is generated. When this operation is cancelled, the help index may not be available fully.

  • Instance placement: rotation and origin

    when placing an instance at the bounding box (not the origin) and using a rotation angle, the reference point is not computed correctly and the instance is somewhat hard to place.

  • The macro IDE occasionally crashes when trying to add a new location

    When trying to add a new folder to the list of displayed macro locations, the application sometimes crashes with a segmentation fault.

  • Some drawing issues

    In some configurations (apparently related to cells rotated by arbitrary angles), the layout is not drawn correctly and artefacts may appear. As a workaround, this can be solved by disabling bitmap caching.

  • Issues using multi-tab layer properties files as the default

    Multi-tab layer properties files may not load properly (display more items per tab than desired) when used as default layer properties files.

  • RVE file reading was broken in some cases (fixed by patch)

    This happens when the number of comment lines is odd. The issue is fixed in 0.22.3-r1640 (see "Help/About" dialog).

Version 0.22.2

  • Layer pollution happens when PCells or library cells are used

    When multiple layouts are edited and PCells or library cells are instantiated, layers may be created in the current layout which belong to the other layout that is edited.

  • Segmentation fault on drawing

    When "bitmap caching" is enabled, a segmentation fault may happen during drawing in certain (rare) configurations.

  • Shallow copy of instances is not working

    Instead, "deep copy mode" is used always. In that mode, new cells are created when an instance is copy and pasted. The intended behavior is just to copy the instance, not the cell which is instantiated.

  • Global configuration files override local ones

    The previous (0.21.x) behavior was that local, per-user configuration files override settings from the global configuration file (in the installation directory). The intention was to provide a default configuration through global configurations. In 0.22.2, global configuration files always override per-user settings. That is not the intended behavior

  • Arrow keys interfere with mouse movement

    When the arrow keys are used while a selection is dragged with the mouse, the original shape is moved which results in a strange behavior.

Version 0.22.1

  • Copy & and paste of PCell or library instances across layouts does not work

    Instead, the cell is duplicated, but it's no longer a PCell or library cell.

  • "klayout -v" segmentation faults

    The -v option is supposed to print the version number. After printing it, the executable terminates with a segmentation fault.

  • Missing support for 'real' Unicode file names

    Using Unicode filenames (i.e. Chinese) file names does not work properly. In particular these files are not opened on Windows. Unicode file names are not recorded properly in the "recently used" list.

  • LEF import issues

    The outline layer is not always generated correctly. Pin labels are not generated on pin shapes for LEF import.

  • Crash on exit when the clipboard contains something

    The application issues a segmentation fault on exit (or "is not working" on Windows) when the clipboard contains data.

  • Ruby debugger crashes in some cases

    In some cases (i.e. breakpoint in a widget callback) the debugger will crash with a "Stack level too deep" message.

  • Instances of leaf cells are always copied "flat" to another layout

    There is no way to copy the instance plus cells currently.

  • Sometimes PCell variants remain as top level cells

    If the Instance function is cancelled and a PCell was active, a new top cell will remain which holds the PCell that was about to be placed. These cells can be deleted manually, but that may be annoying.

  • Help index cache may grow large

    When switching between versions, the help index that KLayout creates once may grow larger every time a new program version is used. This can increase startup times of the program.

Version 0.22

  • Edit/Select/Disable All not working

    This function is supposed to disable all selectable items. Instead, an internal error message is issued. There is a patch for that problem here.

  • Build problems with gcc 4.0

    There is a patch for that problem here.

  • GDS text size is based on micron instead of user units

    Because of this the text object size may not be correct if the user unit is not micron.

  • Arrow keys may behave differently

    This can be annoying effects if you are used to a particular behavior. On the other hand, moving with the arrow keys now is possible in move mode.

  • -z option works differently

    "-z" not is a true "non-GUI" mode, in which no XServer connection is made on Linux. The advantage of this is that KLayout can be used as a engine on display-less servers. But some scripts depending on MainWindow or LayoutView objects will not work because these objects are no longer available. The solution will be to restore the original behavior of "-z" and implement a different, true display-less mode (i.e. "-zz").

  • Crash when using custom key bindings on some platforms

    On some platforms, apparently Linux and recent Qt versions, KLayout crashes when custom key bindings are defined and the respective key is pressed.

  • Issues with the macro tree

    Drag & drop does not work correctly within the macro tree on Windows. KLayout crashes when trying to open a macro file that is not writable.

Version 0.21.17

  • Gerber file reader

    SR command (step-and-repeat) is not supported currently. "AM" macro expansion does not work as expected: parameter expansion sometimes fails and the macro expansion does not use the units at definition but at instantiation.

  • Copy & and paste of layers in layer tree

    Layers are not copied to the current position but rather at the end of the layer tree.

  • CIF writer does not correctly write OASIS circles

    OASIS circles are represented as single-point paths with round ends. Such paths should be written as "R" round flash primitives to CIF.

Version 0.21.16

  • "Save Current Cell As"

    "Save Current Cell As" alters the state of the view. In effect, another "Save" or "Save Current Cell As" does not give the expected result. In particular, "Save" will repeat "Save Current Cell As" and not save the whole layout.

  • Images take much memory

    Images consume more memory than they are expected to. A single RGB pixel has a footprint of 15 Bytes.

Version 0.21.15

  • No timestamps in GDS files

    Currently, the time written into the GDS timestamp entries for BGNLIB and BGNSTR is a dummy value.

  • DXF writer creates layer names with blanks

    In some cases, in particular when writing layers with GDS layer/datatype plus a name, the DXF writer will create layer names with blanks in it. AutoCAD does not accept such files.

  • Rendering of foreground objects

    Foreground objects (i.e. rulers) are not rendered correctly in the printout.

Version 0.21.14

  • Initial cell not selected correctly in some cases

    The largest cell is selected which may not necessarily a top cell.

  • Excellon drill files not read

    The PCB importer does not accept many Excellon drill files, in particular when they contain routes.

Version 0.21.13

  • Cells can be copied and pasted in viewer mode

    That feature is not intended and does not work correctly.

  • Resetting the configuration requires a restart of the application

    Currently, Reset does not immediately reset the configuration.

  • OASIS reader: overflow in g-deltas

    Due to internal 32bit-processing, some g-deltas can be subject to overflow which gives wrong coordinates.

Version 0.21.12

  • Clip bug

    The clip function does not work correctly if empty cells are present.

  • CIF does not support command 93 (AREF)
  • Ruby scripts and Ruby 1.9

    Some problems have been reported when using Ruby script and the Ruby 1.9 interpreter. This is in particular the case in the Windows executable. "Dir.glob" does not work correctly for example.

Version 0.21.11

  • GDS2Text format not correctly recognized in some cases

    The automatic detection of the GDS2Text format fails in some cases.

  • Texts: strings with line breaks cannot be edited

Version 0.21.10

  • Command line option -p does not work correctly
  • OASIS writer problem

    Layouts with large coordinates are not written to OASIS correctly in some cases.

Version 0.21.9

  • Moving a cell

    The geometrical content of the instance is not drawn correctly in some cases.

  • PCB import problems

    When directly reading a PCB project (without using the assistant), some functions are broken (Bottom mounting mode, top cell, DBU).

  • RVE file reader

    The reader does not correctly handle check names with a dot.

Version 0.21.8

  • Layer properties files with tabs

    The first tab's name is not read.

Version 0.21.7

  • Navigator

    The navigator is broken. It is not functional if KLayout is closed with the navigator open.

Version 0.21.6

  • DXF reader

    Arc interpolation of polylines does not work correctly.

Version 0.21.5

  • DXF reader

    Bulges are not supported for polylines.

  • Performance issues on select

    Select (transient or on click) is slow in some cases. This happens in particular if cells in the hierarchy overlap heavily and many layers are present.

  • RBA: Edge.intersect? delivers wrong results when the edges are collinear

    The edges will be reported to intersect even if they don't. A workaround is to test if the bounding boxes overlap and the edges intersect.

Version 0.21.4

  • DXF reader

    Some POLYLINE examples were using a global width which was overridden by a per-vertex width. In that case the global width is taken rather than the correct local one.

  • Problems with non-english locales and UTF-8 file names on Linux

    On KDE, files cannot be opened when the path contains non-ASCII characters on UTF-8 file systems. In some cases, the decimal point is inconsistently ',' instead of '.' which is the standard for KLayout.

Version 0.21.3

  • CIF reader

    The CIF reader currently does not understand "DS" commands without a scale specification (i.e. "DS 20"). It always requires two additional numbers specifying the scale as a ratio of two integers (i.e. "DS 20 1 10").

  • Rotate methods swapped

    The clockwise rotate method rotates counterclockwise and vice versa.

  • "Draw border instances of arrays" feature broken

    Much is drawn and much more isn't ...

  • Ruby crash

    On some systems, the program crashes when a ruby script is loaded (i.e. with the "-rm" option) with a message "[BUG] terminated node (0x2a9708ca70)" or similar. This seems in particular to

Version 0.21.2

  • DXF reader still not complete

    In particular, interpretation of POLYLINE and LWPOLYLINE entities is not clear yet. In comparison to other converters, no merging of separate lines into polygons is provided.

Version 0.21.1

  • RBA: RdbItem.each_value is not working on const objects

    This is important, because const RdbItem objects are commonly encountered when scanning through a marker database with RBA.

  • DXF reader still not complete

    The interpretation of certain features (i.e. array instances, extrusion direction) is not clear yet.

  • Layer mapping broken for DXF and CIF readers, writers

    Incorrect layers are written for example when a layer subset is written. In addition, mapping or selection of input layers does not work correctly for DXF and CIF readers.

Version 0.21

  • Persistency of reader options is broken

    The program does not remember reader options when the dialog is closed.

  • RBA: each_selected is broken

    A segmentation fault occurs on Windows in the "each_selected" method of LayoutView.

  • DXF and CIF readers and writers incomplete

    DXF and CIF readers and writers implement only very basic features. Some important capabilities are missing, in particular for the DXF part.

Version 0.20.1

  • Program crashes when the marker browser is opened

    When the marker browser is opened with a maximum number of markers set to a value not equal to 1000 (the default), the program crashes if the marker browser window is opened from the menu (it works when the marker database is loaded from the command line with the -m switch).

Version 0.20

  • Net tracing does not extract net correctly

    This bug is related to branching conditions. In such cases, a net might not be extracted correctly.

  • Gerber reader does not correctly read certain macros

    The "outline" macro is read as a thin outline also in the "closed" case by the RS274X reader.

Version 0.19.3

  • Polygon cut algorithm for reducing the number of points per polygon in the GDS2 writer

    When the GDS2 writer has to reduce the number of points of a polygon, it will cut the polygon into smaller pieces. Under some circumstances, this algorithm fails. To avoid this problem, use the Multi XY record mode if possible.

Version 0.19.2

  • Crashes on Qt 4.6.0

    Due to a bug in Qt's QPixmap constructor in Qt 4.6.0, KLayout does not work with this version.

  • Ruby modules not loaded from the installation path on UNIX

    In most cases, ruby modules are not looked for in the wrong path. The intention was to search for ".rbm" files in the directory where KLayout is installed. Instead, the current or any other directory is searched depending on how the KLayout executable is specified on the command line.

  • OASIS reader too picky

    The OASIS reader does not accept files with forward references of the special "S_GDS_PROPNAME" property name.

Version 0.19.1

  • "Test for shapes in view" feature does not work properly for AREF's

    In some cases, array references are not considered and layers appear to be empty even if they are not.

  • RBA scripts crash in tight loops on Ruby 1.8.7 (i.e. Ubuntu 9.10)

    That is a ruby problem (http://www.ruby-forum.com/topic/198545). The problem is known and a new libruby version should be available soon.

  • GDS text reader problems

    In some build environments, problems have been encountered with GDS text files with negative values.

  • Interactive stretching of images is broken

    The interactive stretching of images with the square handles is sometimes leading to invalid results and does not work properly.

Version 0.19

  • Crash when selecting "..." node in the marker browser item list

    The item list is abbreviated using a dummy item labelled "...". When clicking at this item, the application crashes.

  • "Test for shapes in view" feature in layer list is extremely slow in some cases

    This feature marks a layer "unused" when now shape is shown on that layer in the view area. Currently, the application becomes very slow in some cases when this option is used.

Version 0.18

  • Crash when selecting "instance" mode on empty layout

    When the layout is empty (no cell present, i.e. top cell was deleted) and "Instance" mode is selected in editor mode, the program crashes with an internal error.

  • Issues on Mac OS X

    There are still some issues on Mac OS X, as well for the build as for the program itself - in particular with Qt 4.5.x. For example, with accessibility enabled, the program crashes when a file is loaded. This will be fixed in version 0.18.1.

Version 0.17.2

  • Sizing bugs

    The sizing function sometimes produces invalid results, in particular when doing a strong undersize.

  • Build not working for Mac OS X

    The 'ar' call has been changed such that the Mac OS X build should work now (not tested since no test system was available).

  • Crash when double-clicking a path end in partial mode

    When double-clicking on a path end in partial edit mode (dragging just the path end), the program crashed in some cases.

  • 'Fit selection' is not working properly

    Not all instances are taken into account.

  • Wrong DBU read from GDS2 files

    The DBU per user unit is used, which is not correct. Instead the DBU per meter unit should be used.

  • Round paths are not written properly to OASIS files

  • Windows repaint problem for hidden canvas content

    Strange effects occure when a non-modal front dialog is moved over the canvas area.

  • Space representation in vector fonts

    Space characters are not represented.

Version 0.17.1

  • Program hangs if the properties dialog is closed with the system menu

    When the properties dialog is closed using the system menu (the "X" button in the window title bar), KLayout goes into an unusable state. This does not happen if the dialog is closed using the "Close" button.

  • Program crashes if many text objects have identical location

    This happens if more than 100 text objects are present that have identical locations.

  • OASIS reader problems when property name and string ID's are defined after they are used

    This was a known limitation but came up recently in a certain application.

  • AREF row and column description was swapped and misleading

    In GDS files, row and column vectors can be arbitrary x/y value pairs. However, some tools implement a more strict interpretation in which only orthogonal row and column vectors are allowed. Also, row and column must be oriented in a certain way. In addition, the description of row and column vectors is swapped.

Version 0.17

  • Display freezes on some Windows installations

    Apparently due to a problem with Qt's grabMouse function on some Windows installations the display freezes when a zoom box or selection box is opened. By switching to the Task manager using "Ctrl+Alt+Del", the display can be unfrozen but zoom or selection operations a not possible. This problem existed in all previous versions as well and apparently occured in particular on Windows XP.

Version 0.16.1

  • Some flaws in partial edit mode and polygon or path creation

    In certain cases, the closing point of polygons was not created correctly, path segments did not snap correctly to 45 degree edges or partial edit mode was behaving in a strange way.

  • Order of recent file list was latest last

    ... which is contrary to what other programs implement.

  • Selection of very large arrays happened to be very slow

    This happened because many markers have been drawn for such arrays. This has been changed such that the array is not drawn as individual markers for large arrays. Instead, a representative geometrical description is given.

Version 0.16

  • Compile problems when ruby support is not enabled

    KLayout won't link unless ruby support is enabled (-rblib, -rbinc on build.sh given).

  • "open recent" function is not working correctly on Windows

    The file names are not stored properly in the config file - thus "open recent" does not work since backslashes are dropped.

  • "change layer" function is not working properly

    Sometimes an error is issued saying that the requested layer already exist (but it does not). Undo support is not implemented correctly.

Version 0.15

  • Child cells are shown multiple times in cell hierarchy

    Under certain circumstances, child cells are shown multiple times in the cell tree, i.e. a cell "A" which is a child of "TOP" might appear multiple times in the tree below "TOP". This is not intended - child cells are supposed to appear just once, even if instantiated multiple times.

  • "Save" saves all layers if none should be saved

    If the layers to be saved are confined, i.e. to visibles ones, it may happen that, if no layer is visible for example, all layers are saved instead. A workaround is to create a new layer (i.e. layer 1000, datatype 0) and save it. Such an empty layer will be saved but won't appear in the OASIS or GDS2 file, since it does not contain any shapes.

  • Text objects are not shown correctly if a scalable font is selected for them

    Depending on the transformation of the text, the text may appear at unexpected locations for example. A workaround is to use the "default" font.

Version 0.14

  • Crash on Windows the first time when the program is called:

    On windows, crashes have been observed, when the program is started the first time after installation. This indicates some problem with Qt installation in the registry. However, this bug was not tracked down yet, because it is not easy to reproduce. Since it only happens once, it is not considered pretty serious.

Version 0.13

  • Crash on Windows when the layer list becomes very small:

    The program crashes on Windows, if the layer list becomes too small to be displayed. This happens for example, if at the default size of the program window, the color panel, the frame color panel and the stipple panel are opened in that order. Then, the height of the layer list becomes a few pixels and the program crashes.

  • KLayout does not start on some platforms and exits with a segmentation fault:

    This problem has been found on the 64bit Ubuntu 7.10 platform for example. The program does not start up and exits immediately with a segmentation fault.

    Here is a small patch that fixes that problem:

    layApplication.h:53
      Application (int &argc, char *argv []);
    instead of:
      Application (int argc, char *argv []);
    
    layApplication.cc:50
      Application::Application (int &argc, char *argv [])
    instead of:
      Application::Application (int argc, char *argv [])