Commit Graph

259 Commits

Author SHA1 Message Date
Matthias Koefferlein 4e299d45f2 Provisions for self-contained plugin tests
Plugin tests are not placed into a "*.klp_ut" shared object
and are executed by the unit test runner.
2017-08-12 18:03:45 +02:00
Matthias Koefferlein 0e5a2afdf9 Added an icon 2017-08-12 15:40:52 +02:00
Matthias Koefferlein e9dd19ad0b Relaxed test conditions for cell hull generator test. 2017-08-12 10:11:28 +02:00
Matthias Koefferlein a6723a8155 Some test updates
* Generalized Polygon to edge interaction into db::Polygon tools
* Added tests for this
* Equipped region to edges interaction with this feature to
  reduce random test fails
* Multiple (reproducible) seeds for Region tests
* More tolerances for TilingProcessor tests
* ICplxTrans is_unity? implementation is using proper
  double tolerances now
* File watcher tests wait longer to allow for slow
  response on loaded Windows build server
2017-08-11 22:00:07 +02:00
Matthias Koefferlein 4ec8a838d5 Removed mode from test case name 2017-08-11 20:27:20 +02:00
Matthias Koefferlein 807b044731 Updated build scripts, fixed JUnit format emulation. 2017-08-10 23:31:32 +02:00
Matthias Koefferlein 7c59235889 Fixed a potential issue when using the db::Shape edge iterator on a non-existing hull in SimplePolygon. 2017-08-10 01:53:35 +02:00
Matthias Koefferlein 4dea5b40f2 Added buddies to build. 2017-08-09 22:37:58 +02:00
Matthias Koefferlein 5514aa8355 Aligned test suite XML output with JUnit format. 2017-08-08 23:35:40 +02:00
Matthias Koefferlein 36ccea8242 Fixed a doc typo. 2017-08-08 01:27:55 +02:00
klayoutmatthias 2e4ca67a39 Added application icon on Windows. 2017-08-08 01:20:58 +02:00
Matthias Koefferlein a2d690ba63 Generalized exe name in version string. 2017-08-06 23:12:01 +02:00
klayoutmatthias 592fe08921 Updated build script for enhanced deployment automation. 2017-08-06 22:56:38 +02:00
klayoutmatthias e6642f41f6 Updated deployment scripts for Windows. 2017-08-06 22:19:31 +02:00
Matthias Koefferlein 7ddc0d6b39 Added missing file 2017-08-06 18:32:04 +02:00
Matthias Koefferlein 8d6547291b Fixed Linux build. 2017-08-06 18:30:21 +02:00
klayoutmatthias ab98cd7678 Merge branch 'master' of https://github.com/klayoutmatthias/klayout 2017-08-06 18:22:13 +02:00
klayoutmatthias f8b3c92191 Windows and Ruby/Python for deploymenu
This commit deals with the deployment issue on Windows
where there is no global Ruby/Python installation and
the installer needs to package all required files.

The solution is to read the Ruby/Python path from a
file that is evaluated upon startup. The installer will
install these files together with the executable for
Windows. This feature is only enabled on Windows.

