qdk icon indicating copy to clipboard operation
qdk copied to clipboard

Allow exports from namespaces

Open sezna opened this issue 1 year ago • 22 comments

This PR introduces exports -- a namespace can export any symbol it has access to. External packages (consumers of this package) will only have access to explicitly exported items.

Next up will be imports, which will allow for importing of specific items.

How it works

Exports are a type of Item, and they appear inside of namespaces (implicit or explicit). Exports are paths, which are resolved to local item ids in the resolver. They are then bound to the scope of that namespace. After that, the exported item is added to the api surface of the namespace.

When we support external package dependencies, we only want to allow importing of explicitly exported items. At that time, we will add a flag to the items to denote if they originate from an export.

This PR also supports export aliases: export { Foo as Bar };

sezna avatar Apr 30 '24 21:04 sezna

Change in memory usage detected by benchmark.

Memory Report for cf3b6a97a55ac572424fcb38329453ef9fc7b2d3

Test This Branch On Main Difference
compile core + standard lib 16594705 bytes 16582941 bytes 11764 bytes

github-actions[bot] avatar May 20 '24 20:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 08c230f6ef0268161899f067eed314c2a4d2c73e

Test This Branch On Main Difference
compile core + standard lib 16594705 bytes 16582941 bytes 11764 bytes

github-actions[bot] avatar May 20 '24 20:05 github-actions[bot]

Benchmark for 08c230f

Click to view benchmark
Test Base PR %
Array append evaluation 330.1±2.20µs 331.3±6.33µs +0.36%
Array literal evaluation 190.2±8.14µs 168.6±1.34µs -11.36%
Array update evaluation 408.5±2.25µs 406.7±0.97µs -0.44%
Core + Standard library compilation 19.9±0.74ms 18.7±0.44ms -6.03%
Deutsch-Jozsa evaluation 5.0±0.04ms 5.0±0.08ms 0.00%
Large file parity evaluation 34.0±0.07ms 34.2±0.33ms +0.59%
Large input file compilation 12.9±0.31ms 12.8±0.48ms -0.78%
Large input file compilation (interpreter) 50.3±1.50ms 46.5±0.99ms -7.55%
Large nested iteration 32.5±0.18ms 32.6±0.30ms +0.31%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1564.2±86.17µs 1554.7±32.98µs -0.61%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.9±0.08ms 7.7±0.06ms -2.53%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1443.7±136.18µs 1419.7±37.80µs -1.66%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 28.0±0.37ms 27.3±0.48ms -2.50%
Teleport evaluation 88.3±5.47µs 88.1±3.93µs -0.23%

github-actions[bot] avatar May 20 '24 20:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for f765a0087ebea79279f90b17e5d56f0a55916ffe

Test This Branch On Main Difference
compile core + standard lib 16594705 bytes 16582941 bytes 11764 bytes

github-actions[bot] avatar May 20 '24 21:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 2845b10a145d7a32fac299844067e7859db27e99

Test This Branch On Main Difference
compile core + standard lib 16594705 bytes 16582941 bytes 11764 bytes

github-actions[bot] avatar May 20 '24 21:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 8d3e55b3b2652f46738ea4d3f1e1139058687e14

Test This Branch On Main Difference
compile core + standard lib 16594705 bytes 16582941 bytes 11764 bytes

github-actions[bot] avatar May 20 '24 21:05 github-actions[bot]

Benchmark for 8d3e55b

Click to view benchmark
Test Base PR %
Array append evaluation 325.1±1.29µs 326.9±6.66µs +0.55%
Array literal evaluation 171.1±0.84µs 168.8±1.37µs -1.34%
Array update evaluation 404.6±1.12µs 404.9±2.23µs +0.07%
Core + Standard library compilation 21.4±1.37ms 20.3±1.08ms -5.14%
Deutsch-Jozsa evaluation 5.0±0.05ms 5.1±0.05ms +2.00%
Large file parity evaluation 34.1±0.10ms 34.2±0.53ms +0.29%
Large input file compilation 13.4±0.52ms 13.4±0.41ms 0.00%
Large input file compilation (interpreter) 50.2±2.11ms 51.4±1.96ms +2.39%
Large nested iteration 32.4±0.39ms 32.4±0.28ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1590.4±110.18µs 1570.2±60.83µs -1.27%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.0±0.13ms 8.0±0.16ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1437.3±63.08µs 1443.4±143.81µs +0.42%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 28.1±0.31ms 27.9±0.77ms -0.71%
Teleport evaluation 88.0±4.01µs 89.7±4.08µs +1.93%

