From b7094affa48efea6752cc2f1ba72dc3e7dae6138 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 11 Nov 2019 21:53:19 +0100 Subject: [PATCH 01/14] Fixed a dummy error message on Windows/Python 3.7 and really ignore --- src/pya/pya/pya.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pya/pya/pya.cc b/src/pya/pya/pya.cc index f32a1a32d..57d1d10bb 100644 --- a/src/pya/pya/pya.cc +++ b/src/pya/pya/pya.cc @@ -207,6 +207,8 @@ PythonInterpreter::PythonInterpreter (bool embedded) tl_assert (sizeof (wchar_t) == 2); + Py_SetPythonHome (L""); // really ignore $PYTHONHOME + without this, we get dummy error message about lacking path for libraries + const wchar_t *python_path = _wgetenv (L"KLAYOUT_PYTHONPATH"); if (python_path) { From 86e041cd51002dbc178b58bea20f382e3ee623ec Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Mon, 11 Nov 2019 23:03:40 +0100 Subject: [PATCH 02/14] Updated test data. --- src/db/unit_tests/dbCellVariantsTests.cc | 32 +++++++++++------------ testdata/algo/deep_region_au12.gds | Bin 4888 -> 4888 bytes testdata/algo/deep_region_au19.gds | Bin 13978 -> 13978 bytes testdata/algo/deep_region_au400a.gds | Bin 35920 -> 35920 bytes testdata/algo/deep_region_au400b.gds | Bin 35920 -> 35920 bytes testdata/algo/deep_region_au9d.gds | Bin 2216 -> 2564 bytes 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/db/unit_tests/dbCellVariantsTests.cc b/src/db/unit_tests/dbCellVariantsTests.cc index f43cd7f1e..63507a3ea 100644 --- a/src/db/unit_tests/dbCellVariantsTests.cc +++ b/src/db/unit_tests/dbCellVariantsTests.cc @@ -297,7 +297,7 @@ TEST(8_GridVariants) // expanded placements mod 10: // c in a: r0 *2 x=1,1+102 y=10,10+101 x r0 *1 x=2,y=3 // = (3,3),(5,3),(3,4),(5,4) - EXPECT_EQ (var2str (vb.variants (c.cell_index ())), "r0 *1 3,3[1];r0 *1 5,3[1];r0 *1 3,4[1];r0 *1 5,4[1]"); + EXPECT_EQ (var2str (vb.variants (c.cell_index ())), "r0 *1 -5,3[1];r0 *1 3,3[1];r0 *1 -5,4[1];r0 *1 3,4[1]"); EXPECT_EQ (var2str (vb.variants (d.cell_index ())), ""); EXPECT_EQ (inst2str (ly, a), "B:r0 *1 1,10;B:r0 *1 1,111;B:r0 *1 103,10;B:r0 *1 103,111"); @@ -306,13 +306,13 @@ TEST(8_GridVariants) std::map > vm; vb.separate_variants (ly, a, &vm); - EXPECT_EQ (vm2str (ly, vm), "B:B[r0 *1 1,0],B$VAR1[r0 *1 3,0],B$VAR2[r0 *1 1,1],B$VAR3[r0 *1 3,1];C:C[r0 *1 3,3],C$VAR1[r0 *1 5,3],C$VAR2[r0 *1 3,4],C$VAR3[r0 *1 5,4]"); + EXPECT_EQ (vm2str (ly, vm), "B:B[r0 *1 1,0],B$VAR1[r0 *1 3,0],B$VAR2[r0 *1 1,1],B$VAR3[r0 *1 3,1];C:C[r0 *1 -5,3],C$VAR1[r0 *1 3,3],C$VAR2[r0 *1 -5,4],C$VAR3[r0 *1 3,4]"); EXPECT_EQ (inst2str (ly, a), "B:r0 *1 1,10;B$VAR2:r0 *1 1,111;B$VAR1:r0 *1 103,10;B$VAR3:r0 *1 103,111"); - EXPECT_EQ (inst2str (ly, b), "C:r0 *1 2,3"); - EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR1").second)), "C$VAR1:r0 *1 2,3"); - EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR2").second)), "C$VAR2:r0 *1 2,3"); - EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR3").second)), "C$VAR3:r0 *1 2,3"); + EXPECT_EQ (inst2str (ly, b), "C$VAR1:r0 *1 2,3"); + EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR1").second)), "C:r0 *1 2,3"); + EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR2").second)), "C$VAR3:r0 *1 2,3"); + EXPECT_EQ (inst2str (ly, ly.cell (ly.cell_by_name ("B$VAR3").second)), "C$VAR2:r0 *1 2,3"); EXPECT_EQ (inst2str (ly, c), ""); } @@ -352,21 +352,21 @@ TEST(9_ComplexGridVariants) // (-9,102),(-9,207),(-112,102),(-112,207) // r90 *1 x=1,y=100 x m0 *1 x=2,y=100 // (-99,102) - // expanded placements mod 10: + // expanded ((placements + 5) mod 10) - placements // c in a: r0 *2 x=1,1+102 y=10,10+101 x r0 *2 x=2,2+105 y=10,10+103 - // = (5,0),(5,0),(5,6),(5,6) - // (7,0),(7,0),(7,6),(7,6) - // (5,1),(5,1),(5,7),(5,7) - // (7,1),(7,1),(7,7),(7,7) + // = (5,0),(5,0),(-5,-4),(-5,-4) + // (7,0),(7,0),(-3,-4),(-3,-4) + // (-5,1),(-5,1),(-5,-3),(-5,-3) + // (-3,1),(-3,1),(-3,-3),(-3,-3) // r0 *2 x=1,1+102 y=10,10+101 x m0 *1 x=2,y=100 - // (5,0),(5,1),(7,0),(7,1) + // (-5,0),(-5,1),(-3,0),(-3,1) // r90 *1 x=1,y=100 x r0 *2 x=2,2+105 y=10,10+103 - // (1,2),(1,7),(8,2),(8,7) + // (1,2),(1,-3),(-2,2),(-2,-3) // r90 *1 x=1,y=100 x m0 *1 x=2,y=100 // (1,2) - EXPECT_EQ (var2str (vb.variants (c.cell_index ())), "m0 *2 5,0[1];r0 *4 5,0[2];m0 *2 7,0[1];r0 *4 7,0[2];m0 *2 5,1[1];r0 *4 5,1[2];" - "m0 *2 7,1[1];r0 *4 7,1[2];m45 *1 1,2[1];r90 *2 1,2[1];r90 *2 8,2[1];" - "r0 *4 5,6[2];r0 *4 7,6[2];r90 *2 1,7[1];r0 *4 5,7[2];r0 *4 7,7[2];r90 *2 8,7[1]"); + EXPECT_EQ (var2str (vb.variants (c.cell_index ())), "r0 *4 -5,-4[2];r0 *4 -3,-4[2];r0 *4 -5,-3[2];r0 *4 -3,-3[2];r90 *2 -2,-3[1];" + "r90 *2 1,-3[1];m0 *2 -5,0[1];r0 *4 -5,0[2];m0 *2 -3,0[1];r0 *4 -3,0[2];" + "m0 *2 -5,1[1];r0 *4 -5,1[2];m0 *2 -3,1[1];r0 *4 -3,1[2];r90 *2 -2,2[1];m45 *1 1,2[1];r90 *2 1,2[1]"); EXPECT_EQ (var2str (vb.variants (d.cell_index ())), ""); } diff --git a/testdata/algo/deep_region_au12.gds b/testdata/algo/deep_region_au12.gds index 3c98029ba44a59ccce92c68e87851c6719abbf4e..16bfc0b2acc547d8105dc0da12336c46b8e9fd58 100644 GIT binary patch delta 588 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 a&+h^Iuf90H2e%b+eu*1X{WhAeuI7Kgot{+y literal 13978 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 X4;=OTdvJRp_m{Xa)o-Ke>T3Q6XFii( diff --git a/testdata/algo/deep_region_au400a.gds b/testdata/algo/deep_region_au400a.gds index 5aa551f074125f38a6f989a5d90f554a065a2eac..5b21e7bf3768c62358bd32d1b717c08fdbf42135 100644 GIT binary patch delta 1863 zcmai!O-vI(6vt=Qra);yKCGl^`n4=m2x8l%l%m9}F+__2O8E+b10G6JjgbQ$$^o0; zp?grtTpCUoFNOmVpC`D;Q4+D9OgKTjVdBSy0|(>mf{BN|HJj|t>~DYjpLs8ta!D$e zq!6(aNtz;FDph?Ywc>J1H142~EAw`~j>IuLklXIlk? zd1^$Yguqm-h_oRv?-G$!2;8V=pw%Gopn<_cEdm|Q3|_hr*ym>OxgLSJ76!BtfomQH z(Pjkhc^S;P5qRoju-byajv#|w4+5uU2EV)r)D;FnKLWQIgLDvq$L$OXG6FrFVk>C` zrn(qB&mb@#VX!lfz>S#bXD0#=x-Fn1A^I6X%)X=r%v}@xj3ee+zXja8A&QVh%u`Ll zVfdB;yZwkcF<=2#ZY$uwiI{Iw7Vz+{0!sskSvPC}ucsCGl0wW}#sZecWl)DtXrRI= zMC$DJJ3|w()(LGi$#>_PXb=CCmHF?P4l(+%9O8qs5r{u+vsFB&wr2vg+Yo4iA5DfO zwcBtcHNmy{E+|YP+Pk>`jhR~9(5TA4FUyh|H?5^v#M;aTXvDPCv#`inm}+W^_Ym#% zeLwBx_tdQA(R%nJ+wkR zWG_|bB0`}aE2U`Pr6}~{s3*O8siij${W^G%9y+^ep@+QnG&B3-_uk__!yc?j2Wyg- z*oh>iNe7jxzLHvTx=h-M|Ns4}S9MnUJkOxH>XcSuT$dOmY7n?%V^F9?;EA2VMm+-M z8U}}r2pq3vKwA)~)iVgW5V+aMV4)R(N6idY+Ysn*G591SaJZGh&kh9U+88Kq1g^^r zk_rO%I~Xka5O~(fU|U6CufpI9L*Tqm+-ENWb(L)|A#8_WM7ea1rv_~(p|SEqZ$PFeKvRJtD?-$jIX3mzIV1RCSt^F2}|VmRWE%m(1W zVzBmAXb+y^C_{$bXmNoq^>vy|7xz6W)<-i%_@#5_^7YY EKMoFq`Tzg` diff --git a/testdata/algo/deep_region_au400b.gds b/testdata/algo/deep_region_au400b.gds index 5aa551f074125f38a6f989a5d90f554a065a2eac..81f63d2f417615c06c417c1650118f4864f3ffd4 100644 GIT binary patch delta 1863 zcmai!OH30%7{_PUra;R>9wKQP`dF3$B(?2Q+M>j)F+__2%CjMGz(bp$F>~DYjpZUIIN(HG@ zko?3>Bq>GQRI2()oZ@OFF>>YK@w#7WuJn4A!H#lDD>1H142~HBi#7(0JqSFpvz=9h zxoSkDgusMTMA{ITs}qq`2;6F5pw%Gou#v%%6M>Ev1~2OnIMB-Aa{~ew+ZfO$1a7z( zgjx`|?`E*jiommW2J3AI?C~+!b0Kh6X7J06KwV+r^B}Ou7$kiNJn3ezDkIRi1u#5OT(rXF*K_3?<=yTMoepY9T4u8HrZyjW#NJEkOZ;QDmd1H0*Jaj17Gq;unFmNxA?p#< z_$x+D(I|+h4uqDFv}ZXFf3@PL5#w`FhYm3^Ql=hv+OGbmVIrRsaA1 delta 1900 zcmai!O-LI-6vt<_Y1H^_Qmc!YY~ngbB<9P+kCu`m#Y(kCYYdVc>_tdQA(R%nJ+wkR zWG_|bB0`}aE2U`Pr6}~{s3*O8siij${W^G%9y+^ep@+QnG&B3-_uk__!yc?j2Wyg- z*oh>iNe7jxzLHvTx=h-M|Ns4}S9MnUJkOxH>XcSuT$dOmY7n?%V^F9?;EA2VMm+-M z8U}}r2pq3vKwA)~)iVgW5V+aMV4)R(N6idY+Ysn*G591SaJZGh&kh9U+88Kq1g^^r zk_rO%I~Xka5O~(fU|U6CufpI9L*Tqm+-ENWb(L)|A#8_WM7ea1rv_~(p|SEqZ$PFeKvRJtD?-$jIX3mzIV1RCSt^F2}|VmRWE%m(1W zVzBmAXb+y^C_{$bXmNoq^>vy|7xz6W)<-i%_@#5_^7YY EKMoFq`Tzg` diff --git a/testdata/algo/deep_region_au9d.gds b/testdata/algo/deep_region_au9d.gds index fedebccf0fcc30bf0c57931f966e5f639c6dbf98..b92595d4cf6d52526260706cffed611a54023c2e 100644 GIT binary patch delta 262 zcmZ1>*dn6Dz{bGD6u}_F$i)7bfg1?L8JHMUkl7QJlvS`wFbJ@*IjMv>1{s2h&H9YY zjFVNEMJ6^(mB+4u3#MVS0V5Mw?c@TcsWR9VbAS{Z!c1K$gSs|#zz{bGD6u}_F$i)7bfr){afsuiO!2+2*QAt?^s|14p8=I3#m}8J3n3$Z& zxJC-QLN=hn&A*wM88z4$7-U#+TE)NxGjVbjW7_0d%&s!n4dei+Go1XJWepCe0c~_< zU|`{5U| Date: Mon, 11 Nov 2019 23:23:47 +0100 Subject: [PATCH 03/14] Fixed MSVC build error. --- src/pya/pya/pya.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pya/pya/pya.cc b/src/pya/pya/pya.cc index 57d1d10bb..8fd5c39ce 100644 --- a/src/pya/pya/pya.cc +++ b/src/pya/pya/pya.cc @@ -207,7 +207,7 @@ PythonInterpreter::PythonInterpreter (bool embedded) tl_assert (sizeof (wchar_t) == 2); - Py_SetPythonHome (L""); // really ignore $PYTHONHOME + without this, we get dummy error message about lacking path for libraries + Py_SetPythonHome ((wchar_t *) L""); // really ignore $PYTHONHOME + without this, we get dummy error message about lacking path for libraries const wchar_t *python_path = _wgetenv (L"KLAYOUT_PYTHONPATH"); if (python_path) { From f13bb771cda658e9c817ba608604c905a0bf7cd2 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 00:04:40 +0100 Subject: [PATCH 04/14] Provide a separate version for PyPI inside version.sh --- setup.py | 4 ++-- version.sh | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 268ea6977..c24926061 100644 --- a/setup.py +++ b/setup.py @@ -333,10 +333,10 @@ class Config(object): version_file = os.path.join(os.path.dirname(__file__), "version.sh") with open(version_file, "r") as file: version_txt = file.read() - rm = re.search(r"KLAYOUT_VERSION\s*=\s*\"(.*?)\".*", version_txt) + rm = re.search(r"KLAYOUT_PYPI_VERSION\s*=\s*\"(.*?)\".*", version_txt) if rm: version_string = rm.group(1) - print("KLAYOUT_VERSION = " + version_string) + print("KLAYOUT_PYPI_VERSION = " + version_string) return version_string raise RuntimeError("Unable to obtain version string from version.sh") diff --git a/version.sh b/version.sh index 5c7d65ca0..2b19e1d68 100644 --- a/version.sh +++ b/version.sh @@ -4,6 +4,9 @@ # The main version KLAYOUT_VERSION="0.26.1" +# The version used for PyPI (don't use variables here!) +KLAYOUT_VERSION="0.26.1r1" + # The build date KLAYOUT_VERSION_DATE=$(date "+%Y-%m-%d") From 1f0067a2c735fede7cf3a709652154ce1c33eccb Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 01:10:50 +0100 Subject: [PATCH 05/14] Attempt to fix Windows build of Python module. --- setup.py | 17 ++++++++++++++++- version.sh | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index c24926061..fbc76ad56 100644 --- a/setup.py +++ b/setup.py @@ -265,6 +265,20 @@ class Config(object): "-std=c++11", # because we use unordered_map/unordered_set ] + def data_files(self): + """ + Gets the data files to add + """ + if platform.system() == "Windows": + bits = os.getenv("KLAYOUT_BITS") + return [ os.path.join(bits, "zlib", "bin", "zlib.dll"), + os.path.join(bits, "ptw", "bin", "pthreadVCE2.dll"), + os.path.join(bits, "expat", "bin", "expat.dll"), + os.path.join(bits, "curl", "bin", "libcurl.dll"), + os.getenv("KLAYOUT_MSVCRT") ] + else: + return [] + def libraries(self, mod): """ Gets the libraries to add @@ -550,7 +564,8 @@ if __name__ == '__main__': # Optional classifiers "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", ], - url='https://github.com/klayoutmatthias/klayout', + url='https://github.com/klayout/klayout', packages=find_packages('src/pymod/distutils_src'), + data_files=[('lib\\site-packages\\',config.data_files())], # https://github.com/pypa/setuptools/issues/405 package_dir={'': 'src/pymod/distutils_src'}, # https://github.com/pypa/setuptools/issues/230 ext_modules=[_tl, _gsi, _pya, _db, _lib, _rdb] + db_plugins + [tl, db, lib, rdb]) diff --git a/version.sh b/version.sh index 2b19e1d68..d980ab7c4 100644 --- a/version.sh +++ b/version.sh @@ -5,7 +5,7 @@ KLAYOUT_VERSION="0.26.1" # The version used for PyPI (don't use variables here!) -KLAYOUT_VERSION="0.26.1r1" +KLAYOUT_PYPI_VERSION="0.26.1r1" # The build date KLAYOUT_VERSION_DATE=$(date "+%Y-%m-%d") From e81dde46fe47f8d8ee7d0d31186fd414dc0ad706 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 01:12:48 +0100 Subject: [PATCH 06/14] Wrong name of zlib.dll (needs to be zlib1.dll). --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index fbc76ad56..2f038b583 100644 --- a/setup.py +++ b/setup.py @@ -271,7 +271,7 @@ class Config(object): """ if platform.system() == "Windows": bits = os.getenv("KLAYOUT_BITS") - return [ os.path.join(bits, "zlib", "bin", "zlib.dll"), + return [ os.path.join(bits, "zlib", "bin", "zlib1.dll"), os.path.join(bits, "ptw", "bin", "pthreadVCE2.dll"), os.path.join(bits, "expat", "bin", "expat.dll"), os.path.join(bits, "curl", "bin", "libcurl.dll"), From 74780e0197bee60d83baa35446ba596e224f1f4f Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 01:44:19 +0100 Subject: [PATCH 07/14] Take out MSVCRT from setup.py because I don't know where to take it from on Azure hosts. --- setup.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 2f038b583..41686a44b 100644 --- a/setup.py +++ b/setup.py @@ -274,8 +274,7 @@ class Config(object): return [ os.path.join(bits, "zlib", "bin", "zlib1.dll"), os.path.join(bits, "ptw", "bin", "pthreadVCE2.dll"), os.path.join(bits, "expat", "bin", "expat.dll"), - os.path.join(bits, "curl", "bin", "libcurl.dll"), - os.getenv("KLAYOUT_MSVCRT") ] + os.path.join(bits, "curl", "bin", "libcurl.dll") ] else: return [] From 1c7d104e63be25c0a89531043abaa6f41d8d6588 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 02:28:58 +0100 Subject: [PATCH 08/14] Removed data_files from setup.py - does not provide the files in the right path. --- setup.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/setup.py b/setup.py index 41686a44b..b93a3cfcb 100644 --- a/setup.py +++ b/setup.py @@ -265,19 +265,6 @@ class Config(object): "-std=c++11", # because we use unordered_map/unordered_set ] - def data_files(self): - """ - Gets the data files to add - """ - if platform.system() == "Windows": - bits = os.getenv("KLAYOUT_BITS") - return [ os.path.join(bits, "zlib", "bin", "zlib1.dll"), - os.path.join(bits, "ptw", "bin", "pthreadVCE2.dll"), - os.path.join(bits, "expat", "bin", "expat.dll"), - os.path.join(bits, "curl", "bin", "libcurl.dll") ] - else: - return [] - def libraries(self, mod): """ Gets the libraries to add @@ -565,6 +552,5 @@ if __name__ == '__main__': ], url='https://github.com/klayout/klayout', packages=find_packages('src/pymod/distutils_src'), - data_files=[('lib\\site-packages\\',config.data_files())], # https://github.com/pypa/setuptools/issues/405 package_dir={'': 'src/pymod/distutils_src'}, # https://github.com/pypa/setuptools/issues/230 ext_modules=[_tl, _gsi, _pya, _db, _lib, _rdb] + db_plugins + [tl, db, lib, rdb]) From 6b5c951088e3109cb9c6012188c4b16afa56550d Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 19:11:21 +0100 Subject: [PATCH 09/14] Fixed string unit test on MinGW 32bit --- src/tl/unit_tests/tlString.cc | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/tl/unit_tests/tlString.cc b/src/tl/unit_tests/tlString.cc index 1f95f46f8..a4950f69d 100644 --- a/src/tl/unit_tests/tlString.cc +++ b/src/tl/unit_tests/tlString.cc @@ -31,6 +31,11 @@ using namespace tl; +static std::string norm_exp (const std::string &s) +{ + return tl::replaced (tl::replaced (s, "e+006", "e+06"), "E+006", "E+06"); +} + TEST(1) { EXPECT_EQ (to_string (12.5), "12.5"); @@ -44,17 +49,10 @@ TEST(1) EXPECT_EQ (to_string ((unsigned char *)" 12"), " 12"); EXPECT_EQ (to_string (std::string (" 12")), " 12"); -#if defined(_WIN32) && !defined(_MSC_VER) - EXPECT_EQ (tl::sprintf("%g %e %f",M_PI,M_PI*1e6,M_PI*0.001), "3.14159 3.141593e+006 0.003142"); - EXPECT_EQ (tl::sprintf("%G %E %F",M_PI*1e6,M_PI*1e6,M_PI*1e6), "3.14159E+006 3.141593E+006 3141592.653590"); - EXPECT_EQ (tl::sprintf("%-15g %15.8e %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI), "3.14159 3.14159265e+006 0.003141592654 3.14159"); - EXPECT_EQ (tl::sprintf("%-15g %15.8E %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI), "3.14159 3.14159265E+006 0.003141592654 3.14159"); -#else - EXPECT_EQ (tl::sprintf("%g %e %f",M_PI,M_PI*1e6,M_PI*0.001), "3.14159 3.141593e+06 0.003142"); - EXPECT_EQ (tl::sprintf("%G %E %F",M_PI*1e6,M_PI*1e6,M_PI*1e6), "3.14159E+06 3.141593E+06 3141592.653590"); - EXPECT_EQ (tl::sprintf("%-15g %015.8e %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI), "3.14159 03.14159265e+06 0.003141592654 3.14159"); - EXPECT_EQ (tl::sprintf("%-15g %015.8E %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI), "3.14159 03.14159265E+06 0.003141592654 3.14159"); -#endif + EXPECT_EQ (norm_exp (tl::sprintf("%g %e %f",M_PI,M_PI*1e6,M_PI*0.001)), "3.14159 3.141593e+06 0.003142"); + EXPECT_EQ (norm_exp (tl::sprintf("%G %E %F",M_PI*1e6,M_PI*1e6,M_PI*1e6)), "3.14159E+06 3.141593E+06 3141592.653590"); + EXPECT_EQ (norm_exp (tl::sprintf("%-15g %015.8e %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI)), "3.14159 03.14159265e+06 0.003141592654 3.14159"); + EXPECT_EQ (norm_exp (tl::sprintf("%-15g %015.8E %15.12f %g",M_PI,M_PI*1e6,M_PI*0.001,M_PI)), "3.14159 03.14159265E+06 0.003141592654 3.14159"); EXPECT_EQ (tl::sprintf("%-5s %5s %x %u %d (%s)","a","b",1234,2345,3456), "a b 4d2 2345 3456 ()"); EXPECT_EQ (tl::sprintf("%lu %llu %02x", 1, 2, 167), "1 2 a7"); EXPECT_EQ (tl::sprintf("%lu %llu %02X", 1, 2, 761), "1 2 2F9"); From 7309688944dd69b57a9d3b1f0fe029b44567be74 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 20:13:23 +0100 Subject: [PATCH 10/14] More robustness of snap algorithm for unit tests --- src/laybasic/laybasic/laySnap.h | 2 +- testdata/algo/device_extract_au10.gds.4 | Bin 0 -> 8894 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 testdata/algo/device_extract_au10.gds.4 diff --git a/src/laybasic/laybasic/laySnap.h b/src/laybasic/laybasic/laySnap.h index 1913887da..8b7c25fe0 100644 --- a/src/laybasic/laybasic/laySnap.h +++ b/src/laybasic/laybasic/laySnap.h @@ -58,7 +58,7 @@ namespace lay */ inline db::DCoord snap (db::DCoord c) { - return floor (c + 0.5); + return floor (c + 0.5 + db::coord_traits::prec ()); } /** diff --git a/testdata/algo/device_extract_au10.gds.4 b/testdata/algo/device_extract_au10.gds.4 new file mode 100644 index 0000000000000000000000000000000000000000..cf84d9b77ba13b65286c6a9d157c63b38a177127 GIT binary patch literal 8894 zcmc&(-HTOK6kqq;d(YgtUhhofs7+2`afKel9LL6nNE{o%K^vu+q$C-7@U^EN6O!zq zm;QkeCM1J;i;CzAiIC8+u$M@YfqDoZ!e0G4{nlQ4oxRVw=iYnHq42`+lePD6uaCX< zUTYsIq#$^iCM&_vAGD5IRHJRw_WwV-#hp2o!<6` ze+Fw@2k%XyU|vz>28;VUmE|wi3h;MHFgg#s!Tt)Wytlv1V}AuJGt6Uu1y$bL-zd8G z4d$LIOWd|FsMw$ho6z5UgXZuKly+lCA}3oX}x7Zg=)Fi&)SZ8Nd9 zt4VD{!y83g>#}H5R5`Gyw%u9Ua0>RZHo?|qIWdYVS8XX5@^8wYgg%v6H+y?-(QRU~tZ% z%2ToZ+0TT^2Jk;Yt^u1Lg1_FO%7Ol^(8XW(tngb;3tv&?K%f7M(;r2*ajJ%Q2(~^Y zs^fN1RQd3Z!qIYfikC?oC6g&8T71elT7oJ!=v$le7UN&Dx7fqa*;|Jy2lnB^hC>pq z$^nU%qRN3jKNT(L-z(9od@s=wR5@d=Xtly{zO(qkk)=*%tZ-URU@e@wdnY(X@Dp{; zKXo#mu(fZjX_fi#f0fsb_rmwJtG=>+(aZBK-|QjF%{qoZpuRTM*Z6+&EG>1vc>LIt z*uorH^?!M4cJ*j-SH1h9)UJB`ZeJhtuClN3u6mZ1+EtI=?db#DRphVfMbSw%iAKl# z?sSS;qg7ZdKXV$o=IqKbXS#cit)+o~UngsEx=+!l%dIdhU31m)!^gQJYmBh9w`p9g z24hW3uWn7;B{g4biC!?phmK;spvT9(Q@r<1@mW8wgTH*ecj)_Hq!+cj=JBEXI_}E< zrgv|IA^KR!#O9dhWmXPmj5cq{9wS5BlEtPc&dy(@oW5igyLp1T7LzM$d>72z``P;4A^T~^OX=LxLuch%@spALGIPPAVd+r;71(Z3<-k%l`GrG{xg9TM^KL9<u#gYCehnU`^sU*rLh5jL&AL6k(Q?g0waqmToj|U6Q#*6c%Xn+s zlbCn~7CDLC{J27!NWEU|c!NRN}nFVfd#@r(4bHhba!pzI}j>~&=CVQNf-M_yXC)xh%c z4a4xwZ8!0wsTY`cY-y>_yw;!j=i!SRuQxy6XFb-NXP&KQ1MTB^>GjYl)N1rE3W%Ts literal 0 HcmV?d00001 From ab4f63252767ab5acb367fb14f6e728b3c75d521 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 20:17:27 +0100 Subject: [PATCH 11/14] Another unit test golden data set for MinGW32 --- testdata/lvs/invchain_cheat.cir.4 | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 testdata/lvs/invchain_cheat.cir.4 diff --git a/testdata/lvs/invchain_cheat.cir.4 b/testdata/lvs/invchain_cheat.cir.4 new file mode 100644 index 000000000..f6fcce0cb --- /dev/null +++ b/testdata/lvs/invchain_cheat.cir.4 @@ -0,0 +1,30 @@ +* Extracted by KLayout + +.SUBCKT INVCHAIN +X$1 \$7 \$1 \$9 \$8 \$6 \$9 \$5 \$5 \$3 \$2 \$I2 \$I1 INV3 +X$2 \$8 \$11 \$9 \$10 \$8 \$11 \$2 \$I3 \$2 \$I3 \$5 \$4 \$I2 \$I1 INV2 +X$3 \$I1 \$I2 \$11 \$I3 \$4 \$4 \$10 \$10 INV +.ENDS INVCHAIN + +.SUBCKT INV3 \$I18 \$I17 \$I15 \$I14 \$I13 \$I11 \$I10 \$I8 \$I7 \$I5 \$I4 \$I2 +X$1 \$I2 \$I4 \$I13 \$I17 \$I7 \$I7 \$I18 \$I18 INV +X$2 \$I2 \$I4 \$I18 \$I7 \$I17 \$I17 \$I13 \$I13 INV +X$3 \$I2 \$I4 \$I14 \$I5 \$I8 \$I10 \$I15 \$I11 INV +.ENDS INV3 + +.SUBCKT INV2 \$I16 \$I15 \$I14 \$I13 \$I12 \$I11 \$I10 \$I9 \$I8 \$I7 \$I6 \$I5 ++ \$I4 \$I2 +X$1 \$I2 \$I4 \$I14 \$I6 \$I8 \$I10 \$I16 \$I12 INV +X$2 \$I2 \$I4 \$I13 \$I5 \$I7 \$I9 \$I15 \$I11 INV +.ENDS INV2 + +.SUBCKT INV \$1 \$2 \$3 \$4 \$6 \$9 \$I8 \$I7 +M$1 \$4 \$3 \$2 \$4 PMOS L=0.25U W=0.95U AS=0.79325P AD=0.26125P PS=3.57U ++ PD=1.5U +M$2 \$2 \$I8 \$6 \$2 PMOS L=0.25U W=0.95U AS=0.26125P AD=0.03325P PS=1.5U ++ PD=1.97U +M$3 \$4 \$3 \$1 \$4 NMOS L=0.25U W=0.95U AS=0.79325P AD=0.26125P PS=3.57U ++ PD=1.5U +M$4 \$1 \$I7 \$9 \$1 NMOS L=0.25U W=0.95U AS=0.26125P AD=0.03325P PS=1.5U ++ PD=1.97U +.ENDS INV From 848df6f6cc3135939e4c2af1b8357013ed6e0147 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 20:39:19 +0100 Subject: [PATCH 12/14] New unit test data for MinGW32 --- testdata/net_tracer/t6_all_nets.oas.gz.3 | Bin 0 -> 882 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 testdata/net_tracer/t6_all_nets.oas.gz.3 diff --git a/testdata/net_tracer/t6_all_nets.oas.gz.3 b/testdata/net_tracer/t6_all_nets.oas.gz.3 new file mode 100644 index 0000000000000000000000000000000000000000..daf4f793c74759a6e89d1ef6224d403840a180f3 GIT binary patch literal 882 zcmd^5L2DC16y7&8JIT)OG&^Myr3M745D=xc&`WcP=~5Tkv~*MSwwL~ZcuR;vExq(m zL@dEe!Ibu(Scp{*UP_86xd=6|F^G;Py^|G;;6Jl^-d@8f%yJ!itb zI+^fXk2Ao7*9NpkKs#H}aG&Q-ByRhjJC<@reK(bM#++&YmOGlh86;62?Z7jse;q`_ z%=6QeQ-0DJAGb)#Nqe}{A%WorrfTE&4`L(fPA6yFw4dmXC+M(=`iF2MfHmu6;JVBs z?Fm%ig;A$6TY+cr&REvvCyX8i&&g~Ps`Nf9QkiQ6=3!G`F`kBGwg5F)G`{Pch?ZW5 zJws$F^nl6FNLxi;aV;#fKj05M#Lpu#hqs^#yX0}CE#HK7ybzIhNEKee9+A6Suz?hm z)92|irko0}inh_RcK<5={$6CTiw0L}ntt&HWE8n#%bz7aCiXMh~I}~Lq Date: Tue, 12 Nov 2019 20:55:28 +0100 Subject: [PATCH 13/14] Fixed a build issue (const iterator cannot be used in std::map::erase) --- src/db/db/dbHierarchyBuilder.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/db/db/dbHierarchyBuilder.cc b/src/db/db/dbHierarchyBuilder.cc index 63646a5ad..4fa2fa9de 100644 --- a/src/db/db/dbHierarchyBuilder.cc +++ b/src/db/db/dbHierarchyBuilder.cc @@ -188,7 +188,7 @@ HierarchyBuilder::register_variant (db::cell_index_type non_var, db::cell_index_ void HierarchyBuilder::unregister_variant (db::cell_index_type var) { - variant_to_original_target_map_type::const_iterator v = m_variants_to_original_target_map.find (var); + variant_to_original_target_map_type::iterator v = m_variants_to_original_target_map.find (var); if (v == m_variants_to_original_target_map.end ()) { return; } From 897ccb12bf1628dff11ba6ed69a9a190287fa33a Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Tue, 12 Nov 2019 21:51:49 +0100 Subject: [PATCH 14/14] Add an option to Windows build script to support building and deployment of 64bit coordinate version --- scripts/deploy-win-mingw.sh | 72 +++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 30 deletions(-) diff --git a/scripts/deploy-win-mingw.sh b/scripts/deploy-win-mingw.sh index 9cd35b272..b99e79110 100644 --- a/scripts/deploy-win-mingw.sh +++ b/scripts/deploy-win-mingw.sh @@ -28,31 +28,39 @@ pwd=$(pwd) enable32bit=1 enable64bit=1 +args="" +suffix="" -if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then - echo "Runs the Windows build include installer generation." - echo "" - echo "Run this script from the root directory." - echo "" - echo "Usage:" - echo " scripts/deploy-win-mingw.sh " - echo "" - echo "Options:" - echo " -32 Run 32 bit build only" - echo " -64 Run 64 bit build only" - echo "" - echo "By default, both 32 and 64 bit builds are performed" - exit 0 -elif [ "$1" = "-32" ]; then - enable64bit=0 - enable32bit=1 -elif [ "$1" = "-64" ]; then - enable64bit=1 - enable32bit=0 -elif [ "$1" != "" ]; then - echo "ERROR: invalid option $1 (use -h for details)" - exit 1 -fi +while [ "$1" != "" ]; do + if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + echo "Runs the Windows build include installer generation." + echo "" + echo "Run this script from the root directory." + echo "" + echo "Usage:" + echo " scripts/deploy-win-mingw.sh " + echo "" + echo "Options:" + echo " -32 Run 32 bit build only" + echo " -64 Run 64 bit build only" + echo " -s Binary suffix" + echo "" + echo "By default, both 32 and 64 bit builds are performed" + exit 0 + elif [ "$1" = "-32" ]; then + enable64bit=0 + enable32bit=1 + elif [ "$1" = "-64" ]; then + enable64bit=1 + enable32bit=0 + elif [ "$1" = "-s" ]; then + shift + suffix="-$1" + else + args="$args $1" + fi + shift +done # --------------------------------------------------- # Bootstrap script @@ -63,6 +71,8 @@ if [ "$KLAYOUT_BUILD_IN_PROGRESS" == "" ]; then self=$(which $0) export KLAYOUT_BUILD_IN_PROGRESS=1 + export KLAYOUT_BUILD_ARGS="$args" + export KLAYOUT_BUILD_SUFFIX="$suffix" # Run ourself in MINGW32 system for the win32 build if [ "$enable32bit" != "0" ]; then @@ -104,13 +114,15 @@ plugins="audio generic iconengines imageformats platforms printsupport sqldriver echo "------------------------------------------------------------------" echo "Running build for architecture $arch .." echo "" -echo " target = $target" -echo " build = $build" -echo " version = $KLAYOUT_VERSION" +echo " target = $target" +echo " build = $build" +echo " version = $KLAYOUT_VERSION" +echo " build args = $KLAYOUT_BUILD_ARGS" +echo " suffix = $KLAYOUT_BUILD_SUFFIX" echo "" rm -rf $target -./build.sh -python $python -ruby $ruby -bin $target -build $build -j2 +./build.sh -python $python -ruby $ruby -bin $target -build $build -j2$KLAYOUT_BUILD_ARGS if ! [ -e $target ]; then echo "ERROR: Target directory $target not found" @@ -227,12 +239,12 @@ done # longer require the copy cp $scripts/klayout-inst.nsis $target cd $target -NSIS_VERSION=$KLAYOUT_VERSION NSIS_ARCH=$arch "$makensis" klayout-inst.nsis +NSIS_VERSION=$KLAYOUT_VERSION NSIS_ARCH=$arch$KLAYOUT_BUILD_SUFFIX "$makensis" klayout-inst.nsis # ---------------------------------------------------------- # Produce the .zip file -zipname="klayout-$KLAYOUT_VERSION-$arch" +zipname="klayout-$KLAYOUT_VERSION-$arch$KLAYOUT_BUILD_SUFFIX" echo "Making .zip file $zipname.zip .."