osiris-lang 0.2.0__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 (362) hide show
  1. osiris_lang-0.2.0/.github/workflows/publish-pypi.yml +105 -0
  2. osiris_lang-0.2.0/.github/workflows/release-vscode.yml +54 -0
  3. osiris_lang-0.2.0/.gitignore +24 -0
  4. osiris_lang-0.2.0/.python-version +1 -0
  5. osiris_lang-0.2.0/Cargo.lock +402 -0
  6. osiris_lang-0.2.0/Cargo.toml +44 -0
  7. osiris_lang-0.2.0/LICENSE +21 -0
  8. osiris_lang-0.2.0/PKG-INFO +207 -0
  9. osiris_lang-0.2.0/README.md +188 -0
  10. osiris_lang-0.2.0/docs/architecture.md +102 -0
  11. osiris_lang-0.2.0/docs/language-design.md +1342 -0
  12. osiris_lang-0.2.0/docs/releasing.md +50 -0
  13. osiris_lang-0.2.0/editors/vscode/.vscodeignore +8 -0
  14. osiris_lang-0.2.0/editors/vscode/CHANGELOG.md +7 -0
  15. osiris_lang-0.2.0/editors/vscode/LICENSE +21 -0
  16. osiris_lang-0.2.0/editors/vscode/README.md +40 -0
  17. osiris_lang-0.2.0/editors/vscode/esbuild.mjs +24 -0
  18. osiris_lang-0.2.0/editors/vscode/language-configuration.json +26 -0
  19. osiris_lang-0.2.0/editors/vscode/package-lock.json +4411 -0
  20. osiris_lang-0.2.0/editors/vscode/package.json +128 -0
  21. osiris_lang-0.2.0/editors/vscode/scripts/validate-manifest.mjs +21 -0
  22. osiris_lang-0.2.0/editors/vscode/src/extension.ts +80 -0
  23. osiris_lang-0.2.0/editors/vscode/syntaxes/osiris.tmLanguage.json +126 -0
  24. osiris_lang-0.2.0/editors/vscode/tsconfig.json +25 -0
  25. osiris_lang-0.2.0/examples/README.md +35 -0
  26. osiris_lang-0.2.0/examples/hello.osr +58 -0
  27. osiris_lang-0.2.0/examples/tutorial/app.osr +56 -0
  28. osiris_lang-0.2.0/examples/tutorial/macros.osr +20 -0
  29. osiris_lang-0.2.0/examples/tutorial/transforms.osr +38 -0
  30. osiris_lang-0.2.0/pyproject.toml +47 -0
  31. osiris_lang-0.2.0/src/backend/python/ast/mod.rs +379 -0
  32. osiris_lang-0.2.0/src/backend/python/ast/printer/expressions.rs +344 -0
  33. osiris_lang-0.2.0/src/backend/python/ast/printer/statements.rs +374 -0
  34. osiris_lang-0.2.0/src/backend/python/ast/printer/validation.rs +173 -0
  35. osiris_lang-0.2.0/src/backend/python/ast/printer.rs +37 -0
  36. osiris_lang-0.2.0/src/backend/python/ast/tests.rs +254 -0
  37. osiris_lang-0.2.0/src/backend/python/bindings.rs +236 -0
  38. osiris_lang-0.2.0/src/backend/python/control.rs +158 -0
  39. osiris_lang-0.2.0/src/backend/python/declarations.rs +296 -0
  40. osiris_lang-0.2.0/src/backend/python/expressions.rs +460 -0
  41. osiris_lang-0.2.0/src/backend/python/mod.rs +129 -0
  42. osiris_lang-0.2.0/src/backend/python/setup.rs +267 -0
  43. osiris_lang-0.2.0/src/backend/python/source_map/mod.rs +124 -0
  44. osiris_lang-0.2.0/src/backend/python/source_map/tests.rs +34 -0
  45. osiris_lang-0.2.0/src/backend/python/support.rs +66 -0
  46. osiris_lang-0.2.0/src/backend/python/tests.rs +221 -0
  47. osiris_lang-0.2.0/src/compiler/hir/lower/control/concurrency.rs +347 -0
  48. osiris_lang-0.2.0/src/compiler/hir/lower/control/dynamic.rs +359 -0
  49. osiris_lang-0.2.0/src/compiler/hir/lower/control/intrinsics.rs +147 -0
  50. osiris_lang-0.2.0/src/compiler/hir/lower/control/lazy.rs +275 -0
  51. osiris_lang-0.2.0/src/compiler/hir/lower/control/mod.rs +7 -0
  52. osiris_lang-0.2.0/src/compiler/hir/lower/control/recursion.rs +391 -0
  53. osiris_lang-0.2.0/src/compiler/hir/lower/control/resources.rs +185 -0
  54. osiris_lang-0.2.0/src/compiler/hir/lower/control/trampoline.rs +125 -0
  55. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/bindings.rs +264 -0
  56. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/imports.rs +363 -0
  57. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/lower.rs +361 -0
  58. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/mod.rs +6 -0
  59. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/predeclare.rs +229 -0
  60. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/setup.rs +198 -0
  61. osiris_lang-0.2.0/src/compiler/hir/lower/declarations/validate.rs +299 -0
  62. osiris_lang-0.2.0/src/compiler/hir/lower/expressions/body.rs +56 -0
  63. osiris_lang-0.2.0/src/compiler/hir/lower/expressions/calls.rs +293 -0
  64. osiris_lang-0.2.0/src/compiler/hir/lower/expressions/names.rs +165 -0
  65. osiris_lang-0.2.0/src/compiler/hir/lower/expressions/patterns.rs +400 -0
  66. osiris_lang-0.2.0/src/compiler/hir/lower/expressions/values.rs +217 -0
  67. osiris_lang-0.2.0/src/compiler/hir/lower/expressions.rs +5 -0
  68. osiris_lang-0.2.0/src/compiler/hir/lower/mod.rs +5 -0
  69. osiris_lang-0.2.0/src/compiler/hir/lower/sequences/iteration.rs +128 -0
  70. osiris_lang-0.2.0/src/compiler/hir/lower/sequences/map.rs +295 -0
  71. osiris_lang-0.2.0/src/compiler/hir/lower/sequences/operations.rs +486 -0
  72. osiris_lang-0.2.0/src/compiler/hir/lower/sequences/reduce.rs +177 -0
  73. osiris_lang-0.2.0/src/compiler/hir/lower/sequences/support.rs +99 -0
  74. osiris_lang-0.2.0/src/compiler/hir/lower/sequences.rs +5 -0
  75. osiris_lang-0.2.0/src/compiler/hir/lower/support/calls.rs +247 -0
  76. osiris_lang-0.2.0/src/compiler/hir/lower/support/intrinsics.rs +341 -0
  77. osiris_lang-0.2.0/src/compiler/hir/lower/support/lambda.rs +124 -0
  78. osiris_lang-0.2.0/src/compiler/hir/lower/support/mod.rs +5 -0
  79. osiris_lang-0.2.0/src/compiler/hir/lower/support/operators.rs +263 -0
  80. osiris_lang-0.2.0/src/compiler/hir/lower/support/scope.rs +165 -0
  81. osiris_lang-0.2.0/src/compiler/hir/metadata.rs +150 -0
  82. osiris_lang-0.2.0/src/compiler/hir/mod.rs +266 -0
  83. osiris_lang-0.2.0/src/compiler/hir/model.rs +357 -0
  84. osiris_lang-0.2.0/src/compiler/hir/operators.rs +177 -0
  85. osiris_lang-0.2.0/src/compiler/hir/patterns.rs +154 -0
  86. osiris_lang-0.2.0/src/compiler/hir/sequence_operations.rs +269 -0
  87. osiris_lang-0.2.0/src/compiler/hir/tests/contracts.rs +420 -0
  88. osiris_lang-0.2.0/src/compiler/hir/tests/imports.rs +254 -0
  89. osiris_lang-0.2.0/src/compiler/hir/tests/operators.rs +195 -0
  90. osiris_lang-0.2.0/src/compiler/hir/tests/structs.rs +298 -0
  91. osiris_lang-0.2.0/src/compiler/hir/tests.rs +4 -0
  92. osiris_lang-0.2.0/src/compiler/hir/type_resolution.rs +396 -0
  93. osiris_lang-0.2.0/src/compiler/macro/collections.rs +421 -0
  94. osiris_lang-0.2.0/src/compiler/macro/declarations.rs +308 -0
  95. osiris_lang-0.2.0/src/compiler/macro/expander/builtins.rs +489 -0
  96. osiris_lang-0.2.0/src/compiler/macro/expander/eval.rs +376 -0
  97. osiris_lang-0.2.0/src/compiler/macro/expander/expand.rs +208 -0
  98. osiris_lang-0.2.0/src/compiler/macro/expander/quote.rs +134 -0
  99. osiris_lang-0.2.0/src/compiler/macro/expander/registry.rs +239 -0
  100. osiris_lang-0.2.0/src/compiler/macro/expander.rs +7 -0
  101. osiris_lang-0.2.0/src/compiler/macro/forms.rs +174 -0
  102. osiris_lang-0.2.0/src/compiler/macro/mod.rs +361 -0
  103. osiris_lang-0.2.0/src/compiler/macro/numbers.rs +178 -0
  104. osiris_lang-0.2.0/src/compiler/macro/tests/comprehensions.rs +187 -0
  105. osiris_lang-0.2.0/src/compiler/macro/tests/control.rs +308 -0
  106. osiris_lang-0.2.0/src/compiler/macro/tests/hygiene.rs +330 -0
  107. osiris_lang-0.2.0/src/compiler/macro/tests/modules.rs +353 -0
  108. osiris_lang-0.2.0/src/compiler/macro/tests.rs +4 -0
  109. osiris_lang-0.2.0/src/compiler/mod.rs +366 -0
  110. osiris_lang-0.2.0/src/compiler/module_graph/dependency.rs +407 -0
  111. osiris_lang-0.2.0/src/compiler/module_graph/error.rs +182 -0
  112. osiris_lang-0.2.0/src/compiler/module_graph/io.rs +95 -0
  113. osiris_lang-0.2.0/src/compiler/module_graph/mod.rs +38 -0
  114. osiris_lang-0.2.0/src/compiler/module_graph/resolution.rs +484 -0
  115. osiris_lang-0.2.0/src/compiler/module_graph/tests.rs +190 -0
  116. osiris_lang-0.2.0/src/compiler/support.rs +261 -0
  117. osiris_lang-0.2.0/src/compiler/tests/cycles.rs +231 -0
  118. osiris_lang-0.2.0/src/compiler/tests/macros_and_records.rs +132 -0
  119. osiris_lang-0.2.0/src/compiler/tests/workspace.rs +360 -0
  120. osiris_lang-0.2.0/src/compiler/tests.rs +3 -0
  121. osiris_lang-0.2.0/src/compiler/workspace.rs +484 -0
  122. osiris_lang-0.2.0/src/extensions/static_data/analysis.rs +493 -0
  123. osiris_lang-0.2.0/src/extensions/static_data/datum/decode.rs +109 -0
  124. osiris_lang-0.2.0/src/extensions/static_data/datum/json.rs +176 -0
  125. osiris_lang-0.2.0/src/extensions/static_data/datum/model.rs +475 -0
  126. osiris_lang-0.2.0/src/extensions/static_data/datum.rs +5 -0
  127. osiris_lang-0.2.0/src/extensions/static_data/index.rs +176 -0
  128. osiris_lang-0.2.0/src/extensions/static_data/mod.rs +57 -0
  129. osiris_lang-0.2.0/src/extensions/static_data/record/model.rs +247 -0
  130. osiris_lang-0.2.0/src/extensions/static_data/record/support.rs +85 -0
  131. osiris_lang-0.2.0/src/extensions/static_data/record/validate.rs +284 -0
  132. osiris_lang-0.2.0/src/extensions/static_data/record.rs +5 -0
  133. osiris_lang-0.2.0/src/extensions/static_data/schema/json.rs +123 -0
  134. osiris_lang-0.2.0/src/extensions/static_data/schema/model.rs +255 -0
  135. osiris_lang-0.2.0/src/extensions/static_data/schema/parse.rs +420 -0
  136. osiris_lang-0.2.0/src/extensions/static_data/schema/types.rs +141 -0
  137. osiris_lang-0.2.0/src/extensions/static_data/schema.rs +6 -0
  138. osiris_lang-0.2.0/src/extensions/static_data/sidecar/decode.rs +342 -0
  139. osiris_lang-0.2.0/src/extensions/static_data/sidecar/encode.rs +268 -0
  140. osiris_lang-0.2.0/src/extensions/static_data/sidecar.rs +4 -0
  141. osiris_lang-0.2.0/src/extensions/static_data/tests.rs +349 -0
  142. osiris_lang-0.2.0/src/language/ast/lower/bindings.rs +454 -0
  143. osiris_lang-0.2.0/src/language/ast/lower/common.rs +141 -0
  144. osiris_lang-0.2.0/src/language/ast/lower/contracts.rs +429 -0
  145. osiris_lang-0.2.0/src/language/ast/lower/declarations.rs +478 -0
  146. osiris_lang-0.2.0/src/language/ast/lower/expressions.rs +408 -0
  147. osiris_lang-0.2.0/src/language/ast/lower/static_declarations.rs +359 -0
  148. osiris_lang-0.2.0/src/language/ast/lower.rs +77 -0
  149. osiris_lang-0.2.0/src/language/ast/mod.rs +236 -0
  150. osiris_lang-0.2.0/src/language/ast/model/declarations.rs +334 -0
  151. osiris_lang-0.2.0/src/language/ast/model/expressions.rs +210 -0
  152. osiris_lang-0.2.0/src/language/ast/model.rs +2 -0
  153. osiris_lang-0.2.0/src/language/ast/tests/declarations.rs +281 -0
  154. osiris_lang-0.2.0/src/language/ast/tests/forms.rs +198 -0
  155. osiris_lang-0.2.0/src/language/ast/tests/types_and_patterns.rs +383 -0
  156. osiris_lang-0.2.0/src/language/ast/tests.rs +3 -0
  157. osiris_lang-0.2.0/src/language/core_forms.rs +111 -0
  158. osiris_lang-0.2.0/src/language/diagnostic.rs +58 -0
  159. osiris_lang-0.2.0/src/language/lexer/mod.rs +373 -0
  160. osiris_lang-0.2.0/src/language/lexer/tests.rs +234 -0
  161. osiris_lang-0.2.0/src/language/name/bindings.rs +219 -0
  162. osiris_lang-0.2.0/src/language/name/lint.rs +358 -0
  163. osiris_lang-0.2.0/src/language/name/mod.rs +4 -0
  164. osiris_lang-0.2.0/src/language/name/tests.rs +103 -0
  165. osiris_lang-0.2.0/src/language/reader/datum.rs +225 -0
  166. osiris_lang-0.2.0/src/language/reader/identity.rs +433 -0
  167. osiris_lang-0.2.0/src/language/reader/mod.rs +133 -0
  168. osiris_lang-0.2.0/src/language/reader/parser/atoms.rs +126 -0
  169. osiris_lang-0.2.0/src/language/reader/parser/forms.rs +249 -0
  170. osiris_lang-0.2.0/src/language/reader/parser/metadata.rs +166 -0
  171. osiris_lang-0.2.0/src/language/reader/parser.rs +3 -0
  172. osiris_lang-0.2.0/src/language/reader/tests.rs +488 -0
  173. osiris_lang-0.2.0/src/language/source/mod.rs +80 -0
  174. osiris_lang-0.2.0/src/language/source/tests.rs +19 -0
  175. osiris_lang-0.2.0/src/language/syntax/equality.rs +111 -0
  176. osiris_lang-0.2.0/src/language/syntax/metadata.rs +271 -0
  177. osiris_lang-0.2.0/src/language/syntax/mod.rs +3 -0
  178. osiris_lang-0.2.0/src/language/syntax/model.rs +287 -0
  179. osiris_lang-0.2.0/src/language/syntax/tests.rs +34 -0
  180. osiris_lang-0.2.0/src/language/types/context.rs +485 -0
  181. osiris_lang-0.2.0/src/language/types/mod.rs +32 -0
  182. osiris_lang-0.2.0/src/language/types/model/data.rs +125 -0
  183. osiris_lang-0.2.0/src/language/types/model/effects.rs +65 -0
  184. osiris_lang-0.2.0/src/language/types/model/literal.rs +264 -0
  185. osiris_lang-0.2.0/src/language/types/model/summaries.rs +79 -0
  186. osiris_lang-0.2.0/src/language/types/model/temporal.rs +354 -0
  187. osiris_lang-0.2.0/src/language/types/model/type_repr.rs +337 -0
  188. osiris_lang-0.2.0/src/language/types/model.rs +13 -0
  189. osiris_lang-0.2.0/src/language/types/operators.rs +232 -0
  190. osiris_lang-0.2.0/src/language/types/parse.rs +417 -0
  191. osiris_lang-0.2.0/src/language/types/python.rs +56 -0
  192. osiris_lang-0.2.0/src/language/types/tests.rs +386 -0
  193. osiris_lang-0.2.0/src/lib/tests.rs +4 -0
  194. osiris_lang-0.2.0/src/lib.rs +105 -0
  195. osiris_lang-0.2.0/src/main.rs +26 -0
  196. osiris_lang-0.2.0/src/osiris/__init__.py +42 -0
  197. osiris_lang-0.2.0/src/osiris/_core.pyi +3 -0
  198. osiris_lang-0.2.0/src/osiris/prelude/__init__.py +8 -0
  199. osiris_lang-0.2.0/src/osiris/prelude/_sequence_consumers.py +77 -0
  200. osiris_lang-0.2.0/src/osiris/prelude/_sequence_core.py +259 -0
  201. osiris_lang-0.2.0/src/osiris/prelude/_sequence_eager.py +255 -0
  202. osiris_lang-0.2.0/src/osiris/prelude/_sequence_partitions.py +261 -0
  203. osiris_lang-0.2.0/src/osiris/prelude/_sequence_transforms.py +255 -0
  204. osiris_lang-0.2.0/src/osiris/prelude/control.py +420 -0
  205. osiris_lang-0.2.0/src/osiris/prelude/sequences.py +75 -0
  206. osiris_lang-0.2.0/src/osiris/py.typed +1 -0
  207. osiris_lang-0.2.0/src/osiris_build/__init__.py +31 -0
  208. osiris_lang-0.2.0/src/osiris_build/_api.py +80 -0
  209. osiris_lang-0.2.0/src/osiris_build/_common.py +22 -0
  210. osiris_lang-0.2.0/src/osiris_build/_interface.py +150 -0
  211. osiris_lang-0.2.0/src/osiris_build/_interface_records.py +196 -0
  212. osiris_lang-0.2.0/src/osiris_build/_model.py +61 -0
  213. osiris_lang-0.2.0/src/osiris_build/_project.py +236 -0
  214. osiris_lang-0.2.0/src/osiris_build/_requirements.py +459 -0
  215. osiris_lang-0.2.0/src/osiris_build/_sexpr.py +233 -0
  216. osiris_lang-0.2.0/src/osiris_build/_sidecar.py +161 -0
  217. osiris_lang-0.2.0/src/osiris_build/_wheel.py +482 -0
  218. osiris_lang-0.2.0/src/packaging/artifact/mod.rs +160 -0
  219. osiris_lang-0.2.0/src/packaging/artifact/tests.rs +58 -0
  220. osiris_lang-0.2.0/src/packaging/dependency/error.rs +172 -0
  221. osiris_lang-0.2.0/src/packaging/dependency/lockfile.rs +442 -0
  222. osiris_lang-0.2.0/src/packaging/dependency/mod.rs +37 -0
  223. osiris_lang-0.2.0/src/packaging/dependency/model.rs +254 -0
  224. osiris_lang-0.2.0/src/packaging/dependency/requirement.rs +438 -0
  225. osiris_lang-0.2.0/src/packaging/dependency/resolve.rs +361 -0
  226. osiris_lang-0.2.0/src/packaging/dependency/tests.rs +291 -0
  227. osiris_lang-0.2.0/src/packaging/extension/discovery.rs +210 -0
  228. osiris_lang-0.2.0/src/packaging/extension/io.rs +107 -0
  229. osiris_lang-0.2.0/src/packaging/extension/mod.rs +8 -0
  230. osiris_lang-0.2.0/src/packaging/extension/model.rs +185 -0
  231. osiris_lang-0.2.0/src/packaging/extension/tests.rs +107 -0
  232. osiris_lang-0.2.0/src/packaging/extension/validation.rs +54 -0
  233. osiris_lang-0.2.0/src/packaging/interface/build/from_hir.rs +230 -0
  234. osiris_lang-0.2.0/src/packaging/interface/build/provisional.rs +194 -0
  235. osiris_lang-0.2.0/src/packaging/interface/build/provisional_declarations.rs +329 -0
  236. osiris_lang-0.2.0/src/packaging/interface/build/provisional_validation.rs +289 -0
  237. osiris_lang-0.2.0/src/packaging/interface/build.rs +404 -0
  238. osiris_lang-0.2.0/src/packaging/interface/common.rs +222 -0
  239. osiris_lang-0.2.0/src/packaging/interface/decode/declarations.rs +226 -0
  240. osiris_lang-0.2.0/src/packaging/interface/decode/static_data.rs +308 -0
  241. osiris_lang-0.2.0/src/packaging/interface/decode/support.rs +272 -0
  242. osiris_lang-0.2.0/src/packaging/interface/decode/type_data.rs +320 -0
  243. osiris_lang-0.2.0/src/packaging/interface/decode.rs +173 -0
  244. osiris_lang-0.2.0/src/packaging/interface/encode/declarations.rs +148 -0
  245. osiris_lang-0.2.0/src/packaging/interface/encode/graph.rs +91 -0
  246. osiris_lang-0.2.0/src/packaging/interface/encode/static_data.rs +211 -0
  247. osiris_lang-0.2.0/src/packaging/interface/encode/type_data.rs +174 -0
  248. osiris_lang-0.2.0/src/packaging/interface/encode.rs +371 -0
  249. osiris_lang-0.2.0/src/packaging/interface/mod.rs +134 -0
  250. osiris_lang-0.2.0/src/packaging/interface/model.rs +184 -0
  251. osiris_lang-0.2.0/src/packaging/interface/rules.rs +298 -0
  252. osiris_lang-0.2.0/src/packaging/interface/tests/integrity.rs +105 -0
  253. osiris_lang-0.2.0/src/packaging/interface/tests/macros_and_operators.rs +171 -0
  254. osiris_lang-0.2.0/src/packaging/interface/tests/roundtrip.rs +491 -0
  255. osiris_lang-0.2.0/src/packaging/interface/tests.rs +3 -0
  256. osiris_lang-0.2.0/src/packaging/interface/validate/metadata.rs +192 -0
  257. osiris_lang-0.2.0/src/packaging/interface/validate/model.rs +435 -0
  258. osiris_lang-0.2.0/src/packaging/interface/validate/nominal.rs +126 -0
  259. osiris_lang-0.2.0/src/packaging/interface/validate/operators.rs +173 -0
  260. osiris_lang-0.2.0/src/packaging/interface/validate.rs +65 -0
  261. osiris_lang-0.2.0/src/packaging/interface_graph/calculate.rs +207 -0
  262. osiris_lang-0.2.0/src/packaging/interface_graph/graph.rs +151 -0
  263. osiris_lang-0.2.0/src/packaging/interface_graph/mod.rs +5 -0
  264. osiris_lang-0.2.0/src/packaging/interface_graph/model.rs +242 -0
  265. osiris_lang-0.2.0/src/packaging/interface_graph/tests.rs +189 -0
  266. osiris_lang-0.2.0/src/packaging/project/config.rs +407 -0
  267. osiris_lang-0.2.0/src/packaging/project/mod.rs +5 -0
  268. osiris_lang-0.2.0/src/packaging/project/model.rs +92 -0
  269. osiris_lang-0.2.0/src/packaging/project/paths.rs +37 -0
  270. osiris_lang-0.2.0/src/packaging/project/tests.rs +181 -0
  271. osiris_lang-0.2.0/src/stdlib/macros/comprehensions.osr +218 -0
  272. osiris_lang-0.2.0/src/stdlib/macros/concurrency.osr +178 -0
  273. osiris_lang-0.2.0/src/stdlib/macros/control.osr +342 -0
  274. osiris_lang-0.2.0/src/stdlib/macros/recursion.osr +145 -0
  275. osiris_lang-0.2.0/src/support/hash.rs +27 -0
  276. osiris_lang-0.2.0/src/tooling/cli/check.rs +63 -0
  277. osiris_lang-0.2.0/src/tooling/cli/compile.rs +345 -0
  278. osiris_lang-0.2.0/src/tooling/cli/extensions/load.rs +230 -0
  279. osiris_lang-0.2.0/src/tooling/cli/extensions/resolver.rs +99 -0
  280. osiris_lang-0.2.0/src/tooling/cli/extensions/validate.rs +235 -0
  281. osiris_lang-0.2.0/src/tooling/cli/extensions.rs +3 -0
  282. osiris_lang-0.2.0/src/tooling/cli/init.rs +278 -0
  283. osiris_lang-0.2.0/src/tooling/cli/inspect.rs +202 -0
  284. osiris_lang-0.2.0/src/tooling/cli/io.rs +15 -0
  285. osiris_lang-0.2.0/src/tooling/cli/mod.rs +119 -0
  286. osiris_lang-0.2.0/src/tooling/cli/run.rs +211 -0
  287. osiris_lang-0.2.0/src/tooling/cli/tests.rs +27 -0
  288. osiris_lang-0.2.0/src/tooling/cli/workspace.rs +192 -0
  289. osiris_lang-0.2.0/src/tooling/lsp/mod.rs +53 -0
  290. osiris_lang-0.2.0/src/tooling/lsp/protocol.rs +164 -0
  291. osiris_lang-0.2.0/src/tooling/lsp/rpc/dispatch.rs +218 -0
  292. osiris_lang-0.2.0/src/tooling/lsp/rpc/machine.rs +138 -0
  293. osiris_lang-0.2.0/src/tooling/lsp/rpc/params.rs +55 -0
  294. osiris_lang-0.2.0/src/tooling/lsp/rpc/support.rs +123 -0
  295. osiris_lang-0.2.0/src/tooling/lsp/rpc.rs +6 -0
  296. osiris_lang-0.2.0/src/tooling/lsp/signature.rs +496 -0
  297. osiris_lang-0.2.0/src/tooling/lsp/state/documents.rs +283 -0
  298. osiris_lang-0.2.0/src/tooling/lsp/state/model.rs +75 -0
  299. osiris_lang-0.2.0/src/tooling/lsp/state/navigation.rs +194 -0
  300. osiris_lang-0.2.0/src/tooling/lsp/state/queries.rs +213 -0
  301. osiris_lang-0.2.0/src/tooling/lsp/state.rs +6 -0
  302. osiris_lang-0.2.0/src/tooling/lsp/symbols/completion.rs +80 -0
  303. osiris_lang-0.2.0/src/tooling/lsp/symbols/finish.rs +114 -0
  304. osiris_lang-0.2.0/src/tooling/lsp/symbols/forms.rs +134 -0
  305. osiris_lang-0.2.0/src/tooling/lsp/symbols/index.rs +284 -0
  306. osiris_lang-0.2.0/src/tooling/lsp/symbols/rename.rs +220 -0
  307. osiris_lang-0.2.0/src/tooling/lsp/symbols.rs +7 -0
  308. osiris_lang-0.2.0/src/tooling/lsp/tests/editing_and_rpc.rs +236 -0
  309. osiris_lang-0.2.0/src/tooling/lsp/tests/signatures.rs +140 -0
  310. osiris_lang-0.2.0/src/tooling/lsp/tests/state_and_rename.rs +323 -0
  311. osiris_lang-0.2.0/src/tooling/lsp/tests/workspace.rs +403 -0
  312. osiris_lang-0.2.0/src/tooling/lsp/tests.rs +4 -0
  313. osiris_lang-0.2.0/src/tooling/lsp/text.rs +121 -0
  314. osiris_lang-0.2.0/src/tooling/lsp/workspace.rs +180 -0
  315. osiris_lang-0.2.0/src/tooling/lsp_stdio/mod.rs +118 -0
  316. osiris_lang-0.2.0/src/tooling/lsp_stdio/tests.rs +43 -0
  317. osiris_lang-0.2.0/src/tooling/printer/mod.rs +79 -0
  318. osiris_lang-0.2.0/src/tooling/printer/tests.rs +23 -0
  319. osiris_lang-0.2.0/src/tooling/semantic/analysis.rs +305 -0
  320. osiris_lang-0.2.0/src/tooling/semantic/metadata.rs +283 -0
  321. osiris_lang-0.2.0/src/tooling/semantic/mod.rs +268 -0
  322. osiris_lang-0.2.0/src/tooling/semantic/operations.rs +390 -0
  323. osiris_lang-0.2.0/src/tooling/semantic/projection.rs +163 -0
  324. osiris_lang-0.2.0/src/tooling/semantic/tests.rs +82 -0
  325. osiris_lang-0.2.0/tests/cli/compilation.rs +403 -0
  326. osiris_lang-0.2.0/tests/cli/execution.rs +278 -0
  327. osiris_lang-0.2.0/tests/cli/initialization.rs +133 -0
  328. osiris_lang-0.2.0/tests/cli/inspection.rs +173 -0
  329. osiris_lang-0.2.0/tests/cli/protocol.rs +143 -0
  330. osiris_lang-0.2.0/tests/cli.rs +65 -0
  331. osiris_lang-0.2.0/tests/clojure_control_compile.rs +146 -0
  332. osiris_lang-0.2.0/tests/concurrency_compile.rs +84 -0
  333. osiris_lang-0.2.0/tests/condp_compile.rs +76 -0
  334. osiris_lang-0.2.0/tests/control_compile/assertions.rs +116 -0
  335. osiris_lang-0.2.0/tests/control_compile/collections.rs +230 -0
  336. osiris_lang-0.2.0/tests/control_compile/recursion_and_types.rs +296 -0
  337. osiris_lang-0.2.0/tests/control_compile.rs +28 -0
  338. osiris_lang-0.2.0/tests/delay_compile.rs +71 -0
  339. osiris_lang-0.2.0/tests/distinct_compile.rs +94 -0
  340. osiris_lang-0.2.0/tests/dynamic_binding_compile.rs +278 -0
  341. osiris_lang-0.2.0/tests/empty_compile.rs +74 -0
  342. osiris_lang-0.2.0/tests/letfn_compile.rs +77 -0
  343. osiris_lang-0.2.0/tests/loop_compile.rs +373 -0
  344. osiris_lang-0.2.0/tests/parallel_compile.rs +108 -0
  345. osiris_lang-0.2.0/tests/predicates_compile.rs +112 -0
  346. osiris_lang-0.2.0/tests/private_function_compile.rs +81 -0
  347. osiris_lang-0.2.0/tests/resource_compile.rs +73 -0
  348. osiris_lang-0.2.0/tests/runtime_loader.py +13 -0
  349. osiris_lang-0.2.0/tests/sequence_combinations_compile.rs +150 -0
  350. osiris_lang-0.2.0/tests/sequence_compile.rs +98 -0
  351. osiris_lang-0.2.0/tests/test_clojure_prelude.py +94 -0
  352. osiris_lang-0.2.0/tests/test_control_runtime.py +164 -0
  353. osiris_lang-0.2.0/tests/test_dynamic_binding_runtime.py +57 -0
  354. osiris_lang-0.2.0/tests/test_lazy_edges.py +70 -0
  355. osiris_lang-0.2.0/tests/test_osiris_build.py +375 -0
  356. osiris_lang-0.2.0/tests/test_package_import.py +39 -0
  357. osiris_lang-0.2.0/tests/test_prelude.py +91 -0
  358. osiris_lang-0.2.0/tests/test_sequence_combinations.py +177 -0
  359. osiris_lang-0.2.0/tests/test_sequence_runtime.py +154 -0
  360. osiris_lang-0.2.0/tests/time_compile.rs +87 -0
  361. osiris_lang-0.2.0/tests/try_compile.rs +179 -0
  362. osiris_lang-0.2.0/uv.lock +67 -0
