Commit Graph

238 Commits

Author SHA1 Message Date
Matthias Koefferlein 74b6341425 Fixed unit tests, added swap function to tl::list 2019-01-25 23:19:12 +01:00
Matthias Koefferlein 3b0f4b3d78 WIP: fixed some compiler issues on certain systems. 2019-01-12 00:27:55 +01:00
Matthias Koefferlein aeeb6d7c87 Fixed #200 by introducing layout locking during iteration
The cause for the problem was that the layout got updated
while iterating causing the mess within the iterator.

This solution is to lock the layout while an iterator
is present. This happens for various Cell and Shapes
iterator, so it's a major enhancement.
2019-01-09 01:06:11 +01:00
Matthias Koefferlein d4d7ea8022 Updated copyright. 2019-01-08 01:09:25 +01:00
Matthias Koefferlein b0d7f5f7f5 Updated copyright. 2019-01-08 00:58:45 +01:00
Matthias Koefferlein 37d8f0bfca Added hierarchical progress reporting for more detailed progress. 2018-12-31 16:41:32 +01:00
Matthias Koefferlein 923e4075da Added an intrinsic linked list implementation. 2018-12-31 15:25:45 +01:00
Matthias Koefferlein 7ceb4ed076 Fixed an issue with the deep region: the layout pointer is not a good key for the backannotation cache. So we better use the unique ID - a concept introduced herein. 2018-12-17 20:31:24 +01:00
Matthias Koefferlein 5c7cd02af3 Merge remote-tracking branch 'remotes/origin/pymod' into net-extract 2018-11-25 23:16:56 +01:00
Matthias Koefferlein 9539e36bc9 Fixed #195 2018-11-22 22:19:37 +01:00
Matthias Koefferlein 3f8825cfd1 WIP: Improved design of HierarchyBuilder, added tests. 2018-11-15 22:50:02 +01:00
Matthias Koefferlein b192417809 Merge branch 'pymod' into net-extract 2018-11-10 22:42:48 +01:00
Matthias Koefferlein 8ab4868d76 Fixed build on Windows (tl::InputPipe::wait was missing) 2018-10-16 23:00:28 +02:00
Matthias Koefferlein 62224b0d91 Merge branch 'pymod' into net-extract 2018-10-14 23:57:18 +02:00
Matthias Koefferlein dd9d46da38 Activated stream unit tests. 2018-10-14 23:34:25 +02:00
Matthias Koefferlein 3392c08d36 Merge branch 'pymod' into net-extract 2018-10-09 23:43:58 +02:00
Matthias Koefferlein 904a12c11e Added a way to get the exit code from InputPipe
The method is to call wait() on the pipe object
which returns the exit code.

Some tests have been added for this.
2018-10-09 23:40:28 +02:00
Matthias Koefferlein 222b98fd70 Some fixes for the testsuite
With these fixes, unit tests pass with MacOS
(set DYLD_LIBRARY_PATH!)

1.) MacOS takes popen vs. pclose seriously
By using fopen we basically spoil the system and other popen
won't work.

2.) For system integrity, MacOS does not propagate DYLD_LIBRARY_PATH
to child processes such as sh. This has to be done explictly.

3.) Search the klayout binary in the right path (klayout.app/...)

