@greenpandastudios/aug-cli 0.20.1 → 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 (295) hide show
  1. package/README.md +1 -1
  2. package/docs/assets/benchmarks/execution.svg +774 -637
  3. package/docs/assets/benchmarks/http.svg +278 -249
  4. package/docs/assets/benchmarks/improvements.svg +66 -66
  5. package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
  6. package/docs/assets/benchmarks/kernels.svg +1 -0
  7. package/docs/assets/benchmarks/memory.svg +153 -153
  8. package/docs/benchmark-results.json +227089 -90363
  9. package/docs/compatibility.md +6 -6
  10. package/docs/contributing-benchmarks.md +36 -6
  11. package/docs/dev-containers.md +8 -15
  12. package/docs/dgx-consumers.json +122 -0
  13. package/docs/dgx-gyms.json +784 -0
  14. package/docs/dgx-kernels.json +1170 -0
  15. package/docs/dgx-performance.json +227849 -0
  16. package/docs/dgx-spark.md +64 -0
  17. package/docs/diagnostics.md +1 -1
  18. package/docs/docker.md +16 -17
  19. package/docs/example-projects.json +32 -0
  20. package/docs/examples/approved-design/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  21. package/docs/examples/approved-design/domain/app.md +4 -4
  22. package/docs/examples/approved-design/main.md +2 -2
  23. package/docs/examples/calls-benchmark/index.md +36 -0
  24. package/docs/examples/calls-benchmark/main.md +78 -0
  25. package/docs/examples/calls-benchmark/operations.md +60 -0
  26. package/docs/examples/developer-workflow/calculator.md +5 -5
  27. package/docs/examples/developer-workflow/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  28. package/docs/examples/developer-workflow/logging/console.md +2 -2
  29. package/docs/examples/developer-workflow/logging/logger.md +2 -2
  30. package/docs/examples/developer-workflow/main.md +2 -2
  31. package/docs/examples/errors-benchmark/index.md +36 -0
  32. package/docs/examples/errors-benchmark/main.md +92 -0
  33. package/docs/examples/errors-benchmark/operations.md +65 -0
  34. package/docs/examples/float-benchmark/index.md +35 -0
  35. package/docs/examples/float-benchmark/main.md +75 -0
  36. package/docs/examples/generic-di/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  37. package/docs/examples/generic-di/main.md +2 -2
  38. package/docs/examples/generic-di/types.md +3 -3
  39. package/docs/examples/hello/app/greeter.md +3 -3
  40. package/docs/examples/hello/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  41. package/docs/examples/hello/logging/console.md +2 -2
  42. package/docs/examples/hello/logging/logger.md +2 -2
  43. package/docs/examples/hello/main.md +2 -2
  44. package/docs/examples/index.md +18 -1
  45. package/docs/examples/interceptors/app.md +5 -5
  46. package/docs/examples/interceptors/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  47. package/docs/examples/interceptors/interceptors.md +2 -2
  48. package/docs/examples/interceptors/logging.md +3 -3
  49. package/docs/examples/interceptors/main.md +2 -2
  50. package/docs/examples/list-benchmark/index.md +35 -0
  51. package/docs/examples/list-benchmark/main.md +78 -0
  52. package/docs/examples/map-churn-benchmark/index.md +35 -0
  53. package/docs/examples/map-churn-benchmark/main.md +106 -0
  54. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
  55. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
  56. package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
  57. package/docs/examples/native-blake3/hashing.md +93 -0
  58. package/docs/examples/native-blake3/index.md +38 -0
  59. package/docs/examples/native-blake3/main.md +73 -0
  60. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
  61. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
  62. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
  63. package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
  64. package/docs/examples/native-pytorch/index.md +38 -0
  65. package/docs/examples/native-pytorch/main.md +73 -0
  66. package/docs/examples/native-pytorch/tensors.md +123 -0
  67. package/docs/examples/native-sqlite/database.md +116 -0
  68. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
  69. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
  70. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
  71. package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
  72. package/docs/examples/native-sqlite/index.md +38 -0
  73. package/docs/examples/native-sqlite/main.md +73 -0
  74. package/docs/examples/native-zlib/compression.md +99 -0
  75. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
  76. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
  77. package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
  78. package/docs/examples/native-zlib/index.md +38 -0
  79. package/docs/examples/native-zlib/main.md +78 -0
  80. package/docs/examples/new-syntax/console.md +2 -2
  81. package/docs/examples/new-syntax/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  82. package/docs/examples/new-syntax/greeter.md +3 -3
  83. package/docs/examples/new-syntax/logger.md +2 -2
  84. package/docs/examples/new-syntax/main.md +2 -2
  85. package/docs/examples/ownership-transfer/dependencies/august/{0.20.1 → 0.21.0}/io/contracts.md +3 -3
  86. package/docs/examples/ownership-transfer/main.md +2 -2
  87. package/docs/examples/ownership-transfer/resource.md +2 -2
  88. package/docs/examples/packages-math/aug-package-json.md +1 -1
  89. package/docs/examples/records-benchmark/data.md +55 -0
  90. package/docs/examples/records-benchmark/index.md +36 -0
  91. package/docs/examples/records-benchmark/main.md +85 -0
  92. package/docs/examples/strings-benchmark/index.md +35 -0
  93. package/docs/examples/strings-benchmark/main.md +76 -0
  94. package/docs/examples/tasks-benchmark/index.md +36 -0
  95. package/docs/examples/tasks-benchmark/main.md +89 -0
  96. package/docs/examples/tasks-benchmark/operations.md +58 -0
  97. package/docs/getting-started.md +3 -3
  98. package/docs/grammar.md +2 -2
  99. package/docs/gym-results.json +784 -0
  100. package/docs/implementation-map.md +6 -0
  101. package/docs/index.md +1 -1
  102. package/docs/kernel-results.json +1170 -0
  103. package/docs/language-conformance.md +6 -0
  104. package/docs/language-constructs.md +9 -1
  105. package/docs/learn/index.md +1 -1
  106. package/docs/maintaining-docs.md +1 -1
  107. package/docs/native-implementation.md +276 -0
  108. package/docs/native-interop-llvm-plan.md +342 -0
  109. package/docs/native-package-examples.md +684 -0
  110. package/docs/native-packages.md +179 -0
  111. package/docs/packages.md +2 -2
  112. package/docs/performance.md +50 -29
  113. package/docs/production-readiness.md +11 -1
  114. package/docs/public/downloads/approved-design.zip +0 -0
  115. package/docs/public/downloads/calls-benchmark.zip +0 -0
  116. package/docs/public/downloads/developer-workflow.zip +0 -0
  117. package/docs/public/downloads/errors-benchmark.zip +0 -0
  118. package/docs/public/downloads/float-benchmark.zip +0 -0
  119. package/docs/public/downloads/generic-di.zip +0 -0
  120. package/docs/public/downloads/hello.zip +0 -0
  121. package/docs/public/downloads/interceptors.zip +0 -0
  122. package/docs/public/downloads/json-benchmark.zip +0 -0
  123. package/docs/public/downloads/list-benchmark.zip +0 -0
  124. package/docs/public/downloads/map-churn-benchmark.zip +0 -0
  125. package/docs/public/downloads/native-blake3.zip +0 -0
  126. package/docs/public/downloads/native-pytorch.zip +0 -0
  127. package/docs/public/downloads/native-sqlite.zip +0 -0
  128. package/docs/public/downloads/native-zlib.zip +0 -0
  129. package/docs/public/downloads/new-syntax.zip +0 -0
  130. package/docs/public/downloads/oidc-login.zip +0 -0
  131. package/docs/public/downloads/ownership-transfer.zip +0 -0
  132. package/docs/public/downloads/packages-app.zip +0 -0
  133. package/docs/public/downloads/packages-math.zip +0 -0
  134. package/docs/public/downloads/records-benchmark.zip +0 -0
  135. package/docs/public/downloads/strings-benchmark.zip +0 -0
  136. package/docs/public/downloads/tasks-benchmark.zip +0 -0
  137. package/docs/qualification-results.md +66 -0
  138. package/docs/reference.md +24 -0
  139. package/docs/releasing.md +81 -6
  140. package/docs/research/libtorch-native-qualification.md +115 -0
  141. package/docs/research/native-interop-llvm.md +197 -0
  142. package/docs/research/qualification-methods.md +15 -0
  143. package/docs/roadmap.md +1 -0
  144. package/docs/safety-gyms.md +41 -0
  145. package/docs/tooling.md +16 -15
  146. package/docs/web-library-gaps.md +1 -1
  147. package/docs/web.md +4 -0
  148. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  149. package/examples/approved-design/domain/app.aug.md +4 -4
  150. package/examples/approved-design/main.aug.md +2 -2
  151. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  152. package/examples/developer-workflow/calculator.aug.md +5 -5
  153. package/examples/developer-workflow/logging/console.aug.md +2 -2
  154. package/examples/developer-workflow/logging/logger.aug.md +2 -2
  155. package/examples/developer-workflow/main.aug.md +2 -2
  156. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  157. package/examples/generic-di/main.aug.md +2 -2
  158. package/examples/generic-di/types.aug.md +3 -3
  159. package/examples/hello/.aug-spec/manifest.json +3 -3
  160. package/examples/hello/app/greeter.aug.md +3 -3
  161. package/examples/hello/logging/console.aug.md +2 -2
  162. package/examples/hello/logging/logger.aug.md +2 -2
  163. package/examples/hello/main.aug.md +2 -2
  164. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  165. package/examples/interceptors/app.aug.md +5 -5
  166. package/examples/interceptors/interceptors.aug.md +2 -2
  167. package/examples/interceptors/logging.aug.md +3 -3
  168. package/examples/interceptors/main.aug.md +2 -2
  169. package/examples/native-blake3/.aug-spec/manifest.json +16 -0
  170. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
  171. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
  172. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
  173. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
  174. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
  175. package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
  176. package/examples/native-blake3/AGENTS.md +5 -0
  177. package/examples/native-blake3/aug.lock.json +253 -0
  178. package/examples/native-blake3/hashing.aug +11 -0
  179. package/examples/native-blake3/hashing.aug.md +25 -0
  180. package/examples/native-blake3/main.aug +8 -0
  181. package/examples/native-blake3/main.aug.md +13 -0
  182. package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
  183. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
  184. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
  185. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
  186. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
  187. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
  188. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
  189. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
  190. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
  191. package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
  192. package/examples/native-pytorch/AGENTS.md +5 -0
  193. package/examples/native-pytorch/aug.lock.json +309 -0
  194. package/examples/native-pytorch/main.aug +8 -0
  195. package/examples/native-pytorch/main.aug.md +13 -0
  196. package/examples/native-pytorch/tensors.aug +23 -0
  197. package/examples/native-pytorch/tensors.aug.md +35 -0
  198. package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
  199. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
  200. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
  201. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
  202. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
  203. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
  204. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
  205. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
  206. package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
  207. package/examples/native-sqlite/AGENTS.md +5 -0
  208. package/examples/native-sqlite/aug.lock.json +236 -0
  209. package/examples/native-sqlite/database.aug +15 -0
  210. package/examples/native-sqlite/database.aug.md +27 -0
  211. package/examples/native-sqlite/main.aug +8 -0
  212. package/examples/native-sqlite/main.aug.md +13 -0
  213. package/examples/native-zlib/.aug-spec/manifest.json +16 -0
  214. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
  215. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
  216. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
  217. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
  218. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
  219. package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
  220. package/examples/native-zlib/AGENTS.md +5 -0
  221. package/examples/native-zlib/aug.lock.json +236 -0
  222. package/examples/native-zlib/compression.aug +15 -0
  223. package/examples/native-zlib/compression.aug.md +27 -0
  224. package/examples/native-zlib/main.aug +10 -0
  225. package/examples/native-zlib/main.aug.md +13 -0
  226. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  227. package/examples/new-syntax/console.aug.md +2 -2
  228. package/examples/new-syntax/greeter.aug.md +3 -3
  229. package/examples/new-syntax/logger.aug.md +2 -2
  230. package/examples/new-syntax/main.aug.md +2 -2
  231. package/examples/oidc-login/aug.lock.json +6 -6
  232. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  233. package/examples/ownership-transfer/main.aug.md +2 -2
  234. package/examples/ownership-transfer/resource.aug.md +2 -2
  235. package/examples/packages/math/aug-package.json +1 -1
  236. package/native/compiler-packs.json +43 -0
  237. package/package.json +3 -2
  238. package/runtime/aug_http.c +48 -21
  239. package/runtime/aug_http_ir.c +30 -0
  240. package/runtime/aug_http_ir.h +18 -0
  241. package/runtime/aug_ir.c +209 -0
  242. package/runtime/aug_ir.h +89 -0
  243. package/runtime/aug_json.c +6 -1
  244. package/runtime/aug_runtime.c +82 -16
  245. package/runtime/aug_runtime.h +16 -2
  246. package/runtime/aug_tasks.c +38 -7
  247. package/runtime/aug_values.c +12 -6
  248. package/scripts/bootstrap-native.mjs +4 -1
  249. package/src/ast.js +1 -1
  250. package/src/checker.js +110 -28
  251. package/src/cli.js +92 -14
  252. package/src/codegen.js +31 -6
  253. package/src/compiler-packs.js +66 -0
  254. package/src/config.js +2 -2
  255. package/src/editor.js +15 -6
  256. package/src/formatter.js +4 -2
  257. package/src/git-http.js +137 -0
  258. package/src/git-packages.js +9 -1
  259. package/src/help.js +10 -2
  260. package/src/ir-types.js +5 -0
  261. package/src/ir-verify.js +277 -0
  262. package/src/ir.js +962 -0
  263. package/src/llvm-debug.js +101 -0
  264. package/src/llvm-native.js +152 -0
  265. package/src/llvm-platform.js +20 -0
  266. package/src/llvm.js +781 -0
  267. package/src/native-artifacts.js +207 -0
  268. package/src/native-bindings.js +189 -0
  269. package/src/native-contracts.js +295 -0
  270. package/src/native-declarations.js +68 -0
  271. package/src/native-facts.js +63 -0
  272. package/src/package-locking.js +43 -0
  273. package/src/package-manager.js +23 -8
  274. package/src/parser.js +20 -2
  275. package/src/project.js +2 -2
  276. package/src/runtime-abi.js +23 -0
  277. package/src/runtime-adapters.js +18 -0
  278. package/src/schemas.js +24 -17
  279. package/src/semantic.js +8 -3
  280. package/src/snippets.js +1 -0
  281. package/src/spec.js +49 -8
  282. /package/examples/approved-design/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  283. /package/examples/approved-design/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  284. /package/examples/developer-workflow/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  285. /package/examples/developer-workflow/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  286. /package/examples/generic-di/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  287. /package/examples/generic-di/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  288. /package/examples/hello/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  289. /package/examples/hello/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  290. /package/examples/interceptors/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  291. /package/examples/interceptors/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  292. /package/examples/new-syntax/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  293. /package/examples/new-syntax/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
  294. /package/examples/ownership-transfer/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug +0 -0
  295. /package/examples/ownership-transfer/.aug-spec/august/{0.20.1 → 0.21.0}/io/contracts.aug.md +0 -0
