@greenpandastudios/aug-cli 0.19.0 → 0.21.0

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 (628) hide show
  1. package/README.md +9 -6
  2. package/THIRD_PARTY_NOTICES.md +4 -0
  3. package/bin/aug.mjs +12 -2
  4. package/docs/about.md +27 -0
  5. package/docs/api/crypto.md +103 -69
  6. package/docs/api/io.md +35 -33
  7. package/docs/api/json.md +3 -3
  8. package/docs/api/memory.md +23 -19
  9. package/docs/api/time.md +10 -9
  10. package/docs/api/web.md +33 -38
  11. package/docs/assets/benchmarks/execution.svg +774 -637
  12. package/docs/assets/benchmarks/http.svg +278 -249
  13. package/docs/assets/benchmarks/improvements.svg +66 -66
  14. package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
  15. package/docs/assets/benchmarks/kernels.svg +1 -0
  16. package/docs/assets/benchmarks/memory.svg +153 -153
  17. package/docs/benchmark-results.json +227089 -90363
  18. package/docs/compatibility.md +8 -8
  19. package/docs/contributing-benchmarks.md +68 -0
  20. package/docs/dev-containers.md +88 -0
  21. package/docs/dgx-consumers.json +122 -0
  22. package/docs/dgx-gyms.json +784 -0
  23. package/docs/dgx-kernels.json +1170 -0
  24. package/docs/dgx-performance.json +227849 -0
  25. package/docs/dgx-spark.md +64 -0
  26. package/docs/diagnostics.md +15 -5
  27. package/docs/docker.md +173 -12
  28. package/docs/editor.md +35 -0
  29. package/docs/example-projects.json +238 -24
  30. package/docs/examples/approved-design/counters.md +34 -126
  31. package/docs/examples/approved-design/dependencies/august/0.21.0/io/contracts.md +178 -0
  32. package/docs/examples/approved-design/domain/app.md +13 -77
  33. package/docs/examples/approved-design/domain/export.md +5 -19
  34. package/docs/examples/approved-design/domain/models.md +4 -23
  35. package/docs/examples/approved-design/domain/numbers.md +24 -114
  36. package/docs/examples/approved-design/index.md +16 -7
  37. package/docs/examples/approved-design/main.md +19 -96
  38. package/docs/examples/benchmark/index.md +6 -5
  39. package/docs/examples/benchmark/main.md +7 -35
  40. package/docs/examples/calls-benchmark/index.md +36 -0
  41. package/docs/examples/calls-benchmark/main.md +78 -0
  42. package/docs/examples/calls-benchmark/operations.md +60 -0
  43. package/docs/examples/cli-args/index.md +6 -5
  44. package/docs/examples/cli-args/main.md +6 -31
  45. package/docs/examples/collections/index.md +6 -5
  46. package/docs/examples/collections/main.md +7 -35
  47. package/docs/examples/collections-benchmark/index.md +6 -5
  48. package/docs/examples/collections-benchmark/main.md +7 -35
  49. package/docs/examples/cpu-benchmark/index.md +6 -5
  50. package/docs/examples/cpu-benchmark/main.md +5 -24
  51. package/docs/examples/developer-workflow/calculator.md +39 -186
  52. package/docs/examples/developer-workflow/dependencies/august/0.21.0/io/contracts.md +178 -0
  53. package/docs/examples/developer-workflow/index.md +16 -7
  54. package/docs/examples/developer-workflow/logging/console.md +10 -56
  55. package/docs/examples/developer-workflow/logging/export.md +4 -14
  56. package/docs/examples/developer-workflow/logging/logger.md +7 -43
  57. package/docs/examples/developer-workflow/main.md +17 -69
  58. package/docs/examples/drop/index.md +6 -5
  59. package/docs/examples/drop/main.md +7 -27
  60. package/docs/examples/drop/resource.md +7 -30
  61. package/docs/examples/errors/errors.md +7 -27
  62. package/docs/examples/errors/index.md +6 -5
  63. package/docs/examples/errors/main.md +7 -28
  64. package/docs/examples/errors-benchmark/index.md +36 -0
  65. package/docs/examples/errors-benchmark/main.md +92 -0
  66. package/docs/examples/errors-benchmark/operations.md +65 -0
  67. package/docs/examples/ffi/index.md +6 -5
  68. package/docs/examples/ffi/main.md +6 -20
  69. package/docs/examples/ffi/native.md +8 -34
  70. package/docs/examples/float-benchmark/index.md +35 -0
  71. package/docs/examples/float-benchmark/main.md +75 -0
  72. package/docs/examples/generic-di/dependencies/august/0.21.0/io/contracts.md +178 -0
  73. package/docs/examples/generic-di/index.md +6 -5
  74. package/docs/examples/generic-di/main.md +9 -39
  75. package/docs/examples/generic-di/types.md +23 -92
  76. package/docs/examples/generics/index.md +6 -5
  77. package/docs/examples/generics/main.md +10 -47
  78. package/docs/examples/generics/types.md +25 -100
  79. package/docs/examples/hello/app/export.md +4 -12
  80. package/docs/examples/hello/app/greeter.md +13 -91
  81. package/docs/examples/hello/dependencies/august/0.21.0/io/contracts.md +178 -0
  82. package/docs/examples/hello/index.md +17 -6
  83. package/docs/examples/hello/logging/console.md +10 -54
  84. package/docs/examples/hello/logging/export.md +4 -14
  85. package/docs/examples/hello/logging/logger.md +7 -45
  86. package/docs/examples/hello/main.md +9 -39
  87. package/docs/examples/http-benchmark/index.md +6 -5
  88. package/docs/examples/http-benchmark/main.md +6 -20
  89. package/docs/examples/http-benchmark/routes.md +9 -31
  90. package/docs/examples/index.md +63 -29
  91. package/docs/examples/interceptors/app.md +20 -139
  92. package/docs/examples/interceptors/dependencies/august/0.21.0/io/contracts.md +178 -0
  93. package/docs/examples/interceptors/index.md +6 -5
  94. package/docs/examples/interceptors/interceptors.md +24 -148
  95. package/docs/examples/interceptors/logging.md +13 -76
  96. package/docs/examples/interceptors/main.md +10 -65
  97. package/docs/examples/json-benchmark/data.md +4 -20
  98. package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  99. package/docs/examples/json-benchmark/index.md +7 -5
  100. package/docs/examples/json-benchmark/main-yaml.md +20 -0
  101. package/docs/examples/json-benchmark/main.md +10 -49
  102. package/docs/examples/list-benchmark/index.md +35 -0
  103. package/docs/examples/list-benchmark/main.md +78 -0
  104. package/docs/examples/map-churn-benchmark/index.md +35 -0
  105. package/docs/examples/map-churn-benchmark/main.md +106 -0
  106. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
  107. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
  108. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
  109. package/docs/examples/native-blake3/hashing.md +93 -0
  110. package/docs/examples/native-blake3/index.md +38 -0
  111. package/docs/examples/native-blake3/main.md +73 -0
  112. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
  113. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
  114. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
  115. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
  116. package/docs/examples/native-pytorch/index.md +38 -0
  117. package/docs/examples/native-pytorch/main.md +73 -0
  118. package/docs/examples/native-pytorch/tensors.md +123 -0
  119. package/docs/examples/native-sqlite/database.md +116 -0
  120. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
  121. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
  122. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
  123. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
  124. package/docs/examples/native-sqlite/index.md +38 -0
  125. package/docs/examples/native-sqlite/main.md +73 -0
  126. package/docs/examples/native-zlib/compression.md +99 -0
  127. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
  128. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
  129. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
  130. package/docs/examples/native-zlib/index.md +38 -0
  131. package/docs/examples/native-zlib/main.md +78 -0
  132. package/docs/examples/new-syntax/console.md +10 -52
  133. package/docs/examples/new-syntax/dependencies/august/0.21.0/io/contracts.md +178 -0
  134. package/docs/examples/new-syntax/greeter.md +13 -71
  135. package/docs/examples/new-syntax/index.md +6 -5
  136. package/docs/examples/new-syntax/logger.md +7 -43
  137. package/docs/examples/new-syntax/main.md +10 -53
  138. package/docs/examples/new-syntax/math.md +6 -24
  139. package/docs/examples/oidc-login/client/contracts.md +10 -61
  140. package/docs/examples/oidc-login/client/endpoints.md +32 -154
  141. package/docs/examples/oidc-login/client/export.md +5 -23
  142. package/docs/examples/oidc-login/client/login.md +234 -344
  143. package/docs/examples/oidc-login/client/logout.md +38 -143
  144. package/docs/examples/oidc-login/client/protocol.md +183 -304
  145. package/docs/examples/oidc-login/client/session.md +41 -149
  146. package/docs/examples/oidc-login/client/views.md +13 -58
  147. package/docs/examples/oidc-login/common/export.md +6 -26
  148. package/docs/examples/oidc-login/common/headers.md +42 -72
  149. package/docs/examples/oidc-login/common/keys.md +40 -164
  150. package/docs/examples/oidc-login/common/settings.md +24 -40
  151. package/docs/examples/oidc-login/common/views.md +7 -28
  152. package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
  153. package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  154. package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
  155. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
  156. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
  157. package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
  158. package/docs/examples/oidc-login/index.md +8 -7
  159. package/docs/examples/oidc-login/main-yaml.md +7 -0
  160. package/docs/examples/oidc-login/main.md +26 -153
  161. package/docs/examples/oidc-login/provider/authorization.md +232 -275
  162. package/docs/examples/oidc-login/provider/contracts.md +24 -146
  163. package/docs/examples/oidc-login/provider/credentials.md +24 -57
  164. package/docs/examples/oidc-login/provider/discovery.md +48 -122
  165. package/docs/examples/oidc-login/provider/export.md +11 -37
  166. package/docs/examples/oidc-login/provider/token.md +159 -237
  167. package/docs/examples/oidc-login/provider/userinfo.md +47 -102
  168. package/docs/examples/oidc-login/provider/views.md +13 -53
  169. package/docs/examples/ownership/counter.md +17 -63
  170. package/docs/examples/ownership/index.md +6 -5
  171. package/docs/examples/ownership/main.md +7 -30
  172. package/docs/examples/ownership-transfer/dependencies/august/0.21.0/io/contracts.md +178 -0
  173. package/docs/examples/ownership-transfer/index.md +6 -5
  174. package/docs/examples/ownership-transfer/main.md +10 -52
  175. package/docs/examples/ownership-transfer/resource.md +15 -67
  176. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
  177. package/docs/examples/packages-app/index.md +7 -6
  178. package/docs/examples/packages-app/main.md +7 -25
  179. package/docs/examples/packages-math/aug-package-json.md +1 -1
  180. package/docs/examples/packages-math/index.md +7 -6
  181. package/docs/examples/packages-math/src/arithmetic.md +12 -50
  182. package/docs/examples/packages-math/src/export.md +4 -12
  183. package/docs/examples/records-benchmark/data.md +55 -0
  184. package/docs/examples/records-benchmark/index.md +36 -0
  185. package/docs/examples/records-benchmark/main.md +85 -0
  186. package/docs/examples/startup-benchmark/index.md +6 -5
  187. package/docs/examples/startup-benchmark/main.md +5 -17
  188. package/docs/examples/strings-benchmark/index.md +35 -0
  189. package/docs/examples/strings-benchmark/main.md +76 -0
  190. package/docs/examples/tasks-benchmark/index.md +36 -0
  191. package/docs/examples/tasks-benchmark/main.md +89 -0
  192. package/docs/examples/tasks-benchmark/operations.md +58 -0
  193. package/docs/examples/visibility/counter.md +19 -67
  194. package/docs/examples/visibility/index.md +6 -5
  195. package/docs/examples/visibility/main.md +7 -31
  196. package/docs/examples/weather-api/forecasts.md +168 -0
  197. package/docs/examples/weather-api/index.md +42 -0
  198. package/docs/examples/weather-api/main-yaml.md +21 -0
  199. package/docs/examples/weather-api/main.md +65 -0
  200. package/docs/examples.json +10 -0
  201. package/docs/getting-started.md +105 -2
  202. package/docs/grammar.md +7 -5
  203. package/docs/guides/change-a-module.md +64 -0
  204. package/docs/guides/index.md +27 -0
  205. package/docs/gym-results.json +784 -0
  206. package/docs/implementation-map.md +6 -0
  207. package/docs/index.md +51 -29
  208. package/docs/kernel-results.json +1170 -0
  209. package/docs/language-conformance.md +7 -1
  210. package/docs/language-constructs.md +30 -22
  211. package/docs/language-design-audit.md +1 -1
  212. package/docs/learn/data-and-errors.md +77 -0
  213. package/docs/learn/index.md +30 -0
  214. package/docs/learn/modules-and-dependencies.md +73 -0
  215. package/docs/learn/state-and-tests.md +71 -0
  216. package/docs/learn/values-and-functions.md +62 -0
  217. package/docs/lesson-failures.json +8 -0
  218. package/docs/maintaining-docs.md +16 -4
  219. package/docs/native-implementation.md +276 -0
  220. package/docs/native-interop-llvm-plan.md +342 -0
  221. package/docs/native-package-examples.md +684 -0
  222. package/docs/native-packages.md +179 -0
  223. package/docs/packages.md +72 -126
  224. package/docs/performance.md +61 -68
  225. package/docs/production-readiness.md +16 -5
  226. package/docs/public/downloads/approved-design.zip +0 -0
  227. package/docs/public/downloads/benchmark.zip +0 -0
  228. package/docs/public/downloads/calls-benchmark.zip +0 -0
  229. package/docs/public/downloads/cli-args.zip +0 -0
  230. package/docs/public/downloads/collections-benchmark.zip +0 -0
  231. package/docs/public/downloads/collections.zip +0 -0
  232. package/docs/public/downloads/cpu-benchmark.zip +0 -0
  233. package/docs/public/downloads/developer-workflow.zip +0 -0
  234. package/docs/public/downloads/drop.zip +0 -0
  235. package/docs/public/downloads/errors-benchmark.zip +0 -0
  236. package/docs/public/downloads/errors.zip +0 -0
  237. package/docs/public/downloads/ffi.zip +0 -0
  238. package/docs/public/downloads/float-benchmark.zip +0 -0
  239. package/docs/public/downloads/generic-di.zip +0 -0
  240. package/docs/public/downloads/generics.zip +0 -0
  241. package/docs/public/downloads/hello.zip +0 -0
  242. package/docs/public/downloads/http-benchmark.zip +0 -0
  243. package/docs/public/downloads/interceptors.zip +0 -0
  244. package/docs/public/downloads/json-benchmark.zip +0 -0
  245. package/docs/public/downloads/list-benchmark.zip +0 -0
  246. package/docs/public/downloads/map-churn-benchmark.zip +0 -0
  247. package/docs/public/downloads/native-blake3.zip +0 -0
  248. package/docs/public/downloads/native-pytorch.zip +0 -0
  249. package/docs/public/downloads/native-sqlite.zip +0 -0
  250. package/docs/public/downloads/native-zlib.zip +0 -0
  251. package/docs/public/downloads/new-syntax.zip +0 -0
  252. package/docs/public/downloads/oidc-login.zip +0 -0
  253. package/docs/public/downloads/ownership-transfer.zip +0 -0
  254. package/docs/public/downloads/ownership.zip +0 -0
  255. package/docs/public/downloads/packages-app.zip +0 -0
  256. package/docs/public/downloads/packages-math.zip +0 -0
  257. package/docs/public/downloads/records-benchmark.zip +0 -0
  258. package/docs/public/downloads/startup-benchmark.zip +0 -0
  259. package/docs/public/downloads/strings-benchmark.zip +0 -0
  260. package/docs/public/downloads/tasks-benchmark.zip +0 -0
  261. package/docs/public/downloads/visibility.zip +0 -0
  262. package/docs/public/downloads/weather-api.zip +0 -0
  263. package/docs/qualification-results.md +66 -0
  264. package/docs/reference.md +47 -17
  265. package/docs/releasing.md +105 -16
  266. package/docs/research/code-to-natural-language.md +108 -0
  267. package/docs/research/ecosystem-workflow.md +41 -0
  268. package/docs/research/libtorch-native-qualification.md +115 -0
  269. package/docs/research/native-interop-llvm.md +197 -0
  270. package/docs/research/qualification-methods.md +15 -0
  271. package/docs/research/wiki-editorial-design.md +71 -0
  272. package/docs/roadmap.md +2 -1
  273. package/docs/safety-gyms.md +41 -0
  274. package/docs/specifications.md +27 -11
  275. package/docs/testing.md +19 -5
  276. package/docs/tooling.md +36 -22
  277. package/docs/weather-api.md +65 -0
  278. package/docs/web-library-gaps.md +1 -1
  279. package/docs/web.md +54 -18
  280. package/docs/writing-docs.md +49 -0
  281. package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  282. package/examples/approved-design/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  283. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  284. package/examples/approved-design/counters.aug +5 -4
  285. package/examples/approved-design/counters.aug.md +25 -132
  286. package/examples/approved-design/domain/app.aug +2 -1
  287. package/examples/approved-design/domain/app.aug.md +10 -80
  288. package/examples/approved-design/domain/export.aug +1 -0
  289. package/examples/approved-design/domain/export.aug.md +4 -20
  290. package/examples/approved-design/domain/models.aug +1 -0
  291. package/examples/approved-design/domain/models.aug.md +3 -25
  292. package/examples/approved-design/domain/numbers.aug +3 -2
  293. package/examples/approved-design/domain/numbers.aug.md +19 -116
  294. package/examples/approved-design/main.aug +1 -0
  295. package/examples/approved-design/main.aug.md +12 -95
  296. package/examples/benchmark/.aug-spec/manifest.json +1 -1
  297. package/examples/benchmark/main.aug +1 -0
  298. package/examples/benchmark/main.aug.md +6 -36
  299. package/examples/cli-args/.aug-spec/manifest.json +1 -1
  300. package/examples/cli-args/main.aug +1 -0
  301. package/examples/cli-args/main.aug.md +5 -32
  302. package/examples/collections/.aug-spec/manifest.json +1 -1
  303. package/examples/collections/main.aug +1 -0
  304. package/examples/collections/main.aug.md +6 -36
  305. package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  306. package/examples/developer-workflow/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  307. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  308. package/examples/developer-workflow/calculator.aug +3 -2
  309. package/examples/developer-workflow/calculator.aug.md +28 -189
  310. package/examples/developer-workflow/logging/console.aug +2 -1
  311. package/examples/developer-workflow/logging/console.aug.md +7 -57
  312. package/examples/developer-workflow/logging/export.aug +1 -0
  313. package/examples/developer-workflow/logging/export.aug.md +3 -15
  314. package/examples/developer-workflow/logging/logger.aug +1 -0
  315. package/examples/developer-workflow/logging/logger.aug.md +6 -46
  316. package/examples/developer-workflow/main.aug +1 -0
  317. package/examples/developer-workflow/main.aug.md +10 -68
  318. package/examples/drop/.aug-spec/manifest.json +1 -1
  319. package/examples/drop/main.aug +1 -0
  320. package/examples/drop/main.aug.md +6 -28
  321. package/examples/drop/resource.aug +1 -0
  322. package/examples/drop/resource.aug.md +6 -34
  323. package/examples/errors/.aug-spec/manifest.json +1 -1
  324. package/examples/errors/errors.aug +2 -1
  325. package/examples/errors/errors.aug.md +4 -27
  326. package/examples/errors/main.aug +1 -0
  327. package/examples/errors/main.aug.md +6 -29
  328. package/examples/ffi/.aug-spec/manifest.json +1 -1
  329. package/examples/ffi/main.aug +1 -0
  330. package/examples/ffi/main.aug.md +5 -21
  331. package/examples/ffi/native.aug +2 -1
  332. package/examples/ffi/native.aug.md +5 -35
  333. package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  334. package/examples/generic-di/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  335. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  336. package/examples/generic-di/main.aug +1 -0
  337. package/examples/generic-di/main.aug.md +8 -40
  338. package/examples/generic-di/types.aug +3 -2
  339. package/examples/generic-di/types.aug.md +18 -97
  340. package/examples/generics/.aug-spec/manifest.json +1 -1
  341. package/examples/generics/main.aug +1 -0
  342. package/examples/generics/main.aug.md +9 -48
  343. package/examples/generics/types.aug +4 -3
  344. package/examples/generics/types.aug.md +18 -104
  345. package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
  346. package/examples/hello/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  347. package/examples/hello/.aug-spec/manifest.json +3 -3
  348. package/examples/hello/app/export.aug +1 -0
  349. package/examples/hello/app/export.aug.md +3 -13
  350. package/examples/hello/app/greeter.aug +2 -1
  351. package/examples/hello/app/greeter.aug.md +10 -94
  352. package/examples/hello/logging/console.aug +2 -1
  353. package/examples/hello/logging/console.aug.md +7 -55
  354. package/examples/hello/logging/export.aug +1 -0
  355. package/examples/hello/logging/export.aug.md +3 -15
  356. package/examples/hello/logging/logger.aug +1 -0
  357. package/examples/hello/logging/logger.aug.md +6 -48
  358. package/examples/hello/main.aug +1 -0
  359. package/examples/hello/main.aug.md +8 -40
  360. package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  361. package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  362. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  363. package/examples/interceptors/app.aug +3 -2
  364. package/examples/interceptors/app.aug.md +15 -141
  365. package/examples/interceptors/interceptors.aug +3 -2
  366. package/examples/interceptors/interceptors.aug.md +19 -152
  367. package/examples/interceptors/logging.aug +2 -1
  368. package/examples/interceptors/logging.aug.md +10 -79
  369. package/examples/interceptors/main.aug +1 -0
  370. package/examples/interceptors/main.aug.md +9 -66
  371. package/examples/native-blake3/.aug-spec/manifest.json +16 -0
  372. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
  373. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
  374. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
  375. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
  376. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
  377. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
  378. package/examples/native-blake3/AGENTS.md +5 -0
  379. package/examples/native-blake3/aug.lock.json +253 -0
  380. package/examples/native-blake3/hashing.aug +11 -0
  381. package/examples/native-blake3/hashing.aug.md +25 -0
  382. package/examples/native-blake3/main.aug +8 -0
  383. package/examples/native-blake3/main.aug.md +13 -0
  384. package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
  385. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
  386. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
  387. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
  388. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
  389. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
  390. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
  391. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
  392. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
  393. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
  394. package/examples/native-pytorch/AGENTS.md +5 -0
  395. package/examples/native-pytorch/aug.lock.json +309 -0
  396. package/examples/native-pytorch/main.aug +8 -0
  397. package/examples/native-pytorch/main.aug.md +13 -0
  398. package/examples/native-pytorch/tensors.aug +23 -0
  399. package/examples/native-pytorch/tensors.aug.md +35 -0
  400. package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
  401. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
  402. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
  403. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
  404. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
  405. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
  406. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
  407. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
  408. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
  409. package/examples/native-sqlite/AGENTS.md +5 -0
  410. package/examples/native-sqlite/aug.lock.json +236 -0
  411. package/examples/native-sqlite/database.aug +15 -0
  412. package/examples/native-sqlite/database.aug.md +27 -0
  413. package/examples/native-sqlite/main.aug +8 -0
  414. package/examples/native-sqlite/main.aug.md +13 -0
  415. package/examples/native-zlib/.aug-spec/manifest.json +16 -0
  416. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
  417. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
  418. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
  419. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
  420. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
  421. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
  422. package/examples/native-zlib/AGENTS.md +5 -0
  423. package/examples/native-zlib/aug.lock.json +236 -0
  424. package/examples/native-zlib/compression.aug +15 -0
  425. package/examples/native-zlib/compression.aug.md +27 -0
  426. package/examples/native-zlib/main.aug +10 -0
  427. package/examples/native-zlib/main.aug.md +13 -0
  428. package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  429. package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  430. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  431. package/examples/new-syntax/console.aug +2 -1
  432. package/examples/new-syntax/console.aug.md +7 -53
  433. package/examples/new-syntax/greeter.aug +2 -1
  434. package/examples/new-syntax/greeter.aug.md +10 -74
  435. package/examples/new-syntax/logger.aug +1 -0
  436. package/examples/new-syntax/logger.aug.md +6 -46
  437. package/examples/new-syntax/main.aug +1 -0
  438. package/examples/new-syntax/main.aug.md +9 -54
  439. package/examples/new-syntax/math.aug +2 -1
  440. package/examples/new-syntax/math.aug.md +3 -24
  441. package/examples/oidc-login/.aug-spec/manifest.json +13 -13
  442. package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
  443. package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
  444. package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
  445. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
  446. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
  447. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
  448. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
  449. package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
  450. package/examples/oidc-login/aug.lock.json +100 -0
  451. package/examples/oidc-login/client/contracts.aug +1 -0
  452. package/examples/oidc-login/client/contracts.aug.md +9 -66
  453. package/examples/oidc-login/client/endpoints.aug +6 -5
  454. package/examples/oidc-login/client/endpoints.aug.md +13 -145
  455. package/examples/oidc-login/client/export.aug +1 -0
  456. package/examples/oidc-login/client/export.aug.md +4 -24
  457. package/examples/oidc-login/client/login.aug +7 -6
  458. package/examples/oidc-login/client/login.aug.md +25 -303
  459. package/examples/oidc-login/client/logout.aug +5 -4
  460. package/examples/oidc-login/client/logout.aug.md +13 -135
  461. package/examples/oidc-login/client/protocol.aug +7 -6
  462. package/examples/oidc-login/client/protocol.aug.md +36 -283
  463. package/examples/oidc-login/client/session.aug +5 -4
  464. package/examples/oidc-login/client/session.aug.md +12 -139
  465. package/examples/oidc-login/client/views.aug +3 -2
  466. package/examples/oidc-login/client/views.aug.md +8 -57
  467. package/examples/oidc-login/common/export.aug +1 -0
  468. package/examples/oidc-login/common/export.aug.md +5 -27
  469. package/examples/oidc-login/common/headers.aug +4 -3
  470. package/examples/oidc-login/common/headers.aug.md +9 -67
  471. package/examples/oidc-login/common/keys.aug +6 -5
  472. package/examples/oidc-login/common/keys.aug.md +29 -165
  473. package/examples/oidc-login/common/settings.aug +2 -1
  474. package/examples/oidc-login/common/settings.aug.md +5 -39
  475. package/examples/oidc-login/common/views.aug +2 -1
  476. package/examples/oidc-login/common/views.aug.md +4 -28
  477. package/examples/oidc-login/main.aug +6 -16
  478. package/examples/oidc-login/main.aug.md +17 -146
  479. package/examples/oidc-login/main.yaml +7 -0
  480. package/examples/oidc-login/provider/authorization.aug +7 -6
  481. package/examples/oidc-login/provider/authorization.aug.md +23 -238
  482. package/examples/oidc-login/provider/contracts.aug +1 -0
  483. package/examples/oidc-login/provider/contracts.aug.md +23 -158
  484. package/examples/oidc-login/provider/credentials.aug +3 -2
  485. package/examples/oidc-login/provider/credentials.aug.md +9 -53
  486. package/examples/oidc-login/provider/discovery.aug +4 -3
  487. package/examples/oidc-login/provider/discovery.aug.md +11 -118
  488. package/examples/oidc-login/provider/export.aug +1 -0
  489. package/examples/oidc-login/provider/export.aug.md +6 -34
  490. package/examples/oidc-login/provider/token.aug +6 -5
  491. package/examples/oidc-login/provider/token.aug.md +16 -204
  492. package/examples/oidc-login/provider/userinfo.aug +4 -3
  493. package/examples/oidc-login/provider/userinfo.aug.md +10 -92
  494. package/examples/oidc-login/provider/views.aug +3 -2
  495. package/examples/oidc-login/provider/views.aug.md +8 -52
  496. package/examples/ownership/.aug-spec/manifest.json +1 -1
  497. package/examples/ownership/counter.aug +3 -2
  498. package/examples/ownership/counter.aug.md +12 -66
  499. package/examples/ownership/main.aug +1 -0
  500. package/examples/ownership/main.aug.md +6 -31
  501. package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
  502. package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
  503. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  504. package/examples/ownership-transfer/main.aug +1 -0
  505. package/examples/ownership-transfer/main.aug.md +9 -53
  506. package/examples/ownership-transfer/resource.aug +2 -1
  507. package/examples/ownership-transfer/resource.aug.md +12 -71
  508. package/examples/packages/app/.aug-spec/manifest.json +1 -1
  509. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
  510. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
  511. package/examples/packages/app/main.aug +1 -0
  512. package/examples/packages/app/main.aug.md +6 -26
  513. package/examples/packages/math/.aug-spec/manifest.json +1 -1
  514. package/examples/packages/math/aug-package.json +1 -1
  515. package/examples/packages/math/src/arithmetic.aug +2 -1
  516. package/examples/packages/math/src/arithmetic.aug.md +9 -51
  517. package/examples/packages/math/src/export.aug +1 -0
  518. package/examples/packages/math/src/export.aug.md +3 -13
  519. package/examples/visibility/.aug-spec/manifest.json +1 -1
  520. package/examples/visibility/counter.aug +4 -3
  521. package/examples/visibility/counter.aug.md +12 -68
  522. package/examples/visibility/main.aug +1 -0
  523. package/examples/visibility/main.aug.md +6 -32
  524. package/examples/weather-api/.aug-spec/manifest.json +8 -0
  525. package/examples/weather-api/AGENTS.md +17 -0
  526. package/examples/weather-api/README.md +19 -0
  527. package/examples/weather-api/forecasts.aug +47 -0
  528. package/examples/weather-api/forecasts.aug.md +32 -0
  529. package/examples/weather-api/main.aug +4 -0
  530. package/examples/weather-api/main.aug.md +15 -0
  531. package/examples/weather-api/main.yaml +5 -0
  532. package/examples/weather-api/weather.http +5 -0
  533. package/native/compiler-packs.json +43 -0
  534. package/package.json +4 -4
  535. package/runtime/aug_http.c +48 -21
  536. package/runtime/aug_http_ir.c +30 -0
  537. package/runtime/aug_http_ir.h +18 -0
  538. package/runtime/aug_ir.c +209 -0
  539. package/runtime/aug_ir.h +89 -0
  540. package/runtime/aug_json.c +6 -1
  541. package/runtime/aug_runtime.c +82 -16
  542. package/runtime/aug_runtime.h +16 -2
  543. package/runtime/aug_tasks.c +38 -7
  544. package/runtime/aug_values.c +12 -6
  545. package/scripts/bootstrap-native.mjs +184 -106
  546. package/scripts/native-setup.mjs +98 -0
  547. package/scripts/native-toolchain.mjs +28 -0
  548. package/src/ast.js +1 -1
  549. package/src/builtins.js +1 -1
  550. package/src/checker.js +369 -100
  551. package/src/cli.js +198 -26
  552. package/src/codegen.js +32 -7
  553. package/src/compiler-packs.js +66 -0
  554. package/src/config.js +3 -3
  555. package/src/contracts.js +10 -0
  556. package/src/editor.js +86 -22
  557. package/src/fixes.js +90 -2
  558. package/src/formatter.js +23 -10
  559. package/src/git-http.js +137 -0
  560. package/src/git-packages.js +118 -0
  561. package/src/help.js +33 -24
  562. package/src/http-contracts.js +14 -0
  563. package/src/http-policies.js +5 -5
  564. package/src/ir-types.js +5 -0
  565. package/src/ir-verify.js +277 -0
  566. package/src/ir.js +962 -0
  567. package/src/libraries.js +1 -1
  568. package/src/llvm-debug.js +101 -0
  569. package/src/llvm-native.js +152 -0
  570. package/src/llvm-platform.js +20 -0
  571. package/src/llvm.js +781 -0
  572. package/src/lsp.js +14 -5
  573. package/src/native-artifacts.js +207 -0
  574. package/src/native-bindings.js +189 -0
  575. package/src/native-contracts.js +295 -0
  576. package/src/native-declarations.js +68 -0
  577. package/src/native-facts.js +63 -0
  578. package/src/native.js +19 -13
  579. package/src/navigation.js +4 -2
  580. package/src/openapi.js +5 -4
  581. package/src/package-locking.js +88 -0
  582. package/src/package-manager.js +267 -68
  583. package/src/parser.js +32 -6
  584. package/src/policies.js +3 -3
  585. package/src/project-init.js +78 -4
  586. package/src/project.js +11 -9
  587. package/src/runtime-abi.js +23 -0
  588. package/src/runtime-adapters.js +18 -0
  589. package/src/schemas.js +24 -17
  590. package/src/semantic.js +54 -5
  591. package/src/snippets.js +60 -0
  592. package/src/spec-hints.js +56 -0
  593. package/src/spec-tree.js +241 -0
  594. package/src/spec.js +669 -305
  595. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
  596. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
  597. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
  598. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
  599. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
  600. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
  601. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
  602. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
  603. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
  604. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
  605. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
  606. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
  607. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
  608. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
  609. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  610. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  611. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  612. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  613. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  614. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  615. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  616. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  617. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
  618. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
  619. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
  620. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
  621. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
  622. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
  623. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  624. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  625. /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
  626. /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  627. /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  628. /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
