-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #75 from oqc-community/release/v0.1.6
Release/v0.1.6
- Loading branch information
Showing
36 changed files
with
493 additions
and
304 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# FAQ | ||
|
||
> After reading this it seems like any other hybrid runtime. What makes it different? | ||
Rasqal shares more DNA with formal verification tools and [model checkers](https://en.wikipedia.org/wiki/Model_checking) than it does with runtimes even though superficially it does, indeed, run your code. | ||
But it doesn't view it as running, in fact it's just generating a quantum equation from all the information you've given it, in the form it deduces will give you the best results. | ||
|
||
It uses all the classical information provided to provide the constraints that the algorithm is running within, as well as analysing the evolving quantum state as much as it can. | ||
Many of the classical constraints evaluation comes from existing ideas, but it also tries to do the same to the quantum circuit it's building (within reason). | ||
|
||
Many of its systems are currently in their infancy so may not be immediately noticeable, but in time they will. | ||
|
||
Rasqal works with other runtimes and sits at the exact point where they have generated the hybrid IR they consider encapsulates, fully, the algorithm they are trying to run. | ||
Rasqal then takes this output and crunches it down even further. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
## Building from Source | ||
|
||
Prerequisites: | ||
|
||
1. [Python 3.10](https://www.python.org/downloads/). | ||
2. [Rust](https://www.rust-lang.org/tools/install). | ||
|
||
With these installed then run: | ||
|
||
[Linux] | ||
|
||
`sudo apt-get install -y ninja-build` | ||
|
||
[Windows] | ||
|
||
[Chocolatey](https://chocolatey.org/install) is a windows package manager that we use to organize some installs. | ||
|
||
`choco install --accept-license -y ninja` | ||
|
||
Optional: | ||
`choco uninstall -y llvm` if you are having problems with the correct LLVM install being found. | ||
|
||
[Mac] | ||
|
||
`brew install ccache ninja` | ||
|
||
When this is all done run `build.ps1` at `/src/build.ps1`. | ||
|
||
This will install and build LLVM, build all the Rust projects, build a wheel and install it into the local venv, perform style formatting and more. | ||
|
||
Once this has been done you can open up the Rust projects and run cargo like normal as LLVM has been built and cached. You cna also use the built venv to run the Python as well. | ||
|
||
You'll have to re-run the build script if you want to build a new wheel to be available from the Python, but beyond that you can develop in whatever environment most suits you. | ||
|
||
#### Potential issues | ||
|
||
[PyCharm] | ||
|
||
To get PyCharm to recognize the LLVM file path you need to add `LLVM_SYS_150_PREFIX={path_to_repo}/src/target/llvm15-0` to the environment variables for any Rust command. You can also use a config.toml with the same value. | ||
|
||
[Windows] | ||
|
||
Main issue is to do with path lengths. These two changes may be needed: | ||
|
||
* Open the registry, go to `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem` and set `LongPathsEnabled` to 1. | ||
* Enable long file names via git by running this: `git config --system core.longpaths true`. This will set it for every user on the system, to be only your user use `--global`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
Oops, something went wrong.