A specific issue occured: since the location of the
file needs to be determined, the path of the executable
needs to be known. The Ruby initialization requires the
path to be set very early, before QCoreApplication is
instantiated. But Qt complains in QCoreApplication::applicationDirPath
so that this approach cannot be used for this purpose.
2017-08-06 18:18:34 +02:00
Matthias Koefferlein f940c00a24 Updated documentation. 2017-08-06 16:45:52 +02:00
Matthias Koefferlein a8ac6aafe7 Updated doc and some images. 2017-08-06 00:38:45 +02:00
Matthias Koefferlein 287deaa574 Fixed some documentation typos. 2017-08-05 22:20:25 +02:00
Matthias Koefferlein 5b6b800e9d Updated documentation. 2017-08-05 22:13:00 +02:00
Matthias Koefferlein d6ca13f220 Updated documentation 2017-08-04 23:13:07 +02:00
Matthias Koefferlein cf48b39b89 Updated documentation 2017-08-03 21:57:48 +02:00
Matthias Koefferlein 6660c3f7d0 Updated documentation. 2017-08-03 21:43:53 +02:00
Matthias Koefferlein 4f48cd5dab Updated documentation 2017-08-03 21:21:59 +02:00
Matthias Koefferlein 9539de9fec Updated documentation 2017-08-02 23:11:13 +02:00
Matthias Koefferlein 824a7f9eb5 Bugfix: multiple message boxes on file change
The effect was: while a message box was open
to indicate a change of a file, new file changes
accumulated new message boxes. Now, the message
boxes won't accumulate and new file changes
are recognized after the message box is closed
and files were reloaded. Changes not acknowledged
by reloaded are presented again if changes were
seen while the message box was open.
2017-07-31 23:43:10 +02:00
Matthias Koefferlein ffeacd4630 Small bugfix: save options on tech setup page
The effect was: when not having save options in the technology
setup (for example, when migrating from 0.24 to 0.25), it was
not possible to edit the save options page in the technology
manager because the data slot of the save options wasn't
initialized.
2017-07-31 23:13:36 +02:00
Matthias Koefferlein 919d2d56fa Ported oasis-fix to GDS2 reader too (reduction of zero-distance axes in AREF's) 2017-07-29 19:05:52 +02:00
Matthias Koefferlein 1b6c25513a Merge branch 'oasis-fix' 2017-07-29 18:39:41 +02:00
Matthias Koefferlein 808df3e90f More verbose error messages for expression methods. 2017-07-29 11:40:11 +02:00
Matthias Koefferlein 4a43bc23e5 Bugfix: breakpoints were not effective sometimes
Reason: when a page was opened in the macro IDE,
the file to ID cache inside the Ruby interpreter
did not get updated. Hence there was no link
between breakpoint and page and the breakpoint
was ignored.
2017-07-29 11:38:46 +02:00
Matthias Koefferlein a76fccf57b Updated some documentation. 2017-07-29 11:37:58 +02:00
Matthias Koefferlein 32ba5ee635 Some fixes for OASIS reader
- Allow full 32bit for box width and height
  and some other properties (for border case
  testing - not recommended)
- Reduce arrays with step distance 0 to
  dimension 1 - avoids overlapping instances
  or shapes.
2017-07-28 00:19:39 +02:00
Matthias Koefferlein 6870de884d Small fix for test suite output. 2017-07-27 00:04:51 +02:00
klayoutmatthias b7698b6c39 Windows build issue fixed: linking problems. 2017-07-27 00:02:47 +02:00
Matthias Koefferlein b13c2e69c3 Fixed a potential infinite recursion for Qt bindings
The problem is caused by an implementation detail:
To monitor the lifetime of Qt objects, a monitoring
object is attached to them. This used to happen through
child objects but attaching such issues QChildEvents
which - if routed over script objects - will itself
required objects to be attached a monitoring object.

The solution is to attach monitoring objects through
QObject dynamic properties.
2017-07-26 23:27:24 +02:00
klayoutmatthias c442202ca4 Enabled Windows build on Qt5. 2017-07-23 23:36:29 +02:00
Matthias Koefferlein 1b1ed7b291 Fixed a performance issue with many markers. 2017-07-19 21:47:45 +02:00
Matthias Koefferlein eb9363eca1 Bugfixes for XOR tool
1.) Wrong scaling of output when using output to layout A or B and
    different DBU's were present
2.) A threading issue when delivering outputs to layout A or B resulting
    in random crashes and weired behavior. This happened when threading
    was enabled.
2017-07-18 23:31:09 +02:00
Matthias Koefferlein 45b774a3af Fixed a XOR issue
Bug: sometimes, if the files had different database units, the XOR
tool was showing differences while there are none.

