Commit Graph

161 Commits

Author SHA1 Message Date
Matthias Koefferlein a8f3df7aa5 Refactoring of the interpreter scheme with the goal to provide a functional cleanup. This is required if someone stops inside the debugger. Without a proper cleanup the application becomes dysfunctional. 2021-03-15 10:17:25 +01:00
Matthias Koefferlein 9e474e4cc2 Provide more information for GSI error messages. 2021-03-13 00:15:05 +01:00
Matthias Koefferlein 94e6f0f7a6 Logging progress for DRC, introducing 'abstract progress' concept 2021-02-07 23:41:53 +01:00
Matthias Koefferlein fc4976be81 Remove test code 2021-02-01 22:01:29 +01:00
Matthias Köfferlein 97ed4cf0f2
Merge pull request #712 from KLayout/gsi-fixes
Some enhancements to script API
2021-01-31 19:20:35 +01:00
Matthias Koefferlein f263f5c44c Compatibility with older Ruby and Python versions in unit tests. 2021-01-31 17:14:21 +00:00
Matthias Koefferlein 6a23769387 Different integration of Dispatcher interface with MainWindow
In 0.27 the main window got it's own configuration API
as now it's possible to instantiate a main window explicitly
and not application backs up configuration. Because GSI allows
as single base class only, we cannot derive from Dispatcher.
A delegate is used instead.
2021-01-26 07:56:49 +01:00
Matthias Koefferlein d31f87f053 Some issues with the byte array binding fixed, less ambiguitites with Qt bindings, tests added. 2021-01-24 23:44:40 +01:00
Matthias Koefferlein 5aac018503 Mapping QByteArray (and std::vector<char>) to Python 'bytes' now. 2021-01-24 17:36:40 +01:00
Matthias Koefferlein d1e6845ae4 Replaced std::auto_ptr by std::unique_ptr because the latter is deprecated 2021-01-23 21:55:51 +01:00
Matthias Koefferlein 7d4310d343 Updated copyright to 2021 2021-01-05 22:57:48 +01:00
Matthias Koefferlein 4ec00fb129 Fixed an issue with wrapping new objects into tl::Variants which are returned directly. For these objects, ownership needs to be transferred to the script. 2020-12-27 17:09:06 +01:00
Matthias Koefferlein 8c1e0d7e0e Added option to retrieve current memory footprint, implemented for Windows (to be tested) 2020-10-11 17:47:30 +02:00
Matthias Koefferlein c517aa4ff7 Cherry-picked MacOS fixes into master 2020-06-27 01:47:35 +02:00
Matthias Koefferlein a9c0616aa0 WIP: more changes 2020-05-31 10:37:30 +02:00
Matthias Koefferlein 53c81cc572 Got rid of most of the @args 2020-03-14 21:50:47 +01:00
Matthias Köfferlein 7c89192ad8
Fixed #502 (issues with AbsoluteProgress) (#504)
* Fixed #502 (issues with AbsoluteProgress)

* Updated Jenkinsfile to not publish a PR build
2020-02-21 18:37:50 +01:00
Matthias Koefferlein b8c82c4f8b Updated copyright notice to 2020 2020-01-05 00:59:43 +01:00
Matthias Koefferlein 3a12714593 Fixed some doc issues, added doc for hierarchical compare. 2019-08-26 18:55:35 +02:00
Matthias Koefferlein 441f946f43 WIP: LVS rerun feature 2019-08-25 21:55:48 +02:00
Matthias Koefferlein 515b68b76f WIP: provide a recipe registration facility for LVS rerun 2019-08-25 18:03:27 +02:00
Matthias Köfferlein 16ae0346b8
Merge pull request #314 from KLayout/vars-for-queries
Vars for queries
2019-08-18 17:31:11 +02:00
Matthias Koefferlein e33c2f7b66 Less dependencies on compiler details for RBA/pya tests. 2019-07-28 16:36:31 +02:00
Matthias Koefferlein 49c1bacb98 Introducing variables for layout queries:
1.) The ExpressionContext class is a mapping of tl::Eval
    and allows providing a variable context for the LQ.
    Expression class is derived from ExpressionContext now.
2.) The variable lookup has been changed so that variables
    can be modified even if they come from a parent context.
3.) LayoutQuery and iterator has been given an argument to
    supply the context