4.) Reset KLAYOUT_HOME for less intervention by installed macros
2018-10-09 13:57:26 -07:00
Matthias Koefferlein 52a4459dac WIP: timer enhanced (reports start now), drop empty boxes in hier processor (will make the processor stall). 2018-09-23 20:06:27 +02:00
Matthias Koefferlein ad03533a7b OASIS tests made robust against hash implementation
The text writer was made "normalizing": it will introduce
a certain element order (string sorting). This way, OASIS
files can be compared against golden data without
changes in the order due to different implementation of
hash containers.
2018-09-10 01:16:49 +02:00
Matthias Koefferlein 84072aa23e Fixed a few things that got damaged in Linux build while doing MSVC compatibility. 2018-09-09 22:43:22 +02:00
Matthias Köfferlein 940a96716c Fixed the timestamp generation for pthread-win32 timed waits
Issue: we have to use WIN API functions which deliver times in a 
different way. In order to make the wait functions work, we have to use 
the same time definition - specifically the same zero time.
2018-09-09 18:30:21 +02:00
Matthias Köfferlein 28477af15e Added a missing header 2018-09-09 16:52:18 +02:00
Matthias Köfferlein 9544a5419b Addd current_utc_time() again which got lost during merge 2018-09-09 16:51:54 +02:00
Matthias Köfferlein a543950316 Explicitly allow enabling of pthreads (rather than Qt) using HAVE_PTHREADS on qmake 2018-09-09 16:51:20 +02:00
Matthias Köfferlein 4821b12780 Removed dependency of tlStream on zlib by using a delegate. 2018-09-09 16:49:21 +02:00
Matthias Köfferlein adebdf307b Fixed XML parser tests for Qt-less builds with expat 2018-09-08 00:44:19 +02:00
Matthias Köfferlein 28f8a1ee7d Merge branch 'pymod' into pymod-msvc 2018-09-07 22:56:22 +02:00
Matthias Köfferlein 5be469af90 Support "klayout-bits" for building on MSVC 2018-09-06 00:23:10 +02:00
Matthias Köfferlein b0dac7026f MSVC compatibility 2018-09-06 00:22:38 +02:00
Matthias Köfferlein 406b2c8cd1 Fixed KD tree implementation for compatibility with MSVC iterator debug mode 2018-09-02 22:39:15 +02:00
Matthias Köfferlein 1bf4d95388 Further MSVC compatibility
String assertions fixed, numerical issue with dbTrans fixed, iterator 
assertions fixed.
2018-09-02 19:18:42 +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
Thomas Ferreira de Lima 5bda390d82
bugfix: forgot to include tlTimer.h in tlThreads.cc 2018-07-31 17:47:01 -04:00
Matthias Koefferlein 98ecc9e47b Fixed a typo, force update of unit tests on Jenkins. 2018-07-29 14:07:02 +02:00
Matthias Koefferlein 3fb568671d A little refactoring - central place for DLL/.so path detection 2018-07-29 10:20:48 +02:00
Matthias Koefferlein 3d7bd0f32d Cleaned up code
Moved current_utc_time out of the central tlUtils header where
it does not belong. It a time function, so tlTimer.h is the better
place. Plus it does not make sense to make this inline. This just
spoils build times on changes.
2018-07-29 10:06:11 +02:00
Matthias Koefferlein e2f4c1874a Fixed a build issue on some compilers. 2018-07-24 22:29:45 +02:00
Matthias Koefferlein c9859b4f8f Fixed some issues with long int emulation. Using long int as substitute for __int128 2018-07-24 22:08:30 +02:00
Matthias Koefferlein 7191e4faa9 Added long int (N times a word) support for emulation of __int128 2018-07-24 21:01:54 +02:00
Daniel Wang ad1ada9b23
Merge branch 'pymod' of https://github.com/klayoutmatthias/klayout into pymod 2018-07-19 13:40:57 -04:00
Matthias Koefferlein aca209c095 Using C.UTF-8 locale fallback for string tests for vanilla Linux installations. 2018-07-18 21:57:47 +02:00
Daniel Wang 5f6c265e4b
Moved current_utc_time to tlUtils and fixed tlTimer 2018-07-17 14:37:41 -04:00
Daniel Wang 106b57c676
Fixed unchanged functions 2018-07-17 14:14:47 -04:00
Daniel Wang 20db1e1f24
Added support for Mac OS X 10.11 and lower 2018-07-17 14:05:33 -04:00
Thomas Ferreira de Lima f26576099c missing stdlib.h import 2018-07-16 23:29:51 -04:00
Matthias Koefferlein 46b0f079cf Skipping HTTP tests rather than disabling them
With this commit, tests are logged as skipped and
not just omitted, if HTTP support is not enabled
(neighter Qt nor curl)
2018-07-15 20:58:54 +02:00
Matthias Koefferlein 5351922440 Enabled minimum build configuration
Minimum build configuration is without Qt, Ruby, curl and expat.
Only Python is required.