This was due to a sloppy computation of the tile boxes. The solution
is to properly round the tile size to a common database unit and
to use a common effective size for both inputs.
2017-07-18 22:33:54 +02:00
Matthias Koefferlein 7d31825b11 DRC: added collect*, select and each methods. 2017-07-17 21:36:29 +02:00
Matthias Koefferlein 703a0ee85d Added "transformed" method to several shape primitives
The new version will transform double-coordinate types to
integer-coordinate types through a "VCplxTrans".
2017-07-17 21:05:38 +02:00
Matthias Koefferlein db5ac31ada New import methods for Region, EdgePairs and Edges
Region: insert of other regions, shape collections (with transformation)
Edges: insert of other edge collections, regions, shape collections (with transformation)
EdgePairs: insert of other edge pair collections
2017-07-16 22:25:08 +02:00
Matthias Koefferlein 43359195ea DRC: corners function
Plus: a new RBA binding for decompose_convex/trapezoids that delivers a region.
2017-07-16 00:03:45 +02:00
Matthias Koefferlein cf6aef46e5 Some enhancements for DRC
- modified definition of texts with the ability to produce
  point-like edge objects
- middle and extent_refs methods for center point and other
  references.
2017-07-13 23:38:36 +02:00
Matthias Koefferlein 4ad20fa4ce Region to edge interactions
With this fix, regions can be interaction-tested with edge collections.
Only "normal" interaction is available - select_overlapping is not. This
is still confined to region to region interactions.
2017-07-12 22:41:11 +02:00
Matthias Koefferlein df46aabb2e Added an optional cellname parameter for the 'report' function in DRC. 2017-07-12 21:11:45 +02:00
Matthias Koefferlein ca71384a9a Fixed the images of the DRC doc. 2017-07-11 00:48:54 +02:00
Matthias Koefferlein e2bcac657a Implemented LayerInfo for DRC input/output
- Added a "layers" function too
- Updated tests
- Updated documentation
2017-07-11 00:36:51 +02:00
Matthias Koefferlein be20bdd9cc Bugfix: could drag and drop a cell in viewer mode. 2017-07-10 22:19:16 +02:00
Matthias Koefferlein 986cb7f0c2 Fixed an uninitialized memory issue (thanks, Stefan!) 2017-07-10 20:49:52 +02:00
Matthias Koefferlein 02819c5f1e Hash functions and fuzzy compare for RBA
RBA now provides a hash method for Box, Edge, EdgePair, Trans,
Polygon, SimplePolygon, CellInstArray, LayerInfo, Path, Text,
Point and Vector.

eql? is mapped to ==.

==, != and < act "fuzzy" for the double-typed variants.

Hence, these objects can be used as hash keys now.
2017-07-09 22:40:56 +02:00
Matthias Koefferlein 8396463daf Added text support in DRC
- A new constructor for RBA::Region has been provided to
  create text markers from a shape iterator
- The DRC framework has been enhanced with a "text" function
2017-07-07 00:02:52 +02:00
Matthias Koefferlein 801f83f09c Added DRC test suite and "smoothed" function for DRC 2017-07-06 23:02:11 +02:00
Matthias Koefferlein 14e1c0d5bd Reverted snap implementation to use micrometer unit objects. 2017-07-05 00:18:50 +02:00
Matthias Koefferlein 8910828726 More consistent definition of precision for double types
The double types (DCoord, DPoint, DVector ...) support a
more consistent equivalence criterion now. This supports
micron-unit objects without loss of precision.

