Skip to content
This repository was archived by the owner on Jan 12, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
204 commits
Select commit Hold shift + click to select a range
c7f55a5
Setup controller project (#597)
cesarzc Apr 5, 2021
28bad1c
Merge latest main.
cesarzc Apr 6, 2021
56469cd
Add missing EndProject.
cesarzc Apr 6, 2021
1dbd8f6
Re-add controller project to Simulation solution.
cesarzc Apr 6, 2021
f8d93bb
Merge pull request #610 from microsoft/cesarzc/merge-main-to-feature-…
achocron Apr 6, 2021
0cbc02c
Create initial prototype for controller (with dependencies unimplemen…
achocron Apr 7, 2021
171825e
Merge remote-tracking branch 'origin/feature/azure-quantum-simulator'…
achocron Apr 7, 2021
ddf30c8
Remove generated qir
achocron Apr 7, 2021
dca7fbb
Remove placeholder tests
achocron Apr 8, 2021
2c8ca9f
Allow test cases folder not to exist
achocron Apr 8, 2021
7558e46
Add default error handling
achocron Apr 8, 2021
d192415
Remove test artifacts from solution
achocron Apr 8, 2021
84725d3
Create logger and tests
achocron Apr 8, 2021
52cca9f
Add logs
achocron Apr 8, 2021
3513858
Fix warning level
achocron Apr 8, 2021
74fb929
Fix unit tests for linux
achocron Apr 9, 2021
66ddfb0
Fix header
achocron Apr 9, 2021
f2ff7b2
Add include directory
achocron Apr 9, 2021
0b19366
Clean up and fix input
achocron Apr 9, 2021
ae18d34
Change how directories are passed
achocron Apr 9, 2021
ef1a2f8
Add comment
achocron Apr 9, 2021
f82e3ff
Merge branch 'main' into cesarzc/merge-main-to-feature-azure-quantum-…
cesarzc Apr 9, 2021
ce030fa
Do not delete output file on error
achocron Apr 9, 2021
7811d34
Merge pull request #620 from microsoft/alchocro/qir-controller-logging
achocron Apr 9, 2021
382f3c4
Merge branch 'feature/azure-quantum-simulator' into cesarzc/merge-mai…
achocron Apr 9, 2021
e35a7c1
Merge pull request #622 from microsoft/cesarzc/merge-main-to-feature-…
cesarzc Apr 11, 2021
22d1b23
Create IQirMachine interface.
cesarzc Apr 13, 2021
7df14c5
Remove ConfigureJob, IQuantumMachine inherits IAzureMachine
Apr 14, 2021
15f485b
Use Stream
Apr 14, 2021
4ad0265
Add Argument class
Apr 14, 2021
dc7c79a
Use IQArray
Apr 14, 2021
1e4129d
Tuple assignment
Apr 14, 2021
9d3a929
Add doc comments
Apr 14, 2021
eb763a0
Enable nullable
Apr 14, 2021
76d02d6
Add doc comment to IAzureMachine
Apr 14, 2021
3542f88
Enforce array homogeneity
Apr 15, 2021
3e524d3
Avoid exception
Apr 15, 2021
0269a6e
Fix array homogeneity check
Apr 15, 2021
fc5d5fe
Use separate files for argument classes
Apr 16, 2021
78c09c6
Remove ArgumentValue.Array.ItemType property
Apr 16, 2021
66f9fc3
Shorter qualified names
Apr 16, 2021
87fd479
Use ImmutableArray
Apr 16, 2021
d238985
Remove == overload
Apr 16, 2021
fc5c8b0
Base for Microsoft.Quantum.Qir.Tools package.
cesarzc Apr 16, 2021
d2937ee
Included build methods.
cesarzc Apr 16, 2021
28775ce
Create QirTools static class and make async the methods that make sense.
cesarzc Apr 16, 2021
f2377c8
Added method to run executable.
cesarzc Apr 16, 2021
8dcb5f5
Changed project to netstandard.
cesarzc Apr 16, 2021
e69141a
Use Submitter suffix for new interfaces
Apr 16, 2021
d6b0689
Move new interfaces to Submitters folder
Apr 17, 2021
c536255
Add needed parameters to static API.
cesarzc Apr 18, 2021
416eeb8
Merge branch 'main' into feature/azure-quantum-simulator
cesarzc Apr 19, 2021
f4172a6
Merge pull request #639 from microsoft/samarsha/main-to-aqsc
bamarsha Apr 19, 2021
8186a83
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/q…
Apr 19, 2021
1851811
Merge pull request #640 from microsoft/cesarzc/merge-main-to-feature-…
cesarzc Apr 19, 2021
f76dfd0
Merge branch 'feature/azure-quantum-simulator' into cesarzc/qir-execu…
cesarzc Apr 19, 2021
7501e16
Merge pull request #627 from microsoft/samarsha/qir-machine-interface
bamarsha Apr 19, 2021
b1d6382
Implement dependencies and tests (#626)
achocron Apr 19, 2021
b639325
Added documentation comments.
cesarzc Apr 19, 2021
3845845
Merge branch 'feature/azure-quantum-simulator' into cesarzc/qir-execu…
cesarzc Apr 19, 2021
7b5f76e
Merge pull request #635 from microsoft/cesarzc/qir-execution-library
achocron Apr 19, 2021
0eff341
Update SDK version
Apr 21, 2021
91f66ca
Nullable warnings as errors
Apr 21, 2021
5a00f1a
Merge branch 'main' into cesarzc/merge-main-to-feature-azure-quantum-…
cesarzc Apr 23, 2021
2c693eb
Merge branch 'main' into cesarzc/merge-main-to-feature-azure-quantum-…
cesarzc Apr 23, 2021
77a733d
Refactor controller into library (#642)
achocron Apr 23, 2021
9a4edb5
Merge branch 'feature/azure-quantum-simulator' into cesarzc/merge-mai…
cesarzc Apr 23, 2021
3b3aff0
Add QirExe test project
Apr 26, 2021
ea9e214
Pass QIR resource name to Azure.Submit
Apr 26, 2021
5ff4a2d
Merge pull request #653 from microsoft/cesarzc/merge-main-to-feature-…
cesarzc Apr 26, 2021
bba492b
Pass QIR resource stream to Azure.Submit
Apr 26, 2021
66c4dbe
Add IQirSubmitter mock
Apr 26, 2021
d0bad64
Rename namespace
Apr 26, 2021
62c83f1
Update QIR submitter target ID
Apr 26, 2021
f28dea2
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/a…
Apr 26, 2021
3dbfe5d
Update compiler packages
Apr 26, 2021
755169e
Add arguments to QirExe entry point
Apr 26, 2021
60ed598
Add separate submit method for QIR
Apr 27, 2021
793463f
Merge pull request #652 from microsoft/cesarzc/merge-main-to-feature-…
cesarzc Apr 27, 2021
37491cb
Generate QIR argument list
Apr 27, 2021
9275c5a
Update compiler package version to use new bond schema
achocron Apr 29, 2021
bf22f19
Merge pull request #664 from microsoft/alchocro/update-bond-schema
achocron Apr 29, 2021
a1714d0
Add test case and fix test script
achocron Apr 30, 2021
0e4d33f
Move QIR driver generator (#660)
cesarzc May 1, 2021
2357512
Fix test script
achocron May 3, 2021
85b3f46
Merge remote-tracking branch 'origin/feature/azure-quantum-simulator'…
achocron May 3, 2021
f368a23
Add Azure.QirSubmitter method
May 3, 2021
99d492e
Remove dry run message
May 3, 2021
9334d11
Add new line before verbose settings
May 3, 2021
11aef18
Add SubmitsQir test
May 3, 2021
ea11191
Simplify test project execution
May 3, 2021
3ef7322
Revert unnecessary changes
May 3, 2021
9e3f7d7
Update TargetedExe folder name
May 3, 2021
fb42cb0
Fix test project output copying
May 3, 2021
ab4644b
Update verbose test output
May 3, 2021
923d25f
Lazy Q#/QIR submit codegen
May 3, 2021
68eea90
Fall back to IQuantumMachine if IQirSubmitter not available
May 4, 2021
06e9f9f
Split out Azure files
May 4, 2021
adccc11
Merge branch 'main' into cesarzc/merge-main-to-feature-azure-quantum-…
cesarzc May 4, 2021
f85fef5
Ignore line breaks for testing purposes. (#671)
cesarzc May 4, 2021
dc6b81f
Merge branch 'feature/azure-quantum-simulator' into cesarzc/merge-mai…
cesarzc May 4, 2021
86fff10
Merge branch 'feature/azure-quantum-simulator' into alchocro/add-cont…
cesarzc May 4, 2021
fd0a391
Fix runtime libs folder in test.
cesarzc May 4, 2021
d77bc4d
Update AzureSettings.cs
May 4, 2021
8343840
Merge pull request #669 from microsoft/cesarzc/merge-main-to-feature-…
cesarzc May 4, 2021
b7392a2
Merge branch 'feature/azure-quantum-simulator' into alchocro/add-cont…
cesarzc May 4, 2021
f1d9efc
Add clang arguments
achocron May 4, 2021
dcb8130
Show error for dry run
May 4, 2021
d8aa688
Handle errors in QIR submission
May 4, 2021
6fcef3e
Use clang++
achocron May 4, 2021
b70ef1f
Set environment variables
achocron May 4, 2021
e3745c9
Add native simulator to library directory
achocron May 4, 2021
9bdaade
Add SubmissionOptions to IQirSubmitter
May 4, 2021
7e9521f
Change the way environment variables are set
achocron May 4, 2021
9a99f19
Add IQSharpSubmitter
May 5, 2021
c6498da
Microsoft.Quantum.Qir.Tools package (#670)
cesarzc May 5, 2021
dfed289
Fix unit test
achocron May 5, 2021
c279a72
Add defaults for SubmissionOptions
May 5, 2021
ac51d03
Remove trailing space
May 5, 2021
3773cda
Merge branch 'feature/azure-quantum-simulator' into alchocro/add-cont…
achocron May 5, 2021
e68cf0d
Merge branch 'main' into samarsha/aqsc-main
May 5, 2021
84bd673
Merge pull request #676 from microsoft/samarsha/aqsc-main
bamarsha May 5, 2021
0980b8d
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/s…
bamarsha May 5, 2021
8bbf533
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/a…
bamarsha May 5, 2021
7e6dc92
Merge pull request #665 from microsoft/alchocro/add-controller-test-case
achocron May 5, 2021
8e3f8cb
QIR Build From Q# DLL (#658)
ScottCarda-MS May 7, 2021
67ef92c
Merge pull request #673 from microsoft/samarsha/submission-options
bamarsha May 10, 2021
7278ebe
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/a…
bamarsha May 10, 2021
d22a7da
Fix build errors
May 10, 2021
845b678
Use IQSharpSubmitter from driver
May 10, 2021
6c5fd61
Add AzureSettings.SubmissionOptions
May 10, 2021
f806a82
Add Log function
May 10, 2021
5f64884
Update TODO comments
May 10, 2021
5cce84c
Update tests
May 10, 2021
e28a94e
Update CoreTests.SubmitsQir
May 10, 2021
7cff67b
Replace map+concat with collect
May 10, 2021
fa0f263
Use AssemblyConstants.QirOutputPath
May 11, 2021
147dc63
Check if QIR stream resource is null at runtime
May 12, 2021
6fb63c8
Use Target instead of TargetId
May 12, 2021
c5b67be
Add NoOpSubmitter
May 12, 2021
ed4ef09
Don't fail if parameter types are not supported for QIR
May 12, 2021
82534b0
More helpful error message when missing QIR
May 12, 2021
51a7c15
Add test for test.submitter.noop with Q#
May 12, 2021
62493f7
Add submitter factory
May 13, 2021
52ac8a3
Merge pull request #668 from microsoft/samarsha/azure-qir
bamarsha May 13, 2021
107cf93
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/s…
bamarsha May 13, 2021
ad32936
Merge branch 'main' into samarsha/main-aqsc
May 13, 2021
53e61d2
Merge pull request #689 from microsoft/samarsha/main-aqsc
bamarsha May 13, 2021
22d3660
Merge branch 'feature/azure-quantum-simulator-client' into samarsha/s…
bamarsha May 13, 2021
158bbee
Mark CreateMachine obsolete
May 13, 2021
bd11891
Use SubmitterFactory in driver
May 13, 2021
181b7ac
Remove providerId parameter
May 13, 2021
c457e3d
Merge branch 'main' into sccarda/merge-in-main
ScottCarda-MS May 14, 2021
73b263d
Merge pull request #691 from microsoft/sccarda/merge-in-main
ScottCarda-MS May 14, 2021
774c592
Add MicrosoftSimulatorSubmitter
May 18, 2021
8964fcb
Update method name
May 18, 2021
fcc7278
Use regex for target matching
May 18, 2021
66eaa5d
Merge pull request #688 from microsoft/samarsha/submitter-factory
bamarsha May 19, 2021
b931247
Merge feature/azure-quantum-simulator-client.
cesarzc May 19, 2021
6255a15
Fix remaining merge conflicts.
cesarzc May 19, 2021
c43c956
Merge pull request #698 from microsoft/cesarzc/merge-other-feature-br…
cesarzc May 20, 2021
1b514cc
Command-Line Compiler (#681)
ScottCarda-MS Jun 1, 2021
1b57f33
QIR Command Line Tool - Automatically Use Required Resources (#704)
ScottCarda-MS Jun 8, 2021
d12278a
Merge branch 'main' into beheim/main
Jun 14, 2021
c552523
Merge pull request #727 from microsoft/beheim/main
bettinaheim Jun 14, 2021
771098c
QIR Command Line Tool - Packaging Fixes (#723)
ScottCarda-MS Jun 15, 2021
21851f9
Update QIR submitter factory regex. (#728)
cesarzc Jun 16, 2021
19cf625
Getting updates from main
Jun 21, 2021
36753dc
cleaning up solution file
Jun 21, 2021
2125172
need to declare autosubstitution as private asset for the testing to …
Jun 22, 2021
e3b06b1
Getting updates from main
bettinaheim Jun 22, 2021
b44b9bd
Getting updates from main
Jun 22, 2021
1361ad0
need to use the same version of system.collection.immutable in the ru…
Jun 22, 2021
589f6af
Release/v0.18.2106 including fixes for AutoSubstitution (#748)
bettinaheim Jun 22, 2021
f941c7a
getting updates from main
Jun 29, 2021
46874a3
Remove controller project.
cesarzc Jun 29, 2021
4765bda
Remove test for controller.
cesarzc Jun 29, 2021
fa33600
Merge feature/azure-quantum-simulator to main.
cesarzc Jun 29, 2021
54a4d6b
Fix QIR Simulator dll load (#760)
swernli Jun 30, 2021
0ece8a7
updating package references and fixing qirexe
Jun 30, 2021
43e5fd2
updating tests
Jun 30, 2021
a5fdf32
getting updates from feature branch
Jun 30, 2021
db54ac3
Merge branch 'cesarzc/remove-controller' into beheim/main0628
Jun 30, 2021
f2cda5e
fixing link
Jun 30, 2021
68e990c
package update
Jun 30, 2021
8c64289
missed a package that needed updating
Jun 30, 2021
53a4004
Getting updates from main and removing controller
bettinaheim Jun 30, 2021
45e7a17
Fixing link (#762)
bettinaheim Jun 30, 2021
6a67dcd
getting updates from feature branch
Jun 30, 2021
c48964f
Address Robin's feedback.
cesarzc Jul 1, 2021
59c0436
Address Dmitry's feedback.
cesarzc Jul 2, 2021
cb251d8
Adding entry point operation loader (#766)
bettinaheim Jul 2, 2021
cd623e4
updating package version
Jul 3, 2021
3ab4d8e
missed a package number update
Jul 5, 2021
84fd28f
Fix namespaces to be backwards compatible.
cesarzc Jul 7, 2021
c2a0ef5
Rename some interfaces.
cesarzc Jul 7, 2021
945aab1
Make NoOpQirSubmitter internal.
cesarzc Jul 7, 2021
094a8b0
Update package number.
cesarzc Jul 7, 2021
0b07469
Fixed test cases.
cesarzc Jul 7, 2021
15066de
Merge branch 'main' into cesarzc/merge-feature-azure-quantum-simulato…
cesarzc Jul 8, 2021
5f4636e
Remove custom utils from Microsoft.Quantum.Qir.Tools package that wou…
cesarzc Jul 8, 2021
ae3b3e1
Addressed more feedback from Dmitry.
cesarzc Jul 8, 2021
b938c44
Rename interface and class for consistency.
cesarzc Jul 8, 2021
f64ece9
Renamed folder for consitency.
cesarzc Jul 8, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -336,10 +336,16 @@ ASALocalRun/

# MFractors (Xamarin productivity tool) working folder
.mfractor/

/src/Simulation/Simulators.Tests/TestProjects/QSharpExe/built
/src/Simulation/Simulators.Tests/TestProjects/QirExe/qir
/src/Simulation/Simulators.Tests/TestProjects/TargetedExe/built

dbw_test

# out folders
out/

# Jupyter caches
.ipynb_checkpoints

Expand Down
83 changes: 81 additions & 2 deletions Simulation.sln
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,21 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StandaloneInputReference",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "qir-standalone-input-reference", "src\Qir\Samples\StandaloneInputReference\qsharp\qir-standalone-input-reference.csproj", "{D7D34736-A719-4B45-A33F-2723F59EC29D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Quantum.AutoSubstitution", "src\Simulation\AutoSubstitution\Microsoft.Quantum.AutoSubstitution.csproj", "{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Execution", "Execution", "{442E66C8-F69F-44E9-9CD9-1F52C37EA41B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Qir.Tools", "src\Qir\Execution\Tools\Microsoft.Quantum.Qir.Tools.csproj", "{C60226E3-98DE-4E92-AED4-B4A93D4CA063}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Microsoft.Quantum.Qir.Tools", "src\Qir\Execution\Tools.Tests\Tests.Microsoft.Quantum.Qir.Tools.csproj", "{4794FC80-4594-403F-AFEC-4889EFE87EA0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QirExe", "src\Simulation\Simulators.Tests\TestProjects\QirExe\QirExe.csproj", "{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.Qir.CommandLineTool", "src\Qir\Execution\CommandLineTool\Microsoft.Quantum.Qir.CommandLineTool.csproj", "{EAABB911-02EE-4A05-B566-0084013FC5CD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Quantum.AutoSubstitution", "src\Simulation\AutoSubstitution\Microsoft.Quantum.AutoSubstitution.csproj", "{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Microsoft.Quantum.AutoSubstitution", "src\Simulation\AutoSubstitution.Tests\Tests.Microsoft.Quantum.AutoSubstitution.csproj", "{4EBC65DF-3B5E-419B-8E26-3EEF0B5CD300}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Microsoft.Quantum.AutoSubstitution.Integration", "src\Simulation\AutoSubstitution.Integration.Tests\Tests.Microsoft.Quantum.AutoSubstitution.Integration.csproj", "{D23480EE-88FC-4DF2-86BD-1C5BDD6CD98C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Microsoft.Quantum.AutoSubstitution.Integration", "src\Simulation\AutoSubstitution.Integration.Tests\Tests.Microsoft.Quantum.AutoSubstitution.Integration.csproj", "{D23480EE-88FC-4DF2-86BD-1C5BDD6CD98C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -681,6 +691,70 @@ Global
{D7D34736-A719-4B45-A33F-2723F59EC29D}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
{D7D34736-A719-4B45-A33F-2723F59EC29D}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
{D7D34736-A719-4B45-A33F-2723F59EC29D}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Debug|x64.ActiveCfg = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Debug|x64.Build.0 = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Release|Any CPU.Build.0 = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Release|x64.ActiveCfg = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.Release|x64.Build.0 = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{C60226E3-98DE-4E92-AED4-B4A93D4CA063}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Debug|x64.ActiveCfg = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Debug|x64.Build.0 = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Release|Any CPU.Build.0 = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Release|x64.ActiveCfg = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.Release|x64.Build.0 = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{4794FC80-4594-403F-AFEC-4889EFE87EA0}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Debug|x64.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Debug|x64.Build.0 = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Release|Any CPU.Build.0 = Release|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Release|x64.ActiveCfg = Release|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.Release|x64.Build.0 = Release|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Debug|x64.ActiveCfg = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Debug|x64.Build.0 = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.MinSizeRel|x64.Build.0 = Debug|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Release|Any CPU.Build.0 = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Release|x64.ActiveCfg = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.Release|x64.Build.0 = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
{EAABB911-02EE-4A05-B566-0084013FC5CD}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -777,6 +851,11 @@ Global
{AAFB81D3-BC87-404D-BA64-AF40B2D2E45A} = {F6C2D4C0-12DC-40E3-9C86-FA5308D9B567}
{A7DB7367-9FD6-4164-8263-A05077BE54AB} = {AAFB81D3-BC87-404D-BA64-AF40B2D2E45A}
{D7D34736-A719-4B45-A33F-2723F59EC29D} = {A7DB7367-9FD6-4164-8263-A05077BE54AB}
{442E66C8-F69F-44E9-9CD9-1F52C37EA41B} = {F6C2D4C0-12DC-40E3-9C86-FA5308D9B567}
{C60226E3-98DE-4E92-AED4-B4A93D4CA063} = {442E66C8-F69F-44E9-9CD9-1F52C37EA41B}
{4794FC80-4594-403F-AFEC-4889EFE87EA0} = {442E66C8-F69F-44E9-9CD9-1F52C37EA41B}
{A0B98D0E-FC28-4FD8-8806-4825B9F5489D} = {09C842CB-930C-4C7D-AD5F-E30DE4A55820}
{EAABB911-02EE-4A05-B566-0084013FC5CD} = {442E66C8-F69F-44E9-9CD9-1F52C37EA41B}
{33D66E90-049F-4A0B-A2B1-79E7E7E0ED0F} = {34D419E9-CCF1-4E48-9FA4-3AD4B86BEEB4}
{4EBC65DF-3B5E-419B-8E26-3EEF0B5CD300} = {34D419E9-CCF1-4E48-9FA4-3AD4B86BEEB4}
{D23480EE-88FC-4DF2-86BD-1C5BDD6CD98C} = {34D419E9-CCF1-4E48-9FA4-3AD4B86BEEB4}
Expand Down
2 changes: 2 additions & 0 deletions build/manifest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ $artifacts = @{
"Microsoft.Quantum.Type1.Core",
"Microsoft.Quantum.Type2.Core",
"Microsoft.Quantum.Type3.Core",
"Microsoft.Quantum.Qir.Tools",
"Microsoft.Quantum.QSharp.Foundation"
"Microsoft.Quantum.Runtime.Core",
"Microsoft.Quantum.Simulators",
Expand All @@ -35,6 +36,7 @@ $artifacts = @{
Assemblies = @(
".\src\Azure\Azure.Quantum.Client\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Azure.Quantum.Client.dll",
".\src\Simulation\AutoSubstitution\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.AutoSubstitution.dll",
".\src\Qir\Execution\Tools\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Qir.Tools.dll",
".\src\Simulation\Core\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.Runtime.Core.dll",
".\src\Simulation\EntryPointDriver\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.EntryPointDriver.dll",
".\src\Simulation\QSharpCore\bin\$Env:BUILD_CONFIGURATION\netstandard2.1\Microsoft.Quantum.QSharp.Core.dll",
Expand Down
4 changes: 4 additions & 0 deletions build/pack.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -163,12 +163,16 @@ Pack-Dotnet '../src/Simulation/QSharpCore/Microsoft.Quantum.QSharp.Core.csproj'
Pack-Dotnet '../src/Simulation/Type1Core/Microsoft.Quantum.Type1.Core.csproj'
Pack-Dotnet '../src/Simulation/Type2Core/Microsoft.Quantum.Type2.Core.csproj'
Pack-Dotnet '../src/Simulation/Type3Core/Microsoft.Quantum.Type3.Core.csproj'
Pack-Dotnet '../src/Qir/Execution/Tools/Microsoft.Quantum.Qir.Tools.csproj' -ForcePrerelease
Pack-Dotnet '../src/Qir/Execution/CommandLineTool/Microsoft.Quantum.Qir.CommandLineTool.csproj' -ForcePrerelease
Pack-One '../src/Simulation/Simulators/Microsoft.Quantum.Simulators.nuspec'
Pack-One '../src/Xunit/Microsoft.Quantum.Xunit.csproj'
Pack-Crate -PackageDirectory "../src/Simulation/qdk_sim_rs" -OutPath $Env:CRATE_OUTDIR;
Pack-Wheel -PackageDirectory "../src/Simulation/qdk_sim_rs" -OutPath $Env:WHEEL_OUTDIR;
Pack-One '../src/Qir/Runtime/Microsoft.Quantum.Qir.Runtime.nuspec' -ForcePrerelease

Move-Item -Path (Join-Path $Env:NUGET_OUTDIR Microsoft.Quantum.Qir.CommandLineTool.*) -Destination $Env:INTERNAL_TOOLS_OUTDIR

if (-not $all_ok) {
throw "At least one project failed to pack. Check the logs."
}
2 changes: 2 additions & 0 deletions build/set-env.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ if ($Env:DROP_NATIVE -eq $null) {
$Env:DROP_NATIVE = (Join-Path $PSScriptRoot "..")
}

If ($Env:INTERNAL_TOOLS_OUTDIR -eq $null) { $Env:INTERNAL_TOOLS_OUTDIR = (Join-Path $Env:DROPS_DIR "internal_tools") }
If (-not (Test-Path -Path $Env:INTERNAL_TOOLS_OUTDIR)) { [IO.Directory]::CreateDirectory($Env:INTERNAL_TOOLS_OUTDIR) }
If ($Env:NUGET_OUTDIR -eq $null) { $Env:NUGET_OUTDIR = (Join-Path $Env:DROPS_DIR "nugets") }
If (-not (Test-Path -Path $Env:NUGET_OUTDIR)) { [IO.Directory]::CreateDirectory($Env:NUGET_OUTDIR) }

Expand Down
2 changes: 2 additions & 0 deletions build/test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,13 @@ if ($Env:ENABLE_QIRRUNTIME -ne "false") {
if ($LastExitCode -ne 0) {
$script:all_ok = $False
}

$qirTests = (Join-Path $PSScriptRoot "../src/Qir/Tests")
& "$qirTests/test-qir-tests.ps1"
if ($LastExitCode -ne 0) {
$script:all_ok = $False
}

$qirSamples = (Join-Path $PSScriptRoot "../src/Qir/Samples")
& "$qirSamples/test-qir-samples.ps1"
if ($LastExitCode -ne 0) {
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"msbuild-sdks": {
"Microsoft.Quantum.Sdk": "0.18.2106149090-alpha"
"Microsoft.Quantum.Sdk": "0.18.2107150698-alpha"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public static class QuantumMachineFactory
/// <param name="targetName">The execution target for job submission.</param>
/// <param name="storageConnectionString">The connection string for the Azure storage account.</param>
/// <returns>A quantum machine for job submission targeting <c>targetName</c>.</returns>
[Obsolete("Use SubmitterFactory.QSharpSubmitter.")]
public static IQuantumMachine? CreateMachine(
IWorkspace workspace, string targetName, string? storageConnectionString = null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<TargetFramework>netstandard2.1</TargetFramework>
<PlatformTarget>x64</PlatformTarget>
<Description>Client library for Azure Quantum.</Description>
<RootNamespace>Microsoft.Azure.Quantum</RootNamespace>
</PropertyGroup>

<PropertyGroup>
Expand Down
123 changes: 123 additions & 0 deletions src/Azure/Azure.Quantum.Client/SubmitterFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

#nullable enable

namespace Microsoft.Azure.Quantum
{
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using Microsoft.Quantum.Runtime.Submitters;

/// <summary>
/// Creates Azure Quantum submitters for specific targets.
/// </summary>
public static class SubmitterFactory
{
/// <summary>
/// Information about each supported QIR submitter.
/// </summary>
private static readonly ImmutableList<SubmitterInfo> QirSubmitters = ImmutableList.Create(
new SubmitterInfo(
new Regex(@"\Amicrosoft\.simulator\.([\w]+\.)*[\w]+\z"),
"Microsoft.Quantum.Providers.Targets.MicrosoftSimulatorSubmitter, Microsoft.Quantum.Providers.Core",
"QirSubmitter"));

/// <summary>
/// Information about each supported Q# submitter.
/// </summary>
private static readonly ImmutableList<SubmitterInfo> QSharpSubmitters = ImmutableList<SubmitterInfo>.Empty;

/// <summary>
/// Returns a QIR submitter.
/// </summary>
/// <param name="target">The name of the execution target.</param>
/// <param name="workspace">The workspace used to manage jobs.</param>
/// <param name="storageConnection">The connection string for the storage account.</param>
/// <returns>A QIR submitter.</returns>
public static IQirSubmitter? QirSubmitter(string target, IWorkspace workspace, string? storageConnection) =>
Submitter<IQirSubmitter>(QirSubmitters, target, workspace, storageConnection);

/// <summary>
/// Returns a Q# submitter.
/// </summary>
/// <param name="target">The name of the execution target.</param>
/// <param name="workspace">The workspace used to manage jobs.</param>
/// <param name="storageConnection">The connection string for the storage account.</param>
/// <returns>A Q# submitter.</returns>
public static IQSharpSubmitter? QSharpSubmitter(
string target, IWorkspace workspace, string? storageConnection) =>
Submitter<IQSharpSubmitter>(QSharpSubmitters, target, workspace, storageConnection);

/// <summary>
/// Returns an instance of a submitter from the given list that matches the target.
/// </summary>
/// <param name="submitters">Information about each submitter.</param>
/// <param name="target">The name of the execution target.</param>
/// <param name="workspace">The workspace used to manage jobs.</param>
/// <param name="storageConnection">The connection string for the storage account.</param>
/// <typeparam name="T">The type of the submitter interface.</typeparam>
/// <returns>The submitter instance.</returns>
private static T? Submitter<T>(
IEnumerable<SubmitterInfo> submitters, string target, IWorkspace workspace, string? storageConnection)
where T : class
{
var submitter = submitters.FirstOrDefault(s => s.TargetPattern.IsMatch(target));
if (submitter is null)
{
return null;
}

var type = QdkType(submitter.TypeName);
var args = new object?[] { target, workspace, storageConnection };
return (T)type.InvokeMember(
submitter.MethodName, BindingFlags.InvokeMethod, Type.DefaultBinder, null, args);
}

/// <summary>
/// Returns a type from a QDK assembly given its type name.
/// </summary>
/// <param name="name">The fully-qualified or assembly-qualified type name.</param>
/// <returns>The type.</returns>
private static Type QdkType(string name)
{
var version = Assembly.GetExecutingAssembly().GetName().Version;
var strongName = $"{name}, Version={version}, Culture=neutral, PublicKeyToken=40866b40fd95c7f5";
return Type.GetType(strongName, true);
}

/// <summary>
/// Information about a submitter.
/// </summary>
private class SubmitterInfo
{
/// <summary>
/// Initializes a new instance of the <see cref="SubmitterInfo"/> class.
/// </summary>
/// <param name="targetPattern">The pattern for targets supported by the submitter.</param>
/// <param name="typeName">The fully-qualified or assembly-qualified name of the submitter type.</param>
/// <param name="methodName">The name of the static factory method.</param>
public SubmitterInfo(Regex targetPattern, string typeName, string methodName) =>
(TargetPattern, TypeName, MethodName) = (targetPattern, typeName, methodName);

/// <summary>
/// The pattern for targets supported by the submitter.
/// </summary>
public Regex TargetPattern { get; }

/// <summary>
/// The fully-qualified or assembly-qualified name of the submitter type.
/// </summary>
public string TypeName { get; }

/// <summary>
/// The name of the static factory method.
/// </summary>
public string MethodName { get; }
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>

<PropertyGroup>
<PackAsTool>true</PackAsTool>
<ToolCommandName>qir-cli</ToolCommandName>
<Description>Command-line tool for interacting with QIR.</Description>
<PackageTags>Quantum QIR</PackageTags>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20213.1"/>
<ProjectReference Include="..\Tools\Microsoft.Quantum.Qir.Tools.csproj"/>
</ItemGroup>

</Project>
Loading