This commit also provides a functional (through polling) Qt-less HTTP
implementation through libcurl if enabled.
2018-07-15 19:59:45 +02:00
klayoutmatthias 6858190a20 Fixed Windows build and tests
* tl::is_same_file works with directories now too
* Unit tests added for this
* bridge_mod sample produces the proper DLL now
2018-07-15 18:03:42 +02:00
Matthias Koefferlein bbb88c5ca6 Merge branch 'pymod' of www.klayout.org:/home/matthias/klayout into pymod 2018-07-15 07:42:14 -07:00
Matthias Koefferlein d3b4bc7f87 Enabled pymod build via setup.py/distutils on MacOS 2018-07-15 07:42:01 -07:00
klayoutmatthias 1642129504 Fixed a typo that breaks the Win build. 2018-07-15 16:39:16 +02:00
Matthias Koefferlein cb33753e1c Fixed a FileUtils unit test on Windows. 2018-07-15 15:36:30 +02:00
Matthias Koefferlein a1d8913de9 Enhanced Qt-less FileUtils test, so they cover the full functionality without Qt 2018-07-15 15:27:39 +02:00
Matthias Koefferlein fc9783432b Bugfix: db_plugin modules were not loaded for python modules
* Added unit test for this
* Provided an option for easier debugging such issues:
  Setting env var KLAYOUT_VERBOSITY will enable debug levels on Python
  modules (and all other binaries). Plugin loading issues can
  be debugged by setting KLAYOUT_VERBOSITY=21.
