basedpl 0.1.83__tar.gz → 0.1.84__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. basedpl-0.1.84/.config/nextest.toml +39 -0
  2. {basedpl-0.1.83 → basedpl-0.1.84}/.github/workflows/test.yml +2 -1
  3. {basedpl-0.1.83 → basedpl-0.1.84}/Cargo.lock +90 -37
  4. {basedpl-0.1.83 → basedpl-0.1.84}/Cargo.toml +18 -20
  5. {basedpl-0.1.83 → basedpl-0.1.84}/DEV.md +56 -42
  6. {basedpl-0.1.83 → basedpl-0.1.84}/PKG-INFO +1 -1
  7. {basedpl-0.1.83/python/basedpl → basedpl-0.1.84/editors/jetbrains/BPL.tmbundle/Syntaxes}/bpl.tmLanguage.json +2 -2
  8. {basedpl-0.1.83/python/basedpl → basedpl-0.1.84/editors/jetbrains/BPL.tmbundle/Syntaxes}/hpl.tmLanguage.json +2 -2
  9. {basedpl-0.1.83 → basedpl-0.1.84}/editors/jetbrains/BPL.xml +10 -0
  10. {basedpl-0.1.83 → basedpl-0.1.84}/editors/vim/syntax/bpl.vim +2 -2
  11. basedpl-0.1.84/image/Cargo.toml +19 -0
  12. {basedpl-0.1.83/src/image → basedpl-0.1.84/image/src}/codecs.rs +1 -1
  13. {basedpl-0.1.83/src/image → basedpl-0.1.84/image/src}/imageio.rs +1 -1
  14. basedpl-0.1.84/image/src/lib.rs +50 -0
  15. basedpl-0.1.84/jit/Cargo.toml +20 -0
  16. basedpl-0.1.83/src/jit.rs → basedpl-0.1.84/jit/src/lib.rs +5 -5
  17. {basedpl-0.1.83 → basedpl-0.1.84}/lib/dyalog.bpl +11 -11
  18. {basedpl-0.1.83 → basedpl-0.1.84}/lib/graph.bpl +2 -2
  19. {basedpl-0.1.83 → basedpl-0.1.84}/lib/numeric.bpl +3 -3
  20. {basedpl-0.1.83 → basedpl-0.1.84}/lib/power.bpl +1 -1
  21. {basedpl-0.1.83 → basedpl-0.1.84}/lib/string.bpl +6 -6
  22. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/assignment.ipynb +6 -6
  23. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/bpl.xml +2 -2
  24. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/comparison.qmd +3 -3
  25. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/composition.qmd +7 -7
  26. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/data.ipynb +18 -18
  27. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/distributions.ipynb +2 -2
  28. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/foundations.qmd +1 -1
  29. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/attractor.bpl +2 -2
  30. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/boids.bpl +2 -2
  31. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/flow.bpl +3 -3
  32. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/prefs.bpl +1 -1
  33. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/reaction.bpl +1 -1
  34. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/getting-started.ipynb +2 -2
  35. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/at.qmd +3 -3
  36. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/backslash-bar.qmd +2 -2
  37. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/backslash.qmd +3 -3
  38. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-backslash.qmd +12 -12
  39. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-bar.qmd +2 -2
  40. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-diaeresis.qmd +2 -2
  41. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-divide.qmd +1 -1
  42. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-slash.qmd +2 -2
  43. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-star.qmd +3 -3
  44. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-stile.qmd +2 -2
  45. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/circle-times.qmd +2 -2
  46. basedpl-0.1.84/nbs/glyphs/circle.qmd +46 -0
  47. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/colon.qmd +5 -5
  48. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/comma-bar.qmd +3 -3
  49. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/comma.qmd +4 -4
  50. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/del-stile.qmd +2 -2
  51. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/delta-stile.qmd +2 -2
  52. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/diaeresis.qmd +2 -2
  53. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/domino.qmd +2 -2
  54. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/down-arrow.qmd +2 -2
  55. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/down-tack.qmd +3 -3
  56. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/equals.qmd +1 -1
  57. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/greater-than-or-equal.qmd +2 -2
  58. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/hash.qmd +10 -10
  59. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/hydrant.qmd +2 -2
  60. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/iota-underbar.qmd +2 -2
  61. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/iota.qmd +3 -3
  62. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/jot-diaeresis.qmd +5 -3
  63. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/jot.qmd +2 -2
  64. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/left-shoe-underbar.qmd +3 -3
  65. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/left-shoe.qmd +3 -3
  66. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/left-tack.qmd +2 -2
  67. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/left-tail-arrow.qmd +3 -3
  68. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/less-than-or-equal.qmd +2 -2
  69. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/minus.qmd +3 -3
  70. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/not-equals.qmd +1 -1
  71. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/obelus.qmd +3 -3
  72. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/partial.qmd +2 -2
  73. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/pi.qmd +4 -4
  74. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/plus.qmd +2 -2
  75. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quad-colon.qmd +2 -2
  76. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quad-jot.qmd +4 -4
  77. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/radical.qmd +4 -4
  78. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/rho.qmd +2 -2
  79. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/right-shoe.qmd +2 -2
  80. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/right-tack.qmd +2 -2
  81. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/right-tail-arrow.qmd +3 -3
  82. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/squad.qmd +2 -2
  83. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/star-diaeresis.qmd +6 -6
  84. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/star.qmd +3 -3
  85. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/stile-tilde.qmd +3 -3
  86. basedpl-0.1.84/nbs/glyphs/superscript-minus.qmd +23 -0
  87. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/tilde-diaeresis.qmd +3 -3
  88. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/tilde.qmd +2 -2
  89. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/times.qmd +3 -3
  90. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/up-arrow.qmd +2 -2
  91. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/up-down-arrow.qmd +3 -3
  92. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/up-tack.qmd +3 -3
  93. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/vee-bar.qmd +2 -2
  94. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/vee.qmd +2 -2
  95. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/wedge-bar.qmd +2 -2
  96. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/wedge.qmd +2 -2
  97. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs.qmd +7 -6
  98. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/hpl.xml +2 -2
  99. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/index-notation.qmd +4 -4
  100. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/keyboard.qmd +2 -2
  101. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/keyed.ipynb +4 -4
  102. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/llms.txt +9 -8
  103. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/numbers.qmd +6 -6
  104. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/python.ipynb +1 -1
  105. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/repl.qmd +1 -1
  106. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/scripts.ipynb +47 -22
  107. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/01_basics.ipynb +31 -31
  108. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/02_functions.ipynb +22 -22
  109. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/03_operators.ipynb +46 -46
  110. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/04_nested-arrays.ipynb +20 -20
  111. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/05_searching-indexing.ipynb +3 -3
  112. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/06_rearranging-arrays.ipynb +14 -14
  113. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/study/07_numerical-tools.ipynb +4 -4
  114. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/syntax.qmd +4 -2
  115. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/csv.qmd +1 -1
  116. basedpl-0.1.84/nbs/system/date.qmd +19 -0
  117. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/decompose.qmd +2 -2
  118. basedpl-0.1.84/nbs/system/deflate.qmd +10 -0
  119. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/distribution.qmd +1 -1
  120. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/image.qmd +2 -2
  121. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/index.qmd +3 -3
  122. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/json.qmd +2 -2
  123. basedpl-0.1.84/nbs/system/literal.qmd +10 -0
  124. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/path.qmd +1 -1
  125. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/ucs.qmd +1 -1
  126. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/xml.qmd +2 -2
  127. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system-functions.qmd +2 -2
  128. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/target.qmd +3 -3
  129. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/web.ipynb +2 -2
  130. basedpl-0.1.84/nbs/xml.ipynb +918 -0
  131. {basedpl-0.1.83 → basedpl-0.1.84}/py/Cargo.toml +2 -0
  132. {basedpl-0.1.83 → basedpl-0.1.84}/py/src/lib.rs +18 -13
  133. {basedpl-0.1.83 → basedpl-0.1.84}/pyproject.toml +1 -1
  134. {basedpl-0.1.83/editors/jetbrains/BPL.tmbundle/Syntaxes → basedpl-0.1.84/python/basedpl}/bpl.tmLanguage.json +2 -2
  135. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/bpltests.py +138 -112
  136. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/language.js +2 -2
  137. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/editors.py +3 -3
  138. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/functions.py +3 -3
  139. {basedpl-0.1.83/editors/jetbrains/BPL.tmbundle/Syntaxes → basedpl-0.1.84/python/basedpl}/hpl.tmLanguage.json +2 -2
  140. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/keyboards.py +1 -0
  141. {basedpl-0.1.83 → basedpl-0.1.84}/src/array.rs +9 -5
  142. {basedpl-0.1.83 → basedpl-0.1.84}/src/batch.rs +3 -5
  143. {basedpl-0.1.83 → basedpl-0.1.84}/src/csv.rs +2 -2
  144. {basedpl-0.1.83 → basedpl-0.1.84}/src/data.rs +1 -1
  145. {basedpl-0.1.83 → basedpl-0.1.84}/src/date.rs +8 -8
  146. {basedpl-0.1.83 → basedpl-0.1.84}/src/derivative.rs +1 -4
  147. {basedpl-0.1.83 → basedpl-0.1.84}/src/display.rs +3 -3
  148. {basedpl-0.1.83 → basedpl-0.1.84}/src/error.rs +2 -2
  149. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/assign.rs +5 -6
  150. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/binder.rs +25 -13
  151. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/products.rs +2 -2
  152. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/session.rs +3 -3
  153. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/tree.rs +1 -3
  154. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval.rs +19 -25
  155. {basedpl-0.1.83 → basedpl-0.1.84}/src/explain.rs +5 -5
  156. {basedpl-0.1.83 → basedpl-0.1.84}/src/files.rs +4 -4
  157. {basedpl-0.1.83 → basedpl-0.1.84}/src/fusion.rs +0 -1
  158. {basedpl-0.1.83 → basedpl-0.1.84}/src/host.rs +0 -7
  159. {basedpl-0.1.83 → basedpl-0.1.84}/src/host_web.rs +0 -3
  160. {basedpl-0.1.83 → basedpl-0.1.84}/src/image.rs +6 -48
  161. {basedpl-0.1.83 → basedpl-0.1.84}/src/json.rs +2 -2
  162. {basedpl-0.1.83 → basedpl-0.1.84}/src/keyed.rs +1 -1
  163. {basedpl-0.1.83 → basedpl-0.1.84}/src/lib.rs +13 -5
  164. {basedpl-0.1.83 → basedpl-0.1.84}/src/number.rs +6 -6
  165. {basedpl-0.1.83 → basedpl-0.1.84}/src/number_theory.rs +1 -1
  166. {basedpl-0.1.83 → basedpl-0.1.84}/src/pervasive/fold.rs +1 -1
  167. {basedpl-0.1.83 → basedpl-0.1.84}/src/pervasive/scan.rs +1 -1
  168. {basedpl-0.1.83 → basedpl-0.1.84}/src/pervasive.rs +27 -4
  169. {basedpl-0.1.83 → basedpl-0.1.84}/src/polynomial.rs +1 -1
  170. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/facts.rs +1 -1
  171. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/numeric.rs +3 -3
  172. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/search.rs +2 -2
  173. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/structural.rs +7 -7
  174. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive.rs +10 -9
  175. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/blocks/items.rs +9 -17
  176. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/blocks.rs +16 -24
  177. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/trace.rs +22 -31
  178. {basedpl-0.1.83 → basedpl-0.1.84}/src/program.rs +4 -6
  179. {basedpl-0.1.83 → basedpl-0.1.84}/src/protocol.rs +1 -1
  180. {basedpl-0.1.83 → basedpl-0.1.84}/src/settings.rs +16 -7
  181. {basedpl-0.1.83 → basedpl-0.1.84}/src/symbols.rs +4 -4
  182. {basedpl-0.1.83 → basedpl-0.1.84}/src/syntax.rs +61 -45
  183. {basedpl-0.1.83 → basedpl-0.1.84}/src/system.rs +4 -4
  184. {basedpl-0.1.83 → basedpl-0.1.84}/src/transform.rs +1 -1
  185. {basedpl-0.1.83 → basedpl-0.1.84}/src/xml.rs +1 -1
  186. basedpl-0.1.84/testkit/Cargo.toml +19 -0
  187. basedpl-0.1.84/testkit/src/lib.rs +18 -0
  188. {basedpl-0.1.83 → basedpl-0.1.84/testkit}/src/reference.rs +118 -62
  189. {basedpl-0.1.83 → basedpl-0.1.84/testkit}/src/timing.rs +188 -83
  190. {basedpl-0.1.83 → basedpl-0.1.84}/tests/acceptance/held_out.bpl +5 -5
  191. {basedpl-0.1.83 → basedpl-0.1.84}/tests/core.rs +47 -1
  192. {basedpl-0.1.83 → basedpl-0.1.84}/tests/derivatives.rs +7 -7
  193. basedpl-0.1.84/tests/explain.rs +73 -0
  194. {basedpl-0.1.83 → basedpl-0.1.84}/tests/jit.rs +50 -44
  195. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/README.md +8 -13
  196. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/aplcart.bpl +276 -276
  197. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/april.bpl +70 -70
  198. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/bqn.bpl +5 -5
  199. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/core.bpl +278 -250
  200. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/dyalog.bpl +2 -2
  201. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/graphics.bpl +16 -16
  202. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/ngn.bpl +19 -19
  203. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/static.bpl +5 -5
  204. basedpl-0.1.84/tests/reference.rs +361 -0
  205. {basedpl-0.1.83 → basedpl-0.1.84}/tests/settings.rs +3 -39
  206. basedpl-0.1.84/tests/speed/README.md +15 -0
  207. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/arrays.bpl +287 -276
  208. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/calls.bpl +4 -3
  209. basedpl-0.1.84/tests/speed/growth.bpl +65 -0
  210. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/images.bpl +25 -24
  211. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/maps.bpl +65 -63
  212. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/models.bpl +51 -51
  213. basedpl-0.1.84/tests/speed/steps.bpl +99 -0
  214. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/structure.bpl +57 -55
  215. {basedpl-0.1.83 → basedpl-0.1.84}/tests/speed/tables.bpl +6 -6
  216. basedpl-0.1.84/tests/speed.rs +76 -0
  217. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_api.py +1 -1
  218. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_bpltests.py +31 -9
  219. {basedpl-0.1.83 → basedpl-0.1.84}/tests/wasm-speed.mjs +4 -3
  220. {basedpl-0.1.83 → basedpl-0.1.84}/tests/wasm.mjs +3 -1
  221. basedpl-0.1.83/nbs/glyphs/circle.qmd +0 -46
  222. basedpl-0.1.83/nbs/system/date.qmd +0 -19
  223. basedpl-0.1.83/nbs/system/deflate.qmd +0 -10
  224. basedpl-0.1.83/nbs/system/literal.qmd +0 -10
  225. basedpl-0.1.83/nbs/xml.ipynb +0 -918
  226. basedpl-0.1.83/tests/explain.rs +0 -124
  227. basedpl-0.1.83/tests/instructions.txt +0 -52
  228. basedpl-0.1.83/tests/reference.rs +0 -194
  229. basedpl-0.1.83/tests/scaling.rs +0 -135
  230. basedpl-0.1.83/tests/speed/README.md +0 -13
  231. basedpl-0.1.83/tests/speed.rs +0 -24
  232. {basedpl-0.1.83 → basedpl-0.1.84}/.cargo/config.toml +0 -0
  233. {basedpl-0.1.83 → basedpl-0.1.84}/.gitattributes +0 -0
  234. {basedpl-0.1.83 → basedpl-0.1.84}/.github/workflows/ci.yml +0 -0
  235. {basedpl-0.1.83 → basedpl-0.1.84}/.github/workflows/docs.yml +0 -0
  236. {basedpl-0.1.83 → basedpl-0.1.84}/.gitignore +0 -0
  237. {basedpl-0.1.83 → basedpl-0.1.84}/.node-version +0 -0
  238. {basedpl-0.1.83 → basedpl-0.1.84}/CONTRIBUTING.md +0 -0
  239. {basedpl-0.1.83 → basedpl-0.1.84}/LICENSE +0 -0
  240. {basedpl-0.1.83 → basedpl-0.1.84}/README.md +0 -0
  241. {basedpl-0.1.83 → basedpl-0.1.84}/_config.yml +0 -0
  242. {basedpl-0.1.83 → basedpl-0.1.84}/_layouts/default.html +0 -0
  243. {basedpl-0.1.83 → basedpl-0.1.84}/build.rs +0 -0
  244. {basedpl-0.1.83 → basedpl-0.1.84}/editors/jetbrains/BPL.tmbundle/info.plist +0 -0
  245. {basedpl-0.1.83 → basedpl-0.1.84}/editors/jetbrains/README.md +0 -0
  246. {basedpl-0.1.83 → basedpl-0.1.84}/editors/macos/BasedPL-de.txt +0 -0
  247. {basedpl-0.1.83 → basedpl-0.1.84}/editors/macos/BasedPL-es.txt +0 -0
  248. {basedpl-0.1.83 → basedpl-0.1.84}/editors/macos/BasedPL-fr.txt +0 -0
  249. {basedpl-0.1.83 → basedpl-0.1.84}/editors/macos/BasedPL-uk.txt +0 -0
  250. {basedpl-0.1.83 → basedpl-0.1.84}/editors/macos/BasedPL-us.txt +0 -0
  251. {basedpl-0.1.83 → basedpl-0.1.84}/editors/vim/ftdetect/bpl.vim +0 -0
  252. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/README.md +0 -0
  253. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/build.ps1 +0 -0
  254. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/install.ps1 +0 -0
  255. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/keyboard.c +0 -0
  256. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/keyboard.def +0 -0
  257. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/keyboard.rc +0 -0
  258. {basedpl-0.1.83 → basedpl-0.1.84}/editors/windows/layout.h +0 -0
  259. {basedpl-0.1.83 → basedpl-0.1.84}/index_files/figure-commonmark/cell-17-output-1.svg +0 -0
  260. {basedpl-0.1.83 → basedpl-0.1.84}/index_files/figure-commonmark/cell-18-output-1.svg +0 -0
  261. {basedpl-0.1.83 → basedpl-0.1.84}/index_files/figure-html/cell-17-output-1.svg +0 -0
  262. {basedpl-0.1.83 → basedpl-0.1.84}/index_files/figure-html/cell-18-output-1.svg +0 -0
  263. {basedpl-0.1.83 → basedpl-0.1.84}/lib/LICENSE-april +0 -0
  264. {basedpl-0.1.83 → basedpl-0.1.84}/lib/README.md +0 -0
  265. {basedpl-0.1.83 → basedpl-0.1.84}/lib/array.bpl +0 -0
  266. {basedpl-0.1.83 → basedpl-0.1.84}/lib/regex.bpl +0 -0
  267. {basedpl-0.1.83 → basedpl-0.1.84}/lib/tree.bpl +0 -0
  268. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/.gitignore +0 -0
  269. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/_quarto.yml +0 -0
  270. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/arrays.ipynb +0 -0
  271. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/autodiff.qmd +0 -0
  272. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/bqn.xml +0 -0
  273. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/bracket-types.ipynb +0 -0
  274. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/cli.qmd +0 -0
  275. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/dfns.ipynb +0 -0
  276. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/driver.js +0 -0
  277. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/dyalog.ipynb +0 -0
  278. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/dyalog.xml +0 -0
  279. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/evaluation.qmd +0 -0
  280. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/fonts/BQN386B.woff2 +0 -0
  281. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/fonts/README.md +0 -0
  282. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/fonts.css +0 -0
  283. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/dragon.bpl +0 -0
  284. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/mandelbrot.bpl +0 -0
  285. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/mandelbrot32.bpl +0 -0
  286. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/orbits.bpl +0 -0
  287. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery/phyllotaxis.bpl +0 -0
  288. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/gallery.qmd +0 -0
  289. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/_metadata.yml +0 -0
  290. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/alpha-underbar.qmd +0 -0
  291. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/alpha.qmd +0 -0
  292. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/braces.qmd +0 -0
  293. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/brackets.qmd +0 -0
  294. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/bullet.qmd +0 -0
  295. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/del-diaeresis.qmd +0 -0
  296. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/del.qmd +0 -0
  297. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/diamond-underbar.qmd +0 -0
  298. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/diamond.qmd +0 -0
  299. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/dot.qmd +0 -0
  300. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/down-shoe.qmd +0 -0
  301. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/downstile.qmd +0 -0
  302. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/epsilon-underbar.qmd +0 -0
  303. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/epsilon.qmd +0 -0
  304. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/equal-underbar-slash.qmd +0 -0
  305. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/equal-underbar.qmd +0 -0
  306. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/error-guard.qmd +0 -0
  307. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/exclamation.qmd +0 -0
  308. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/greater-than.qmd +0 -0
  309. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/infinity.qmd +0 -0
  310. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/inverted-question.qmd +0 -0
  311. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/lamp.qmd +0 -0
  312. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/left-arrow.qmd +0 -0
  313. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/less-than.qmd +0 -0
  314. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/omega-underbar.qmd +0 -0
  315. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/omega.qmd +0 -0
  316. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/overbar.qmd +0 -0
  317. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/parentheses.qmd +0 -0
  318. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quad-diamond.qmd +0 -0
  319. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quad-equal.qmd +0 -0
  320. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quad.qmd +0 -0
  321. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/question.qmd +0 -0
  322. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/quote.qmd +0 -0
  323. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/right-arrow-from-bar.qmd +0 -0
  324. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/right-left-arrows.qmd +0 -0
  325. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/slash-bar.qmd +0 -0
  326. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/slash.qmd +0 -0
  327. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/stile.qmd +0 -0
  328. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/superscript-b.qmd +0 -0
  329. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/thorn.qmd +0 -0
  330. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/tricolon.qmd +0 -0
  331. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/up-shoe.qmd +0 -0
  332. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/upstile.qmd +0 -0
  333. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs/zilde.qmd +0 -0
  334. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/glyphs-study.qmd +0 -0
  335. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/hanzi-notation-zh.ipynb +0 -0
  336. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/hanzi-notation.ipynb +0 -0
  337. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/index.ipynb +0 -0
  338. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/indexing.ipynb +0 -0
  339. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/introspection.ipynb +0 -0
  340. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/magics.ipynb +0 -0
  341. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/mathish.qmd +0 -0
  342. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/modules.qmd +0 -0
  343. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/nbdev.yml +0 -0
  344. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/notebooks.ipynb +0 -0
  345. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/overview.ipynb +0 -0
  346. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/papers/aplwiki-arrays.md +0 -0
  347. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/papers/brickman-depth-1-scalars.md +0 -0
  348. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/papers/mercer-based-system.md +0 -0
  349. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/performance.qmd +0 -0
  350. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground/bpl.js +0 -0
  351. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground/gallery.js +0 -0
  352. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground/monaco-worker.js +0 -0
  353. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground/page.js +0 -0
  354. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground/worker.js +0 -0
  355. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/playground.qmd +0 -0
  356. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/plot.ipynb +0 -0
  357. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/principles.ipynb +0 -0
  358. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/processes.qmd +0 -0
  359. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/puppy.jpg +0 -0
  360. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/regex.ipynb +0 -0
  361. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/sidebar.yml +0 -0
  362. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/strings.ipynb +0 -0
  363. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/style.qmd +0 -0
  364. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/styles.css +0 -0
  365. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/_metadata.yml +0 -0
  366. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/c.qmd +0 -0
  367. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/canvas.qmd +0 -0
  368. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/constants.qmd +0 -0
  369. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/copy.qmd +0 -0
  370. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/delay.qmd +0 -0
  371. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/detach.qmd +0 -0
  372. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/edge.qmd +0 -0
  373. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/element.qmd +0 -0
  374. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/ex.qmd +0 -0
  375. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/explain.qmd +0 -0
  376. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/fetch.qmd +0 -0
  377. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/float.qmd +0 -0
  378. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/hash.qmd +0 -0
  379. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/host.qmd +0 -0
  380. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/js.qmd +0 -0
  381. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/load.qmd +0 -0
  382. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/memory.qmd +0 -0
  383. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/metadata.qmd +0 -0
  384. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/mime.qmd +0 -0
  385. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/mkdir.qmd +0 -0
  386. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/nc.qmd +0 -0
  387. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/nget.qmd +0 -0
  388. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/nl.qmd +0 -0
  389. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/normalize.qmd +0 -0
  390. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/nput.qmd +0 -0
  391. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/plot.qmd +0 -0
  392. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/prefs.qmd +0 -0
  393. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/r.qmd +0 -0
  394. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/rand.qmd +0 -0
  395. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/readdir.qmd +0 -0
  396. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/remove.qmd +0 -0
  397. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/rename.qmd +0 -0
  398. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/replace.qmd +0 -0
  399. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/signal.qmd +0 -0
  400. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/special.qmd +0 -0
  401. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/src.qmd +0 -0
  402. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/storage.qmd +0 -0
  403. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/svg.qmd +0 -0
  404. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/time.qmd +0 -0
  405. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/uuid.qmd +0 -0
  406. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/system/vfi.qmd +0 -0
  407. {basedpl-0.1.83 → basedpl-0.1.84}/nbs/terms.qmd +0 -0
  408. {basedpl-0.1.83 → basedpl-0.1.84}/package-lock.json +0 -0
  409. {basedpl-0.1.83 → basedpl-0.1.84}/package.json +0 -0
  410. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/README.md +0 -0
  411. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/aplcart.jsonl +0 -0
  412. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/april.jsonl +0 -0
  413. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/bqn.jsonl +0 -0
  414. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/core.jsonl +0 -0
  415. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/dyalog.jsonl +0 -0
  416. {basedpl-0.1.83 → basedpl-0.1.84}/provenance/ngn.jsonl +0 -0
  417. {basedpl-0.1.83 → basedpl-0.1.84}/py/build.rs +0 -0
  418. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/__init__.py +0 -0
  419. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/_modidx.py +0 -0
  420. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/__init__.py +0 -0
  421. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/fonts/BQN386B.ttf +0 -0
  422. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/fonts/LICENSE-BQN386 +0 -0
  423. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/fonts/LICENSE-SAX2 +0 -0
  424. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/fonts/SAX2B.ttf +0 -0
  425. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-de.bundle/Contents/Info.plist +0 -0
  426. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-de.bundle/Contents/Resources/BasedPL-de.icns +0 -0
  427. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-de.bundle/Contents/Resources/BasedPL-de.keylayout +0 -0
  428. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-de.bundle/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  429. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-de.bundle/Contents/version.plist +0 -0
  430. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-es.bundle/Contents/Info.plist +0 -0
  431. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-es.bundle/Contents/Resources/BasedPL-es.icns +0 -0
  432. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-es.bundle/Contents/Resources/BasedPL-es.keylayout +0 -0
  433. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-es.bundle/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  434. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-es.bundle/Contents/version.plist +0 -0
  435. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-fr.bundle/Contents/Info.plist +0 -0
  436. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-fr.bundle/Contents/Resources/BasedPL-fr.icns +0 -0
  437. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-fr.bundle/Contents/Resources/BasedPL-fr.keylayout +0 -0
  438. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-fr.bundle/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  439. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-fr.bundle/Contents/version.plist +0 -0
  440. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-uk.bundle/Contents/Info.plist +0 -0
  441. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-uk.bundle/Contents/Resources/BasedPL-uk.icns +0 -0
  442. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-uk.bundle/Contents/Resources/BasedPL-uk.keylayout +0 -0
  443. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-uk.bundle/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  444. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-uk.bundle/Contents/version.plist +0 -0
  445. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-us.bundle/Contents/Info.plist +0 -0
  446. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-us.bundle/Contents/Resources/BasedPL-us.icns +0 -0
  447. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-us.bundle/Contents/Resources/BasedPL-us.keylayout +0 -0
  448. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-us.bundle/Contents/Resources/en.lproj/InfoPlist.strings +0 -0
  449. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/assets/macos/BasedPL-us.bundle/Contents/version.plist +0 -0
  450. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/SAX2B.woff2 +0 -0
  451. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/bpl-editor.js +0 -0
  452. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/input.js +0 -0
  453. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/layout.json +0 -0
  454. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/browser/lb.js +0 -0
  455. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/dyalog.py +0 -0
  456. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/font.py +0 -0
  457. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/fonts.css +0 -0
  458. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/install.py +0 -0
  459. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/ipython.py +0 -0
  460. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/keyboards.json +0 -0
  461. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/notebook_runner.py +0 -0
  462. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/notebooks.py +0 -0
  463. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/printing.py +0 -0
  464. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/reference.py +0 -0
  465. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/syntax.py +0 -0
  466. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/windows_keyboard.py +0 -0
  467. {basedpl-0.1.83 → basedpl-0.1.84}/python/basedpl/worker.py +0 -0
  468. {basedpl-0.1.83 → basedpl-0.1.84}/rustfmt.toml +0 -0
  469. {basedpl-0.1.83 → basedpl-0.1.84}/src/agreement.rs +0 -0
  470. {basedpl-0.1.83 → basedpl-0.1.84}/src/array/storage.rs +0 -0
  471. {basedpl-0.1.83 → basedpl-0.1.84}/src/array/text.rs +0 -0
  472. {basedpl-0.1.83 → basedpl-0.1.84}/src/cancel.rs +0 -0
  473. {basedpl-0.1.83 → basedpl-0.1.84}/src/canvas.js +0 -0
  474. {basedpl-0.1.83 → basedpl-0.1.84}/src/canvas.rs +0 -0
  475. {basedpl-0.1.83 → basedpl-0.1.84}/src/derivative/tape.rs +0 -0
  476. {basedpl-0.1.83 → basedpl-0.1.84}/src/distribution.rs +0 -0
  477. {basedpl-0.1.83 → basedpl-0.1.84}/src/element.rs +0 -0
  478. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/bindings.rs +0 -0
  479. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/dissect.rs +0 -0
  480. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/agenda.rs +0 -0
  481. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/axes.rs +0 -0
  482. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/each.rs +0 -0
  483. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/folds.rs +0 -0
  484. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/key.rs +0 -0
  485. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/power.rs +0 -0
  486. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators/rank.rs +0 -0
  487. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/operators.rs +0 -0
  488. {basedpl-0.1.83 → basedpl-0.1.84}/src/eval/rewrite.rs +0 -0
  489. {basedpl-0.1.83 → basedpl-0.1.84}/src/execution.rs +0 -0
  490. {basedpl-0.1.83 → basedpl-0.1.84}/src/inspection.rs +0 -0
  491. {basedpl-0.1.83 → basedpl-0.1.84}/src/js.rs +0 -0
  492. {basedpl-0.1.83 → basedpl-0.1.84}/src/name.rs +0 -0
  493. {basedpl-0.1.83 → basedpl-0.1.84}/src/optimize.rs +0 -0
  494. {basedpl-0.1.83 → basedpl-0.1.84}/src/pervasive/product.rs +0 -0
  495. {basedpl-0.1.83 → basedpl-0.1.84}/src/plan.rs +0 -0
  496. {basedpl-0.1.83 → basedpl-0.1.84}/src/plot.rs +0 -0
  497. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/indexing.rs +0 -0
  498. {basedpl-0.1.83 → basedpl-0.1.84}/src/primitive/inverse.rs +0 -0
  499. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/blocks/grouping.rs +0 -0
  500. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/blocks/record.rs +0 -0
  501. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/contraction.rs +0 -0
  502. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/layout.rs +0 -0
  503. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/run.rs +0 -0
  504. {basedpl-0.1.83 → basedpl-0.1.84}/src/program/verify.rs +0 -0
  505. {basedpl-0.1.83 → basedpl-0.1.84}/src/regex.rs +0 -0
  506. {basedpl-0.1.83 → basedpl-0.1.84}/src/search.rs +0 -0
  507. {basedpl-0.1.83 → basedpl-0.1.84}/src/selection.rs +0 -0
  508. {basedpl-0.1.83 → basedpl-0.1.84}/tests/common/mod.rs +0 -0
  509. {basedpl-0.1.83 → basedpl-0.1.84}/tests/conftest.py +0 -0
  510. {basedpl-0.1.83 → basedpl-0.1.84}/tests/highlighting.mjs +0 -0
  511. {basedpl-0.1.83 → basedpl-0.1.84}/tests/input.mjs +0 -0
  512. {basedpl-0.1.83 → basedpl-0.1.84}/tests/ratchet.rs +0 -0
  513. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-aplcart +0 -0
  514. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-april +0 -0
  515. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-bqn +0 -0
  516. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-bqncrate +0 -0
  517. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-dyalog +0 -0
  518. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/LICENSE-ngn +0 -0
  519. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/distributions.bpl +0 -0
  520. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/lib.bpl +0 -0
  521. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/regex.bpl +0 -0
  522. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/static-int32.bpl +0 -0
  523. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/support/april.bpl +0 -0
  524. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/support/avl.bpl +0 -0
  525. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/support/redblack.bpl +0 -0
  526. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/support/sbst.bpl +0 -0
  527. {basedpl-0.1.83 → basedpl-0.1.84}/tests/reference/support/splay.bpl +0 -0
  528. {basedpl-0.1.83 → basedpl-0.1.84}/tests/skipped.txt +0 -0
  529. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_basic.py +0 -0
  530. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_glyphs.py +0 -0
  531. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_graphics.py +0 -0
  532. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_install.py +0 -0
  533. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_instructions.py +0 -0
  534. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_ipython.py +0 -0
  535. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_kernel.py +0 -0
  536. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_keylayout.py +0 -0
  537. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_notebooks.py +0 -0
  538. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_orchestration.py +0 -0
  539. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_reference.py +0 -0
  540. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_repl.py +0 -0
  541. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_windows_keyboard.py +0 -0
  542. {basedpl-0.1.83 → basedpl-0.1.84}/tests/test_worker.py +0 -0
  543. {basedpl-0.1.83 → basedpl-0.1.84}/tests/wasm-pkg.mjs +0 -0
  544. {basedpl-0.1.83 → basedpl-0.1.84}/tests/windows_keyboard.c +0 -0
  545. {basedpl-0.1.83 → basedpl-0.1.84}/wheel/data/share/jupyter/kernels/bpl/kernel.json +0 -0