@@ -0,0 +1,406 @@
1
+ ---
2
+ title: "packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug · CPU tensors with PyTorch"
3
+ generated: true
4
+ source: "examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ search: false
10
+ pageClass: aug-example-page
11
+ ---
12
+
13
+ # `packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug`
14
+
15
+ [CPU tensors with PyTorch](../../../../../index.md) · Dependency source and specification
16
+
17
+ This is the exact dependency version used by this example.
18
+
19
+ ::::: example-compare
20
+
21
+ :::: example-code
22
+
23
+ ## Code {#code}
24
+
25
+ ::: code-group
26
+
27
+ ```aug [Indentation]
28
+ // aug-spec: "api.aug.md" explains this file. Read it before changes; refresh with aug spec.
29
+ import Tensor from bindings
30
+ import TensorError from contracts
31
+ extern C _tensor(List<float> values) returns own Tensor unless TensorError
32
+ extern C _add(Tensor left, Tensor right) returns own Tensor unless TensorError
33
+ extern C _sum(Tensor tensor) returns float unless TensorError
34
+ extern C _values(Tensor tensor) returns List<float> unless TensorError
35
+ /** Copy a list of float64 values into a CPU tensor. */
36
+ tensor(List<float> values) returns own Tensor:
37
+ unsafe:
38
+ return _tensor(values)
39
+ /** Add tensors without changing either input. */
40
+ add(Tensor left, Tensor right) returns own Tensor:
41
+ unsafe:
42
+ return _add(left, right)
43
+ /** Sum every element. */
44
+ sum(Tensor tensor) returns float:
45
+ unsafe:
46
+ return _sum(tensor)
47
+ /** Copy tensor values into an August list. */
48
+ values(Tensor tensor) returns List<float>:
49
+ unsafe:
50
+ return _values(tensor)
51
+ extern C _liveTensors() returns int
52
+ extern C _liveBuffers() returns int
53
+ _consumeAndFail(own Tensor value) unless TensorError:
54
+ throw TensorError(code=99, message="expected cleanup test")
55
+ interface _TensorContainer:
56
+ total() returns float unless TensorError
57
+ _TensorHolder(mutable own Tensor item) implements _TensorContainer:
58
+ total() returns float:
59
+ return sum(tensor=item)
60
+ _replace(borrow _TensorHolder holder, own Tensor replacement):
61
+ holder.item = replacement
62
+ test tensor:
63
+ when "cpu":
64
+ it "adds_real_tensors":
65
+ own Tensor left = tensor(values=[1.0, 2.0, 3.0])
66
+ own Tensor right = tensor(values=[4.0, 5.0, 6.0])
67
+ own Tensor result = add(left, right)
68
+ assert(sum(tensor=result) == 21.0)
69
+ List<float> output = values(tensor=result)
70
+ assert(output.length() == 3)
71
+ when "ownership":
72
+ it "transfers_into_a_field_and_releases_the_old_tensor":
73
+ int before = 0
74
+ unsafe:
75
+ before = _liveTensors()
76
+ scope:
77
+ own Tensor initial = tensor(values=[1.0])
78
+ own _TensorHolder holder = _TensorHolder(item=initial)
79
+ own Tensor replacement = tensor(values=[7.0])
80
+ borrow holder:
81
+ _replace(holder, replacement)
82
+ assert(holder.total() == 7.0)
83
+ unsafe:
84
+ assert(_liveTensors() == before + 1)
85
+ unsafe:
86
+ assert(_liveTensors() == before)
87
+ it "preserves_native_error_methods":
88
+ bool caught = false
89
+ own Tensor left = tensor(values=[1.0, 2.0])
90
+ own Tensor right = tensor(values=[1.0, 2.0, 3.0])
91
+ try:
92
+ add(left, right)
93
+ catch TensorError error:
94
+ caught = error.explain().length() > 0
95
+ assert(caught)
96
+ it "releases_a_transferred_tensor_when_the_callee_fails":
97
+ int before = 0
98
+ unsafe:
99
+ before = _liveTensors()
100
+ bool caught = false
101
+ try:
102
+ own Tensor value = tensor(values=[1.0])
103
+ _consumeAndFail(value)
104
+ catch TensorError error:
105
+ caught = error.code == 99
106
+ assert(caught)
107
+ unsafe:
108
+ assert(_liveTensors() == before)
109
+ assert(_liveBuffers() == 0)
110
+ it "releases_scoped_and_unused_results":
111
+ int before = 0
112
+ unsafe:
113
+ before = _liveTensors()
114
+ scope:
115
+ own Tensor value = tensor(values=[2.0])
116
+ List<float> output = values(tensor=value)
117
+ assert(output.get(index=0) == 2.0)
118
+ tensor(values=[3.0])
119
+ unsafe:
120
+ assert(_liveTensors() == before)
121
+ assert(_liveBuffers() == 0)
122
+ ```
123
+
124
+ ```aug [Braces]
125
+ // aug-spec: "api.aug.md" explains this file. Read it before changes; refresh with aug spec.
126
+ import Tensor from bindings
127
+ import TensorError from contracts
128
+ extern C _tensor(List<float> values) returns own Tensor unless TensorError
129
+ extern C _add(Tensor left, Tensor right) returns own Tensor unless TensorError
130
+ extern C _sum(Tensor tensor) returns float unless TensorError
131
+ extern C _values(Tensor tensor) returns List<float> unless TensorError
132
+ /** Copy a list of float64 values into a CPU tensor. */
133
+ tensor(List<float> values) returns own Tensor {
134
+ unsafe {
135
+ return _tensor(values)
136
+ }
137
+ }
138
+ /** Add tensors without changing either input. */
139
+ add(Tensor left, Tensor right) returns own Tensor {
140
+ unsafe {
141
+ return _add(left, right)
142
+ }
143
+ }
144
+ /** Sum every element. */
145
+ sum(Tensor tensor) returns float {
146
+ unsafe {
147
+ return _sum(tensor)
148
+ }
149
+ }
150
+ /** Copy tensor values into an August list. */
151
+ values(Tensor tensor) returns List<float> {
152
+ unsafe {
153
+ return _values(tensor)
154
+ }
155
+ }
156
+ extern C _liveTensors() returns int
157
+ extern C _liveBuffers() returns int
158
+ _consumeAndFail(own Tensor value) unless TensorError {
159
+ throw TensorError(code=99, message="expected cleanup test")
160
+ }
161
+ interface _TensorContainer {
162
+ total() returns float unless TensorError
163
+ }
164
+ _TensorHolder(mutable own Tensor item) implements _TensorContainer {
165
+ total() returns float {
166
+ return sum(tensor=item)
167
+ }
168
+ }
169
+ _replace(borrow _TensorHolder holder, own Tensor replacement) {
170
+ holder.item = replacement
171
+ }
172
+ test tensor {
173
+ when "cpu" {
174
+ it "adds_real_tensors" {
175
+ own Tensor left = tensor(values=[1.0, 2.0, 3.0])
176
+ own Tensor right = tensor(values=[4.0, 5.0, 6.0])
177
+ own Tensor result = add(left, right)
178
+ assert(sum(tensor=result) == 21.0)
179
+ List<float> output = values(tensor=result)
180
+ assert(output.length() == 3)
181
+ }
182
+ }
183
+ when "ownership" {
184
+ it "transfers_into_a_field_and_releases_the_old_tensor" {
185
+ int before = 0
186
+ unsafe {
187
+ before = _liveTensors()
188
+ }
189
+ scope {
190
+ own Tensor initial = tensor(values=[1.0])
191
+ own _TensorHolder holder = _TensorHolder(item=initial)
192
+ own Tensor replacement = tensor(values=[7.0])
193
+ borrow holder {
194
+ _replace(holder, replacement)
195
+ }
196
+ assert(holder.total() == 7.0)
197
+ unsafe {
198
+ assert(_liveTensors() == before + 1)
199
+ }
200
+ }
201
+ unsafe {
202
+ assert(_liveTensors() == before)
203
+ }
204
+ }
205
+ it "preserves_native_error_methods" {
206
+ bool caught = false
207
+ own Tensor left = tensor(values=[1.0, 2.0])
208
+ own Tensor right = tensor(values=[1.0, 2.0, 3.0])
209
+ try {
210
+ add(left, right)
211
+ }
212
+ catch TensorError error {
213
+ caught = error.explain().length() > 0
214
+ }
215
+ assert(caught)
216
+ }
217
+ it "releases_a_transferred_tensor_when_the_callee_fails" {
218
+ int before = 0
219
+ unsafe {
220
+ before = _liveTensors()
221
+ }
222
+ bool caught = false
223
+ try {
224
+ own Tensor value = tensor(values=[1.0])
225
+ _consumeAndFail(value)
226
+ }
227
+ catch TensorError error {
228
+ caught = error.code == 99
229
+ }
230
+ assert(caught)
231
+ unsafe {
232
+ assert(_liveTensors() == before)
233
+ assert(_liveBuffers() == 0)
234
+ }
235
+ }
236
+ it "releases_scoped_and_unused_results" {
237
+ int before = 0
238
+ unsafe {
239
+ before = _liveTensors()
240
+ }
241
+ scope {
242
+ own Tensor value = tensor(values=[2.0])
243
+ List<float> output = values(tensor=value)
244
+ assert(output.get(index=0) == 2.0)
245
+ }
246
+ tensor(values=[3.0])
247
+ unsafe {
248
+ assert(_liveTensors() == before)
249
+ assert(_liveBuffers() == 0)
250
+ }
251
+ }
252
+ }
253
+ }
254
+ ```
255
+
256
+ :::
257
+
258
+ ::::
259
+
260
+ :::: example-spec
261
+
262
+ ## Compiled specification {#specification}
263
+
264
+ ### `tensor` · [source](api.md#code) {#symbol-tensor}
265
+
266
+ Copy a list of float64 values into a CPU tensor. It takes `values` as `List<float>`. It returns ownership of [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
267
+
268
+ Within an unsafe block, it returns [`_tensor`](api.md#symbol-_tensor) with `values`. Native operations must satisfy their declared C contracts.
269
+
270
+ ### `add` · [source](api.md#code) {#symbol-add}
271
+
272
+ Add tensors without changing either input. It takes `left` and `right` as [`Tensor`](bindings.md#symbol-Tensor). It returns ownership of [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
273
+
274
+ Within an unsafe block, it returns [`_add`](api.md#symbol-_add) with `left` and `right`. Native operations must satisfy their declared C contracts.
275
+
276
+ ### `sum` · [source](api.md#code) {#symbol-sum}
277
+
278
+ Sum every element. It takes `tensor` as [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
279
+
280
+ Within an unsafe block, it returns [`_sum`](api.md#symbol-_sum) with `tensor`. Native operations must satisfy their declared C contracts.
281
+
282
+ ### `values` · [source](api.md#code) {#symbol-values}
283
+
284
+ Copy tensor values into an August list. It takes `tensor` as [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
285
+
286
+ Within an unsafe block, it returns [`_values`](api.md#symbol-_values) with `tensor`. Native operations must satisfy their declared C contracts.
287
+
288
+ ### `_tensor` · [source](api.md#code) {#symbol-_tensor}
289
+
290
+ It is private to its defining scope. It takes `values` as `List<float>`. It returns ownership of [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
291
+
292
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_torch_tensor_from_f64_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. The caller owns the returned handle. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
293
+
294
+ ### `_add` · [source](api.md#code) {#symbol-_add}
295
+
296
+ It is private to its defining scope. It takes `left` and `right` as [`Tensor`](bindings.md#symbol-Tensor). It returns ownership of [`Tensor`](bindings.md#symbol-Tensor). Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
297
+
298
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_torch_tensor_add_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. `left` lends read access for this call; `right` lends read access for this call. The caller owns the returned handle. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
299
+
300
+ ### `_sum` · [source](api.md#code) {#symbol-_sum}
301
+
302
+ It is private to its defining scope. It takes `tensor` as [`Tensor`](bindings.md#symbol-Tensor). It returns `float`. Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
303
+
304
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_torch_tensor_sum_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. `tensor` lends read access for this call. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
305
+
306
+ ### `_values` · [source](api.md#code) {#symbol-_values}
307
+
308
+ It is private to its defining scope. It takes `tensor` as [`Tensor`](bindings.md#symbol-Tensor). It returns `List<float>`. Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
309
+
310
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_torch_tensor_values_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. `tensor` lends read access for this call. August copies the returned buffer, then calls `aug_torch_values_release_v1` to release it. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
311
+
312
+ ### `_liveTensors` · [source](api.md#code) {#symbol-_liveTensors}
313
+
314
+ It is private to its defining scope. It returns `int`.
315
+
316
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_probe_live_tensors_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
317
+
318
+ ### `_liveBuffers` · [source](api.md#code) {#symbol-_liveBuffers}
319
+
320
+ It is private to its defining scope. It returns `int`.
321
+
322
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). It calls `aug_probe_live_buffers_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
323
+
324
+ ### `_consumeAndFail` · [source](api.md#code) {#symbol-_consumeAndFail}
325
+
326
+ It is private to its defining scope. It takes `value` as [`Tensor`](bindings.md#symbol-Tensor) with ownership transferred. Failures can raise [`TensorError`](contracts.md#symbol-TensorError). It raises a [`TensorError`](contracts.md#symbol-TensorError) with `code` `99` and `message` `"expected cleanup test"`.
327
+
328
+ ### `_TensorContainer` · interface · [source](api.md#code) {#symbol-_TensorContainer}
329
+
330
+ It is private to this file.
331
+
332
+ #### `_TensorContainer.total` · [source](api.md#code) {#symbol-_TensorContainer.total}
333
+
334
+ It returns `float`. Failures can raise [`TensorError`](contracts.md#symbol-TensorError).
335
+
336
+ ### `_TensorHolder` · class · [source](api.md#code) {#symbol-_TensorHolder}
337
+
338
+ It implements [`_TensorContainer`](api.md#symbol-_TensorContainer). It is private to this file. It takes `item` as [`Tensor`](bindings.md#symbol-Tensor) with ownership transferred, kept mutable.
339
+
340
+ #### `_TensorHolder.total` · [source](api.md#code) {#symbol-_TensorHolder.total}
341
+
342
+ Failures can raise [`TensorError`](contracts.md#symbol-TensorError). It returns [`sum`](api.md#symbol-sum) with `tensor` from `item`.
343
+
344
+ ### `_replace` · [source](api.md#code) {#symbol-_replace}
345
+
346
+ It is private to its defining scope. It takes `holder` as [`_TensorHolder`](api.md#symbol-_TensorHolder) with permission to mutate it during the call and `replacement` as [`Tensor`](bindings.md#symbol-Tensor) with ownership transferred. It may change `holder`. It sets `holder.item` to `replacement`.
347
+
348
+ ### `test tensor` · [source](api.md#code) {#symbol-test-20-tensor}
349
+
350
+ Tests [`tensor`](api.md#symbol-tensor). Each case gets fresh setup and dependencies.
351
+
352
+ #### `cpu`
353
+
354
+ ##### `adds_real_tensors` · [source](api.md#code)
355
+
356
+ It sets `left` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `1.0`, `2.0`, `3.0`. `left` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. It sets `right` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `4.0`, `5.0`, `6.0`. `right` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value.
357
+
358
+ It sets `result` of type [`Tensor`](bindings.md#symbol-Tensor) to [`add`](api.md#symbol-add) with `left` and `right`. `result` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. The test requires [`sum`](api.md#symbol-sum) with `tensor` from `result` equals `21.0`. It sets `output` of type `List<float>` to [`values`](api.md#symbol-values) with `tensor` from `result`.
359
+
360
+ The test requires `output.length` equals `3`.
361
+
362
+ #### `ownership`
363
+
364
+ ##### `transfers_into_a_field_and_releases_the_old_tensor` · [source](api.md#code)
365
+
366
+ It sets `before` to `0`. Within an unsafe block, it gets `before` from [`_liveTensors`](api.md#symbol-_liveTensors). Native operations must satisfy their declared C contracts. Within a task and ownership scope, it sets `initial` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `1.0`.
367
+
368
+ `initial` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. It sets `holder` of type [`_TensorHolder`](api.md#symbol-_TensorHolder) to a [`_TensorHolder`](api.md#symbol-_TensorHolder) with `item` from `initial`. `holder` of type [`_TensorHolder`](api.md#symbol-_TensorHolder) owns this value. It sets `replacement` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `7.0`.
369
+
370
+ `replacement` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. With temporary permission to change `holder`, it calls [`_replace`](api.md#symbol-_replace) with `holder` and `replacement`. The test requires [`holder.total`](api.md#symbol-_TensorHolder.total) equals `7.0`. Within an unsafe block, the test requires [`_liveTensors`](api.md#symbol-_liveTensors) equals (`before` plus `1`).
371
+
372
+ Native operations must satisfy their declared C contracts. On leaving this scope, join its child tasks and release its local values. Within an unsafe block, the test requires [`_liveTensors`](api.md#symbol-_liveTensors) equals `before`. Native operations must satisfy their declared C contracts.
373
+
374
+ ##### `preserves_native_error_methods` · [source](api.md#code)
375
+
376
+ It sets `caught` to `false`. It sets `left` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `1.0`, `2.0`. `left` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. It sets `right` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `1.0`, `2.0`, `3.0`.
377
+
378
+ `right` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value.
379
+
380
+ It tries to call [`add`](api.md#symbol-add) with `left` and `right`. If this work raises [`TensorError`](contracts.md#symbol-TensorError) as `error`, it sets `caught` to `length` on `error.explain` is positive. The test requires `caught` is true.
381
+
382
+ ##### `releases_a_transferred_tensor_when_the_callee_fails` · [source](api.md#code)
383
+
384
+ It sets `before` to `0`. Within an unsafe block, it gets `before` from [`_liveTensors`](api.md#symbol-_liveTensors). Native operations must satisfy their declared C contracts. It sets `caught` to `false`.
385
+
386
+ It sets `value` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `1.0`. `value` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. It calls [`_consumeAndFail`](api.md#symbol-_consumeAndFail) with `value`. If this work raises [`TensorError`](contracts.md#symbol-TensorError) as `error`, it sets `caught` to `error.code` equals `99`.
387
+
388
+ The test requires `caught` is true. Within an unsafe block, the test requires [`_liveTensors`](api.md#symbol-_liveTensors) equals `before`; then the test requires [`_liveBuffers`](api.md#symbol-_liveBuffers) equals `0`. Native operations must satisfy their declared C contracts.
389
+
390
+ ##### `releases_scoped_and_unused_results` · [source](api.md#code)
391
+
392
+ It sets `before` to `0`. Within an unsafe block, it gets `before` from [`_liveTensors`](api.md#symbol-_liveTensors). Native operations must satisfy their declared C contracts. Within a task and ownership scope, it sets `value` of type [`Tensor`](bindings.md#symbol-Tensor) to [`tensor`](api.md#symbol-tensor) with `values` from a list containing `2.0`.
393
+
394
+ `value` of type [`Tensor`](bindings.md#symbol-Tensor) owns this value. It sets `output` of type `List<float>` to [`values`](api.md#symbol-values) with `tensor` from `value`. The test requires `output.get` with `index` `0` equals `2.0`. On leaving this scope, join its child tasks and release its local values.
395
+
396
+ It calls [`tensor`](api.md#symbol-tensor) with `values` from a list containing `3.0`. Within an unsafe block, the test requires [`_liveTensors`](api.md#symbol-_liveTensors) equals `before`; then the test requires [`_liveBuffers`](api.md#symbol-_liveBuffers) equals `0`. Native operations must satisfy their declared C contracts.
397
+
398
+ ### Dependencies
399
+
400
+ It uses [`Tensor`](bindings.md#symbol-Tensor) from `bindings`. It uses [`TensorError`](contracts.md#symbol-TensorError) from `contracts`.
401
+
402
+ Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
403
+
404
+ ::::
405
+
406
+ :::::
@@ -0,0 +1,51 @@
1
+ ---
2
+ title: "packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug · CPU tensors with PyTorch"
3
+ generated: true
4
+ source: "examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ search: false
10
+ pageClass: aug-example-page
11
+ ---
12
+
13
+ # `packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug`
14
+
15
+ [CPU tensors with PyTorch](../../../../../index.md) · Dependency source and specification
16
+
17
+ This is the exact dependency version used by this example.
18
+
19
+ ::::: example-compare
20
+
21
+ :::: example-code
22
+
23
+ ## Code {#code}
24
+
25
+ ::: code-group
26
+
27
+ ```aug [Indentation]
28
+ // aug-spec: "bindings.aug.md" explains this file. Read it before changes; refresh with aug spec.
29
+ extern C resource Tensor
30
+ ```
31
+
32
+ ```aug [Braces]
33
+ // aug-spec: "bindings.aug.md" explains this file. Read it before changes; refresh with aug spec.
34
+ extern C resource Tensor
35
+ ```
36
+
37
+ :::
38
+
39
+ ::::
40
+
41
+ :::: example-spec
42
+
43
+ ## Compiled specification {#specification}
44
+
45
+ ### `Tensor` · native resource · [source](bindings.md#code) {#symbol-Tensor}
46
+
47
+ Native implementation: `@greenpandastudios/aug-pytorch@0.1.4`, `2.14.1`. Supported targets: linux arm64 glibc 2.36+ itanium-cxx11, linux x64 glibc 2.36+ itanium-cxx11, macos arm64 14.0+ apple-libc++. Binding contract: [`native.abi.json`](native.abi-json.md) (SHA-256 `f07b8cab89ad7cfe368edcd9daf87ecc810adb6a2eed1f446d7b71fb664e91f5`). An owned value releases its opaque handle through `aug_torch_tensor_release_v1` when its scope ends, including error and return paths.
48
+
49
+ ::::
50
+
51
+ :::::
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: "packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug · CPU tensors with PyTorch"
3
+ generated: true
4
+ source: "examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ search: false
10
+ pageClass: aug-example-page
11
+ ---
12
+
13
+ # `packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug`
14
+
15
+ [CPU tensors with PyTorch](../../../../../index.md) · Dependency source and specification
16
+
17
+ This is the exact dependency version used by this example.
18
+
19
+ ::::: example-compare
20
+
21
+ :::: example-code
22
+
23
+ ## Code {#code}
24
+
25
+ ::: code-group
26
+
27
+ ```aug [Indentation]
28
+ // aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
29
+ TensorError(int code, string message) implements Error:
30
+ /** Explain the native failure without losing its original message. */
31
+ explain() returns string:
32
+ return message
33
+ ```
34
+
35
+ ```aug [Braces]
36
+ // aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
37
+ TensorError(int code, string message) implements Error {
38
+ /** Explain the native failure without losing its original message. */
39
+ explain() returns string {
40
+ return message
41
+ }
42
+ }
43
+ ```
44
+
45
+ :::
46
+
47
+ ::::
48
+
49
+ :::: example-spec
50
+
51
+ ## Compiled specification {#specification}
52
+
53
+ ### `TensorError` · class · [source](contracts.md#code) {#symbol-TensorError}
54
+
55
+ It implements `Error`. It takes `code` as an integer, kept read-only and `message` as a string, kept read-only.
56
+
57
+ #### `TensorError.explain` · [source](contracts.md#code) {#symbol-TensorError.explain}
58
+
59
+ Explain the native failure without losing its original message. It returns `message`.
60
+
61
+ ::::
62
+
63
+ :::::
@@ -0,0 +1,161 @@
1
+ ---
2
+ title: "Native binding contract · CPU tensors with PyTorch"
3
+ generated: true
4
+ source: "examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ search: false
10
+ ---
11
+
12
+ # Native binding contract
13
+
14
+ [CPU tensors with PyTorch](../../../../../index.md)
15
+
16
+ This is the exact descriptor checked for this dependency. It records native symbols, ownership, errors, and ABI boundaries. The compiler checks August declarations against it; foreign implementations remain the native author’s responsibility.
17
+
18
+ ```json
19
+ {
20
+ "format": 1,
21
+ "profile": "aug-native-abi-1",
22
+ "resources": [
23
+ {
24
+ "module": "bindings",
25
+ "name": "Tensor",
26
+ "release": "aug_torch_tensor_release_v1"
27
+ }
28
+ ],
29
+ "functions": [
30
+ {
31
+ "module": "api",
32
+ "name": "_tensor",
33
+ "symbol": "aug_torch_tensor_from_f64_v1",
34
+ "params": [
35
+ {
36
+ "name": "values",
37
+ "kind": "f64-list"
38
+ }
39
+ ],
40
+ "result": {
41
+ "kind": "resource",
42
+ "resource": "bindings.Tensor"
43
+ },
44
+ "error": "contracts.TensorError",
45
+ "callingConvention": "C",
46
+ "status": "i32",
47
+ "uses": [],
48
+ "changes": [],
49
+ "thread": "caller",
50
+ "retainsInputs": false
51
+ },
52
+ {
53
+ "module": "api",
54
+ "name": "_add",
55
+ "symbol": "aug_torch_tensor_add_v1",
56
+ "params": [
57
+ {
58
+ "name": "left",
59
+ "kind": "resource",
60
+ "resource": "bindings.Tensor",
61
+ "ownership": "read"
62
+ },
63
+ {
64
+ "name": "right",
65
+ "kind": "resource",
66
+ "resource": "bindings.Tensor",
67
+ "ownership": "read"
68
+ }
69
+ ],
70
+ "result": {
71
+ "kind": "resource",
72
+ "resource": "bindings.Tensor"
73
+ },
74
+ "error": "contracts.TensorError",
75
+ "callingConvention": "C",
76
+ "status": "i32",
77
+ "uses": [],
78
+ "changes": [],
79
+ "thread": "caller",
80
+ "retainsInputs": false
81
+ },
82
+ {
83
+ "module": "api",
84
+ "name": "_sum",
85
+ "symbol": "aug_torch_tensor_sum_v1",
86
+ "params": [
87
+ {
88
+ "name": "tensor",
89
+ "kind": "resource",
90
+ "resource": "bindings.Tensor",
91
+ "ownership": "read"
92
+ }
93
+ ],
94
+ "result": {
95
+ "kind": "f64"
96
+ },
97
+ "error": "contracts.TensorError",
98
+ "callingConvention": "C",
99
+ "status": "i32",
100
+ "uses": [],
101
+ "changes": [],
102
+ "thread": "caller",
103
+ "retainsInputs": false
104
+ },
105
+ {
106
+ "module": "api",
107
+ "name": "_values",
108
+ "symbol": "aug_torch_tensor_values_v1",
109
+ "params": [
110
+ {
111
+ "name": "tensor",
112
+ "kind": "resource",
113
+ "resource": "bindings.Tensor",
114
+ "ownership": "read"
115
+ }
116
+ ],
117
+ "result": {
118
+ "kind": "f64-list",
119
+ "release": "aug_torch_values_release_v1"
120
+ },
121
+ "error": "contracts.TensorError",
122
+ "callingConvention": "C",
123
+ "status": "i32",
124
+ "uses": [],
125
+ "changes": [],
126
+ "thread": "caller",
127
+ "retainsInputs": false
128
+ },
129
+ {
130
+ "module": "api",
131
+ "name": "_liveTensors",
132
+ "symbol": "aug_probe_live_tensors_v1",
133
+ "params": [],
134
+ "result": {
135
+ "kind": "i64"
136
+ },
137
+ "callingConvention": "C",
138
+ "status": "direct",
139
+ "uses": [],
140
+ "changes": [],
141
+ "thread": "caller",
142
+ "retainsInputs": false
143
+ },
144
+ {
145
+ "module": "api",
146
+ "name": "_liveBuffers",
147
+ "symbol": "aug_probe_live_buffers_v1",
148
+ "params": [],
149
+ "result": {
150
+ "kind": "i64"
151
+ },
152
+ "callingConvention": "C",
153
+ "status": "direct",
154
+ "uses": [],
155
+ "changes": [],
156
+ "thread": "caller",
157
+ "retainsInputs": false
158
+ }
159
+ ]
160
+ }
161
+ ```