2019-07-28 01:33:30 +02:00
Matthias Köfferlein f82e7929d8 Fixed a conversion issue with ints on MSVC
Because long is 32bit on Windows (like int), the
conversion from long to unsigned int was subject
to sign overflow. This was fixed by going to
unsigned int via unsigned long.
2019-07-20 00:28:32 +02:00
Matthias Koefferlein 9c6ed3e956 Merge remote-tracking branch 'origin/master' into dvb 2019-05-29 22:32:05 +02:00
Matthias Koefferlein 759cc835d9 Added LayoutToNetlist test for pya. 2019-05-27 20:28:48 +02:00
Matthias Koefferlein 419ed7dd78 Bugfixed the pya and RBA GSI initialization after last refactoring. 2019-05-27 18:44:42 +02:00
Matthias Koefferlein 5ed61bcb5a RBA/pya: don't inject child classes into module
Previously, child classes have also appeared in
the module. Now, they only appear in the parent
class.
2019-05-27 00:54:33 +02:00
Matthias Koefferlein 4858f3418a Some refactoring of the GSI class generation scheme
The main fix was to not register the original class when
adding it as a child class. Otherwise duplication happened.

This requires sorting of some kind when generating the classes.
Some refactoring has been applied here.
2019-05-26 22:38:03 +02:00
Matthias Koefferlein eb81a7e5a6 GSI binding of LVS objects. 2019-05-26 09:01:21 +02:00
Matthias Koefferlein 590f078d6a WIP: cleanup. 2019-05-11 22:37:24 +02:00
Matthias Koefferlein f72790e808 WIP: glob pattern - GSI binding to enable compatible implementations. 2019-05-11 22:35:50 +02:00
Matthias Köfferlein a1bac382dc
Merge pull request #256 from KLayout/issue-251
Fixed #251 - exit handler missing? [skip ci]
2019-04-04 07:30:13 +02:00
Matthias Köfferlein 053db73e85
Merge pull request #257 from KLayout/spell-fixes
Fixed some spelling errors (allow to, allows to)
2019-04-04 07:30:02 +02:00
Matthias Koefferlein 5310a37f75 Fixed #251 - exit handler missing? [skip ci]
RBA::MainWindow::instance.destroyed do
  RBA::MessageBox::info("It's Over!", "The main window was destroyed", RBA::MessageBox::Ok)
end

at_exit do
  puts "It's over!"
end

RBA::Application::instance.aboutToQuit do
  RBA::MessageBox::info("It's Over!", "The main window was destroyed", RBA::MessageBox::Ok)
end
2019-04-03 23:29:40 +02:00
Matthias Koefferlein eacd5fc19d Fixed some spelling errors (allow to, allows to) 2019-04-03 19:15:09 +02:00
Ruben Undheim d287b6958b A few more spelling fixes 2019-04-03 08:23:27 +02:00
Ruben Undheim 5d26cf4c77 Spelling errors in code and comments fixed 2019-03-31 15:25:18 +00:00
Matthias Koefferlein de85058ecf Bugfix: crash on Ubuntu in pya:qtbinding
Reason: a reference to a temporary object was passed
to a function. This happened for a default value.
The solution is to create a heap object to such default values.
2019-03-17 18:22:19 +01:00
Matthias Koefferlein 30e26c4f96 Avoid an issue with virtual functions
Reimplementing virtual functions with
"const &" arguments wasn't behaving as
expected because these arguments were
copied.

Now, "const &" for arguments (in virtual
function reimplementation) is not implemented
as a copy.

In addition, now it's possible to declare
results as references always (also if const &).

See gsiTest.cc:1078 for example:

  //  gsi::arg_make_reference makes the function's return value
  //  always being taken as a reference
  gsi::method<C_P, const CopyDetector &, const CopyDetector &, gsi::arg_make_reference> ("pass_cd_cref_as_ref", &C_P::pass_cd_cref)