github-actions[bot] avatar May 20 '24 21:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for ef1a77188da56688b569a85eef4e81e4541436ff

Test This Branch On Main Difference
compile core + standard lib 16597793 bytes 16582941 bytes 14852 bytes

github-actions[bot] avatar May 21 '24 05:05 github-actions[bot]

Benchmark for ef1a771

Click to view benchmark
Test Base PR %
Array append evaluation 330.0±1.90µs 337.4±2.45µs +2.24%
Array literal evaluation 170.9±1.38µs 186.7±1.42µs +9.25%
Array update evaluation 408.0±1.87µs 415.6±3.83µs +1.86%
Core + Standard library compilation 19.0±0.59ms 19.2±0.51ms +1.05%
Deutsch-Jozsa evaluation 5.2±0.05ms 5.0±0.04ms -3.85%
Large file parity evaluation 34.2±0.23ms 34.1±0.69ms -0.29%
Large input file compilation 12.8±0.32ms 12.7±0.25ms -0.78%
Large input file compilation (interpreter) 47.6±1.35ms 48.1±1.27ms +1.05%
Large nested iteration 32.8±0.46ms 32.8±0.15ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1557.1±44.01µs 1565.5±57.86µs +0.54%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.8±0.07ms 7.7±0.08ms -1.28%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1417.4±39.92µs 1427.4±41.05µs +0.71%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 27.6±0.36ms 27.8±0.58ms +0.72%
Teleport evaluation 91.8±3.57µs 87.3±4.09µs -4.90%

github-actions[bot] avatar May 21 '24 05:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 2c21d22409210e609aa58df0919580fe85fbd2df

Test This Branch On Main Difference
compile core + standard lib 16597793 bytes 16582941 bytes 14852 bytes

github-actions[bot] avatar May 21 '24 14:05 github-actions[bot]

Benchmark for 2c21d22

Click to view benchmark
Test Base PR %
Array append evaluation 332.6±2.86µs 329.2±2.65µs -1.02%
Array literal evaluation 183.8±1.66µs 183.2±0.72µs -0.33%
Array update evaluation 415.5±1.83µs 406.3±1.50µs -2.21%
Core + Standard library compilation 18.8±0.39ms 19.2±0.44ms +2.13%
Deutsch-Jozsa evaluation 5.1±0.06ms 5.0±0.05ms -1.96%
Large file parity evaluation 34.6±0.83ms 34.1±0.25ms -1.45%
Large input file compilation 12.6±0.43ms 12.8±0.47ms +1.59%
Large input file compilation (interpreter) 48.5±1.74ms 48.5±2.33ms 0.00%
Large nested iteration 33.1±0.16ms 32.2±0.15ms -2.72%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1551.0±33.96µs 1562.2±56.26µs +0.72%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.7±0.07ms 7.7±0.09ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1421.7±68.79µs 1419.6±31.63µs -0.15%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 27.5±0.22ms 27.6±0.33ms +0.36%
Teleport evaluation 90.5±3.59µs 88.2±4.23µs -2.54%

github-actions[bot] avatar May 21 '24 14:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for ef02ab3a535830c888ce6d7587ab6cd71d43fd5c

Test This Branch On Main Difference
compile core + standard lib 16597793 bytes 16582941 bytes 14852 bytes

github-actions[bot] avatar May 21 '24 14:05 github-actions[bot]

Benchmark for ef02ab3