@@ -0,0 +1,39 @@
1
+ # `cargo nextest run` runs each test in its own process and every binary at once. The threads of one process take turns at its one session (`src/eval.rs`), so separate processes are what run tests in parallel.
2
+ [profile.default]
3
+ # A test running past 5 s is reported as slow. One still running at 30 s is stopped and fails.
4
+ slow-timeout = { period = "5s", terminate-after = 6 }
5
+ fail-fast = false
6
+
7
+ [test-groups]
8
+ timed = { max-threads = 1 }
9
+
10
+ # The reference runner starts one child process per core. It starts first and runs with nothing beside it, so no timing runs beside it.
11
+ [[profile.default.overrides]]
12
+ filter = 'binary(reference)'
13
+ threads-required = 'num-cpus'
14
+ priority = 100
15
+
16
+ # Memory-bound timings run with nothing beside them.
17
+ [[profile.default.overrides]]
18
+ filter = 'binary(speed) and test(=timed_images)'
19
+ threads-required = 'num-cpus'
20
+ test-group = 'timed'
21
+ priority = -100
22
+
23
+ # Other timings run one at a time, beside light correctness tests, after every other test has started.
24
+ [[profile.default.overrides]]
25
+ filter = 'binary(speed) and test(/^timed_/)'
26
+ test-group = 'timed'
27
+ priority = -100
28
+
29
+ # Optional selection excluding timings, used by focused cross-repo diagnostics. It gives reference one slot because this selection contains no timing tests.
30
+ [profile.untimed]
31
+ default-filter = 'not (binary(speed) and test(/^timed_/))'
32
+
33
+ [[profile.untimed.overrides]]
34
+ filter = 'binary(reference)'
35
+ threads-required = 1
36
+
37
+ # Optional timing-only selection. An explicit cross-repo ('untimed', 'timed', 'speed') run uses this after correctness and before rustymath timings. Plain run_tests uses default and includes everything.
38
+ [profile.timed]
39
+ default-filter = 'binary(speed) and test(/^timed_/)'
@@ -17,6 +17,7 @@ jobs:
17
17
  # `tests/highlighting.mjs` reads the TextMate grammar through `shiki`, which `package.json` pins.
