Use hierarchical namespaces in name resolution
This PR replaces #1364
This PR introduces a feature called hierarchical namespaces, a module-like system that maintains backward compatibility. It is the foundational groundwork that will pave the way for:
- Naked namespaces (files without namespace declarations)
- Package publishing and sharing
- Explicit item imports
- Exports and re-exports
- and the rest of the stuff here
Key changes include:
-
VecIdenttype introduction: This abstraction overVec<Ident>represents the new namespaces in the AST. Alternate names could beDotIdentorPath, but those names were already loaded with meaning in our codebase. I'm open to feedback on nomenclature here. -
NamespaceIdusage: This replaces our previous flat map-styleRc<str> -> Resitem tracking. -
NamespaceTree: This tracks the namespace hierarchy separately in low-cost data structure, and allows us to keep our basictysandtermsmaps relatively untouched. - Name resolution algorithm update: The algorithm in
resolve.rsreceived a heavy facelift. Not only did I try to simplify the existing code, but I also added the required functionality to check candidate partially-opened or re-opened namespaces.
This PR maintains 100% backward compatibility with the existing resolution engine, preserving features like re-opening namespaces, shadowing semantics, merging namespaces via aliases, and absolute-path opens. It also introduces the ability to reference a function in a different namespace if its parent namespace is opened.
Additional notes:
- Katas used a form of shadowing that wasn't tested in our compiler. This PR adds a test for that.
- Pursuing #1321 could help differentiate user-facing and compiler-engineer-facing string representations of structs, which are increasingly conflated.
- There's potential for refactoring
ast,fir, andhirto use shared generic types, reducing duplicateIdent/etc types. - Completions functionality remains the same, but it's not yet aware of the ability to partially open namespaces (e.g.
open Microsoft.Quantum. This will be addressed in future updates. - There is a performance regression, but we are performing a full tree-traversal namespace resolution algorithm in a place where we used to just do a constant table lookup. I have optimized this as much as I believe is reasonable for now, bringing the regression down from ~40%, where it was originally, to around 5-10% based on the benchmark run.
Also closes #1336
Change in memory usage detected by benchmark.
Memory Report for 53631d5b76d0e99880867ff04f5148a03f53de04
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680437 bytes | 15969785 bytes | 710652 bytes |
Benchmark for 53631d5
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 338.1±2.39µs | 340.1±5.08µs | +0.59% |
| Array literal evaluation | 182.6±14.59µs | 177.8±3.15µs | -2.63% |
| Array update evaluation | 420.4±2.23µs | 423.6±4.50µs | +0.76% |
| Core + Standard library compilation | 16.7±0.03ms | 18.1±0.04ms | +8.38% |
| Deutsch-Jozsa evaluation | 5.0±0.04ms | 5.0±0.05ms | 0.00% |
| Large file parity evaluation | 33.7±0.19ms | 34.2±0.33ms | +1.48% |
| Large input file compilation | 11.1±0.07ms | 11.7±0.11ms | +5.41% |
| Large input file compilation (interpreter) | 43.2±1.55ms | 45.1±0.33ms | +4.40% |
| Large nested iteration | 32.8±0.16ms | 32.8±0.13ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1499.4±52.36µs | 1491.9±46.54µs | -0.50% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.10ms | 7.7±0.08ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1411.0±49.99µs | 1404.2±28.77µs | -0.48% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.1±0.15ms | 21.2±0.34ms | +0.47% |
| Teleport evaluation | 80.1±3.83µs | 80.5±4.47µs | +0.50% |
Benchmark for 7ad8296
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 340.5±2.60µs | 346.5±8.80µs | +1.76% |
| Array literal evaluation | 202.9±15.47µs | 189.8±1.88µs | -6.46% |
| Array update evaluation | 428.2±27.77µs | 431.8±9.11µs | +0.84% |
| Core + Standard library compilation | 16.8±0.14ms | 18.3±0.11ms | +8.93% |
| Deutsch-Jozsa evaluation | 5.0±0.06ms | 5.1±0.12ms | +2.00% |
| Large file parity evaluation | 33.5±0.09ms | 34.5±0.34ms | +2.99% |
| Large input file compilation | 11.3±0.08ms | 11.9±0.27ms | +5.31% |
| Large input file compilation (interpreter) | 44.0±1.23ms | 46.0±1.56ms | +4.55% |
| Large nested iteration | 33.3±1.65ms | 33.9±0.17ms | +1.80% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1500.4±49.62µs | 1486.1±51.08µs | -0.95% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.14ms | 7.6±0.06ms | -1.30% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1405.9±27.24µs | 1398.1±34.96µs | -0.55% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.2±0.17ms | 21.2±0.85ms | 0.00% |
| Teleport evaluation | 80.6±5.58µs | 82.9±8.20µs | +2.85% |
Change in memory usage detected by benchmark.
Memory Report for c60fba82aea00719ee5e17ee2dacc59912193ce0
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680437 bytes | 15969785 bytes | 710652 bytes |
Benchmark for c60fba8
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 338.9±5.34µs | 340.1±2.25µs | +0.35% |
| Array literal evaluation | 181.2±6.47µs | 170.7±1.20µs | -5.79% |
| Array update evaluation | 420.8±2.77µs | 423.8±2.47µs | +0.71% |
| Core + Standard library compilation | 18.8±1.21ms | 19.2±2.34ms | +2.13% |
| Deutsch-Jozsa evaluation | 5.0±0.05ms | 5.0±0.03ms | 0.00% |
| Large file parity evaluation | 33.7±0.18ms | 34.4±0.42ms | +2.08% |
| Large input file compilation | 12.7±1.05ms | 11.8±0.19ms | -7.09% |
| Large input file compilation (interpreter) | 48.8±2.96ms | 45.9±1.76ms | -5.94% |
| Large nested iteration | 32.9±0.18ms | 33.9±1.35ms | +3.04% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1499.7±44.35µs | 1500.8±59.35µs | +0.07% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.11ms | 7.8±0.27ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1418.9±80.46µs | 1451.0±97.65µs | +2.26% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.5±0.27ms | 21.4±0.73ms | -0.47% |
| Teleport evaluation | 80.6±4.36µs | 79.8±4.21µs | -0.99% |
Benchmark for 0116ee1
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 387.0±1.66µs | 345.6±2.44µs | -10.70% |
| Array literal evaluation | 199.7±4.39µs | 189.9±1.14µs | -4.91% |
| Array update evaluation | 463.6±3.02µs | 428.0±1.52µs | -7.68% |
| Core + Standard library compilation | 17.0±0.57ms | 18.4±0.31ms | +8.24% |
| Deutsch-Jozsa evaluation | 5.3±0.04ms | 5.1±0.05ms | -3.77% |
| Large file parity evaluation | 33.9±0.17ms | 34.1±0.20ms | +0.59% |
| Large input file compilation | 11.2±0.17ms | 12.0±0.20ms | +7.14% |
| Large input file compilation (interpreter) | 44.6±1.51ms | 46.7±0.78ms | +4.71% |
| Large nested iteration | 37.5±0.20ms | 33.8±0.13ms | -9.87% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1492.3±43.35µs | 1490.1±40.08µs | -0.15% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.09ms | 7.8±0.10ms | +1.30% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1404.6±47.48µs | 1399.8±37.66µs | -0.34% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.2±0.23ms | 21.4±0.21ms | +0.94% |
| Teleport evaluation | 85.6±4.31µs | 81.2±3.84µs | -5.14% |
Change in memory usage detected by benchmark.
Memory Report for 3e6e410444f97fe8bf54445cf0daacd165b6697e
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for 3e6e410
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 339.0±2.51µs | 335.5±2.07µs | -1.03% |
| Array literal evaluation | 195.9±2.47µs | 170.8±2.66µs | -12.81% |
| Array update evaluation | 422.4±8.84µs | 418.0±1.22µs | -1.04% |
| Core + Standard library compilation | 17.0±0.27ms | 18.2±0.19ms | +7.06% |
| Deutsch-Jozsa evaluation | 5.0±0.04ms | 5.1±0.05ms | +2.00% |
| Large file parity evaluation | 33.6±0.15ms | 34.2±0.45ms | +1.79% |
| Large input file compilation | 11.4±0.14ms | 12.0±0.18ms | +5.26% |
| Large input file compilation (interpreter) | 44.9±1.44ms | 47.3±0.85ms | +5.35% |
| Large nested iteration | 33.1±0.23ms | 32.9±0.14ms | -0.60% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1495.9±34.96µs | 1483.5±28.73µs | -0.83% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.09ms | 7.7±0.17ms | -1.28% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1409.2±35.95µs | 1402.2±71.54µs | -0.50% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.2±0.17ms | 21.3±0.29ms | +0.47% |
| Teleport evaluation | 79.8±4.07µs | 80.4±3.37µs | +0.75% |
Change in memory usage detected by benchmark.
Memory Report for e371e2acf8c71bb0120bcb536d534440c035f865
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for e371e2a
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 336.2±3.39µs | 346.2±1.66µs | +2.97% |
| Array literal evaluation | 178.3±2.84µs | 197.4±2.97µs | +10.71% |
| Array update evaluation | 417.4±1.86µs | 434.6±1.24µs | +4.12% |
| Core + Standard library compilation | 18.0±0.41ms | 18.5±0.69ms | +2.78% |
| Deutsch-Jozsa evaluation | 5.0±0.05ms | 5.1±0.08ms | +2.00% |
| Large file parity evaluation | 33.6±0.15ms | 34.0±0.41ms | +1.19% |
| Large input file compilation | 11.7±0.17ms | 11.9±0.19ms | +1.71% |
| Large input file compilation (interpreter) | 47.7±2.22ms | 46.4±0.86ms | -2.73% |
| Large nested iteration | 33.0±0.41ms | 34.2±0.34ms | +3.64% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1512.0±63.63µs | 1496.8±27.74µs | -1.01% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.18ms | 7.8±0.11ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1424.4±68.72µs | 1413.0±40.48µs | -0.80% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.8±0.22ms | 21.6±0.23ms | -0.92% |
| Teleport evaluation | 80.3±4.03µs | 80.1±3.82µs | -0.25% |
Change in memory usage detected by benchmark.
Memory Report for e1e3a0e9fcc2c5e2cb9d5b241d934241f0cbe05f
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for e1e3a0e
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 336.7±1.30µs | 348.8±8.66µs | +3.59% |
| Array literal evaluation | 174.7±1.81µs | 195.9±0.74µs | +12.14% |
| Array update evaluation | 420.3±1.05µs | 430.9±3.89µs | +2.52% |
| Core + Standard library compilation | 21.3±0.99ms | 22.4±0.68ms | +5.16% |
| Deutsch-Jozsa evaluation | 5.1±0.05ms | 5.1±0.05ms | 0.00% |
| Large file parity evaluation | 33.7±0.11ms | 34.4±0.22ms | +2.08% |
| Large input file compilation | 13.6±0.45ms | 13.7±0.57ms | +0.74% |
| Large input file compilation (interpreter) | 51.3±2.97ms | 53.0±1.78ms | +3.31% |
| Large nested iteration | 33.0±0.28ms | 34.3±0.49ms | +3.94% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1560.1±175.58µs | 1526.3±90.25µs | -2.17% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 8.3±0.29ms | 8.0±0.14ms | -3.61% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1472.3±132.97µs | 1445.0±121.04µs | -1.85% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 22.4±0.51ms | 22.5±0.43ms | +0.45% |
| Teleport evaluation | 81.8±4.67µs | 80.3±3.82µs | -1.83% |
Change in memory usage detected by benchmark.
Memory Report for 4937820bae5d2fbdaab0c996e7d4e0d6cbc5b2fa
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for 4937820
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 359.7±4.98µs | 347.1±2.22µs | -3.50% |
| Array literal evaluation | 192.9±1.67µs | 190.2±5.89µs | -1.40% |
| Array update evaluation | 426.3±2.98µs | 433.7±1.95µs | +1.74% |
| Core + Standard library compilation | 18.2±1.04ms | 18.6±0.93ms | +2.20% |
| Deutsch-Jozsa evaluation | 5.2±0.06ms | 5.2±0.15ms | 0.00% |
| Large file parity evaluation | 33.8±0.15ms | 34.2±0.20ms | +1.18% |
| Large input file compilation | 12.0±0.33ms | 12.8±0.50ms | +6.67% |
| Large input file compilation (interpreter) | 48.8±1.82ms | 47.6±1.27ms | -2.46% |
| Large nested iteration | 34.4±0.25ms | 34.1±0.37ms | -0.87% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1502.7±50.32µs | 1521.6±143.34µs | +1.26% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.15ms | 7.8±0.15ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1420.3±36.90µs | 1411.7±36.94µs | -0.61% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.8±0.83ms | 21.8±0.46ms | 0.00% |
| Teleport evaluation | 83.6±4.48µs | 82.5±3.41µs | -1.32% |
Change in memory usage detected by benchmark.
Memory Report for d0d4e610fd5b002a624c3dd755453de046e0c79f
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for d0d4e61
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 347.6±2.26µs | 352.0±1.34µs | +1.27% |
| Array literal evaluation | 193.0±1.81µs | 191.4±3.96µs | -0.83% |
| Array update evaluation | 431.1±2.12µs | 442.8±2.29µs | +2.71% |
| Core + Standard library compilation | 16.6±0.12ms | 18.1±0.27ms | +9.04% |
| Deutsch-Jozsa evaluation | 5.1±0.04ms | 5.1±0.09ms | 0.00% |
| Large file parity evaluation | 33.7±0.14ms | 34.3±0.82ms | +1.78% |
| Large input file compilation | 11.3±0.10ms | 12.0±0.30ms | +6.19% |
| Large input file compilation (interpreter) | 44.0±1.85ms | 46.4±1.61ms | +5.45% |
| Large nested iteration | 34.2±0.19ms | 34.9±1.01ms | +2.05% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1490.6±31.03µs | 1517.0±53.75µs | +1.77% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.6±0.10ms | 7.7±0.11ms | +1.32% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1404.3±29.54µs | 1410.7±25.45µs | +0.46% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.1±0.14ms | 21.2±0.12ms | +0.47% |
| Teleport evaluation | 82.0±4.49µs | 82.7±3.63µs | +0.85% |
Change in memory usage detected by benchmark.
Memory Report for d5373dafb69a58e0203764f87c06ec020e548ce3
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16680117 bytes | 15969785 bytes | 710332 bytes |
Benchmark for d5373da
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 344.2±4.85µs | 347.3±3.64µs | +0.90% |
| Array literal evaluation | 174.0±1.18µs | 197.3±2.65µs | +13.39% |
| Array update evaluation | 426.6±4.34µs | 434.4±2.02µs | +1.83% |
| Core + Standard library compilation | 17.1±0.39ms | 18.8±0.55ms | +9.94% |
| Deutsch-Jozsa evaluation | 5.1±0.06ms | 5.2±0.18ms | +1.96% |
| Large file parity evaluation | 33.8±0.14ms | 34.4±0.22ms | +1.78% |
| Large input file compilation | 12.1±0.46ms | 12.2±0.28ms | +0.83% |
| Large input file compilation (interpreter) | 46.0±1.50ms | 49.3±1.85ms | +7.17% |
| Large nested iteration | 33.6±0.14ms | 34.3±1.68ms | +2.08% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1510.4±45.14µs | 1498.2±34.96µs | -0.81% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.22ms | 7.8±0.11ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1419.7±30.76µs | 1427.2±73.37µs | +0.53% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.5±0.26ms | 21.5±0.50ms | 0.00% |
| Teleport evaluation | 82.1±4.73µs | 83.2±3.74µs | +1.34% |
Change in memory usage detected by benchmark.
Memory Report for b0c1141f1e61f1c536368a5e1412634153872ea7
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16641469 bytes | 15969785 bytes | 671684 bytes |
Benchmark for b0c1141
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 340.5±1.33µs | 347.4±1.99µs | +2.03% |
| Array literal evaluation | 173.6±0.99µs | 190.5±2.67µs | +9.74% |
| Array update evaluation | 422.3±1.68µs | 428.4±2.68µs | +1.44% |
| Core + Standard library compilation | 16.8±0.33ms | 18.4±0.37ms | +9.52% |
| Deutsch-Jozsa evaluation | 5.2±0.07ms | 5.0±0.11ms | -3.85% |
| Large file parity evaluation | 33.6±0.12ms | 34.4±0.25ms | +2.38% |
| Large input file compilation | 11.5±0.23ms | 12.1±0.29ms | +5.22% |
| Large input file compilation (interpreter) | 45.2±1.36ms | 47.4±1.38ms | +4.87% |
| Large nested iteration | 33.3±0.20ms | 34.0±0.17ms | +2.10% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1492.5±29.82µs | 1487.2±35.50µs | -0.36% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.8±0.11ms | 7.7±0.10ms | -1.28% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1407.5±39.53µs | 1403.1±45.90µs | -0.31% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.2±0.26ms | 21.4±0.21ms | +0.94% |
| Teleport evaluation | 83.3±4.28µs | 81.1±3.65µs | -2.64% |
Change in memory usage detected by benchmark.
Memory Report for 5bf02d00d126440f7c4391a4484d8c90a4242641
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16641469 bytes | 15969785 bytes | 671684 bytes |
Benchmark for 5bf02d0
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 340.5±9.16µs | 349.8±2.90µs | +2.73% |
| Array literal evaluation | 173.6±1.27µs | 189.2±1.09µs | +8.99% |
| Array update evaluation | 420.6±1.81µs | 430.7±7.00µs | +2.40% |
| Core + Standard library compilation | 16.8±0.27ms | 18.2±0.34ms | +8.33% |
| Deutsch-Jozsa evaluation | 5.1±0.04ms | 5.1±0.13ms | 0.00% |
| Large file parity evaluation | 33.7±0.13ms | 34.3±0.20ms | +1.78% |
| Large input file compilation | 11.5±0.59ms | 11.9±0.45ms | +3.48% |
| Large input file compilation (interpreter) | 45.3±2.73ms | 46.5±1.33ms | +2.65% |
| Large nested iteration | 33.3±0.29ms | 33.9±0.16ms | +1.80% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1484.9±29.45µs | 1487.7±34.51µs | +0.19% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.6±0.11ms | 7.6±0.07ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1403.5±39.82µs | 1399.0±34.15µs | -0.32% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 21.3±0.44ms | 21.2±0.49ms | -0.47% |
| Teleport evaluation | 88.4±3.56µs | 90.1±4.87µs | +1.92% |
Change in memory usage detected by benchmark.
Memory Report for d8ee19e56bf2b8e1f193dc80ba7cf3857e18b529
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16589301 bytes | 15917505 bytes | 671796 bytes |
Benchmark for d8ee19e
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 341.3±1.78µs | 359.9±3.92µs | +5.45% |
| Array literal evaluation | 180.6±3.28µs | 195.5±1.04µs | +8.25% |
| Array update evaluation | 422.4±8.63µs | 434.3±2.37µs | +2.82% |
| Core + Standard library compilation | 17.1±0.39ms | 18.5±0.34ms | +8.19% |
| Deutsch-Jozsa evaluation | 5.1±0.15ms | 5.1±0.04ms | 0.00% |
| Large file parity evaluation | 33.9±0.09ms | 33.8±0.56ms | -0.29% |
| Large input file compilation | 11.6±0.29ms | 12.1±0.20ms | +4.31% |
| Large input file compilation (interpreter) | 45.1±1.21ms | 46.9±1.47ms | +3.99% |
| Large nested iteration | 33.3±0.17ms | 34.7±2.42ms | +4.20% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1486.7±36.80µs | 1481.1±33.70µs | -0.38% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.6±0.09ms | 7.6±0.06ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1401.0±28.78µs | 1403.1±72.39µs | +0.15% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 20.2±0.24ms | 20.3±0.18ms | +0.50% |
| Teleport evaluation | 88.9±3.47µs | 89.2±5.23µs | +0.34% |
Change in memory usage detected by benchmark.
Memory Report for 028bdbaf11fe82c14de754c9f4f75c63cea298a1
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16589301 bytes | 15917505 bytes | 671796 bytes |
Benchmark for 028bdba
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 348.1±29.01µs | 348.0±5.28µs | -0.03% |
| Array literal evaluation | 199.1±4.92µs | 181.2±5.33µs | -8.99% |
| Array update evaluation | 425.6±2.33µs | 422.0±6.80µs | -0.85% |
| Core + Standard library compilation | 17.7±1.01ms | 20.0±1.36ms | +12.99% |
| Deutsch-Jozsa evaluation | 5.0±0.05ms | 5.0±0.04ms | 0.00% |
| Large file parity evaluation | 33.9±0.82ms | 33.7±0.46ms | -0.59% |
| Large input file compilation | 12.0±0.59ms | 12.7±0.66ms | +5.83% |
| Large input file compilation (interpreter) | 47.6±1.44ms | 50.6±2.69ms | +6.30% |
| Large nested iteration | 33.5±0.45ms | 33.2±0.25ms | -0.90% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1491.6±58.39µs | 1480.5±34.39µs | -0.74% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.10ms | 7.7±0.12ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1407.0±42.89µs | 1400.9±42.16µs | -0.43% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 20.4±0.38ms | 20.5±0.26ms | +0.49% |
| Teleport evaluation | 88.0±3.67µs | 88.2±3.86µs | +0.23% |
Change in memory usage detected by benchmark.
Memory Report for 03e800cf22cdd75184f6c6a51ac3600fc1cd5084
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16589301 bytes | 15917505 bytes | 671796 bytes |
Benchmark for 03e800c
Click to view benchmark
| Test | Base | PR | % |
|---|---|---|---|
| Array append evaluation | 343.8±8.39µs | 347.6±2.78µs | +1.11% |
| Array literal evaluation | 199.1±1.99µs | 177.5±1.90µs | -10.85% |
| Array update evaluation | 423.9±1.46µs | 421.8±2.45µs | -0.50% |
| Core + Standard library compilation | 17.2±0.37ms | 18.7±0.61ms | +8.72% |
| Deutsch-Jozsa evaluation | 5.1±0.04ms | 5.1±0.12ms | 0.00% |
| Large file parity evaluation | 33.8±0.35ms | 33.9±0.96ms | +0.30% |
| Large input file compilation | 11.6±0.20ms | 12.0±0.14ms | +3.45% |
| Large input file compilation (interpreter) | 46.1±1.84ms | 47.5±1.44ms | +3.04% |
| Large nested iteration | 33.4±0.14ms | 33.0±0.33ms | -1.20% |
| Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample | 1509.9±31.50µs | 1477.6±31.63µs | -2.14% |
| Perform Runtime Capabilities Analysis (RCA) on large file sample | 7.7±0.07ms | 7.7±0.08ms | 0.00% |
| Perform Runtime Capabilities Analysis (RCA) on teleport sample | 1430.0±39.75µs | 1395.1±38.01µs | -2.44% |
| Perform Runtime Capabilities Analysis (RCA) on the core and std libraries | 20.2±0.16ms | 20.3±0.39ms | +0.50% |
| Teleport evaluation | 91.3±4.96µs | 89.3±10.52µs | -2.19% |
Change in memory usage detected by benchmark.
Memory Report for f5dc475e127a23ee9673079b063aa2f52b2c4b9d
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16589301 bytes | 15917505 bytes | 671796 bytes |
Change in memory usage detected by benchmark.
Memory Report for b7c57e91428f3f18ce0f761f3fd0442d50dc4e10
| Test | This Branch | On Main | Difference |
|---|---|---|---|
| compile core + standard lib | 16584781 bytes | 15917505 bytes | 667276 bytes |