Click to view benchmark
Test Base PR %
Array append evaluation 335.2±4.07µs 331.5±9.04µs -1.10%
Array literal evaluation 170.9±1.86µs 170.6±0.97µs -0.18%
Array update evaluation 411.1±1.59µs 409.4±9.62µs -0.41%
Core + Standard library compilation 21.8±0.78ms 20.0±0.82ms -8.26%
Deutsch-Jozsa evaluation 5.2±0.06ms 5.0±0.19ms -3.85%
Large file parity evaluation 34.3±0.11ms 34.0±0.35ms -0.87%
Large input file compilation 14.1±0.48ms 13.3±0.50ms -5.67%
Large input file compilation (interpreter) 52.1±1.62ms 50.0±2.25ms -4.03%
Large nested iteration 32.9±0.16ms 32.6±0.90ms -0.91%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1602.9±123.67µs 1574.4±93.15µs -1.78%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.2±0.10ms 7.8±0.09ms -4.88%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1475.3±141.22µs 1421.8±43.21µs -3.63%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 28.8±0.25ms 28.2±0.97ms -2.08%
Teleport evaluation 91.3±5.01µs 88.8±6.68µs -2.74%

github-actions[bot] avatar May 21 '24 15:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 0e743892b737a8a5d780e0c65dd9ca1e6ee467d4

Test This Branch On Main Difference
compile core + standard lib 16597793 bytes 16582941 bytes 14852 bytes

github-actions[bot] avatar May 21 '24 15:05 github-actions[bot]

Benchmark for 0e74389

Click to view benchmark
Test Base PR %
Array append evaluation 336.8±1.70µs 333.3±2.21µs -1.04%
Array literal evaluation 188.0±8.89µs 170.8±1.09µs -9.15%
Array update evaluation 416.6±1.73µs 410.3±1.26µs -1.51%
Core + Standard library compilation 21.5±1.28ms 22.2±1.35ms +3.26%
Deutsch-Jozsa evaluation 5.2±0.06ms 5.1±0.08ms -1.92%
Large file parity evaluation 34.7±0.17ms 34.2±0.23ms -1.44%
Large input file compilation 14.9±0.67ms 15.0±0.83ms +0.67%
Large input file compilation (interpreter) 52.9±2.90ms 52.6±2.30ms -0.57%
Large nested iteration 33.4±0.90ms 32.9±1.26ms -1.50%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1640.2±160.56µs 1641.3±139.12µs +0.07%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.4±0.19ms 8.4±0.26ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1505.2±179.90µs 1504.3±194.09µs -0.06%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 29.1±0.46ms 29.2±0.39ms +0.34%
Teleport evaluation 92.1±4.03µs 88.8±5.15µs -3.58%

github-actions[bot] avatar May 21 '24 15:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for de39c3f305dee12571bed588535b7be3a2faf02c

Test This Branch On Main Difference
compile core + standard lib 16634289 bytes 16619429 bytes 14860 bytes

github-actions[bot] avatar May 21 '24 21:05 github-actions[bot]

Benchmark for de39c3f

Click to view benchmark
Test Base PR %
Array append evaluation 327.5±2.81µs 327.8±2.80µs +0.09%
Array literal evaluation 171.1±1.60µs 171.1±1.46µs 0.00%
Array update evaluation 406.9±2.38µs 406.9±2.41µs 0.00%
Core + Standard library compilation 23.1±1.14ms 23.0±0.99ms -0.43%
Deutsch-Jozsa evaluation 5.1±0.05ms 5.1±0.04ms 0.00%
Large file parity evaluation 34.3±0.11ms 34.3±0.24ms 0.00%
Large input file compilation 14.5±0.51ms 14.9±0.46ms +2.76%
Large input file compilation (interpreter) 53.4±1.40ms 55.5±1.73ms +3.93%
Large nested iteration 32.5±0.38ms 32.6±0.17ms +0.31%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1661.2±140.82µs 1624.5±154.80µs -2.21%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.5±0.26ms 8.6±0.20ms +1.18%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1497.5±157.47µs 1480.3±152.03µs -1.15%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 29.2±0.54ms 29.2±0.43ms 0.00%
Teleport evaluation 89.8±4.19µs 89.7±5.72µs -0.11%

github-actions[bot] avatar May 21 '24 22:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for a4005095d6363d6f0c381271a812734413c16e09

Test This Branch On Main Difference
compile core + standard lib 16634289 bytes 16619429 bytes 14860 bytes

github-actions[bot] avatar May 22 '24 19:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 18711a2d16695c55899b13997a984aec56af1da0

Test This Branch On Main Difference
compile core + standard lib 16634289 bytes 16619429 bytes 14860 bytes

github-actions[bot] avatar May 22 '24 19:05 github-actions[bot]