2019-01-31 01:07:15 +01:00
Matthias Koefferlein d4d7ea8022 Updated copyright. 2019-01-08 01:09:25 +01:00
Matthias Koefferlein feb2b69aa9 Merge remote-tracking branch 'origin/master' into dvb 2019-01-08 00:49:16 +01:00
Matthias Koefferlein bcac78235b Fixed a testsuite fail after last commit. 2019-01-04 01:59:52 +01:00
Matthias Koefferlein e3b8d3635c Small bugfix: object._destroy wasn't working for directly passed objects. 2019-01-02 23:18:14 +01:00
Matthias Koefferlein ec7ab8e01d WIP: moved code. 2018-12-30 14:15:58 +01:00
Matthias Koefferlein 7073a74aa5 WIP: More on deep regions & hier processor
- Splitting of shapes on output of booleans
- A bugfix: error happened when pulling intruders from second-next hier level
- Tests added
- Some TODO comments added
2018-11-22 01:26:03 +01:00
Matthias Koefferlein 121ec46390 Attempt to introduce multithreading into hierarchical processor
However, performance does not scale well currently.
2018-10-08 00:10:54 +02:00
Matthias Köfferlein e69ed872a7 Fixed a static initialization race. 2018-09-09 18:31:05 +02:00
Matthias Köfferlein 57b8826e2c pthread support enabled for gsiObject.cc 2018-09-09 16:46:51 +02:00
Matthias Köfferlein 28f8a1ee7d Merge branch 'pymod' into pymod-msvc 2018-09-07 22:56:22 +02:00
Matthias Köfferlein ce01ce2dae Fixed an issue with destruction callbacks in the QApplication destructor - in this case the interpreter may be nulled already and callbacks must not happen into Ruby/Python. 2018-09-06 23:37:26 +02:00
Matthias Köfferlein 356a468d66 A couple of changes to make MSVC work - not done yet. 2018-09-02 00:40:35 +02:00
Matthias Koefferlein c9771f54eb Merge branch 'master' into pymod 2018-09-01 09:37:08 +02:00
Matthias Köfferlein af50c0f0c3 Many warnings fixed for MSVC 2018-08-29 01:46:18 +02:00
Matthias Köfferlein 23d715001b First steps towards enablement of MSVC2017 for pymod. A lot of things to TODO yet ... 2018-08-04 18:02:39 +02:00
Matthias Koefferlein f795aa84ec Avoid one more deadlock in gsi::Proxy. 2018-07-13 18:24:41 +02:00
Matthias Koefferlein cf3a6c2ce5 Fixed a deadlock. 2018-07-13 08:08:15 +02:00
Matthias Koefferlein 61a37fc3c3 Prevent a deadlock when destroying gsi objects. 2018-07-12 23:28:30 +02:00
klayoutmatthias 616c2942e1 WIP: made pymod functional on Windows (without Qt). Tests pass. 2018-07-10 23:34:30 +02:00
Matthias Koefferlein d2c890ab6d WIP: fixed unit tests for Qt-less build. 2018-07-10 01:17:35 +02:00
Matthias Koefferlein 2b64c4bf82 Bugfix: multithread-safety for gsi::Proxy (required for the tiling processor use case). 2018-07-06 00:56:34 +02:00
Matthias Koefferlein bbfcd9cf9e Made normal build work again. 2018-07-03 01:49:06 +02:00
Matthias Koefferlein 239b7ca3ff First (major) steps towards a Qt-less basic build. 2018-07-02 18:20:20 +02:00
Matthias Koefferlein f4dd012005 WIP: refactored GSI test classes so they are hard-linked into the ut_runner binary. Dynamic loading inside .ut files happens too late. 2018-06-19 21:12:53 +02:00
Matthias Koefferlein 361bc64870 WIP: fixed some build issues, removed some link dependencies which causes issues on Windows. 2018-06-19 20:31:55 +02:00
Matthias Koefferlein eca8697398 WIP: some refactoring of pya binding and data keeping. Added more conversion functions for use in external code. Needs testing. 2018-06-07 01:05:36 +02:00
Matthias Koefferlein 403840b109 WIP: some bug and performance fixes. 2018-06-01 23:36:01 +02:00
Matthias Koefferlein 3882f6a3b1 WIP: further generation of Python module (kind of slow currently + dependent modules need to be loaded manually) 2018-05-31 23:22:35 +02:00
Matthias Koefferlein 07d9363ea7 WIP: more python modules, made gsi initialization safe against duplicate init. 2018-05-31 20:51:09 +02:00
Matthias Koefferlein 0e29c997f6 WIP: refactoring, fixed documentation and some mistakes. 2018-05-31 01:11:24 +02:00
Matthias Koefferlein c30d52c801 WIP: fixed a lot of compiler issues after last refactoring. 2018-05-30 01:00:13 +02:00
Matthias Koefferlein 6468bb7ab9 WIP: refactoring of GSI structure for separated modules. 2018-05-30 00:39:58 +02:00
Matthias Koefferlein e1922da3b2 Better memory statistics. 2018-04-15 00:54:30 +02:00
Matthias Koefferlein 2f46f0d1c6 Fixed some issues found with Coverity. 2018-02-21 00:21:19 +01:00
Matthias Koefferlein 53328d1767 Merge branch 'macos-build' from kazzz 2018-01-14 17:29:59 +01:00
Matthias Koefferlein 2de6b691b4 64bit coordinate support enhanced
- int128 to string support for output
- unit tests
- some compiler issues fixed
2018-01-10 22:12:55 +01:00
Matthias Koefferlein 8003d1bb47 Merge branch 'master' into macos-build-on-master 2018-01-02 23:37:45 +01:00
Matthias Koefferlein ffb56335fb Updated copyright note to 2018. 2018-01-01 21:08:06 +01:00
klayoutmatthias 7e0f1522ac Windows build compatibility
The issue is with "dllexport": previously, dllexport was present on
exposed templates tool (= visibility(default) for gcc/clang). This
ensured MacOS compatibility since then the typeinfo is corretly
shared and dynamic_cast/typeid works.