18
18
  - run: npm ci
19
19
  - uses: dtolnay/rust-toolchain@stable
20
+ - uses: taiki-e/install-action@nextest
20
21
  # The repository has no `Cargo.lock`. Creating one first makes rust-cache's key change when a dependency publishes a new version.
21
22
  - run: cargo generate-lockfile
22
23
  - uses: Swatinem/rust-cache@v2
@@ -30,7 +31,7 @@ jobs:
30
31
  - run: node tests/input.mjs
31
32
  - run: node tests/highlighting.mjs
32
33
  if: ${{ !cancelled() }}
33
- - run: cargo test --release
34
+ - run: cargo nextest run --cargo-profile release -E 'not binary(speed)'
34
35
  if: ${{ !cancelled() }}
35
36
  - run: pytest -q
36
37
  if: ${{ !cancelled() }}
@@ -99,16 +99,14 @@ checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5"
99
99
 
100
100
  [[package]]
101
101
  name = "basedpl"
102
- version = "0.1.83"
102
+ version = "0.1.84"
103
103
  dependencies = [
104
104
  "base64 0.23.1",
105
+ "basedpl-image",
106
+ "basedpl-jit",
107
+ "basedpl-testkit",
105
108
  "bytemuck",
106
109
  "chrono",
107
- "cranelift-codegen",
108
- "cranelift-frontend",
109
- "cranelift-jit",
110
- "cranelift-module",
111
- "cranelift-native",
112
110
  "csv",
113
111
  "fancy-regex",
114
112
  "flate2",
@@ -116,7 +114,6 @@ dependencies = [
116
114
  "globset",
117
115
  "half",
118
116
  "icu_normalizer",
119
- "image",
120
117
  "js-sys",
121
118
  "json5",
122
119
  "nix",
@@ -125,12 +122,12 @@ dependencies = [
125
122
  "num-rational",
126
123
  "num-traits",
127
124
  "plotters",
128
- "png",
129
125
  "psm",
130
126
  "rand",
131
127
  "roxmltree",
132
128
  "rustix",
133
129
  "rustymath",
130
+ "rustymath-timing",
134
131
  "serde",
135
132
  "serde_json",
136
133
  "sha2 0.11.1",
@@ -147,10 +144,11 @@ dependencies = [
147
144
 
148
145
  [[package]]
149
146
  name = "basedpl-cli"
150
- version = "0.1.83"
147
+ version = "0.1.84"
151
148
  dependencies = [
152
149
  "async-trait",
153
150
  "basedpl",
151
+ "basedpl-testkit",
154
152
  "ctrlc",
155
153
  "kernmini",
156
154
  "rustyline",
@@ -159,11 +157,33 @@ dependencies = [
159
157
  "serde_json",
160
158
  ]
161
159
 
160
+ [[package]]
161
+ name = "basedpl-image"
162
+ version = "0.1.84"
163
+ dependencies = [
164
+ "flate2",
165
+ "image",
166
+ "png",
167
+ ]
168
+
169
+ [[package]]
170
+ name = "basedpl-jit"
171
+ version = "0.1.84"
172
+ dependencies = [
173
+ "cranelift-codegen",
174
+ "cranelift-frontend",
175
+ "cranelift-jit",
176
+ "cranelift-module",
177
+ "cranelift-native",
178
+ "rustymath",
179
+ ]
180
+
162
181
  [[package]]
163
182
  name = "basedpl-py"
164
- version = "0.1.83"
183
+ version = "0.1.84"
165
184
  dependencies = [
166
185
  "basedpl",
186
+ "basedpl-testkit",
167
187
  "ctrlc",
168
188
  "kernmini",
169
189
  "num-bigint",
@@ -173,16 +193,30 @@ dependencies = [
173
193
  "rustyline",
174
194
  "rustymath",
175
195
  "rustymath-buffer",
196
+ "rustymath-timing",
197
+ "serde_json",
198
+ ]
199
+
200
+ [[package]]
201
+ name = "basedpl-testkit"
202
+ version = "0.1.84"
203
+ dependencies = [
204
+ "basedpl",
205
+ "rustymath",
206
+ "rustymath-timing",
176
207
  "serde_json",
208
+ "tempfile",
177
209
  ]
178
210
 
179
211
  [[package]]
180
212
  name = "basedpl-wasm"
181
- version = "0.1.83"
213
+ version = "0.1.84"
182
214
  dependencies = [
183
215
  "basedpl",
216
+ "basedpl-testkit",
184
217
  "js-sys",
185
218
  "rustymath",
219
+ "rustymath-timing",
186
220
  "serde_json",
187
221
  "talc",
188
222
  "wasm-bindgen",
@@ -266,20 +300,6 @@ name = "bytemuck"
266
300
  version = "1.25.2"
267
301
  source = "registry+https://github.com/rust-lang/crates.io-index"
268
302
  checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797"
269
- dependencies = [
270
- "bytemuck_derive",
271
- ]
272
-
273
- [[package]]
274
- name = "bytemuck_derive"
275
- version = "1.12.1"
276
- source = "registry+https://github.com/rust-lang/crates.io-index"
277
- checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c"
278
- dependencies = [
279
- "proc-macro2",
280
- "quote",
281
- "syn 3.0.9",
282
- ]
283
303
 
284
304
  [[package]]
285
305
  name = "byteorder-lite"
@@ -872,7 +892,6 @@ version = "2.7.1"
872
892
  source = "registry+https://github.com/rust-lang/crates.io-index"
873
893
  checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
874
894
  dependencies = [
875
- "bytemuck",
876
895
  "cfg-if",
877
896
  "crunchy",
878
897
  "num-traits",
@@ -1149,9 +1168,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
1149
1168
 
1150
1169
  [[package]]
1151
1170
  name = "libz-sys"
1152
- version = "1.1.31"
1171
+ version = "1.1.32"
1153
1172
  source = "registry+https://github.com/rust-lang/crates.io-index"
1154
- checksum = "ff20308ecabd635a2dc1dd5834a86c462cca20efba1d5d3ddab1f8aea3455cb2"
1173
+ checksum = "69965d2409bff8c8cea3829009fff66a86f05a0570656552ef70f616e8e4bd85"
1155
1174
  dependencies = [
1156
1175
  "cc",
1157
1176
  "pkg-config",
@@ -1303,7 +1322,6 @@ version = "0.4.6"
1303
1322
  source = "registry+https://github.com/rust-lang/crates.io-index"
1304
1323
  checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
1305
1324
  dependencies = [
1306
- "bytemuck",
1307
1325
  "num-traits",
1308
1326
  ]
1309
1327
 
@@ -1687,9 +1705,32 @@ dependencies = [
1687
1705
 
1688
1706
  [[package]]
1689
1707
  name = "rustymath"
1690
- version = "0.1.55"
1708
+ version = "0.1.57"
1709
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1710
+ checksum = "b15db2c2f2672139ec1efd4de9f7dae652a6b1e00ae30ded2e3157c53934f549"
1711
+ dependencies = [
1712
+ "num-complex",
1713
+ "num-traits",
1714
+ "rustymath-core",
1715
+ "rustymath-kernels",
1716
+ ]
1717
+
1718
+ [[package]]
1719
+ name = "rustymath-buffer"
1720
+ version = "0.1.57"
1721
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1722
+ checksum = "6afd7ae962d7b12267666a967b2f16fb053e6a199947c8a0ca86d5e4e0db480a"
1723
+ dependencies = [
1724
+ "num-rational",
1725
+ "pyo3",
1726
+ "rustymath",
1727
+ ]
1728
+
1729
+ [[package]]
1730
+ name = "rustymath-core"
1731
+ version = "0.1.57"
1691
1732
  source = "registry+https://github.com/rust-lang/crates.io-index"
1692
- checksum = "76f6cf34181562715d225bf4c7493c0e8f061a78cd8976ab7fcc8731698973c3"
1733
+ checksum = "d3e084d95673de445a509775b3197f152743f7266f8b5ff0915ba84483cf73fb"
1693
1734
  dependencies = [
1694
1735
  "foldhash",
1695
1736
  "half",
@@ -1707,14 +1748,26 @@ dependencies = [
1707
1748
  ]
1708
1749
 
1709
1750
  [[package]]
1710
- name = "rustymath-buffer"
1711
- version = "0.1.55"
1751
+ name = "rustymath-kernels"
1752
+ version = "0.1.57"
1712
1753
  source = "registry+https://github.com/rust-lang/crates.io-index"
1713
- checksum = "e49a20ff13e04774294f25ad9565eda8f593d0e628d161be3aaeb6298d984c61"
1754
+ checksum = "c9a90e340c52d1252a09315a79148ae5f347f13abf347c6eaa2bab19bf101621"
1714
1755
  dependencies = [
1756
+ "half",
1757
+ "num-complex",
1715
1758
  "num-rational",
1716
- "pyo3",
1717
- "rustymath",
1759
+ "num-traits",
1760
+ "rustymath-core",
1761
+ ]
1762
+
1763
+ [[package]]
1764
+ name = "rustymath-timing"
1765
+ version = "0.1.57"
1766
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1767
+ checksum = "77242720683f2c6f20cd32ce2fb407c6dbca0f3d7677d9a4a3823f35303b1747"
1768
+ dependencies = [
1769
+ "libc",
1770
+ "rustymath-core",
1718
1771
  ]
1719
1772
 
1720
1773
  [[package]]
@@ -2466,7 +2519,7 @@ checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc"
2466
2519
 
2467
2520
  [[package]]
2468
2521
  name = "xtask"
2469
- version = "0.1.83"
2522
+ version = "0.1.84"
2470
2523
  dependencies = [
2471
2524
  "anyhow",
2472
2525
  "serde_json",
@@ -1,24 +1,26 @@
1
1
  [workspace]
2
- members = ["py"]
2
+ members = ["image", "jit", "py", "testkit"]
3
3
 
4
4
  [workspace.metadata.fastfmt]
5
5
  join_comments = true
6
6
 
7
7
  [workspace.package]
8
- version = "0.1.83"
8
+ version = "0.1.84"
9
9
  edition = "2024"
10
10
  rust-version = "1.98"
11
11
  license = "Apache-2.0"
12
12
 
13
13
  [workspace.dependencies]
14
- rustymath = { version = ">=0.1.55, <1", default-features = false }
14
+ rustymath = { version = ">=0.1.56, <1", default-features = false }
15
15
  rustymath-buffer = ">=0.1.55, <1"
16
+ rustymath-timing = ">=0.1.56, <1"
16
17
  pyo3 = ">=0.29.2, <1"
17
18
  pyo3-build-config = ">=0.29.2, <1"
18
19
  ctrlc = ">=3.5.2, <4"
19
20
  kernmini = ">=0.1.22, <1"
20
21
  # Custom bindings override Emacs Alt-digit prefixes in this fork.
21
22
  rustyline = { git = "https://github.com/AnswerDotAI/rustyline.git", branch = "master", default-features = false, features = ["custom-bindings", "with-file-history"] }
23
+ flate2 = { version = ">=1.1.10, <2", default-features = false, features = ["zlib"] }
22
24
 
23
25
  [package]
24
26
  name = "basedpl"
@@ -33,11 +35,6 @@ doctest = false
33
35
  # Without a unit-test build, `cargo test` compiles the library only once.
34
36
  test = false
35
37
 
36
- # Plain `cargo test` skips the timing suite; `cargo test --test speed` runs it.
37
- [[test]]
38
- name = "speed"
39
- test = false
40
-
41
38
  [profile.test]
42
39
  inherits = "release"
43
40
 
@@ -51,6 +48,10 @@ incremental = true
51
48
  # Line tables change with every shifted line and recompile the code below it.
52
49
  debug = false
53
50
 
51
+ [profile.quick]
52
+ inherits = "release"
53
+ lto = "off"
54
+
54
55
  [profile.dist]
55
56
  inherits = "release"
56
57
  lto = "thin"
@@ -75,11 +76,12 @@ serde = ">=1.0.229, <2"
75
76
  serde_json = { version = "1", features = ["arbitrary_precision", "preserve_order"] }
76
77
  unicode-width = { version = ">=0.2.2, <1", default-features = false }
77
78
  num-rational = ">=0.4.2, <1"
78
- num-complex = { version = ">=0.4.6, <1", features = ["bytemuck"] }
79
+ num-complex = ">=0.4.6, <1"
79
80
  num-bigint = ">=0.4.6, <0.5"
80
81
  num-traits = ">=0.2.19, <1"
81
- half = { version = ">=2.7.1, <3", features = ["num-traits", "bytemuck"] }
82
+ half = { version = ">=2.7.1, <3", features = ["num-traits"] }
82
83
  rustymath.workspace = true
84
+ basedpl-image = { path = "image" }
83
85
  strength_reduce = ">=0.2.4, <1"
84
86
  rand = { version = ">=0.10.2, <1", features = ["chacha"] }
85
87
  # AnswerDotAI's fork measures text with a canvas, which works in a Web Worker: plotters-rs/plotters#746.
@@ -100,13 +102,10 @@ nix = { version = ">=0.31.3, <1", default-features = false, features = ["user"]
100
102
 
101
103
  [target.'cfg(target_vendor = "apple")'.dependencies]
102
104
  # The Mac build links the zlib that macOS ships, in place of compiling `miniz_oxide`.
103
- flate2 = { version = ">=1.1.10, <2", default-features = false, features = ["zlib"] }
105
+ flate2.workspace = true
104
106
 
105
107
  [target.'cfg(not(target_vendor = "apple"))'.dependencies]
106
108
  flate2 = ">=1.1.10, <2"
107
- # Macs decode and encode images through ImageIO instead.
108
- image = { version = ">=0.25.6, <1", default-features = false, features = ["png", "jpeg"] }
109
- png = ">=0.18.1, <1"
110
109
 
111
110
  [target.'cfg(not(all(target_arch = "wasm32", target_os = "unknown")))'.dependencies]
112
111
  chrono = { version = ">=0.4.45, <0.5", features = ["unstable-locales"] }
@@ -114,12 +113,7 @@ icu_normalizer = ">=2, <3"
114
113
  fancy-regex = "0.20"
115
114
  walkdir = ">=2.5.0, <3"
116
115
  globset = ">=0.4.20, <1"
117
- # Cranelift compiles a typed program's loops while BPL runs. The browser build has no JIT.
118
- cranelift-codegen = { version = "0.137", default-features = false, features = ["std", "host-arch"] }
119
- cranelift-frontend = "0.137"
120
- cranelift-jit = "0.137"
121
- cranelift-module = "0.137"
122
- cranelift-native = "0.137"
116
+ basedpl-jit = { path = "jit" }
123
117
 
124
118
  # The browser build. `build.rs` sets `cfg(web)` for the same target.
125
119
  [target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
@@ -132,5 +126,9 @@ wasm-bindgen = ">=0.2.129, <0.3"
132
126
  # `eval::room` reads the stack pointer for the room left on the browser's main stack, where stacker reports none.
133
127
  psm = ">=0.1.32, <0.2"
134
128
 
129
+ [dev-dependencies]
130
+ basedpl-testkit = { path = "testkit" }
131
+ rustymath-timing.workspace = true
132
+
135
133
  [build-dependencies]
136
134
  serde_json = "1"