Benchmark for 18711a2

Click to view benchmark
Test Base PR %
Array append evaluation 326.5±1.53µs 336.2±3.34µs +2.97%
Array literal evaluation 176.7±1.30µs 174.9±6.39µs -1.02%
Array update evaluation 408.6±3.46µs 414.6±2.13µs +1.47%
Core + Standard library compilation 21.1±0.71ms 20.7±0.96ms -1.90%
Deutsch-Jozsa evaluation 5.0±0.04ms 5.1±0.10ms +2.00%
Large file parity evaluation 34.0±0.16ms 34.2±0.35ms +0.59%
Large input file compilation 13.2±0.21ms 13.2±0.23ms 0.00%
Large input file compilation (interpreter) 49.2±1.00ms 52.5±1.81ms +6.71%
Large nested iteration 32.2±0.15ms 33.1±0.19ms +2.80%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1584.4±72.82µs 1581.2±84.55µs -0.20%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.8±0.17ms 8.1±0.18ms +3.85%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1471.6±155.17µs 1433.7±70.08µs -2.58%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 29.2±0.28ms 28.5±0.29ms -2.40%
Teleport evaluation 87.2±3.76µs 89.0±3.95µs +2.06%

github-actions[bot] avatar May 22 '24 19:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 51c39ce39107390df23c6bf94194162f5848b5e1

Test This Branch On Main Difference
compile core + standard lib 16634289 bytes 16619429 bytes 14860 bytes

github-actions[bot] avatar May 23 '24 17:05 github-actions[bot]

Benchmark for 51c39ce

Click to view benchmark
Test Base PR %
Array append evaluation 327.7±1.49µs 335.6±3.41µs +2.41%
Array literal evaluation 176.0±0.78µs 170.7±2.54µs -3.01%
Array update evaluation 410.7±15.32µs 414.4±4.56µs +0.90%
Core + Standard library compilation 20.6±0.99ms 21.3±0.90ms +3.40%
Deutsch-Jozsa evaluation 5.0±0.05ms 5.3±0.07ms +6.00%
Large file parity evaluation 34.1±0.50ms 34.3±0.52ms +0.59%
Large input file compilation 14.0±1.13ms 13.6±0.60ms -2.86%
Large input file compilation (interpreter) 49.2±0.99ms 51.0±2.08ms +3.66%
Large nested iteration 32.3±0.13ms 33.0±0.35ms +2.17%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1596.6±112.77µs 1617.1±177.52µs +1.28%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.9±0.13ms 8.0±0.15ms +1.27%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1466.6±159.66µs 1469.2±144.13µs +0.18%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 28.4±0.29ms 28.5±0.44ms +0.35%
Teleport evaluation 89.2±4.15µs 93.1±3.94µs +4.37%

github-actions[bot] avatar May 23 '24 17:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 685c1e004b8b2e06ba61424feb63a50bceb649ca

Test This Branch On Main Difference
compile core + standard lib 16634289 bytes 16619429 bytes 14860 bytes

github-actions[bot] avatar May 28 '24 17:05 github-actions[bot]

Benchmark for 685c1e0

Click to view benchmark
Test Base PR %
Array append evaluation 331.5±2.41µs 331.5±2.16µs 0.00%
Array literal evaluation 197.3±3.92µs 170.6±1.80µs -13.53%
Array update evaluation 415.2±3.45µs 409.2±1.44µs -1.45%
Core + Standard library compilation 21.3±1.09ms 21.4±1.34ms +0.47%
Deutsch-Jozsa evaluation 5.2±0.06ms 5.1±0.05ms -1.92%
Large file parity evaluation 34.3±0.10ms 34.2±0.15ms -0.29%
Large input file compilation 14.5±0.92ms 13.3±1.14ms -8.28%
Large input file compilation (interpreter) 52.0±2.92ms 52.1±2.38ms +0.19%
Large nested iteration 32.8±0.44ms 33.0±0.18ms +0.61%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1627.8±125.39µs 1598.4±85.18µs -1.81%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.2±0.21ms 8.0±0.19ms -2.44%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1498.2±173.52µs 1462.3±108.28µs -2.40%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 29.4±0.38ms 28.8±0.40ms -2.04%
Teleport evaluation 91.8±8.11µs 87.9±4.04µs -4.25%