package/docs/tooling.md CHANGED
@@ -4,7 +4,7 @@ Use this page to look up CLI commands, project configuration, native requirement
4
4
 
5
5
  ## CLI
6
6
 
7
- Install `aug` once as shown in [Your first project](getting-started.md). Commands take a project folder, defaulting to the current directory. Editor commands also accept --file and --offset; use --help for the command inventory.
7
+ Install `aug` once as shown in [Your first project](getting-started.md). Commands take a project folder, defaulting to the current directory. Editor commands also accept --file and --offset; use --help for the command inventory. `emit-ir`, `emit-llvm`, and the LLVM backend below require the unpublished development compiler until its matching preview release is available.
8
8
 
9
9
  | Command | Output |
10
10
  | --- | --- |
@@ -12,6 +12,8 @@ Install `aug` once as shown in [Your first project](getting-started.md). Command
12
12
  | `build PROJECT [--out NAME] [--json]` | Native path; JSON contains output and sourceMap. |
13
13
  | `run [PROJECT] [--offline] -- args...` | Prepares declared packages and required native libraries, checks, compiles, and runs; program stdout is preserved. |
14
14
  | `emit-c PROJECT` | Generated C for inspection. |
15
+ | `emit-llvm PROJECT` | Checked execution IR lowered directly to LLVM IR. |
16
+ | `emit-ir PROJECT` | Verified August execution IR with typed root cells and source locations, for compiler contributors. |
15
17
  | `format PROJECT [--file PATH] [--write] [--json]` | Canonical source; --write updates files. |