Before this fix, the precision used for 0.01 which was
basically implying a resolution of 10nm for micrometer-unit
double objects.
2017-07-04 23:50:30 +02:00
Matthias Koefferlein 18f79dde67 First fix - adjusted accuracy for micron units
But: floating points coordinates are used internally for
size - hence dbPolygon:20 test is failing.
2017-07-02 23:33:23 +02:00
Matthias Koefferlein 24b213df40 Fixed a potential segfault because of static initialization order. 2017-07-02 22:42:53 +02:00
Matthias Koefferlein 798425c564 OASIS reader bugfix (PROPVALUE forward refs in lists) 2017-07-02 19:45:02 +02:00
Matthias Koefferlein 9c33a73086 Some indication of selected state also for single-position rulers. 2017-07-02 19:21:38 +02:00
Matthias Koefferlein b6b604ff93 'goto position' now shows a single-cross ruler on the target place. 2017-07-02 19:21:04 +02:00
Matthias Koefferlein d83c420c0a Better support for delete-while-iterate on stable vectors 2017-07-02 19:19:55 +02:00
Matthias Koefferlein 78cdec4d68 WIP: rulers
- some refactoring
- auto-registration of cross and measure rulers
2017-07-02 02:19:38 +02:00
Matthias Koefferlein 86e2b8cad1 WIP: auto-measurement rulers
- More tests on the snapping functions
- Bugfixes and enhancements for ruler features
2017-07-01 23:07:33 +02:00
Matthias Koefferlein 4ebfb24fca Ruler's auto-measure function improved
Already a very useful feature.
First tests added for snap feature.
2017-07-01 10:03:47 +02:00
Matthias Koefferlein c263878a4b WIP: rulers and auto measure
* Fixed snapping - don't use double objects with micron units
* Implemented first version of auto measure - needs improvement.
2017-06-30 00:03:21 +02:00
Matthias Koefferlein 919de1af01 Ruler enhancements
* There is a ruler mode now
* Ruler templates can have categories
* Ruler templates can be defined from RBA/pya
* Single-click annotations are implemented already
2017-06-28 23:17:02 +02:00
Matthias Koefferlein e30f1b6a34 Added unit tests for RBA::Annotation. Plus fixed a bug in the compare function. 2017-06-28 21:39:06 +02:00
Matthias Koefferlein d0427184e4 Fixed a typo. 2017-06-27 23:30:03 +02:00
Matthias Koefferlein 1b3a49e043 Advanced rules now working. 2017-06-27 23:16:59 +02:00
Matthias Koefferlein 9398b5373a WIP: enhanced annotations - ellipses, text alignment etc. Some things aren't working yet! 2017-06-27 00:54:31 +02:00
Matthias Koefferlein 61ef30f9ad Enhanced layout statistics form
The form offers a detailed shape statistics page.
2017-06-25 22:10:12 +02:00
Matthias Koefferlein da07e51257 Bugfix: macro editor bracket detection failed
On Ruby, a syntax highlighter element could contain
duplicate brackets, so that such an expression

  ((a+1)+1)

was not handled correctly. The solution is to treat
each individual character inside the elements but
skip comment and string elements.
2017-06-25 11:30:24 +02:00
Matthias Koefferlein 93713d19e1 Ruby integration and debugger enhancements
- Massive performance improvement with debugger - trace was
  eventually clearing the file to id map.
- UI updates on debugger did not happen because delayed
  execution of functions got disabled.
2017-06-21 01:37:07 +02:00
Matthias Koefferlein 96c150a4ee Fixed #13 (OASIS reader performance on forward-ref PROPSTRING) 2017-06-20 22:05:22 +02:00
Matthias Koefferlein 88a3068a0b More abilities for native plugins
This commit is a preparation for native plugins. It adds
the ability to register for autorun and autorun-early
for native, binary extensions.

Plus, the search path for binary extensions was modified
so it does not need to be ABI specific (i.e. without -gcc).
This prepares for a plugin scheme which uses a C-only API
and does not impose ABI compatibility requirements.
2017-06-19 22:33:37 +02:00
Matthias Koefferlein 19777e5629 Provide a more elaborate interface for native plugins
With this interface, plugins will be able to specify
their version, register autorun functions and more.
2017-06-19 01:02:49 +02:00
Matthias Koefferlein 5ee781a93f Reactivated some from_xy methods for backward compatibility 2017-06-17 16:53:01 +02:00
Matthias Koefferlein 9ff1a76f94 Added some convenience methods for transformations
* Reactivated (deprecated) from_xtrans methods for backward
  compatibility