github-actions[bot] avatar May 28 '24 17:05 github-actions[bot]

Merged the import and export branches together, but this comment still needs a response (cc @minestarks): https://github.com/microsoft/qsharp/pull/1469#discussion_r1617654530

sezna avatar May 28 '24 18:05 sezna

Change in memory usage detected by benchmark.

Memory Report for a96f4595113f3e20d4d317df9ecf07c6a77b7d31

Test This Branch On Main Difference
compile core + standard lib 16621169 bytes 16619429 bytes 1740 bytes

github-actions[bot] avatar May 28 '24 18:05 github-actions[bot]

Benchmark for a96f459

Click to view benchmark
Test Base PR %
Array append evaluation 335.0±3.81µs 332.5±5.57µs -0.75%
Array literal evaluation 192.8±1.87µs 186.7±1.05µs -3.16%
Array update evaluation 414.2±1.51µs 409.5±3.38µs -1.13%
Core + Standard library compilation 19.9±1.08ms 21.4±0.62ms +7.54%
Deutsch-Jozsa evaluation 5.2±0.06ms 5.1±0.05ms -1.92%
Large file parity evaluation 34.3±0.10ms 34.4±0.35ms +0.29%
Large input file compilation 12.9±0.31ms 13.4±0.40ms +3.88%
Large input file compilation (interpreter) 50.3±1.81ms 50.1±0.97ms -0.40%
Large nested iteration 32.9±1.09ms 33.2±0.39ms +0.91%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1564.8±45.27µs 1558.3±31.05µs -0.42%
Perform Runtime Capabilities Analysis (RCA) on large file sample 7.9±0.14ms 7.8±0.13ms -1.27%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1422.3±41.87µs 1424.1±36.51µs +0.13%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 28.5±0.23ms 28.0±0.69ms -1.75%
Teleport evaluation 92.1±7.23µs 88.1±4.14µs -4.34%

github-actions[bot] avatar May 28 '24 18:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for 889af7aff83a034c71e1e1e005dc5051dd3de2f9

Test This Branch On Main Difference
compile core + standard lib 16621169 bytes 16619429 bytes 1740 bytes

github-actions[bot] avatar May 28 '24 18:05 github-actions[bot]

Benchmark for 889af7a

Click to view benchmark
Test Base PR %
Array append evaluation 335.6±6.75µs 330.7±6.10µs -1.46%
Array literal evaluation 178.7±5.39µs 184.2±4.44µs +3.08%
Array update evaluation 414.0±3.00µs 409.3±1.23µs -1.14%
Core + Standard library compilation 20.8±1.02ms 21.2±0.62ms +1.92%
Deutsch-Jozsa evaluation 5.2±0.06ms 5.1±0.06ms -1.92%
Large file parity evaluation 34.2±0.10ms 34.4±0.53ms +0.58%
Large input file compilation 13.6±0.60ms 13.7±0.56ms +0.74%
Large input file compilation (interpreter) 49.9±1.04ms 50.7±1.80ms +1.60%
Large nested iteration 32.8±0.28ms 32.9±0.92ms +0.30%
Perform Runtime Capabilities Analysis (RCA) on Deutsch-Jozsa sample 1609.0±139.90µs 1596.4±126.38µs -0.78%
Perform Runtime Capabilities Analysis (RCA) on large file sample 8.1±0.14ms 8.1±0.32ms 0.00%
Perform Runtime Capabilities Analysis (RCA) on teleport sample 1467.1±137.68µs 1453.9±117.75µs -0.90%
Perform Runtime Capabilities Analysis (RCA) on the core and std libraries 29.2±0.28ms 28.5±0.34ms -2.40%
Teleport evaluation 91.4±3.82µs 88.6±4.11µs -3.06%

github-actions[bot] avatar May 28 '24 19:05 github-actions[bot]

Change in memory usage detected by benchmark.

Memory Report for cd8df48da223b6e2a49fef96e164dc21246fe2e0

Test This Branch On Main Difference
compile core + standard lib 16621169 bytes 16619429 bytes 1740 bytes

github-actions[bot] avatar May 28 '24 19:05 github-actions[bot]