Repository: qir-alliance/pyqir (language: python)

Issue:
Rename qir_jit to qir_evaluation
Some discussions around comprehensive naming of the packages have come up. Something like qir_evaluation rather than qir_jit may be more approachable. 


Discussion / hints:

Fix patch:
diff --git a/Cargo.toml b/Cargo.toml
index c606b834..9ba36862 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,7 +1,7 @@
 [workspace]
 members = [
     "pyqir-generator",
-    "pyqir-jit",
+    "pyqir-evaluator",
     "pyqir-parser",
     "qirlib",
 ]
diff --git a/README.md b/README.md
index 1c8c1798..6734248e 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ PyQIR is a set of APIs for generating, parsing, and evaluating [Quantum
 Intermediate Representation (QIR)](https://github.com/qir-alliance/qir-spec). It
 consists of the following components:
 
-- [**pyqir_generator**](https://github.com/qir-alliance/pyqir/tree/main/pyqir-generator)
+- [**pyqir-generator**](https://github.com/qir-alliance/pyqir/tree/main/pyqir-generator)
   [[examples](https://github.com/qir-alliance/pyqir/tree/main/examples/generator)]:
   <br/>
   This package provides a Python API for generating QIR
@@ -12,8 +12,8 @@ consists of the following components:
   [IR](https://llvm.org/docs/LangRef.html)). It is intended to easily integrate
   the QIR toolchain into existing Python-based frontends.
 
-- [**pyqir-jit**](https://github.com/qir-alliance/pyqir/tree/main/pyqir-jit)
-  [[examples](https://github.com/qir-alliance/pyqir/tree/main/examples/jit)]:
+- [**pyqir-evaluator**](https://github.com/qir-alliance/pyqir/tree/main/pyqir-evaluator)
+  [[examples](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator)]:
   <br/>
   This package provides an easy way to execute generated QIR. It contains the
   necessary [just-in-time
diff --git a/docs/api-reference/jit.md b/docs/api-reference/evaluator.md
similarity index 59%
rename from docs/api-reference/jit.md
rename to docs/api-reference/evaluator.md
index e05a7b08..7523e192 100644
--- a/docs/api-reference/jit.md
+++ b/docs/api-reference/evaluator.md
@@ -1,9 +1,9 @@
-# pyqir.jit
+# pyqir.evaluator
 
-## `NonadaptiveJit` class
+## `NonadaptiveEvaluator` class
 
 ```{eval-rst}
-.. autoclass:: pyqir.jit.NonadaptiveJit
+.. autoclass:: pyqir.evaluator.NonadaptiveEvaluator
     :show-inheritance:
     :members:
     :undoc-members:
@@ -12,7 +12,7 @@
 ## `GateSet` class
 
 ```{eval-rst}
-.. autoclass:: pyqir.jit.GateSet
+.. autoclass:: pyqir.evaluator.GateSet
     :show-inheritance:
     :members:
     :undoc-members:
@@ -21,7 +21,7 @@
 ## `GateLogger` class
 
 ```{eval-rst}
-.. autoclass:: pyqir.jit.GateLogger
+.. autoclass:: pyqir.evaluator.GateLogger
     :show-inheritance:
     :members:
     :undoc-members:
diff --git a/docs/api-reference/index.md b/docs/api-reference/index.md
index a12297a8..ed466f17 100644
--- a/docs/api-reference/index.md
+++ b/docs/api-reference/index.md
@@ -7,5 +7,5 @@ maxdepth: 2
 
 parser
 generator
-jit
+evaluator
 ```
diff --git a/docs/getting-started/installing.md b/docs/getting-started/installing.md
index 677146f2..7ac49300 100644
--- a/docs/getting-started/installing.md
+++ b/docs/getting-started/installing.md
@@ -65,14 +65,14 @@ PyQIR from source can be found at {doc}`/development-guide/building`.
 To uninstall the PyQIR packages, run
 
 ```bash
-python -m pip uninstall -y pyqir_generator pyqir_parser pyqir_jit
+python -m pip uninstall -y pyqir-generator pyqir-parser pyqir-evaluator
 ```
 
 ## Troubleshooting
 
 ### Error when running the examples
 
-- `ModuleNotFoundError: No module named '(pyqir|pyqir.generator|pyqir.parser|pyqir.jit)'`:
+- `ModuleNotFoundError: No module named '(pyqir|pyqir.generator|pyqir.parser|pyqir.evaluator)'`:
   Install the library by running one of the `install.(sh|ps1|cmd)` scripts.
 
 ### Other errors
diff --git a/eng/psakefile.ps1 b/eng/psakefile.ps1
index d30302c1..23b7ec88 100644
--- a/eng/psakefile.ps1
+++ b/eng/psakefile.ps1
@@ -16,10 +16,10 @@ properties {
     $pyqir.generator.dir = Join-Path $repo.root "pyqir-generator"
     $pyqir.generator.examples_dir = Join-Path $repo.root "examples" "generator"
 
-    $pyqir.jit = @{}
-    $pyqir.jit.name = "pyqir-jit"
-    $pyqir.jit.dir = Join-Path $repo.root "pyqir-jit"
-    $pyqir.jit.examples_dir = Join-Path $repo.root "examples" "jit"
+    $pyqir.evaluator = @{}
+    $pyqir.evaluator.name = "pyqir-evaluator"
+    $pyqir.evaluator.dir = Join-Path $repo.root "pyqir-evaluator"
+    $pyqir.evaluator.examples_dir = Join-Path $repo.root "examples" "evaluator"
 
     $docs = @{}
     $docs.root = Join-Path $repo.root "docs"
@@ -33,7 +33,7 @@ properties {
 Include settings.ps1
 Include utils.ps1
 
-Task default -Depends checks, pyqir-tests, parser, generator, jit, run-examples, run-examples-in-containers
+Task default -Depends checks, pyqir-tests, parser, generator, evaluator, run-examples, run-examples-in-containers
 
 Task checks -Depends cargo-fmt, cargo-clippy
 
@@ -60,8 +60,8 @@ Task generator -Depends init {
     Build-PyQIR($pyqir.generator.name)
 }
 
-Task jit -Depends init {
-    Build-PyQIR($pyqir.jit.name)
+Task evaluator -Depends init {
+    Build-PyQIR($pyqir.evaluator.name)
 }
 
 Task parser -Depends init {
@@ -75,7 +75,7 @@ Task pyqir-tests -Depends init {
     }
 }
 
-Task rebuild -Depends generator, jit, parser
+Task rebuild -Depends generator, evaluator, parser
 Task wheelhouse `
     -Precondition { -not (Test-Path $wheelhouse -ErrorAction SilentlyContinue) } `
 { Invoke-Task rebuild }
@@ -364,7 +364,7 @@ task run-examples {
         Assert ($bz_first_line -eq $bz_expected) "Expected $bz_expected found $bz_first_line"
     }
 
-    exec -workingDirectory $pyqir.jit.examples_dir {
+    exec -workingDirectory $pyqir.evaluator.examples_dir {
         & $python "bernstein_vazirani.py" | Tee-Object -Variable bz_output
         $bz_first_lines = @($bz_output | Select-Object -first 5)
         $bz_expected = @(
diff --git a/examples/README.md b/examples/README.md
index 9d18fafe..ea8b7d73 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -7,13 +7,13 @@ Intermediate Representation (QIR)](https://github.com/qir-alliance/qir-spec).
   QIR**](https://github.com/qir-alliance/pyqir/tree/main/examples/generator):
   <br/>
   The
-  [`pyqir_generator`](https://github.com/qir-alliance/pyqir/tree/main/pyqir-generator)
+  [`pyqir-generator`](https://github.com/qir-alliance/pyqir/tree/main/pyqir-generator)
   package provides a Python API for generating QIR. It is intended to easily
   integrate the QIR toolchain into existing Python-based frontends.
 
 - [**Executing
-  QIR**](https://github.com/qir-alliance/pyqir/tree/main/examples/jit): <br/>
-  The [`pyqir-jit`](https://github.com/qir-alliance/pyqir/tree/main/pyqir-jit)
+  QIR**](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator): <br/>
+  The [`pyqir-evaluator`](https://github.com/qir-alliance/pyqir/tree/main/pyqir-evaluator)
   package provides an easy way to execute generated QIR. It contains the
   necessary [just-in-time
   compilation](https://en.wikipedia.org/wiki/Just-in-time_compilation)
diff --git a/examples/jit/README.md b/examples/evaluator/README.md
similarity index 78%
rename from examples/jit/README.md
rename to examples/evaluator/README.md
index 4cb970b9..044769bd 100644
--- a/examples/jit/README.md
+++ b/examples/evaluator/README.md
@@ -1,6 +1,6 @@
-# Examples: pyqir_jit
+# Examples: pyqir-evaluator
 
-The `pyqir_jit` package provides an easy way to execute generated QIR for the
+The `pyqir-evaluator` package provides an easy way to execute generated QIR for the
 purpose of
 
 1. easily testing and experimenting with QIR code
@@ -12,17 +12,17 @@ compilation](https://en.wikipedia.org/wiki/Just-in-time_compilation)
 infrastructure as well an extensibility mechanism to define what actions to
 perform when a gate is applied in Python.
 
-This folder contains the following examples for how to use the `pyqir_jit`
+This folder contains the following examples for how to use the `pyqir-evaluator`
 package:
 
 - **Bernstein-Vazirani example**: <br/>
 This example shows how to log the executed gate sequence
 for a quantum program compiled to [LLVM bitcode](https://www.llvm.org/docs/BitCodeFormat.html).
 It consists of a [Python
-program](https://github.com/qir-alliance/pyqir/tree/main/examples/jit/bernstein_vazirani.py)
+program](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator/bernstein_vazirani.py)
   that loads the [compiled
-  bitcode](https://github.com/qir-alliance/pyqir/tree/main/examples/jit/bernstein_vazirani.bc)
-  and then uses the `NonadaptiveJit`, and a custom `GateLogger` to print out a
+  bitcode](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator/bernstein_vazirani.bc)
+  and then uses the `NonadaptiveEvaluator`, and a custom `GateLogger` to print out a
   simple log of the quantum gates applied during execution.
 
   The example can be run using python:
diff --git a/examples/jit/bernstein_vazirani.bc b/examples/evaluator/bernstein_vazirani.bc
similarity index 100%
rename from examples/jit/bernstein_vazirani.bc
rename to examples/evaluator/bernstein_vazirani.bc
diff --git a/examples/jit/bernstein_vazirani.py b/examples/evaluator/bernstein_vazirani.py
similarity index 70%
rename from examples/jit/bernstein_vazirani.py
rename to examples/evaluator/bernstein_vazirani.py
index f77ae444..8c709ffa 100644
--- a/examples/jit/bernstein_vazirani.py
+++ b/examples/evaluator/bernstein_vazirani.py
@@ -5,15 +5,15 @@
 
 import os
 from pathlib import Path
-from pyqir.jit import GateLogger, NonadaptiveJit
+from pyqir.evaluator import GateLogger, NonadaptiveEvaluator
 
 path = Path(__file__).parent
 file = os.path.join(path, "bernstein_vazirani.bc")
 
-jit = NonadaptiveJit()
+evaluator = NonadaptiveEvaluator()
 logger = GateLogger()
 
-jit.eval(file, logger)
+evaluator.eval(file, logger)
 
 print("# output from GateLogger", flush=True)
 logger.print()
diff --git a/examples/generator/README.md b/examples/generator/README.md
index f968c0b7..997d0c4e 100644
--- a/examples/generator/README.md
+++ b/examples/generator/README.md
@@ -1,6 +1,6 @@
-# Examples: pyqir_generator
+# Examples: pyqir-generator
 
-The `pyqir_generator` package provides the ability to generate
+The `pyqir-generator` package provides the ability to generate
 [QIR](https://github.com/qir-alliance/qir-spec) using a Python API.
 
 It is intended to be used by code automating translation processes enabling the
@@ -9,11 +9,11 @@ intended to be used as a bridge to existing Python frameworks enabling the
 generation of QIR rather than directly consumed by an end-user. It is **not**
 intended to be used as a framework for algorithm and application development.
 
-This folder contains the following examples for how to use the `pyqir_generator`
+This folder contains the following examples for how to use the `pyqir-generator`
 package:
 
 - **Bernstein-Vazirani example**: <br/>
-  This example matches most closely how the `pyqir_generator` package is
+  This example matches most closely how the `pyqir-generator` package is
   intended to be used. It consists of a [Python
   program](https://github.com/qir-alliance/pyqir/tree/main/examples/generator/mock_to_qir.py)
   that uses a "mini-compiler" for a made up [Mock
@@ -39,7 +39,7 @@ package:
 - **Bell pair example**: <br/>
   This examples consists of a [single
   file](https://github.com/qir-alliance/pyqir/tree/main/examples/generator/bell_pair.py),
-  and does not require any additional installation besides the `pyqir_generator`
+  and does not require any additional installation besides the `pyqir-generator`
   package itself. Please be aware that the PyQIR API is not intended to directly
   express quantum applications; its purpose is to be easily usable for *compiler
   and frontend developers* rather than *application developers* - as evidenced,
diff --git a/pyqir-jit/Cargo.toml b/pyqir-evaluator/Cargo.toml
similarity index 89%
rename from pyqir-jit/Cargo.toml
rename to pyqir-evaluator/Cargo.toml
index 8a777666..91bd2b92 100644
--- a/pyqir-jit/Cargo.toml
+++ b/pyqir-evaluator/Cargo.toml
@@ -1,10 +1,10 @@
 [package]
 authors = ["Microsoft"]
-name = "pyqir-jit"
+name = "pyqir-evaluator"
 version = "0.3.0-alpha"
 edition = "2018"
 license = "MIT"
-description = "Python based QIR JIT library."
+description = "Python based QIR Evaluation (JIT) library."
 readme = "README.md"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@@ -24,11 +24,11 @@ default = ["extension-module"]
 serial_test = "0.5.1"
 
 [lib]
-name = "pyqir_jit"
+name = "pyqir_evaluator"
 crate-type = ["cdylib"]
 
 [package.metadata.maturin]
-name = "pyqir.jit._native"
+name = "pyqir.evaluator._native"
 classifier=[
     "License :: OSI Approved :: MIT License",
     "Development Status :: 3 - Alpha",
diff --git a/pyqir-jit/MANIFEST.in b/pyqir-evaluator/MANIFEST.in
similarity index 100%
rename from pyqir-jit/MANIFEST.in
rename to pyqir-evaluator/MANIFEST.in
diff --git a/pyqir-jit/README.md b/pyqir-evaluator/README.md
similarity index 74%
rename from pyqir-jit/README.md
rename to pyqir-evaluator/README.md
index fc12a8f3..63e43bf5 100644
--- a/pyqir-jit/README.md
+++ b/pyqir-evaluator/README.md
@@ -1,6 +1,6 @@
-# pyqir_jit
+# pyqir-evaluator
 
-The `pyqir_jit` package provides an easy way to execute generated QIR for the
+The `pyqir-evaluator` package provides an easy way to execute generated QIR for the
 purpose of
 
 1. easily testing and experimenting with QIR code
@@ -14,20 +14,20 @@ perform when a gate is applied in Python.
 
 ## Examples
 
-There are [JIT
-examples](https://github.com/qir-alliance/pyqir/tree/main/examples/jit) in the
+There are [evaluator
+examples](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator) in the
 repository.
 
 Let's look at how to log the gate sequence for the following example:
 
-- [Bernstein-Vazirani](https://github.com/qir-alliance/pyqir/tree/main/examples/jit/bernstein_vazirani.py)
+- [Bernstein-Vazirani](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator/bernstein_vazirani.py)
   We can evaluate the [generated
-  bitcode](https://github.com/qir-alliance/pyqir/tree/main/examples/jit/bernstein_vazirani.bc)
-  with the `NonadaptiveJit`, and `GateLogger` to print out a simple log of the
+  bitcode](https://github.com/qir-alliance/pyqir/tree/main/examples/evaluator/bernstein_vazirani.bc)
+  with the `NonadaptiveEvaluator`, and `GateLogger` to print out a simple log of the
   quantum application.
 
 ```python
-from pyqir_jit import NonadaptiveJit, GateLogger
+from pyqir.evaluator import NonadaptiveEvaluator, GateLogger
 
 from pathlib import Path
 import os
@@ -35,11 +35,11 @@ import os
 path = Path(__file__).parent
 file = os.path.join(path, "bernstein_vazirani.bc")
 
-jit = NonadaptiveJit()
+evaluator = NonadaptiveEvaluator()
 logger = GateLogger()
 
-print("# output from NonadaptiveJit returning the uninitialized output")
-jit.eval(file, logger)
+print("# output from NonadaptiveEvaluator returning the uninitialized output")
+evaluator.eval(file, logger)
 
 print("# output from GateLogger")
 logger.print()
@@ -48,7 +48,7 @@ logger.print()
 Would generate the output:
 
 ```text
-# output from NonadaptiveJit returning the uninitialized output
+# output from NonadaptiveEvaluator returning the uninitialized output
 [[Zero, Zero, Zero, Zero, Zero, Zero, Zero, Zero]]
 # output from GateLogger
 qubits[9]
diff --git a/pyqir-jit/pyproject.toml b/pyqir-evaluator/pyproject.toml
similarity index 84%
rename from pyqir-jit/pyproject.toml
rename to pyqir-evaluator/pyproject.toml
index e5f4b3c0..df5fb30d 100644
--- a/pyqir-jit/pyproject.toml
+++ b/pyqir-evaluator/pyproject.toml
@@ -1,5 +1,5 @@
 [project]
-name = "pyqir_jit"
+name = "pyqir-evaluator"
 version = "0.3.0a1"
 requires-python = ">=3.6"
 
diff --git a/pyqir-jit/pyqir/__init__.py b/pyqir-evaluator/pyqir/__init__.py
similarity index 100%
rename from pyqir-jit/pyqir/__init__.py
rename to pyqir-evaluator/pyqir/__init__.py
diff --git a/pyqir-evaluator/pyqir/evaluator/__init__.py b/pyqir-evaluator/pyqir/evaluator/__init__.py
new file mode 100644
index 00000000..5d3d9916
--- /dev/null
+++ b/pyqir-evaluator/pyqir/evaluator/__init__.py
@@ -0,0 +1,6 @@
+# Copyright (c) Microsoft Corporation.
+# Licensed under the MIT License.
+
+from pyqir.evaluator._gatelogger import GateLogger as GateLogger
+from pyqir.evaluator._gateset import GateSet as GateSet
+from pyqir.evaluator._nonadaptiveevaluator import NonadaptiveEvaluator as NonadaptiveEvaluator
diff --git a/pyqir-jit/pyqir/jit/_gatelogger.py b/pyqir-evaluator/pyqir/evaluator/_gatelogger.py
similarity index 94%
rename from pyqir-jit/pyqir/jit/_gatelogger.py
rename to pyqir-evaluator/pyqir/evaluator/_gatelogger.py
index 26ca00aa..75c26b99 100644
--- a/pyqir-jit/pyqir/jit/_gatelogger.py
+++ b/pyqir-evaluator/pyqir/evaluator/_gatelogger.py
@@ -1,12 +1,12 @@
 # Copyright (c) Microsoft Corporation.
 # Licensed under the MIT License.
 
-from pyqir.jit._gateset import GateSet
+from pyqir.evaluator._gateset import GateSet
 
 
 class GateLogger(GateSet):
     """
-    Records the quantum circuit operations executed during JIT execution.
+    Records the quantum circuit operations executed during QIR evaluation.
 
     number_of_qubits: int
     number_of_registers: int
diff --git a/pyqir-jit/pyqir/jit/_gateset.py b/pyqir-evaluator/pyqir/evaluator/_gateset.py
similarity index 90%
rename from pyqir-jit/pyqir/jit/_gateset.py
rename to pyqir-evaluator/pyqir/evaluator/_gateset.py
index d30bcd83..ab47ec96 100644
--- a/pyqir-jit/pyqir/jit/_gateset.py
+++ b/pyqir-evaluator/pyqir/evaluator/_gateset.py
@@ -4,7 +4,7 @@
 class GateSet:
     """
     Defines the quantum circuit operations which may be registered for
-    callbacks during JIT execution of QIR
+    callbacks during evaluation of QIR
     """
 
     def cx(self, control: str, target: str):
@@ -54,6 +54,6 @@ def z(self, qubit: str):
 
     def finish(self, metadata: dict):
         """
-        Called at the end of JIT execution supplying run metadata.
+        Called at the end of QIR evaluation supplying run metadata.
         """
         pass
diff --git a/pyqir-jit/pyqir/jit/_nonadaptivejit.py b/pyqir-evaluator/pyqir/evaluator/_nonadaptiveevaluator.py
similarity index 91%
rename from pyqir-jit/pyqir/jit/_nonadaptivejit.py
rename to pyqir-evaluator/pyqir/evaluator/_nonadaptiveevaluator.py
index 80e4d7e2..00a17159 100644
--- a/pyqir-jit/pyqir/jit/_nonadaptivejit.py
+++ b/pyqir-evaluator/pyqir/evaluator/_nonadaptiveevaluator.py
@@ -1,12 +1,12 @@
 # Copyright (c) Microsoft Corporation.
 # Licensed under the MIT License.
 
-from pyqir.jit._gateset import GateSet
-from pyqir.jit._native import PyNonadaptiveJit
+from pyqir.evaluator._gateset import GateSet
+from pyqir.evaluator._native import PyNonadaptiveJit
 from typing import List, Optional
 
 
-class NonadaptiveJit:
+class NonadaptiveEvaluator:
     """
     The non-adaptive JIT evaluates QIR programs without simulating the quantum
     state. Measurement results are pre-determined before the program starts.
diff --git a/pyqir-jit/requirements-dev.txt b/pyqir-evaluator/requirements-dev.txt
similarity index 100%
rename from pyqir-jit/requirements-dev.txt
rename to pyqir-evaluator/requirements-dev.txt
diff --git a/pyqir-jit/src/lib.rs b/pyqir-evaluator/src/lib.rs
similarity index 100%
rename from pyqir-jit/src/lib.rs
rename to pyqir-evaluator/src/lib.rs
diff --git a/pyqir-jit/src/python.rs b/pyqir-evaluator/src/python.rs
similarity index 100%
rename from pyqir-jit/src/python.rs
rename to pyqir-evaluator/src/python.rs
diff --git a/pyqir-jit/tox.ini b/pyqir-evaluator/tox.ini
similarity index 100%
rename from pyqir-jit/tox.ini
rename to pyqir-evaluator/tox.ini
diff --git a/pyqir-generator/README.md b/pyqir-generator/README.md
index 75a06b72..003b20ba 100644
--- a/pyqir-generator/README.md
+++ b/pyqir-generator/README.md
@@ -1,6 +1,6 @@
-# pyqir_generator
+# pyqir-generator
 
-The `pyqir_generator` package provides the ability to generate
+The `pyqir-generator` package provides the ability to generate
 [QIR](https://github.com/qir-alliance/qir-spec) using a Python API.
 
 It is intended to be used by code automating translation processes enabling the
diff --git a/pyqir-generator/pyproject.toml b/pyqir-generator/pyproject.toml
index c5a38499..c580408e 100644
--- a/pyqir-generator/pyproject.toml
+++ b/pyqir-generator/pyproject.toml
@@ -1,5 +1,5 @@
 [project]
-name = "pyqir_generator"
+name = "pyqir-generator"
 version = "0.3.0a1"
 requires-python = ">=3.6"
 
diff --git a/pyqir-jit/pyqir/jit/__init__.py b/pyqir-jit/pyqir/jit/__init__.py
deleted file mode 100644
index c3e7fcf2..00000000
--- a/pyqir-jit/pyqir/jit/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) Microsoft Corporation.
-# Licensed under the MIT License.
-
-from pyqir.jit._gatelogger import GateLogger as GateLogger
-from pyqir.jit._gateset import GateSet as GateSet
-from pyqir.jit._nonadaptivejit import NonadaptiveJit as NonadaptiveJit
diff --git a/pyqir-parser/README.md b/pyqir-parser/README.md
index 7be1a12a..d652c7d0 100644
--- a/pyqir-parser/README.md
+++ b/pyqir-parser/README.md
@@ -1,4 +1,4 @@
-# pyqir_parser
+# pyqir-parser
 
 Under active development and will be updated.
 
diff --git a/pyqir-parser/pyproject.toml b/pyqir-parser/pyproject.toml
index 10fe5eaa..180bfb25 100644
--- a/pyqir-parser/pyproject.toml
+++ b/pyqir-parser/pyproject.toml
@@ -1,5 +1,5 @@
 [project]
-name = "pyqir_parser"
+name = "pyqir-parser"
 version = "0.3.0a1"
 requires-python = ">=3.6"
 
diff --git a/requirements.txt b/requirements.txt
index 208b2c03..3e0a7f59 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,3 @@
-pyqir_generator
-pyqir_parser
-pyqir_jit
\ No newline at end of file
+pyqir-generator
+pyqir-parser
+pyqir-evaluator
\ No newline at end of file


Test patch:
diff --git a/pyqir-jit/tests/bell_qir_measure.bc b/pyqir-evaluator/tests/bell_qir_measure.bc
similarity index 100%
rename from pyqir-jit/tests/bell_qir_measure.bc
rename to pyqir-evaluator/tests/bell_qir_measure.bc
diff --git a/pyqir-jit/tests/test_api.py b/pyqir-evaluator/tests/test_api.py
similarity index 78%
rename from pyqir-jit/tests/test_api.py
rename to pyqir-evaluator/tests/test_api.py
index c6f2f6d5..d38d60e2 100644
--- a/pyqir-jit/tests/test_api.py
+++ b/pyqir-evaluator/tests/test_api.py
@@ -1,14 +1,14 @@
 # Copyright (c) Microsoft Corporation.
 # Licensed under the MIT License.
 
-from pyqir.jit import GateLogger, NonadaptiveJit
+from pyqir.evaluator import GateLogger, NonadaptiveEvaluator
 
 
 def test_bell_qir():
     file = "tests/bell_qir_measure.bc"
-    jit = NonadaptiveJit()
+    evaluator = NonadaptiveEvaluator()
     logger = GateLogger()
-    jit.eval(file, logger)
+    evaluator.eval(file, logger)
 
     logger.print()
 
diff --git a/pyqir-tests/tests/test_if.py b/pyqir-tests/tests/test_if.py
index 8f8da7f8..8b2d6b12 100644
--- a/pyqir-tests/tests/test_if.py
+++ b/pyqir-tests/tests/test_if.py
@@ -2,7 +2,7 @@
 # Licensed under the MIT License.
 
 from pyqir.generator import BasicQisBuilder, SimpleModule
-from pyqir.jit import GateLogger, GateSet, NonadaptiveJit
+from pyqir.evaluator import GateLogger, GateSet, NonadaptiveEvaluator
 import tempfile
 from typing import List, Optional
 import unittest
@@ -192,7 +192,7 @@ def _eval(module: SimpleModule,
     with tempfile.NamedTemporaryFile(suffix=".ll") as f:
         f.write(module.ir().encode("utf-8"))
         f.flush()
-        NonadaptiveJit().eval(f.name, gates, None, result_stream)
+        NonadaptiveEvaluator().eval(f.name, gates, None, result_stream)
 
 
 if __name__ == "__main__":
diff --git a/pyqir-tests/tests/test_teleport.py b/pyqir-tests/tests/test_teleport.py
index 9ed57853..ebc9b7d0 100644
--- a/pyqir-tests/tests/test_teleport.py
+++ b/pyqir-tests/tests/test_teleport.py
@@ -2,7 +2,7 @@
 # Licensed under the MIT License.
 
 from pyqir.generator import BasicQisBuilder, Qubit, Ref, SimpleModule
-from pyqir.jit import GateLogger, GateSet, NonadaptiveJit
+from pyqir.evaluator import GateLogger, GateSet, NonadaptiveEvaluator
 import tempfile
 from typing import List, Optional
 import unittest
@@ -128,7 +128,7 @@ def _eval(module: SimpleModule,
     with tempfile.NamedTemporaryFile(suffix=".ll") as f:
         f.write(module.ir().encode("utf-8"))
         f.flush()
-        NonadaptiveJit().eval(f.name, gates, None, result_stream)
+        NonadaptiveEvaluator().eval(f.name, gates, None, result_stream)
 
 
 if __name__ == "__main__":
diff --git a/pyqir-tests/tox.ini b/pyqir-tests/tox.ini
index 4b497163..2af40c08 100644
--- a/pyqir-tests/tox.ini
+++ b/pyqir-tests/tox.ini
@@ -4,7 +4,7 @@ isolated_build = true
 [testenv]
 deps =
     --editable=../pyqir-generator
-    --editable=../pyqir-jit
+    --editable=../pyqir-evaluator
     pytest
 
 [testenv:test]