* Added more flavours of "trans" and "*" (like transformation of
  boxes)
2017-06-17 16:45:01 +02:00
Matthias Koefferlein 7e6dfdf5b4 Another tiny performance enhancement. 2017-06-17 16:01:09 +02:00
Matthias Koefferlein b0fbbadd83 A small performance improvement (by avoiding intermediate objects) 2017-06-17 00:32:00 +02:00
Matthias Koefferlein 07b973a312 RBA performance
Some small performance improvement by avoiding calls to "initialize"
where not required.
2017-06-16 22:28:36 +02:00
Matthias Koefferlein afcacf5b1f WIP: brought down the time for call variant determination by caching. 2017-06-12 23:23:13 +02:00
Matthias Koefferlein c891d06ac3 Some performance enhancement (~30%) of RBA/PYA
This was achieved by separating the methods into
constructors and callbacks, hence there are less iterations
required when lookup up the latter.
2017-06-12 00:31:00 +02:00
Matthias Koefferlein a5d9bbb3d1 WIP: fast replacement for rb_gc_register_address/rb_gc_unregister_address. 2017-06-05 23:26:10 +02:00
Matthias Koefferlein 1bc0243c0a Unit tests fixed
The "active_cellview_changed" event was issued multiple times.
This fix avoids this redundancy.
2017-06-05 22:27:49 +02:00
Matthias Koefferlein dbdb46c5cb A small optimization for instance marker drawing. 2017-06-05 19:07:18 +02:00
Matthias Koefferlein cb296a802e Bugfix: instance selection cycling wasn't working
When instanced overlay, it wasn't possible to select
the "other" instances. This is fixed. (reference: Trac 1015).

In addition:
- The instance selection now shows the label
- Bugfix: the transient selection now really is disabled
  (it was popping up once after selection happened)
- RBA::Marker#line_style has been added
2017-06-05 18:58:24 +02:00
Matthias Koefferlein 1b0dcb5bf9 Better installation feedback for package manager
Now the confirmation dialog stays open and will show a log with the
installation progress and results.

The "marked" icon has been changed to look a bit less painted.
2017-06-05 12:54:09 +02:00
Matthias Koefferlein 46fccb99bc WIP on Salt package manager
- made WebDAV implementation compatible with Git's SVN API
- bugfix: parallel requests were not supported on tl::HttpStream
2017-06-05 03:16:29 +02:00
Matthias Koefferlein 2f82a8d853 Bugfix: new package is selected after it is created 2017-06-04 00:24:55 +02:00
Matthias Koefferlein edf7caa2fb Enhanced Salt package capabilities
* Salt packages can host native Ruby and Python
  libraries now. The "ruby_lib" and "python_lib"
  templates provide such native libraries.
  This way we can basically wrap every native
  extension in such a package.
* Ability to supply binary plugins through
  Salt packages as well.
2017-05-27 22:32:55 +02:00
Matthias Koefferlein f41e849e2f A little refactoring and polishing of the Salt Manager dialog. 2017-05-26 23:47:36 +02:00
Matthias Koefferlein e08e3459af Set the default salt mine URL to the final one
+ fixed a WIN32 build error.
2017-05-17 22:22:27 +02:00
Matthias Koefferlein 60cfbd9c6f Merge branch 'salt' 2017-05-07 23:55:22 +02:00
Matthias Koefferlein 9b42049abe clang compatibility
Fixed some compile issues with clang and
some warnings.
2017-05-07 23:52:20 +02:00
Matthias Koefferlein 88e753e86f Fixed some typos and bugs in the Salt templates 2017-04-29 01:59:19 +02:00
Matthias Koefferlein eca08cbd99 Added many Salt templates. 2017-04-29 01:40:32 +02:00