16
18
  | `migrate PROJECT [--file PATH] [--write] [--json]` | Verified migration of rejected legacy syntax; preview by default. |
17
19
  | `spec PROJECT [--check] [--json]` | Adjacent Markdown specs and offline dependency explanations; --check detects drift without writing. |
@@ -29,9 +31,9 @@ Warnings are nonblocking. Human diagnostics show the source line, a pointer, and
29
31
 
30
32
  ## Native standard libraries
31
33
 
32
- `aug run` handles dependency preparation. `build`, `test`, and `bench` also prepare the native libraries their checked programs need; they require source packages to be installed already. Pure programs need only a C11 compiler. JSON needs yyjson, tasks need minicoro, crypto needs the pinned cryptographic libraries, and HTTP needs the full transport stack. Unused libraries are not downloaded.
34
+ The pending 0.21.0 compiler uses LLVM by default on macOS 14+ ARM64 and GNU/Linux x64/ARM64 with glibc 2.36+. `aug run` prepares source packages and the verified compiler/runtime pack, then builds and starts the application. `build`, `test`, and `bench` use the same backend; install source packages before running them in a fresh project. Consumers do not install Clang, LLVM, or an SDK. The published 0.20.1 CLI uses the older C workflow.
33
35
 
34
- The first native preparation can take several minutes for web/crypto; progress names the current download or build. Later runs reuse the cache. Downloaded archives must match their pinned SHA-256 hashes. Interrupted preparation can resume, and simultaneous projects sharing a cache wait for its writer. Native setup never installs system packages. Missing compilers or build tools produce a recovery command. On Linux, HTTP builds also need CMake and zlib development headers. macOS works with Xcode or its Command Line Tools.
36
+ The first LLVM run downloads the host's tools and prebuilt runtime components. JSON, tasks, crypto, and HTTP select components from that pack. A native package can add its own platform archives. Each download has a SHA-256 pin and size bound; later projects share verified cache entries. Installation never runs package build scripts or silently falls back to a source build. Missing artifacts and unsupported platforms include the failed requirement and a recovery step.
35
37
 
36
38
  For an offline run, prepare the project once with network access, then use:
37
39
 
@@ -39,9 +41,9 @@ For an offline run, prepare the project once with network access, then use:
39
41
  aug run --offline
40
42
  ```
41
43
 
42
- `--offline` prevents dependency downloads; it does not restrict application networking. Native commands accept it too. You can prewarm libraries without running an application using `aug-native --extract-only --only yyjson,minicoro`, `aug-native --profile crypto`, or `aug-native` for all libraries. The installed manifest records the host platform and architecture; a cache from another host produces an actionable error. The full build has run on macOS ARM and Linux ARM; Linux x86-64 is checked by the Docker CI job.
44
+ `--offline` prevents dependency downloads; it does not restrict application networking. `--frozen` requires recorded source, native artifact, compiler, and runtime selections for the current host. Prepare a project once online before using both flags. A cache for another architecture cannot satisfy the current host. See [native packages](native-packages.md) for supported platforms and exact qualification status.
43
45
 
44
- Set `AUG_NATIVE_HOME` to share a dependency directory across compiler copies. It names the directory containing `sources/` and `prefix/`, not the prefix itself. Bootstrap and compilation both honor it. For the bundled VS Code compiler, set `augscript.nativeHome` to that same absolute directory. The extension bundles the bootstrap scripts and lockfile; it does not bundle host-specific native libraries. Node 24+ and a C11 compiler remain requirements.
46
+ Set `AUG_NATIVE_ARTIFACT_CACHE` to share verified downloads across compiler copies. The CLI and bundled VS Code compiler use the same LLVM default and archive pins. Native library deployment files load relative to the executable. The temporary `--backend c` reference needs a C11 compiler and source-build tools; `AUG_NATIVE_HOME` and `aug-native` configure that contributor workflow.
45
47
 
46
48
  The [web guide](web.md) covers transport/TLS/OpenAPI configuration and the working login app. The [gap ledger](web-library-gaps.md) records remaining native and language coverage.
47
49
 
@@ -70,16 +72,13 @@ lint:
70
72
  module_dependencies:
71
73
  - ".: app, contracts"
72
74
  - "app: contracts, shared"
73
- libraries:
74
- - m
75
- library_paths:
76
- - native/lib
77
75
  ```
