* Disable criterion to avoid dependency issue
Since we build with a specific pinned version of Rust but do not check in a Cargo.lock, we have contradictions in our toolchain and our dependencies. For now, we avoid this issue by skipping the benchmarks that depend on criterion.
* don't use cargo edit
* Commit lockfile
* `rustup toolchain install` and `rustup install` are the same thing. Also, removes extra toolchain installs.
* change cargo-edit version
* pin backtrace version
* Update to clang 16
* Update focal to jammy
* Revert "Update focal to jammy"
This reverts commit 2108a73ec1.
* Use Ubuntu 20.04 for stand-alone builds
* Ignore use of `argv` in CLI11
* Update sanitizer image
* Only use pragma on clang 15 or newer
---------
Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com>
Co-authored-by: Stefan J. Wernli <swernli@microsoft.com>
* Added definitions of resources estimation functions
* Added suffix Key to tuple keys
* Updated comments and namespace, added SingleVariant()
* Updated API based on feedback
* Updated estimator API based on review
* Fix typo
* Updated according to dev spec review
* Renamed file, added comments
---------
Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com>
* Removed old resource estimator (csharp based)
* Removed old resource estimator (csharp based)
* Removed more Resources Estimator tests
* Temporary updated driver settings to avoid multi-repo check-in
* Updated unit test to use new failure line numbers
---------
Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com>
* Added deprecation message to ResourcesEstimator class
* Added error message to resources extimation 'tool'
* Used approved version of the message
* Updated test, which checks for exact RE output
* New deprecation message
---------
Co-authored-by: Dmitry Vasilevsky <dmitryv@microsoft.com>
* logic should be the same, just removed the nested ternary because it was not as readable in QArray.cs
* quick fix
---------
Co-authored-by: Stefan J. Wernli <swernli@microsoft.com>
This change removes the code for the qir-stdlib and instead compiles a wrapper library for it, allowing the source code from https://github.com/qir-alliance/qir-runner to the be authoritative implementation.
* Implementing Library functions in Q#
This change implements several Q# functions that were previously `body intrinsic` via existing Q# functionality. This improves compatibility with QIR generation and allows us to remove the corresponding manual C# implementation in favor of compiler generated ones. This will also improve compatibility of programs that use these functions with full QIR targets like resource estimation.
* Update src/Simulation/QSharpFoundation/Convert/Convert.qs
Co-authored-by: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com>
* Check length of array
* Fix two's complement handling
* Simplify bounds check
Co-authored-by: Robin Kuzmin <9372582+kuzminrobin@users.noreply.github.com>
This adds a `ResultArrayAsInt` implementation that is compatible with QIR hardware compilation to the target packages. This will allow it to act as an override for the libraries definition while still supporting calculation of the integer value on platforms that can support it.
* Remove Honeywell provider and update test to use Quantinuum
* Revert changes to internal .NET Honeywell-Quantinuum providers
* Correct the namespace of the Quantinuum target
* Revert support for Honeywell entrypoint/targets
* Update Quantinuum target
* Add parallel Rust QIR Runtime
* Remove old dependencies
* Use --all-targets clippy, corresponding fixes
* Add conditionals instrinc support, result_to_string
* Add QIR simulator support
* Share C++ tests across Rust impl
* Add to build scripts
* Fix build ordering
* Fix CI cleanup
* More build fixes
* Fix build bug
* Minor error message fix
* Move result related api into sim
* refactor qir_runtime, split out qir_sim
* Use BigUint for sparse sim indexing
* Type updates, sparse nearly_zero fix
* Consolidation and optimization of sparse sim
* Rust qubit/result to string fixes
* Fullstate sim as QIR backend, staticlib runtime
* rename runtime to stdlib
* rename sim to backend
* remove conditionals support
* Fix public module ref
* Update cmdline tool to use simulator QIR backend
* Use whole-archive linking on non-Windows
* Use thread_local for simulator init
* Use all_load on MacOS
* Skip QIR libs,include for runtime tool
* Use force_load on MacOs
* Try alternate MacOS linking strategy
* Use full path in MacOs linking
* Try explicit lib name
* Clean up and comments
* Remove QIR C++ runtime, rename folders
* Use environment variables in native sim build
* Put back Tools tests
* Remove tracer test from solution
* Remove unused qir_backend
* Include full state sim lib in nuget package
* Update array unit tests
* Update bigint unit tests
* Update range unit tests
* Update strings unit tests
* __quantum__rt__fail will print string before panic
* Fix broken readme links
* Fix formatting in arrays.rs
* Clarifying comments, minor fixes from initial review
* Fix formatting
* Add `__quantum__rt__message_record_output`
* Clean up file encoding for .cargo/config.toml
* Updating script patterns
* Updates from PR feedback
* Fix double free typo in tests
* More updates from PR feedback
* Remove leftover debug line