@@ -0,0 +1,105 @@
1
+ name: Publish Python package
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ - "!vscode-v*"
8
+ workflow_dispatch:
9
+ inputs:
10
+ release_tag:
11
+ description: Existing vX.Y.Z tag to publish
12
+ required: true
13
+ type: string
14
+
15
+ env:
16
+ RELEASE_TAG: ${{ inputs.release_tag || github.ref_name }}
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ version:
23
+ name: Verify release version
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - name: Match tag to Cargo version
28
+ shell: bash
29
+ run: |
30
+ version="$(sed -n 's/^version = "\([^"]*\)"/\1/p' Cargo.toml | head -n 1)"
31
+ test "v${version}" = "${RELEASE_TAG}"
32
+
33
+ test:
34
+ name: Test release source
35
+ needs: version
36
+ runs-on: ubuntu-latest
37
+ steps:
38
+ - uses: actions/checkout@v4
39
+ - uses: dtolnay/rust-toolchain@stable
40
+ - run: cargo test --all-targets --all-features
41
+
42
+ wheels:
43
+ name: Wheel (${{ matrix.os }}, ${{ matrix.target }})
44
+ needs: version
45
+ runs-on: ${{ matrix.os }}
46
+ strategy:
47
+ fail-fast: false
48
+ matrix:
49
+ include:
50
+ - os: ubuntu-latest
51
+ target: x86_64
52
+ - os: ubuntu-latest
53
+ target: aarch64
54
+ - os: windows-latest
55
+ target: x64
56
+ - os: macos-14
57
+ target: aarch64
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ - uses: PyO3/maturin-action@v1
61
+ with:
62
+ target: ${{ matrix.target }}
63
+ args: --release --out dist --find-interpreter
64
+ manylinux: auto
65
+ - uses: actions/upload-artifact@v4
66
+ with:
67
+ name: python-wheel-${{ matrix.os }}-${{ matrix.target }}
68
+ path: dist/*
69
+ if-no-files-found: error
70
+
71
+ sdist:
72
+ name: Source distribution
73
+ needs: version
74
+ runs-on: ubuntu-latest
75
+ steps:
76
+ - uses: actions/checkout@v4
77
+ - uses: PyO3/maturin-action@v1
78
+ with:
79
+ command: sdist
80
+ args: --out dist
81
+ - uses: actions/upload-artifact@v4
82
+ with:
83
+ name: python-sdist
84
+ path: dist/*
85
+ if-no-files-found: error
86
+
87
+ publish:
88
+ name: Publish osiris-lang to PyPI
89
+ needs:
90
+ - test
91
+ - wheels
92
+ - sdist
93
+ runs-on: ubuntu-latest
94
+ environment:
95
+ name: pypi
96
+ url: https://pypi.org/project/osiris-lang/
97
+ permissions:
98
+ id-token: write
99
+ steps:
100
+ - uses: actions/download-artifact@v4
101
+ with:
102
+ pattern: python-*
103
+ path: dist
104
+ merge-multiple: true
105
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,54 @@
1
+ name: Release VS Code extension
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "vscode-v*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ release_tag:
10
+ description: Existing vscode-vX.Y.Z tag to release
11
+ required: true
12
+ type: string
13
+
14
+ env:
15
+ RELEASE_TAG: ${{ inputs.release_tag || github.ref_name }}
16
+
17
+ permissions:
18
+ contents: write
19
+
20
+ jobs:
21
+ release:
22
+ name: Build and attach VSIX
23
+ runs-on: ubuntu-latest
24
+ defaults:
25
+ run:
26
+ working-directory: editors/vscode
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ - uses: actions/setup-node@v4
30
+ with:
31
+ node-version: 22
32
+ cache: npm
33
+ cache-dependency-path: editors/vscode/package-lock.json
34
+ - name: Match tag to extension version
35
+ shell: bash
36
+ run: |
37
+ version="$(node --print 'require("./package.json").version')"
38
+ test "vscode-v${version}" = "${RELEASE_TAG}"
39
+ - run: npm ci
40
+ - run: npm run check
41
+ - name: Build VSIX
42
+ shell: bash
43
+ run: |
44
+ version="$(node --print 'require("./package.json").version')"
45
+ npm run package -- --out "osiris-vscode-${version}.vsix"
46
+ - name: Create GitHub Release
47
+ working-directory: .
48
+ env:
49
+ GH_TOKEN: ${{ github.token }}
50
+ run: >-
51
+ gh release create "${RELEASE_TAG}"
52
+ editors/vscode/osiris-vscode-*.vsix
53
+ --title "Osiris VS Code ${RELEASE_TAG#vscode-v}"
54
+ --generate-notes
@@ -0,0 +1,24 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ /build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+ .pytest_cache/
9
+ .mypy_cache/
10
+ .ruff_cache/
11
+ node_modules/
12
+ *.vsix
13
+
14
+ # Virtual environments
15
+ .venv/
16
+
17
+ # Rust-generated files
18
+ /target/
19
+
20
+ # In-place native extensions generated by maturin
21
+ /src/osiris/*.so
22
+ /src/osiris/*.pyd
23
+ /src/osiris/*.dll
24
+ /src/osiris/*.dylib
@@ -0,0 +1 @@
1
+ 3.14
@@ -0,0 +1,402 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "block-buffer"
7
+ version = "0.10.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
10
+ dependencies = [
11
+ "generic-array",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "cfg-if"
16
+ version = "1.0.4"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
19
+
20
+ [[package]]
21
+ name = "cpufeatures"
22
+ version = "0.2.17"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
25
+ dependencies = [
26
+ "libc",
27
+ ]
28
+
29
+ [[package]]
30
+ name = "crypto-common"
31
+ version = "0.1.7"
32
+ source = "registry+https://github.com/rust-lang/crates.io-index"
33
+ checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
34
+ dependencies = [
35
+ "generic-array",
36
+ "typenum",
37
+ ]
38
+
39
+ [[package]]
40
+ name = "digest"
41
+ version = "0.10.7"
42
+ source = "registry+https://github.com/rust-lang/crates.io-index"
43
+ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
44
+ dependencies = [
45
+ "block-buffer",
46
+ "crypto-common",
47
+ ]
48
+
49
+ [[package]]
50
+ name = "equivalent"
51
+ version = "1.0.2"
52
+ source = "registry+https://github.com/rust-lang/crates.io-index"
53
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
54
+
55
+ [[package]]
56
+ name = "generic-array"
57
+ version = "0.14.7"
58
+ source = "registry+https://github.com/rust-lang/crates.io-index"
59
+ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
60
+ dependencies = [
61
+ "typenum",
62
+ "version_check",
63
+ ]
64
+
65
+ [[package]]
66
+ name = "hashbrown"
67
+ version = "0.17.1"
68
+ source = "registry+https://github.com/rust-lang/crates.io-index"
69
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
70
+
71
+ [[package]]
72
+ name = "heck"
73
+ version = "0.5.0"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
76
+
77
+ [[package]]
78
+ name = "indexmap"
79
+ version = "2.14.0"
80
+ source = "registry+https://github.com/rust-lang/crates.io-index"
81
+ checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
82
+ dependencies = [
83
+ "equivalent",
84
+ "hashbrown",
85
+ ]
86
+
87
+ [[package]]
88
+ name = "itoa"
89
+ version = "1.0.18"
90
+ source = "registry+https://github.com/rust-lang/crates.io-index"
91
+ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
92
+
93
+ [[package]]
94
+ name = "libc"
95
+ version = "0.2.189"
96
+ source = "registry+https://github.com/rust-lang/crates.io-index"
97
+ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
98
+
99
+ [[package]]
100
+ name = "memchr"
101
+ version = "2.8.3"
102
+ source = "registry+https://github.com/rust-lang/crates.io-index"
103
+ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
104
+
105
+ [[package]]
106
+ name = "nom"
107
+ version = "8.0.0"
108
+ source = "registry+https://github.com/rust-lang/crates.io-index"
109
+ checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405"
110
+ dependencies = [
111
+ "memchr",
112
+ ]
113
+
114
+ [[package]]
115
+ name = "once_cell"
116
+ version = "1.21.4"
117
+ source = "registry+https://github.com/rust-lang/crates.io-index"
118
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
119
+
120
+ [[package]]
121
+ name = "osiris"
122
+ version = "0.2.0"
123
+ dependencies = [
124
+ "nom",
125
+ "pyo3",
126
+ "serde",
127
+ "serde_json",
128
+ "sha2",
129
+ "toml",
130
+ "toml_edit",
131
+ "unicode-normalization",
132
+ ]
133
+
134
+ [[package]]
135
+ name = "portable-atomic"
136
+ version = "1.14.0"
137
+ source = "registry+https://github.com/rust-lang/crates.io-index"
138
+ checksum = "3d20d5497ef88037a52ff98267d066e7f11fcc5e99bbfbd58a42336193aacec3"
139
+
140
+ [[package]]
141
+ name = "proc-macro2"
142
+ version = "1.0.107"
143
+ source = "registry+https://github.com/rust-lang/crates.io-index"
144
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
145
+ dependencies = [
146
+ "unicode-ident",
147
+ ]
148
+
149
+ [[package]]
150
+ name = "pyo3"
151
+ version = "0.29.0"
152
+ source = "registry+https://github.com/rust-lang/crates.io-index"
153
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
154
+ dependencies = [
155
+ "libc",
156
+ "once_cell",
157
+ "portable-atomic",
158
+ "pyo3-build-config",
159
+ "pyo3-ffi",
160
+ "pyo3-macros",
161
+ ]
162
+
163
+ [[package]]
164
+ name = "pyo3-build-config"
165
+ version = "0.29.0"
166
+ source = "registry+https://github.com/rust-lang/crates.io-index"
167
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
168
+ dependencies = [
169
+ "target-lexicon",
170
+ ]
171
+
172
+ [[package]]
173
+ name = "pyo3-ffi"
174
+ version = "0.29.0"
175
+ source = "registry+https://github.com/rust-lang/crates.io-index"
176
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
177
+ dependencies = [
178
+ "libc",
179
+ "pyo3-build-config",
180
+ ]
181
+
182
+ [[package]]
183
+ name = "pyo3-macros"
184
+ version = "0.29.0"
185
+ source = "registry+https://github.com/rust-lang/crates.io-index"
186
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
187
+ dependencies = [
188
+ "proc-macro2",
189
+ "pyo3-macros-backend",
190
+ "quote",
191
+ "syn 2.0.119",
192
+ ]
193
+
194
+ [[package]]
195
+ name = "pyo3-macros-backend"
196
+ version = "0.29.0"
197
+ source = "registry+https://github.com/rust-lang/crates.io-index"
198
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
199
+ dependencies = [
200
+ "heck",
201
+ "proc-macro2",
202
+ "quote",
203
+ "syn 2.0.119",
204
+ ]
205
+
206
+ [[package]]
207
+ name = "quote"
208
+ version = "1.0.47"
209
+ source = "registry+https://github.com/rust-lang/crates.io-index"
210
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
211
+ dependencies = [
212
+ "proc-macro2",
213
+ ]
214
+
215
+ [[package]]
216
+ name = "serde"
217
+ version = "1.0.229"
218
+ source = "registry+https://github.com/rust-lang/crates.io-index"
219
+ checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
220
+ dependencies = [
221
+ "serde_core",
222
+ "serde_derive",
223
+ ]
224
+
225
+ [[package]]
226
+ name = "serde_core"
227
+ version = "1.0.229"
228
+ source = "registry+https://github.com/rust-lang/crates.io-index"
229
+ checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
230
+ dependencies = [
231
+ "serde_derive",
232
+ ]
233
+
234
+ [[package]]
235
+ name = "serde_derive"
236
+ version = "1.0.229"
237
+ source = "registry+https://github.com/rust-lang/crates.io-index"
238
+ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
239
+ dependencies = [
240
+ "proc-macro2",
241
+ "quote",
242
+ "syn 3.0.3",
243
+ ]
244
+
245
+ [[package]]
246
+ name = "serde_json"
247
+ version = "1.0.151"
248
+ source = "registry+https://github.com/rust-lang/crates.io-index"
249
+ checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
250
+ dependencies = [
251
+ "itoa",
252
+ "memchr",
253
+ "serde",
254
+ "serde_core",
255
+ "zmij",
256
+ ]
257
+
258
+ [[package]]
259
+ name = "serde_spanned"
260
+ version = "0.6.9"
261
+ source = "registry+https://github.com/rust-lang/crates.io-index"
262
+ checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3"
263
+ dependencies = [
264
+ "serde",
265
+ ]
266
+
267
+ [[package]]
268
+ name = "sha2"
269
+ version = "0.10.9"
270
+ source = "registry+https://github.com/rust-lang/crates.io-index"
271
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
272
+ dependencies = [
273
+ "cfg-if",
274
+ "cpufeatures",
275
+ "digest",
276
+ ]
277
+
278
+ [[package]]
279
+ name = "syn"
280
+ version = "2.0.119"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
283
+ dependencies = [
284
+ "proc-macro2",
285
+ "quote",
286
+ "unicode-ident",
287
+ ]
288
+
289
+ [[package]]
290
+ name = "syn"
291
+ version = "3.0.3"
292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
293
+ checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3"
294
+ dependencies = [
295
+ "proc-macro2",
296
+ "quote",
297
+ "unicode-ident",
298
+ ]
299
+
300
+ [[package]]
301
+ name = "target-lexicon"
302
+ version = "0.13.5"
303
+ source = "registry+https://github.com/rust-lang/crates.io-index"
304
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
305
+
306
+ [[package]]
307
+ name = "tinyvec"
308
+ version = "1.12.0"
309
+ source = "registry+https://github.com/rust-lang/crates.io-index"
310
+ checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f"
311
+ dependencies = [
312
+ "tinyvec_macros",
313
+ ]
314
+
315
+ [[package]]
316
+ name = "tinyvec_macros"
317
+ version = "0.1.1"
318
+ source = "registry+https://github.com/rust-lang/crates.io-index"
319
+ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
320
+
321
+ [[package]]
322
+ name = "toml"
323
+ version = "0.8.23"
324
+ source = "registry+https://github.com/rust-lang/crates.io-index"
325
+ checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362"
326
+ dependencies = [
327
+ "serde",
328
+ "serde_spanned",
329
+ "toml_datetime",
330
+ "toml_edit",
331
+ ]
332
+
333
+ [[package]]
334
+ name = "toml_datetime"
335
+ version = "0.6.11"
336
+ source = "registry+https://github.com/rust-lang/crates.io-index"
337
+ checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
338
+ dependencies = [
339
+ "serde",
340
+ ]
341
+
342
+ [[package]]
343
+ name = "toml_edit"
344
+ version = "0.22.27"
345
+ source = "registry+https://github.com/rust-lang/crates.io-index"
346
+ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
347
+ dependencies = [
348
+ "indexmap",
349
+ "serde",
350
+ "serde_spanned",
351
+ "toml_datetime",
352
+ "toml_write",
353
+ "winnow",
354
+ ]
355
+
356
+ [[package]]
357
+ name = "toml_write"
358
+ version = "0.1.2"
359
+ source = "registry+https://github.com/rust-lang/crates.io-index"
360
+ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801"
361
+
362
+ [[package]]
363
+ name = "typenum"
364
+ version = "1.20.1"
365
+ source = "registry+https://github.com/rust-lang/crates.io-index"
366
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
367
+
368
+ [[package]]
369
+ name = "unicode-ident"
370
+ version = "1.0.24"
371
+ source = "registry+https://github.com/rust-lang/crates.io-index"
372
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
373
+
374
+ [[package]]
375
+ name = "unicode-normalization"
376
+ version = "0.1.25"
377
+ source = "registry+https://github.com/rust-lang/crates.io-index"
378
+ checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8"
379
+ dependencies = [
380
+ "tinyvec",
381
+ ]
382
+
383
+ [[package]]
384
+ name = "version_check"
385
+ version = "0.9.5"
386
+ source = "registry+https://github.com/rust-lang/crates.io-index"
387
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
388
+
389
+ [[package]]
390
+ name = "winnow"
391
+ version = "0.7.15"
392
+ source = "registry+https://github.com/rust-lang/crates.io-index"
393
+ checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945"
394
+ dependencies = [
395
+ "memchr",
396
+ ]
397
+
398
+ [[package]]
399
+ name = "zmij"
400
+ version = "1.0.23"
401
+ source = "registry+https://github.com/rust-lang/crates.io-index"
402
+ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
@@ -0,0 +1,44 @@
1
+ [package]
2
+ name = "osiris"
3
+ version = "0.2.0"
4
+ edition = "2024"
5
+ rust-version = "1.85"
6
+ authors = ["MJ <tywf91@gmail.com>"]
7
+ description = "The osr Lisp compiler"
8
+ readme = "README.md"
9
+ license = "MIT"
10
+ homepage = "https://github.com/mjason/osiris"
11
+ repository = "https://github.com/mjason/osiris"
12
+ publish = false
13
+
14
+ [lib]
15
+ name = "_core"
16
+ crate-type = ["cdylib", "rlib"]
17
+
18
+ [[bin]]
19
+ name = "osr"
20
+ path = "src/main.rs"
21
+
22
+ [features]
23
+ default = []
24
+ python = ["dep:pyo3"]
25
+
26
+ [dependencies]
27
+ nom = "8.0"
28
+ pyo3 = { version = "0.29", optional = true, features = ["extension-module", "abi3-py39"] }
29
+ serde = { version = "1.0", features = ["derive"] }
30
+ serde_json = "1.0"
31
+ sha2 = "0.10"
32
+ toml = "0.8"
33
+ toml_edit = "0.22"
34
+ unicode-normalization = "0.1"
35
+
36
+ [lints.rust]
37
+ unsafe_code = "forbid"
38
+
39
+ [lints.clippy]
40
+ all = "warn"
41
+
42
+ [profile.release]
43
+ lto = "thin"
44
+ strip = "symbols"
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 MJ
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.