* Add --job-params option
* Add tests
* Add input params to submission context/options
* Add test for more than one "="
* Fix SubmitsQir test
* Trigger Build
Co-authored-by: Ricardo Espinoza <ricardoe@microsoft.com>
* WIP: Attempt to remove IR files.
Things that don't work: passing struct Range by value, since C expects pointer always; converting from QIR Pauli which is `i2` to C++ enum PauliId with is `int32_t`.
* Compiling again
* Fix ctl tuples, tests passing
* Remove qsharp-foundation-qis.ll
* Additional comments
* Fix Exp to convert paulis correctly
* CR feedback and fixes
* Initial proposal for qubit management in QIR. Doesn't compile yet.
* Updated set of functions after discussion
* Updated function signatures to use dynamic allocation
* Updated restricted reuse function names
* Hooked up restricted area management functions
* Hooked up borrowing functions
* Attempting to format files better
Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com>
* Add --debug option to qir-cli
* Add test for generated driver with debug
* Update debug description
* Remove line pragmas
* Remove leftover line pragmas
* Fixes for Linux devcontainer development
This includes a mix of fixes for successful development within the devcontianer:
- Update Dockerfile to include updated version of CMake.
- Update prerequisites.ps1 to actually call experimental simlator prereq script.
- Update experimental sim prereq script to include nightly toolchain.
- Remove explicit sudo from QIR prereq script.
- Use correct environment vars for experimental sim in build script output.
- Fix native sim OMP thread count set to only occur if OMP is enabled.
* Use 'su -c' instead of 'sudo' for better compatibility
* Adjust `su` usage
* Explicitly check for presence of `sudo`
* Use specific CMake version, skip jq install
* Moving to universal dev container used by the other Azure SDKs
* Moving to universal dev container used by the other Azure SDKs
* Update gitignore for python .venv folder
Co-authored-by: bettinaheim <34236215+bettinaheim@users.noreply.github.com>
Co-authored-by: Ian Davis <Ian.F.Davis@microsoft.com>
* Check qubit release/measurement status on release
This mimics the same behavior in the QIR Runtime wrapper for the fullstate simulator as what we have for C#, namely that a qubit is valid for release if and only if it is either in the ground state or the last operation on that qubit was measure.
This fixes#552, and supersedes #710.
* CR feedback
* Revert mutex change
* Fixing use of `mutex()` to avoid subtle bug
This change fixes what seems to be a subtle bug in the syncrhonization mechanisms for the simulator. In particular, we have seen intermediate failures in the simulator tests that seem to be the result of a simulator thread stepping on another thread. As @kuzminrobin pointed out in https://github.com/microsoft/qsharp-runtime/pull/710#discussion_r646051059, this could be due to the fact that the mutex access method, `mutex()` has the same signature as the standard constructor for mutex. This could mean that if the compilation environment has a `using namespace std;` anwhere in it that the calls to `mutex()` would allocate a fresh mutex rather than access the member mutex, meaning none of the threads are synchronized as expected. This avoid the problem by renaming the accessor to `getmutex()`.
* Update calls in macro
This updates the custom instruction names set by the `TargetInstruction` attribute in the Type1, Type2, and Type3 target packages so that they match the naming conventions in the QIR spec. This will avoid unnecessary duplication of instructions, such as `__quantum__qis__x__body` vs `__quantum__qis__x`.
* Remove references that are not needed.
* Fix externals not copying to output directory.
* Changes to Microsoft.Quantum.Simulators package.
* Change the assumed directory where simulator libraries are placed.
* Add native simulator libraries using native default names as content files.
* Add corresponding content files to be copied to the output folder.
* Use wildcard instead of hardcoded files.
* Use the original platform names in the runtimes folder.
* Rename quantum simulator library name to use automatic search.
* Update Simulators.Dev.props to use the correct library name depending on the platform.
* Use filename and extension instead of duplicating logic.
We incorrectly generate documentation for a couple of test projects that we forgot to add `<QSharpDocsGeneration>false</QSharpDocsGeneration>` to. So that we don't have to rely on remembering to include this in each new project, we can use a Directory.Build.props to enforce this setting in the whole test directory.
* Update QIR Fullstate Simulator wrapper RNG
This updates the QIR wrapper around the fullstate simulator to explicitly set the seed in order to ensure that measurement sequences are not deterministic.
* Push fix into simulator itself