2018-07-15 14:14:14 +02:00
Matthias Koefferlein 07f69dccd3 Merge branch 'pymod' of www.klayout.org:/home/matthias/klayout into pymod 2018-07-15 11:12:29 +02:00
Matthias Koefferlein 628219080a Some enhancements/bug fixes for Windows
* Enabled pipe: on outputs
* Don't die on file paths containing backslashes in DRC tests
2018-07-15 11:11:05 +02:00
Matthias Koefferlein e709cad9c8 Fixed an include path for better compatibility with Python's distutil. 2018-07-14 20:24:28 +00:00
Matthias Koefferlein 5ea72893f3 Enabled build with Qt again. 2018-07-14 02:16:35 +02:00
Matthias Koefferlein 8f04fc5358 Removed some further Qt dependencies. For example, HTTPS access now is possible without Qt through Curl only. 2018-07-14 02:14:06 +02:00
Matthias Koefferlein 9ea24cb6a0 Explicitly set the locale for local string conversion test. 2018-07-13 18:35:49 +02:00
Matthias Koefferlein b10c64907a Made the threaded worker test a bit more reliable 2018-07-13 18:28:32 +02:00
Matthias Koefferlein 937fa96245 Some bug fixes
* Case folding table fixed: lowercase "i without dot" overlaps "i"
* Fixed build of bridge sample in non-Qt case
2018-07-13 08:03:00 +02:00
Matthias Koefferlein abdde4ba19 Corrected last commit (UTF-8 case conversion) and added more test coverage. 2018-07-13 01:13:41 +02:00
Matthias Koefferlein 70a4bd7aa2 Locale-independent implementation of UTF-8 string case conversion. 2018-07-13 01:07:46 +02:00
Matthias Koefferlein 4f326572d4 Fixed one .pro file for older Qt versions 2018-07-12 23:57:00 +02:00
Matthias Koefferlein 72c3288090 Disabled thread local storage test for Qt <4.7 because this class is broken with an int argument on Qt 4.6.2 2018-07-12 23:25:33 +02:00
Matthias Koefferlein 1375bdcc9a Fixed XMLParser unit test 5 for Qt 2018-07-12 23:19:54 +02:00
Matthias Koefferlein 03ddd495d8 Disabled brute-force shutdown test for threads on Qt - QThread is not able to deal with this. 2018-07-12 22:11:57 +02:00
Matthias Koefferlein ca8f9fd904 Fixed Qt-based XML parser build. 2018-07-12 20:54:05 +02:00
klayoutmatthias 616c2942e1 WIP: made pymod functional on Windows (without Qt). Tests pass. 2018-07-10 23:34:30 +02:00
Matthias Koefferlein 58fd6ed143 WIP: bugfix on WaitCondition (deadlocked) 2018-07-10 00:13:06 +02:00
Matthias Koefferlein 5cfb98d9f2 WIP: pthread-based WaitCondition (simple) 2018-07-10 00:01:25 +02:00
Matthias Koefferlein ad49c9502b WIP: some work on the pthread-based alternative to Qt threads. 2018-07-09 22:58:16 +02:00
Matthias Koefferlein b0f69d46a9 WIP: one first basic Thread test. 2018-07-09 00:55:41 +02:00
Matthias Koefferlein 260243a6d9 WIP: Fixed PCB import for non-Qt builds, added missing file. 2018-07-08 23:44:36 +02:00
Matthias Koefferlein e0a23adb66 Made XML parser and writer functional with expat 2018-07-05 23:40:39 +02:00
Matthias Koefferlein 43243ae162 Enabled Qt-less unit tests, some basic implementation of Qt-less threads based on pthread and an atomics library. A lot missing. 2018-07-05 00:33:34 +02:00
Matthias Koefferlein ad7a9836b0 Using pipes instead of QProcess for pymod tests, enable pipes on Windows (needs testing) 2018-07-04 20:26:34 +02:00
Matthias Koefferlein 642fb4270b Fixed rba::Technology test. Now all tests are passing with Qt. 2018-07-04 20:00:41 +02:00
Matthias Koefferlein 12e0db660c Finished file utils tests. 2018-07-04 19:33:39 +02:00
Matthias Koefferlein e9dcadb278 Fixed a linker issue. 2018-07-04 00:25:34 +02:00
Matthias Koefferlein 1f8afab417 Bugfixed the Qt-based XML implementation. 2018-07-04 00:21:06 +02:00
Matthias Koefferlein d1553d7586 Some more tests on tl::FileUtils 2018-07-03 23:51:10 +02:00
Matthias Koefferlein 17c7c8e1bb Some file utils tests added (file name decomposition, fake Windows/Linux tests) 2018-07-03 23:43:57 +02:00
Matthias Koefferlein 7ede06dca5 Build fixed, basic bugs fixed and made unit test framework work. Added tests for tlString. 2018-07-03 22:09:38 +02:00
Matthias Koefferlein bbfcd9cf9e Made normal build work again. 2018-07-03 01:49:06 +02:00
Matthias Koefferlein ab06ce3445 Made the code build without Qt. 2018-07-03 01:08:02 +02:00
Matthias Koefferlein a82adbbe83 Massive reduction of Qt dependencies, but also massive refactoring. 2018-07-03 00:51:36 +02:00
Matthias Koefferlein c532b75338 Provide an QtXml alternative through expat. 2018-07-02 22:19:36 +02:00
Matthias Koefferlein 7fca6f5f31 Non-Qt implementations of file utils - needs testing. 2018-07-02 20:29:34 +02:00
Matthias Koefferlein 239b7ca3ff First (major) steps towards a Qt-less basic build. 2018-07-02 18:20:20 +02:00
Matthias Koefferlein edbe0b2542 Attempt to make thread test more reproducible. 2018-06-24 15:16:49 +02:00
Matthias Koefferlein bfbd8732f3 WIP: basic availability of LayoutView as separate component
- The deferred method scheduler is now automatically created
  when required and when there is a QApplication
- QApplication and related have argv constructors
2018-06-03 00:54:58 +02:00
Matthias Koefferlein 6468bb7ab9 WIP: refactoring of GSI structure for separated modules. 2018-05-30 00:39:58 +02:00
Matthias Koefferlein 0b0393ce56 First version of Python module. 2018-05-26 21:31:39 +02:00
Matthias Koefferlein 108f90e382 Small enhancements for package manager
- Progress on download
- Some icons did not get marked (8 bit indexed image format)
- Colors in installation status dialog

One internal enhancement: progress adaptors can be
instantiated temporarily now to catch progress events.
2018-05-19 00:22:15 +02:00