cda-tum / mqt-qcec

MQT QCEC - A tool for Quantum Circuit Equivalence Checking
https://mqt.readthedocs.io/projects/qcec
MIT License
90 stars 21 forks source link

✨ Building Shared Libraries #352

Closed burgholzer closed 2 months ago

burgholzer commented 8 months ago

Description

This PR started out with the purpose of switching over to the mqt-core Python package. Over time, the scope has grown quite considerably. Now, the main changes this strives for is switching the library to build dynamic libraries by default. This considerably decreases the binary size and would, in general, be nice to support. However, producing shared libraries also means explicitly managing symbol visibility and, as it turned out, this is not such an easy endeavor. The corresponding changes need appropriate testing across all different projects to make sure that nothing is missed. This directly relates to cda-tum/mqt-core#538.

Checklist:

codecov[bot] commented 8 months ago

Codecov Report

Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (1210c62) 96.2% compared to head (452daa4) 96.3%. Report is 2 commits behind head on main.

:exclamation: Current head 452daa4 differs from pull request most recent head 5094688. Consider uploading reports for the commit 5094688 to get more accurate results

Additional details and impacted files [![Impacted file tree graph](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352/graphs/tree.svg?width=650&height=150&src=pr&token=eKL7Ya7iep&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum)](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) ```diff @@ Coverage Diff @@ ## main #352 +/- ## ===================================== Coverage 96.2% 96.3% ===================================== Files 34 34 Lines 1756 1751 -5 Branches 214 214 ===================================== - Hits 1691 1687 -4 + Misses 65 64 -1 ``` | [Flag](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [cpp](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `96.1% <ø> (+<0.1%)` | :arrow_up: | | [python](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | `97.1% <97.2%> (-0.1%)` | :arrow_down: | | [Files](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum) | Coverage Δ | | |---|---|---| | [src/mqt/qcec/verify.py](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xY2VjL3ZlcmlmeS5weQ==) | `100.0% <100.0%> (ø)` | | | [src/mqt/qcec/verify\_compilation\_flow.py](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xY2VjL3ZlcmlmeV9jb21waWxhdGlvbl9mbG93LnB5) | `100.0% <ø> (ø)` | | | [src/mqt/qcec/parameterized.py](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum#diff-c3JjL21xdC9xY2VjL3BhcmFtZXRlcml6ZWQucHk=) | `94.5% <96.8%> (-0.4%)` | :arrow_down: | ... and [1 file with indirect coverage changes](https://app.codecov.io/gh/cda-tum/mqt-qcec/pull/352/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cda-tum)
burgholzer commented 8 months ago

As already noted in cda-tum/mqt-core#538, getting shared libraries working seems like it is not going to be that easy. Because of that, I am also going to split this PR apart into separate contributions and will try to get those that are ready to merge merged as soon as possible.

burgholzer commented 2 months ago

Closing in favor of #432