For Windows, the "dllexport" equivalent requires the template
instantiations to be declared "external" which is a coding nightmare.

The solution is to provide separate macros for real (non-specialized,
not explicitly instantiated) templates (.._PUBLIC_TEMPLATE) which
is defined as empty for Windows and "visiblity(default)" for gcc/clang.
2018-01-01 18:55:11 +01:00
Matthias Koefferlein d670083111 Even more exported templates .. 2017-12-31 11:43:44 -08:00
Matthias Koefferlein c4cf394719 One more external visibility ... 2017-12-31 10:56:46 -08:00
Matthias Koefferlein 6b4d24b442 One more external visibility ... 2017-12-31 10:23:54 -08:00
matthias 063811edc4 Solved the clang/MacOS startup failure and menu issue
1.) Startup issue:

This is solved by making sure templates with virtual functions
are made visible in the DSO. This way, dynamic_cast is possible
across DSO's.

Scary: clang/MacOS wants the forward declarations be declared visible as well.

2.) Menu issue:

The best solution is to have only one QMenuBar. The navigator
now gets a synthetic menu bar composed of QToolButtons.
2017-12-30 15:22:16 -08:00
Matthias Koefferlein c63a47dd89 Added tests for klayout app
This commit also contains some important fixes:
 * Option -wd wasn't working
 * Relative layout file paths in session files are resolved as relative
   to the session file. On writing, absolute paths are used, so this
   change only affects session files build intentionally.

Plus:
 * Program version is available in unit tests too
 * Fixed a typo in the RBA::Expression documentation
2017-12-27 17:52:35 +01:00
Matthias Koefferlein 21e42788e6 Fixed #39 (Action cannot be reassigned) 2017-12-17 22:38:48 +01:00
klayoutmatthias b49db04fb4 Fixed MacOS build
The LLVM STL implementation does not recognize "typedef void iterator_traits"
as dummy declaration. It will fall back to an empty traits struct.
Using the default "forward_iterator_tag" for the iterator_traits solves
this compile issue.
2017-12-12 00:21:16 +01:00
Matthias Koefferlein 1cea7dfd23 Fixed #33 (Plugin factory not working when using with Python)
The fix consisted of introducing "factory" type virtual
methods which ensure that a reference is held to the
returned object. This is important for implementing
factory methods in Python. Without this, the object
get destroyed before we have a chance to increment the
reference count.
2017-12-11 23:51:00 +01:00
Matthias Koefferlein 65ec67ca3c Test classes for GSI unit tests must not be exported. 2017-09-03 14:51:41 +02:00
Matthias Koefferlein 388da45703 Fixed gsi::ClassBase::has_class(name) 2017-09-03 12:45:34 +02:00
Matthias Koefferlein 6c26b2a251 Speeding up the startup initialization by using proper type maps for GSI. 2017-09-03 11:52:06 +02:00
Matthias Koefferlein 196d3a60e7 Fixed the build with less dependencies. 2017-09-03 10:29:14 +02:00
Matthias Koefferlein cfe8375be0 Unit test refactoring
Move ut framework to tl, so there are less complex
dependencies.
2017-09-03 01:54:11 +02:00
Matthias Koefferlein 23fdcec7c6 Don't install GSI test library. 2017-08-27 19:40:32 +02:00
Matthias Koefferlein d080b55c5b Bugfix: tiling processor's _rec method wasn't delivering virtual methods. 2017-08-27 10:41:32 +02:00
Matthias Koefferlein 79811994f6 Refactoring: moved unit tests to libraries for some other libs 2017-08-26 23:43:40 +02:00
Matthias Koefferlein 000917d2c9 Refactoring: moved unit tests to libraries for some libs (ut modularization) 2017-08-26 22:44:31 +02:00
Matthias Koefferlein 55e797ffaf Provide proper INSTALL targets for .pro files
Plus: reduce compiler warnings
2017-08-21 02:33:45 +02:00
Matthias Koefferlein f013f1541e For strmxor unit tests: gsi initialization fixed
Now the gsi::initialize_expressions includes gsi::initialize.
Both can be called multiple times (the second time they are
ignored).
2017-08-21 00:01:10 +02:00
klayoutmatthias b7698b6c39 Windows build issue fixed: linking problems. 2017-07-27 00:02:47 +02:00