78
76
 
79
77
  | Key | Contract |
80
78
  | --- | --- |
81
79
  | output | Executable name under .aug-build, or an absolute output path. |
82
80
  | optimization | debug (-O0) or release (-O2); both retain debug information. |
81
+ | backend | llvm (default in 0.21.0) or the temporary c migration reference. |
83
82
  | block_style | Formatter braces or indent. |
84
83
  | indentation | Formatter spaces (four) or tabs. |
85
84
  | assignment | Formatter equals or to; both remain accepted source forms. |
@@ -89,7 +88,7 @@ library_paths:
89
88
  | max_dependencies | Import fan-out warning threshold, default 8. |
90
89
  | lint | Optional warnings listed above. |
91
90
  | module_dependencies | Allowed folder edges; same-folder imports and standard capabilities are allowed. |
92
- | libraries / library_paths | Linker library names and project-relative search directories. |
91
+ | libraries / library_paths | C reference linker names and project-relative search directories; LLVM requires native package metadata. |
93
92
 
94
93
  An owner without a rule is unrestricted. . names the project root; folder names use slash paths. * matches any folder, and domain/* matches that folder and descendants. Rules use the first matching owner. Import cycles are always rejected independently of the policy.
95
94
 
@@ -135,13 +134,15 @@ C calls require unsafe, and executable callers infer uses C.function. Ordinary s
135
134
 
136
135
  Standard adapters use `extern C value` for the managed AugValue ABI. Each C argument and result must actually be AugValue; headers expose the declared capability effect and checked failures. `pure` asserts a trusted native implementation has no observable effects. These declarations are unsafe contracts, not automatic C bindings. Crypto, HTTP, JSON and time adapters demonstrate this narrow boundary in src/stdlib and runtime.
137
136
 
138
- The extern declaration must match the real native ABI. This version does not expose pointers, callbacks, binary buffers, arbitrary structs, or a C header importer.
137
+ The extern declaration must match the real native ABI. For owned opaque handles and binary buffers, use [native package descriptors](native-packages.md); binding maintainers can check a reviewed descriptor against a C header with `aug bind header`. Ordinary scalar extern declarations do not expose pointers, callbacks or arbitrary structs.
139
138
 
140
139
  ## Source locations and debugging
141
140
 
142
- Native output lives under .aug-build. Generated C has #line locations for executable AugScript statements and extern declarations. Native compiler errors at those locations become NATIVE diagnostics. A successful build writes EXECUTABLE.augmap.json with compiler version, exact C arguments, source hashes, generated hash, and symbol origins.
141
+ Native output lives under `.aug-build`. LLVM failures identify the August source location or failing artifact/link input. A successful build writes `EXECUTABLE.augmap.json` with compiler/runtime identities, hashes, selected artifacts and source symbols. C reference output uses `#line` locations and records its C arguments separately.
143
142
 
144
- Every build uses -g. Use **Debug AugScript** in VS Code with LLVM lldb-dap on PATH, or configure augscript.lldbDapPath. The extension builds the project and launches the standard adapter. See the [VS Code debugger API](https://code.visualstudio.com/api/extension-guides/debugger-extension) and [LLDB DAP documentation](https://lldb.llvm.org/use/lldbdap.html).
143
+ Both development and optimized builds include source debug information: an adjacent dSYM on macOS, and DWARF in the ELF executable on Linux. The compiler pack supplies macOS `dsymutil`; consumers do not need Apple developer tools to create the dSYM. LLDB reads the C-compatible tagged storage, while files, locations and producer identify the August source. Optimized variables may be unavailable. Rich collection views and August expression evaluation remain unfinished.
144
+
145
+ Use **Debug AugScript** in VS Code with LLVM lldb-dap on PATH, or configure augscript.lldbDapPath. The extension builds the project and launches the standard adapter. See the [VS Code debugger API](https://code.visualstudio.com/api/extension-guides/debugger-extension) and [LLDB DAP documentation](https://lldb.llvm.org/use/lldbdap.html).
145
146
 
146
147
  **AugScript: Debug in LLDB Terminal** works with an ordinary lldb executable. Example terminal commands:
147
148
 
@@ -157,7 +158,7 @@ AUG_TRACE_DROPS=1 enables runtime cleanup tracing to stderr for lifecycle verifi
157
158
 
158
159
  ## Benchmarks
159
160
 
160
- `aug bench` compiles release C, runs warmups, then reports every sample, median, minimum, and p95 in milliseconds. Measurements include process startup and exclude compilation. The timeout bounds each native run.
161
+ `aug bench` uses the selected backend's release mode, runs warmups, then reports every sample, median, minimum, and p95 in milliseconds. Measurements include process startup and exclude compilation. The timeout bounds each native run.
161
162
 
162
163
  See [performance and benchmark graphs](performance.md) for measured comparisons with C, Node and Python, peak memory, HTTP throughput, raw results, and reproducible commands. `npm run bench:compare` measures the fixed workloads under `benchmarks/`. The earlier [single-workload baseline](benchmarks.json) is preserved as historical evidence.
163
164
 
@@ -201,7 +202,7 @@ The language server implements the [LSP 3.17 protocol](https://github.com/Micros
201
202
 
202
203
  One server runs per project. Parsed modules and checked import closures are cached by source/configuration revision. Unrelated edits reuse the previous immutable semantic document; dependency edits invalidate its closure. Local files can be checked while main composition is incomplete. Whole-project check/build still validates all bindings and startup.
203
204
 
204
- Compiler and extension development dependencies use exact versions and lockfiles. Native maps record the selected C toolchain and inputs; C compiler/OS versions are environment requirements, not vendored binaries. Source packages use public repository URLs, local folders, or npm archives, with revisions and integrity recorded in `aug.lock.json`; [the package guide](packages.md) covers creation, installation, public imports and frozen CI builds.
205
+ Compiler and extension development dependencies use exact versions and lockfiles. LLVM source maps record the compiler/runtime identities, target, source revision, native artifacts, executable, and debug files. Source packages use public repository URLs, local folders, or npm archives, with revisions and integrity in `aug.lock.json`; [the package guide](packages.md) covers creation, installation, public imports and frozen builds.
205
206
 
206
207
  ## Inferred contract hints
207
208
 
@@ -18,7 +18,7 @@ This ledger records gaps discovered while implementing the confirmed web design
18
18
  | Public task error contracts | Task helpers should show their delayed failures in context. | Locally scheduled errors follow task aliases, collections, waits, exception paths and implicit joins. A helper accepting Task<T> must handle or declare Error; a public type spelling for a narrower delayed-error contract remains. |
19
19
  | Injected captures and owned shared payloads | Concurrent helpers must preserve dependency loans and resource lifetime. | The compiler tracks task reads through injected dependencies as well as written arguments and receivers. A native regression verifies that dropping an owned `Shared<T>` drops its transferred payload before later locals. Broader ownership and cancellation conformance work remains in the language roadmap. |
20
20
 
21
- Release review regressions cover duplicate scalar query/header/cookie/form inputs without process failure, inherited child deadlines, lock progress, owned resource lifetime, sibling and grouped cleanup errors, bounded response statuses, int64 action captures, complex and Json-valued forms, empty streams, and post-yield endpoint-test failures.
21
+ Release review regressions cover duplicate scalar query/header/cookie/form inputs without process failure, inherited child deadlines, lock progress, owned resource lifetime, sibling and grouped cleanup errors, bounded response statuses, int64 action captures, complex and Json-valued forms, empty streams, and post-yield endpoint-test failures. Streaming HEAD preserves its headers and status when stopping the producer; a cleanup error before headers remains a 500. HEAD completes at its headers on HTTP/1.1 and HTTP/2, with its prepared response retained through session cleanup. Compressed disconnect checks cross managed collection pressure and verify server survival.
22
22
 
23
23
  ## Scope boundaries
24
24
 
package/docs/web.md CHANGED
@@ -168,6 +168,10 @@ Options are compile-time literals. Import the policy interfaces from the web sou
168
168
 
169
169
  An endpoint may `streams ServerEvent<T>`, `streams Bytes`, or `streams Html`. `yield` supplies one item. Each pending encoded item is bounded to 64 KiB and sent under transport backpressure. A response has one consumer. Errors before headers become HTTP responses; later failures terminate output without appending a second error representation. Disconnect cancels the request and its children; `always` cleanup runs. The request DI scope survives through response completion.
170
170
 
171
+ A HEAD request sends the GET response headers without a body. For a stream, the first yield establishes the response, then the producer stops and runs its cleanup. Intentional completion keeps the response status; a real cleanup failure still produces an error response. [HTTP HEAD semantics](https://www.rfc-editor.org/rfc/rfc9110.html#name-head).
172
+
173
+ HEAD transport completes at its headers, including the stream-end flag for HTTP/2. Connection reuse does not turn a completed request into a disconnect log.
174
+
171
175
  `start fetch(...)` creates a task owned by its lexical scope. `wait for loadingUsers and loadingOrders to users and orders` waits in the stated result order; `wait for taskList` returns an ordered result list. `to`, `as`, and `=` result assignments are supported where the grammar permits them. Scope exit joins children; an unhandled child failure cancels siblings. Read-only frozen values can be shared without copying. Mutable captures are loaned until the task is observed. `lock shared as value` grants exclusive mutation and forbids nested locks, I/O, task starts and waits inside the locked region.
172
176
 
173
177
  Declare an owned resource directly in its task's `scope` block to keep it alive through implicit joining. A resource declared in a shorter nested block must be waited for before that block ends; the compiler rejects a live task borrow at that boundary. Unrelated owned cleanup does not join the enclosing scope's children. Pure loops under a lock finish or observe cancellation before another coroutine runs.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "format": 1,
3
3
  "files": [
4
- ".aug-spec/august/0.20.1/io/contracts.aug",
5
- ".aug-spec/august/0.20.1/io/contracts.aug.md",
4
+ ".aug-spec/august/0.21.0/io/contracts.aug",
5
+ ".aug-spec/august/0.21.0/io/contracts.aug.md",
6
6
  "counters.aug.md",
7
7
  "domain/app.aug.md",
8
8
  "domain/export.aug.md",
@@ -10,5 +10,5 @@
10
10
  "domain/numbers.aug.md",
11
11
  "main.aug.md"
12
12
  ],
13
- "digest": "62a350fdc80a432889b594eb5999b865b9801dcb7aaf6e90e1b636538d15ce58"
13
+ "digest": "a6219552bff760605d79d8e158b84db5cd48b192e0f7de2eef95a6e1c0089931"
14
14
  }
@@ -10,18 +10,18 @@ The application's explicit startup operation.
10
10
  <a id="symbol-Application.start"></a>
11
11
  ### `Application.start` · [source](app.aug#L7)
12
12
 
13
- Writes the fruit names through the selected console. It can call [`Console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ Writes the fruit names through the selected console. It can call [`Console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  <a id="symbol-ApplicationImpl"></a>
16
16
  ## `ApplicationImpl` · class · [source](app.aug#L9)
17
17
 
18
- Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.aug.md#symbol-Application). The `console` dependency is injected as [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) and stored read-only.
18
+ Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.aug.md#symbol-Application). The `console` dependency is injected as [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) and stored read-only.
19
19
 
20
20
  <a id="symbol-ApplicationImpl.start"></a>
21
21
  ### `ApplicationImpl.start` · [source](app.aug#L10)
22
22
 
23
- Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.aug.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.aug.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
23
+ Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.aug.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.aug.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
24
24
 
25
25
  ## Dependencies
26
26
 
27
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Fruit`](models.aug.md#symbol-Fruit) (`name`) from `models`.
27
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Fruit`](models.aug.md#symbol-Fruit) (`name`) from `models`.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Providers
6
6
 
7
- `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared.
7
+ `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared.
8
8
 
9
9
  `Application` is provided by [`ApplicationImpl`](domain/app.aug.md#symbol-ApplicationImpl). The same instance is shared. It requires bindings for `Console`. Include providers from [`Counters`](counters.aug.md#symbol-Counters).
10
10
 
@@ -20,6 +20,6 @@ It calls [`double`](domain/numbers.aug.md#symbol-double) with `amount` `-1`. If
20
20
 
21
21
  ## Dependencies
22
22
 
23
- It uses [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Counter`](counters.aug.md#symbol-Counter) ([`increment`](counters.aug.md#symbol-Counter.increment) and [`value`](counters.aug.md#symbol-Counter.value)) and [`Counters`](counters.aug.md#symbol-Counters) from `counters`. It uses [`Application`](domain/app.aug.md#symbol-Application) ([`start`](domain/app.aug.md#symbol-Application.start)), [`ApplicationImpl`](domain/app.aug.md#symbol-ApplicationImpl), [`Fruit`](domain/models.aug.md#symbol-Fruit), [`RangeError`](domain/numbers.aug.md#symbol-RangeError), and [`double`](domain/numbers.aug.md#symbol-double) from `domain`.
23
+ It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Counter`](counters.aug.md#symbol-Counter) ([`increment`](counters.aug.md#symbol-Counter.increment) and [`value`](counters.aug.md#symbol-Counter.value)) and [`Counters`](counters.aug.md#symbol-Counters) from `counters`. It uses [`Application`](domain/app.aug.md#symbol-Application) ([`start`](domain/app.aug.md#symbol-Application.start)), [`ApplicationImpl`](domain/app.aug.md#symbol-ApplicationImpl), [`Fruit`](domain/models.aug.md#symbol-Fruit), [`RangeError`](domain/numbers.aug.md#symbol-RangeError), and [`double`](domain/numbers.aug.md#symbol-double) from `domain`.
24
24
 
25
25
  Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "format": 1,
3
3
  "files": [
4
- ".aug-spec/august/0.20.1/io/contracts.aug",
5
- ".aug-spec/august/0.20.1/io/contracts.aug.md",
4
+ ".aug-spec/august/0.21.0/io/contracts.aug",
5
+ ".aug-spec/august/0.21.0/io/contracts.aug.md",
6
6
  "calculator.aug.md",
7
7
  "logging/console.aug.md",
8
8
  "logging/export.aug.md",
9
9
  "logging/logger.aug.md",
10
10
  "main.aug.md"
11
11
  ],
12
- "digest": "5ad640a1cd406ff2a310978f057d7e4d6180fe0c213097c1cf1cedfee76b609b"
12
+ "digest": "44c597e8467c0fad529c3dba2db647157020dd0ec3ad4852e7c068b93934679c"
13
13
  }
@@ -10,7 +10,7 @@ Adds two integers.
10
10
  <a id="symbol-Arithmetic.add"></a>
11
11
  ### `Arithmetic.add` · [source](calculator.aug#L6)
12
12
 
13
- It takes `left` and `right` as integers. It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `int`. It can call [`Console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ It takes `left` and `right` as integers. It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `int`. It can call [`Console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  <a id="symbol-Calculator"></a>
16
16
  ## `Calculator` · class · [source](calculator.aug#L9)
@@ -20,7 +20,7 @@ Uses the selected logger to describe each addition. It implements [`Arithmetic`]
20
20
  <a id="symbol-Calculator.add"></a>
21
21
  ### `Calculator.add` · [source](calculator.aug#L16)
22
22
 
23
- Adds left and right, logging the operation. It takes `left` as an integer (First integer) and `right` as an integer (Second integer). It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `int` — Sum of the two integers.
23
+ Adds left and right, logging the operation. It takes `left` as an integer (First integer) and `right` as an integer (Second integer). It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `int` — Sum of the two integers.
24
24
 
25
25
  It passes `"adding integers"` to [`_logger.log`](logging/logger.aug.md#symbol-Logger.log), using injected `console`. It returns `left` plus `right`.
26
26
 
@@ -39,7 +39,7 @@ Test adapter: keeps calculator tests independent of console output. It implement
39
39
  <a id="symbol-_SilentLogger.log"></a>
40
40
  ### `_SilentLogger.log` · [source](calculator.aug#L34)
41
41
 
42
- It takes `message` as a string (Text to write). It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It continues without an operation.
42
+ It takes `message` as a string (Text to write). It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It continues without an operation.
43
43
 
44
44
  <a id="symbol-test Calculator calculator"></a>
45
45
  ## `test Calculator calculator` · [source](calculator.aug#L38)
@@ -48,7 +48,7 @@ Tests [`Calculator`](calculator.aug.md#symbol-Calculator). Each case gets fresh
48
48
 
49
49
  ### `addition`
50
50
 
51
- Setup for each case: `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). Stateless instances are reused; stateful instances are created for each resolve. `Logger` is provided by [`_SilentLogger`](calculator.aug.md#symbol-_SilentLogger). Stateless instances are reused; stateful instances are created for each resolve.
51
+ Setup for each case: `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). Stateless instances are reused; stateful instances are created for each resolve. `Logger` is provided by [`_SilentLogger`](calculator.aug.md#symbol-_SilentLogger). Stateless instances are reused; stateful instances are created for each resolve.
52
52
 
53
53
  It sets `calculator` to a [`Calculator`](calculator.aug.md#symbol-Calculator) using injected `Logger` for `_logger`. It sets `values` of type `List<int>` to a list containing `1`, `2`.
54
54
 
@@ -62,6 +62,6 @@ The test requires the number of elements in `values` equals `2`. The test requir
62
62
 
63
63
  ## Dependencies
64
64
 
65
- It uses [`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) and [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Logger`](logging/logger.aug.md#symbol-Logger) ([`log`](logging/logger.aug.md#symbol-Logger.log)) from `logging`.
65
+ It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) and [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Logger`](logging/logger.aug.md#symbol-Logger) ([`log`](logging/logger.aug.md#symbol-Logger.log)) from `logging`.
66
66
 
67
67
  Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
@@ -10,8 +10,8 @@ Writes application messages to standard output. It implements [`Logger`](logger.
10
10
  <a id="symbol-ConsoleLogger.log"></a>
11
11
  ### `ConsoleLogger.log` · [source](console.aug#L6)
12
12
 
13
- It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.aug.md#symbol-Logger) from `logger`.
17
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.aug.md#symbol-Logger) from `logger`.
@@ -10,8 +10,8 @@ Receives a message describing an application operation.
10
10
  <a id="symbol-Logger.log"></a>
11
11
  ### `Logger.log` · [source](logger.aug#L6)
12
12
 
13
- It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
17
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Providers
6
6
 
7
- `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger). The same instance is shared.
7
+ `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger). The same instance is shared.
8
8
 
9
9
  ## Startup
10
10
 
@@ -16,6 +16,6 @@ It prints the value under `2` in `fruit`. It prints [`load`](calculator.aug.md#s
16
16
 
17
17
  ## Dependencies
18
18
 
19
- It uses [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Calculator`](calculator.aug.md#symbol-Calculator) ([`add`](calculator.aug.md#symbol-Calculator.add)) and [`load`](calculator.aug.md#symbol-load) from `calculator`. It uses [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) from `logging`.
19
+ It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Calculator`](calculator.aug.md#symbol-Calculator) ([`add`](calculator.aug.md#symbol-Calculator.add)) and [`load`](calculator.aug.md#symbol-load) from `calculator`. It uses [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) from `logging`.
20
20
 
21
21
  Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "format": 1,
3
3
  "files": [
4
- ".aug-spec/august/0.20.1/io/contracts.aug",
5
- ".aug-spec/august/0.20.1/io/contracts.aug.md",
4
+ ".aug-spec/august/0.21.0/io/contracts.aug",
5
+ ".aug-spec/august/0.21.0/io/contracts.aug.md",
6
6
  "main.aug.md",
7
7
  "types.aug.md"
8
8
  ],
9
- "digest": "7071f257cf416b37397e803a8262a29d2f908110f5edb01b36bcc0ae87bd408e"
9
+ "digest": "c35d712e53007b314341ed8017500a3d47af4489d9e1623931cf0af40a6a8208"
10
10
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Providers
6
6
 
7
- `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Repository<int>` is provided by [`NumberRepository`](types.aug.md#symbol-NumberRepository). The same instance is shared.
7
+ `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Repository<int>` is provided by [`NumberRepository`](types.aug.md#symbol-NumberRepository). The same instance is shared.
8
8
 
9
9
  `app` is provided by [`Program`](types.aug.md#symbol-Program). The same instance is shared. It requires bindings for `Repository<int>`.
10
10
 
@@ -14,4 +14,4 @@ It sets `program` to the instance provided for `app`. It calls [`program.start`]
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`NumberRepository`](types.aug.md#symbol-NumberRepository) and [`Program`](types.aug.md#symbol-Program) ([`start`](types.aug.md#symbol-Program.start)) from `types`.
17
+ It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`NumberRepository`](types.aug.md#symbol-NumberRepository) and [`Program`](types.aug.md#symbol-Program) ([`start`](types.aug.md#symbol-Program.start)) from `types`.
@@ -30,7 +30,7 @@ It implements [`IProgram`](types.aug.md#symbol-IProgram). The `repository` depen
30
30
  <a id="symbol-Program.start"></a>
31
31
  ### `Program.start` · [source](types.aug#L12)
32
32
 
33
- It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes [`repository.get`](types.aug.md#symbol-Repository.get) to [`console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
33
+ It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes [`repository.get`](types.aug.md#symbol-Repository.get) to [`console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
34
34
 
35
35
  <a id="symbol-IProgram"></a>
36
36
  ## `IProgram` · interface · [source](types.aug#L16)
@@ -38,8 +38,8 @@ It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbo
38
38
  <a id="symbol-IProgram.start"></a>
39
39
  ### `IProgram.start` · [source](types.aug#L17)
40
40
 
41
- It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
41
+ It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
42
42
 
43
43
  ## Dependencies
44
44
 
45
- It uses [`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
45
+ It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "format": 1,
3
3
  "files": [
4
- ".aug-spec/august/0.20.1/io/contracts.aug",
5
- ".aug-spec/august/0.20.1/io/contracts.aug.md",
4
+ ".aug-spec/august/0.21.0/io/contracts.aug",
5
+ ".aug-spec/august/0.21.0/io/contracts.aug.md",
6
6
  "app/export.aug.md",
7
7
  "app/greeter.aug.md",
8
8
  "logging/console.aug.md",
@@ -10,5 +10,5 @@
10
10
  "logging/logger.aug.md",
11
11
  "main.aug.md"
12
12
  ],
13
- "digest": "cb8b965b7843bcc9676a59f508d2dcb8ec9b4ff7f8bce3c0f41b2c8de067de09"
13
+ "digest": "662623df9a89e7f4b0879bb8b6187f83a05aacd1bd2cf7ebb2e6049c1db73f54"
14
14
  }
@@ -10,7 +10,7 @@ Welcomes a user through the configured logger. It implements [`IGreeter`](greete
10
10
  <a id="symbol-Greeter.greet"></a>
11
11
  ### `Greeter.greet` · [source](greeter.aug#L13)
12
12
 
13
- Prints a personalized greeting. It takes `name` as a string (the user to welcome). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes the text `Hello, {name}!` to [`logger.log`](../logging/logger.aug.md#symbol-Logger.log), using injected `console`.
13
+ Prints a personalized greeting. It takes `name` as a string (the user to welcome). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes the text `Hello, {name}!` to [`logger.log`](../logging/logger.aug.md#symbol-Logger.log), using injected `console`.
14
14
 
15
15
  <a id="symbol-IGreeter"></a>
16
16
  ## `IGreeter` · interface · [source](greeter.aug#L17)
@@ -18,8 +18,8 @@ Prints a personalized greeting. It takes `name` as a string (the user to welcome
18
18
  <a id="symbol-IGreeter.greet"></a>
19
19
  ### `IGreeter.greet` · [source](greeter.aug#L22)
20
20
 
21
- Prints a personalized greeting. It takes `name` as a string (the user to welcome). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
21
+ Prints a personalized greeting. It takes `name` as a string (the user to welcome). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
22
22
 
23
23
  ## Dependencies
24
24
 
25
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](../logging/logger.aug.md#symbol-Logger) ([`log`](../logging/logger.aug.md#symbol-Logger.log)) from `logging`.
25
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](../logging/logger.aug.md#symbol-Logger) ([`log`](../logging/logger.aug.md#symbol-Logger.log)) from `logging`.
@@ -10,8 +10,8 @@ It implements [`Logger`](logger.aug.md#symbol-Logger).
10
10
  <a id="symbol-ConsoleLogger.log"></a>
11
11
  ### `ConsoleLogger.log` · [source](console.aug#L5)
12
12
 
13
- Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.aug.md#symbol-Logger) from `logger`.
17
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logger.aug.md#symbol-Logger) from `logger`.
@@ -10,8 +10,8 @@ Writes messages to an application log.
10
10
  <a id="symbol-Logger.log"></a>
11
11
  ### `Logger.log` · [source](logger.aug#L9)
12
12
 
13
- Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ Writes one message. It takes `message` as a string (Text to write). It gets `console` ([`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`Console`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
17
+ It uses [`Console`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](../.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Providers
6
6
 
7
- `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger). The same instance is shared.
7
+ `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger). The same instance is shared.
8
8
 
9
9
  `app` is provided by [`Greeter`](app/greeter.aug.md#symbol-Greeter). The same instance is shared. It requires bindings for `Logger`.
10
10
 
@@ -14,4 +14,4 @@ It sets `greeter` to the instance provided for `app`. It passes `"AugScript"` to
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app/greeter.aug.md#symbol-Greeter) ([`greet`](app/greeter.aug.md#symbol-Greeter.greet)) from `app`. It uses [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) from `logging`.
17
+ It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app/greeter.aug.md#symbol-Greeter) ([`greet`](app/greeter.aug.md#symbol-Greeter.greet)) from `app`. It uses [`ConsoleLogger`](logging/console.aug.md#symbol-ConsoleLogger) from `logging`.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "format": 1,
3
3
  "files": [
4
- ".aug-spec/august/0.20.1/io/contracts.aug",
5
- ".aug-spec/august/0.20.1/io/contracts.aug.md",
4
+ ".aug-spec/august/0.21.0/io/contracts.aug",
5
+ ".aug-spec/august/0.21.0/io/contracts.aug.md",
6
6
  "app.aug.md",
7
7
  "interceptors.aug.md",
8
8
  "logging.aug.md",
9
9
  "main.aug.md"
10
10
  ],
11
- "digest": "0043674ac968d87178333e84deebfd54ecda62b58389be7d45859bc7399928c0"
11
+ "digest": "7585a80829aa29023840432758d4550c3e7411b89f8e2eab88cdeabb2af935fb"
12
12
  }
@@ -5,11 +5,11 @@
5
5
  <a id="symbol-describe"></a>
6
6
  ## `describe` · [source](app.aug#L15)
7
7
 
8
- Prints a number and returns its label. It takes `x` as an integer (the numeric input, validated and incremented by the chain) and `label` as a string (Text forwarded through each layer unchanged). It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. Failures can raise `ValidationError`.
8
+ Prints a number and returns its label. It takes `x` as an integer (the numeric input, validated and incremented by the chain) and `label` as a string (Text forwarded through each layer unchanged). It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. Failures can raise `ValidationError`.
9
9
 
10
10
  Layers run in the declared order. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). Call [`Positive.around`](interceptors.aug.md#symbol-Positive.around). Map `x` to `y`. Call [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around). Map `x` to `y`.
11
11
 
12
- It passes `x` to [`console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write). It returns `label`.
12
+ It passes `x` to [`console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write). It returns `label`.
13
13
 
14
14
  <a id="symbol-IGreeter"></a>
15
15
  ## `IGreeter` · interface · [source](app.aug#L19)
@@ -17,7 +17,7 @@ It passes `x` to [`console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#s
17
17
  <a id="symbol-IGreeter.greet"></a>
18
18
  ### `IGreeter.greet` · [source](app.aug#L20)
19
19
 
20
- It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `string`. It can call [`Console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
20
+ It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It returns `string`. It can call [`Console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
21
21
 
22
22
  <a id="symbol-Greeter"></a>
23
23
  ## `Greeter` · class · [source](app.aug#L23)
@@ -27,10 +27,10 @@ Construction stores its inputs; startup is visible in the greet call. It impleme
27
27
  <a id="symbol-Greeter.greet"></a>
28
28
  ### `Greeter.greet` · [source](app.aug#L26)
29
29
 
30
- Method annotations wrap each method invocation separately. It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. Layers run in the declared order. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around).
30
+ Method annotations wrap each method invocation separately. It gets `logger` ([`Logger`](logging.aug.md#symbol-Logger)) and `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. Layers run in the declared order. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around).
31
31
 
32
32
  It returns the text `Hello, {name}!`.
33
33
 
34
34
  ## Dependencies
35
35
 
36
- It uses [`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`AddOne`](interceptors.aug.md#symbol-AddOne) ([`around`](interceptors.aug.md#symbol-AddOne.around)), [`Audit`](interceptors.aug.md#symbol-Audit) ([`around`](interceptors.aug.md#symbol-Audit.around)), and [`Positive`](interceptors.aug.md#symbol-Positive) ([`around`](interceptors.aug.md#symbol-Positive.around)) from `interceptors`. It uses [`Logger`](logging.aug.md#symbol-Logger) from `logging`.
36
+ It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`AddOne`](interceptors.aug.md#symbol-AddOne) ([`around`](interceptors.aug.md#symbol-AddOne.around)), [`Audit`](interceptors.aug.md#symbol-Audit) ([`around`](interceptors.aug.md#symbol-Audit.around)), and [`Positive`](interceptors.aug.md#symbol-Positive) ([`around`](interceptors.aug.md#symbol-Positive.around)) from `interceptors`. It uses [`Logger`](logging.aug.md#symbol-Logger) from `logging`.
@@ -18,7 +18,7 @@ The `logger` dependency is injected as [`Logger`](logging.aug.md#symbol-Logger)
18
18
  <a id="symbol-Audit.around"></a>
19
19
  ### `Audit.around` · [source](interceptors.aug#L15)
20
20
 
21
- Wrap a call without changing its result. It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection.
21
+ Wrap a call without changing its result. It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection.
22
22
 
23
23
  It passes `"before"` to [`logger.log`](logging.aug.md#symbol-Logger.log), using injected `console`. It sets `result` of type `T` to `next`. It passes `"after"` to [`logger.log`](logging.aug.md#symbol-Logger.log), using injected `console`. It returns `result`.
24
24
 
@@ -44,4 +44,4 @@ It takes `y` as an integer (the input to increment). It returns `next` with `y`
44
44
 
45
45
  ## Dependencies
46
46
 
47
- It uses [`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logging.aug.md#symbol-Logger) ([`log`](logging.aug.md#symbol-Logger.log)) from `logging`.
47
+ It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`. It uses [`Logger`](logging.aug.md#symbol-Logger) ([`log`](logging.aug.md#symbol-Logger.log)) from `logging`.
@@ -10,7 +10,7 @@ Writes a message to the application log.
10
10
  <a id="symbol-Logger.log"></a>
11
11
  ### `Logger.log` · [source](logging.aug#L6)
12
12
 
13
- It takes `message` as a string (Text to display). It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
13
+ It takes `message` as a string (Text to display). It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It can call [`Console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
14
14
 
15
15
  <a id="symbol-ConsoleLogger"></a>
16
16
  ## `ConsoleLogger` · class · [source](logging.aug#L9)
@@ -20,8 +20,8 @@ Console logger shared by interceptor instances and the application. It implement
20
20
  <a id="symbol-ConsoleLogger.log"></a>
21
21
  ### `ConsoleLogger.log` · [source](logging.aug#L10)
22
22
 
23
- It takes `message` as a string (Text to display). It gets `console` ([`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write).
23
+ It takes `message` as a string (Text to display). It gets `console` ([`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write).
24
24
 
25
25
  ## Dependencies
26
26
 
27
- It uses [`Console`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
27
+ It uses [`Console`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console) ([`write`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-Console.write)) from `august.io`.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## Providers
6
6
 
7
- `Console` is provided by [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger). The same instance is shared.
7
+ `Console` is provided by [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger). The same instance is shared.
8
8
 
9
9
  ## Startup
10
10
 
@@ -14,6 +14,6 @@ It tries to call [`describe`](app.aug.md#symbol-describe) with `x` `-1` and `lab
14
14
 
15
15
  ## Dependencies
16
16
 
17
- It uses [`SystemConsole`](.aug-spec/august/0.20.1/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app.aug.md#symbol-Greeter) ([`greet`](app.aug.md#symbol-Greeter.greet)) and [`describe`](app.aug.md#symbol-describe) from `app`. It uses [`ValidationError`](interceptors.aug.md#symbol-ValidationError) from `interceptors`. It uses [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger) from `logging`.
17
+ It uses [`SystemConsole`](.aug-spec/august/0.21.0/io/contracts.aug.md#symbol-SystemConsole) from `august.io`. It uses [`Greeter`](app.aug.md#symbol-Greeter) ([`greet`](app.aug.md#symbol-Greeter.greet)) and [`describe`](app.aug.md#symbol-describe) from `app`. It uses [`ValidationError`](interceptors.aug.md#symbol-ValidationError) from `interceptors`. It uses [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger) from `logging`.
18
18
 
19
19
  Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
@@ -0,0 +1,16 @@
1
+ {
2
+ "format": 1,
3
+ "files": [
4
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug",
5
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md",
6
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug",
7
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md",
8
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json",
9
+ "hashing.aug.md",
10
+ "main.aug.md"
11
+ ],
12
+ "nativeDescriptors": {
13
+ ".aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json": "3bf8dea97cde70a03021bf77ea08314d6d37fe7b4935ff16030b2ab929c21279"
14
+ },
15
+ "digest": "ffe72583bdbab712c267ceb7f0e8d8e624dea7c3e672e75541694832c904cbf7"
16
+ }