@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.
- package/README.md +9 -6
- package/THIRD_PARTY_NOTICES.md +4 -0
- package/bin/aug.mjs +12 -2
- package/docs/about.md +27 -0
- package/docs/api/crypto.md +103 -69
- package/docs/api/io.md +35 -33
- package/docs/api/json.md +3 -3
- package/docs/api/memory.md +23 -19
- package/docs/api/time.md +10 -9
- package/docs/api/web.md +33 -38
- package/docs/assets/benchmarks/execution.svg +774 -637
- package/docs/assets/benchmarks/http.svg +278 -249
- package/docs/assets/benchmarks/improvements.svg +66 -66
- package/docs/assets/benchmarks/kernels-mobile.svg +1 -0
- package/docs/assets/benchmarks/kernels.svg +1 -0
- package/docs/assets/benchmarks/memory.svg +153 -153
- package/docs/benchmark-results.json +227089 -90363
- package/docs/compatibility.md +8 -8
- package/docs/contributing-benchmarks.md +68 -0
- package/docs/dev-containers.md +88 -0
- package/docs/dgx-consumers.json +122 -0
- package/docs/dgx-gyms.json +784 -0
- package/docs/dgx-kernels.json +1170 -0
- package/docs/dgx-performance.json +227849 -0
- package/docs/dgx-spark.md +64 -0
- package/docs/diagnostics.md +15 -5
- package/docs/docker.md +173 -12
- package/docs/editor.md +35 -0
- package/docs/example-projects.json +238 -24
- package/docs/examples/approved-design/counters.md +34 -126
- package/docs/examples/approved-design/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/approved-design/domain/app.md +13 -77
- package/docs/examples/approved-design/domain/export.md +5 -19
- package/docs/examples/approved-design/domain/models.md +4 -23
- package/docs/examples/approved-design/domain/numbers.md +24 -114
- package/docs/examples/approved-design/index.md +16 -7
- package/docs/examples/approved-design/main.md +19 -96
- package/docs/examples/benchmark/index.md +6 -5
- package/docs/examples/benchmark/main.md +7 -35
- package/docs/examples/calls-benchmark/index.md +36 -0
- package/docs/examples/calls-benchmark/main.md +78 -0
- package/docs/examples/calls-benchmark/operations.md +60 -0
- package/docs/examples/cli-args/index.md +6 -5
- package/docs/examples/cli-args/main.md +6 -31
- package/docs/examples/collections/index.md +6 -5
- package/docs/examples/collections/main.md +7 -35
- package/docs/examples/collections-benchmark/index.md +6 -5
- package/docs/examples/collections-benchmark/main.md +7 -35
- package/docs/examples/cpu-benchmark/index.md +6 -5
- package/docs/examples/cpu-benchmark/main.md +5 -24
- package/docs/examples/developer-workflow/calculator.md +39 -186
- package/docs/examples/developer-workflow/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/developer-workflow/index.md +16 -7
- package/docs/examples/developer-workflow/logging/console.md +10 -56
- package/docs/examples/developer-workflow/logging/export.md +4 -14
- package/docs/examples/developer-workflow/logging/logger.md +7 -43
- package/docs/examples/developer-workflow/main.md +17 -69
- package/docs/examples/drop/index.md +6 -5
- package/docs/examples/drop/main.md +7 -27
- package/docs/examples/drop/resource.md +7 -30
- package/docs/examples/errors/errors.md +7 -27
- package/docs/examples/errors/index.md +6 -5
- package/docs/examples/errors/main.md +7 -28
- package/docs/examples/errors-benchmark/index.md +36 -0
- package/docs/examples/errors-benchmark/main.md +92 -0
- package/docs/examples/errors-benchmark/operations.md +65 -0
- package/docs/examples/ffi/index.md +6 -5
- package/docs/examples/ffi/main.md +6 -20
- package/docs/examples/ffi/native.md +8 -34
- package/docs/examples/float-benchmark/index.md +35 -0
- package/docs/examples/float-benchmark/main.md +75 -0
- package/docs/examples/generic-di/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/generic-di/index.md +6 -5
- package/docs/examples/generic-di/main.md +9 -39
- package/docs/examples/generic-di/types.md +23 -92
- package/docs/examples/generics/index.md +6 -5
- package/docs/examples/generics/main.md +10 -47
- package/docs/examples/generics/types.md +25 -100
- package/docs/examples/hello/app/export.md +4 -12
- package/docs/examples/hello/app/greeter.md +13 -91
- package/docs/examples/hello/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/hello/index.md +17 -6
- package/docs/examples/hello/logging/console.md +10 -54
- package/docs/examples/hello/logging/export.md +4 -14
- package/docs/examples/hello/logging/logger.md +7 -45
- package/docs/examples/hello/main.md +9 -39
- package/docs/examples/http-benchmark/index.md +6 -5
- package/docs/examples/http-benchmark/main.md +6 -20
- package/docs/examples/http-benchmark/routes.md +9 -31
- package/docs/examples/index.md +63 -29
- package/docs/examples/interceptors/app.md +20 -139
- package/docs/examples/interceptors/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/interceptors/index.md +6 -5
- package/docs/examples/interceptors/interceptors.md +24 -148
- package/docs/examples/interceptors/logging.md +13 -76
- package/docs/examples/interceptors/main.md +10 -65
- package/docs/examples/json-benchmark/data.md +4 -20
- package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/json-benchmark/index.md +7 -5
- package/docs/examples/json-benchmark/main-yaml.md +20 -0
- package/docs/examples/json-benchmark/main.md +10 -49
- package/docs/examples/list-benchmark/index.md +35 -0
- package/docs/examples/list-benchmark/main.md +78 -0
- package/docs/examples/map-churn-benchmark/index.md +35 -0
- package/docs/examples/map-churn-benchmark/main.md +106 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/api.md +104 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.md +54 -0
- package/docs/examples/native-blake3/dependencies/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi-json.md +48 -0
- package/docs/examples/native-blake3/hashing.md +93 -0
- package/docs/examples/native-blake3/index.md +38 -0
- package/docs/examples/native-blake3/main.md +73 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/api.md +406 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.md +51 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.md +63 -0
- package/docs/examples/native-pytorch/dependencies/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi-json.md +161 -0
- package/docs/examples/native-pytorch/index.md +38 -0
- package/docs/examples/native-pytorch/main.md +73 -0
- package/docs/examples/native-pytorch/tensors.md +123 -0
- package/docs/examples/native-sqlite/database.md +116 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/api.md +284 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.md +51 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.md +75 -0
- package/docs/examples/native-sqlite/dependencies/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi-json.md +119 -0
- package/docs/examples/native-sqlite/index.md +38 -0
- package/docs/examples/native-sqlite/main.md +73 -0
- package/docs/examples/native-zlib/compression.md +99 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/api.md +153 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.md +54 -0
- package/docs/examples/native-zlib/dependencies/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi-json.md +76 -0
- package/docs/examples/native-zlib/index.md +38 -0
- package/docs/examples/native-zlib/main.md +78 -0
- package/docs/examples/new-syntax/console.md +10 -52
- package/docs/examples/new-syntax/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/new-syntax/greeter.md +13 -71
- package/docs/examples/new-syntax/index.md +6 -5
- package/docs/examples/new-syntax/logger.md +7 -43
- package/docs/examples/new-syntax/main.md +10 -53
- package/docs/examples/new-syntax/math.md +6 -24
- package/docs/examples/oidc-login/client/contracts.md +10 -61
- package/docs/examples/oidc-login/client/endpoints.md +32 -154
- package/docs/examples/oidc-login/client/export.md +5 -23
- package/docs/examples/oidc-login/client/login.md +234 -344
- package/docs/examples/oidc-login/client/logout.md +38 -143
- package/docs/examples/oidc-login/client/protocol.md +183 -304
- package/docs/examples/oidc-login/client/session.md +41 -149
- package/docs/examples/oidc-login/client/views.md +13 -58
- package/docs/examples/oidc-login/common/export.md +6 -26
- package/docs/examples/oidc-login/common/headers.md +42 -72
- package/docs/examples/oidc-login/common/keys.md +40 -164
- package/docs/examples/oidc-login/common/settings.md +24 -40
- package/docs/examples/oidc-login/common/views.md +7 -28
- package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
- package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
- package/docs/examples/oidc-login/index.md +8 -7
- package/docs/examples/oidc-login/main-yaml.md +7 -0
- package/docs/examples/oidc-login/main.md +26 -153
- package/docs/examples/oidc-login/provider/authorization.md +232 -275
- package/docs/examples/oidc-login/provider/contracts.md +24 -146
- package/docs/examples/oidc-login/provider/credentials.md +24 -57
- package/docs/examples/oidc-login/provider/discovery.md +48 -122
- package/docs/examples/oidc-login/provider/export.md +11 -37
- package/docs/examples/oidc-login/provider/token.md +159 -237
- package/docs/examples/oidc-login/provider/userinfo.md +47 -102
- package/docs/examples/oidc-login/provider/views.md +13 -53
- package/docs/examples/ownership/counter.md +17 -63
- package/docs/examples/ownership/index.md +6 -5
- package/docs/examples/ownership/main.md +7 -30
- package/docs/examples/ownership-transfer/dependencies/august/0.21.0/io/contracts.md +178 -0
- package/docs/examples/ownership-transfer/index.md +6 -5
- package/docs/examples/ownership-transfer/main.md +10 -52
- package/docs/examples/ownership-transfer/resource.md +15 -67
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
- package/docs/examples/packages-app/index.md +7 -6
- package/docs/examples/packages-app/main.md +7 -25
- package/docs/examples/packages-math/aug-package-json.md +1 -1
- package/docs/examples/packages-math/index.md +7 -6
- package/docs/examples/packages-math/src/arithmetic.md +12 -50
- package/docs/examples/packages-math/src/export.md +4 -12
- package/docs/examples/records-benchmark/data.md +55 -0
- package/docs/examples/records-benchmark/index.md +36 -0
- package/docs/examples/records-benchmark/main.md +85 -0
- package/docs/examples/startup-benchmark/index.md +6 -5
- package/docs/examples/startup-benchmark/main.md +5 -17
- package/docs/examples/strings-benchmark/index.md +35 -0
- package/docs/examples/strings-benchmark/main.md +76 -0
- package/docs/examples/tasks-benchmark/index.md +36 -0
- package/docs/examples/tasks-benchmark/main.md +89 -0
- package/docs/examples/tasks-benchmark/operations.md +58 -0
- package/docs/examples/visibility/counter.md +19 -67
- package/docs/examples/visibility/index.md +6 -5
- package/docs/examples/visibility/main.md +7 -31
- package/docs/examples/weather-api/forecasts.md +168 -0
- package/docs/examples/weather-api/index.md +42 -0
- package/docs/examples/weather-api/main-yaml.md +21 -0
- package/docs/examples/weather-api/main.md +65 -0
- package/docs/examples.json +10 -0
- package/docs/getting-started.md +105 -2
- package/docs/grammar.md +7 -5
- package/docs/guides/change-a-module.md +64 -0
- package/docs/guides/index.md +27 -0
- package/docs/gym-results.json +784 -0
- package/docs/implementation-map.md +6 -0
- package/docs/index.md +51 -29
- package/docs/kernel-results.json +1170 -0
- package/docs/language-conformance.md +7 -1
- package/docs/language-constructs.md +30 -22
- package/docs/language-design-audit.md +1 -1
- package/docs/learn/data-and-errors.md +77 -0
- package/docs/learn/index.md +30 -0
- package/docs/learn/modules-and-dependencies.md +73 -0
- package/docs/learn/state-and-tests.md +71 -0
- package/docs/learn/values-and-functions.md +62 -0
- package/docs/lesson-failures.json +8 -0
- package/docs/maintaining-docs.md +16 -4
- package/docs/native-implementation.md +276 -0
- package/docs/native-interop-llvm-plan.md +342 -0
- package/docs/native-package-examples.md +684 -0
- package/docs/native-packages.md +179 -0
- package/docs/packages.md +72 -126
- package/docs/performance.md +61 -68
- package/docs/production-readiness.md +16 -5
- package/docs/public/downloads/approved-design.zip +0 -0
- package/docs/public/downloads/benchmark.zip +0 -0
- package/docs/public/downloads/calls-benchmark.zip +0 -0
- package/docs/public/downloads/cli-args.zip +0 -0
- package/docs/public/downloads/collections-benchmark.zip +0 -0
- package/docs/public/downloads/collections.zip +0 -0
- package/docs/public/downloads/cpu-benchmark.zip +0 -0
- package/docs/public/downloads/developer-workflow.zip +0 -0
- package/docs/public/downloads/drop.zip +0 -0
- package/docs/public/downloads/errors-benchmark.zip +0 -0
- package/docs/public/downloads/errors.zip +0 -0
- package/docs/public/downloads/ffi.zip +0 -0
- package/docs/public/downloads/float-benchmark.zip +0 -0
- package/docs/public/downloads/generic-di.zip +0 -0
- package/docs/public/downloads/generics.zip +0 -0
- package/docs/public/downloads/hello.zip +0 -0
- package/docs/public/downloads/http-benchmark.zip +0 -0
- package/docs/public/downloads/interceptors.zip +0 -0
- package/docs/public/downloads/json-benchmark.zip +0 -0
- package/docs/public/downloads/list-benchmark.zip +0 -0
- package/docs/public/downloads/map-churn-benchmark.zip +0 -0
- package/docs/public/downloads/native-blake3.zip +0 -0
- package/docs/public/downloads/native-pytorch.zip +0 -0
- package/docs/public/downloads/native-sqlite.zip +0 -0
- package/docs/public/downloads/native-zlib.zip +0 -0
- package/docs/public/downloads/new-syntax.zip +0 -0
- package/docs/public/downloads/oidc-login.zip +0 -0
- package/docs/public/downloads/ownership-transfer.zip +0 -0
- package/docs/public/downloads/ownership.zip +0 -0
- package/docs/public/downloads/packages-app.zip +0 -0
- package/docs/public/downloads/packages-math.zip +0 -0
- package/docs/public/downloads/records-benchmark.zip +0 -0
- package/docs/public/downloads/startup-benchmark.zip +0 -0
- package/docs/public/downloads/strings-benchmark.zip +0 -0
- package/docs/public/downloads/tasks-benchmark.zip +0 -0
- package/docs/public/downloads/visibility.zip +0 -0
- package/docs/public/downloads/weather-api.zip +0 -0
- package/docs/qualification-results.md +66 -0
- package/docs/reference.md +47 -17
- package/docs/releasing.md +105 -16
- package/docs/research/code-to-natural-language.md +108 -0
- package/docs/research/ecosystem-workflow.md +41 -0
- package/docs/research/libtorch-native-qualification.md +115 -0
- package/docs/research/native-interop-llvm.md +197 -0
- package/docs/research/qualification-methods.md +15 -0
- package/docs/research/wiki-editorial-design.md +71 -0
- package/docs/roadmap.md +2 -1
- package/docs/safety-gyms.md +41 -0
- package/docs/specifications.md +27 -11
- package/docs/testing.md +19 -5
- package/docs/tooling.md +36 -22
- package/docs/weather-api.md +65 -0
- package/docs/web-library-gaps.md +1 -1
- package/docs/web.md +54 -18
- package/docs/writing-docs.md +49 -0
- package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/approved-design/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/approved-design/.aug-spec/manifest.json +3 -3
- package/examples/approved-design/counters.aug +5 -4
- package/examples/approved-design/counters.aug.md +25 -132
- package/examples/approved-design/domain/app.aug +2 -1
- package/examples/approved-design/domain/app.aug.md +10 -80
- package/examples/approved-design/domain/export.aug +1 -0
- package/examples/approved-design/domain/export.aug.md +4 -20
- package/examples/approved-design/domain/models.aug +1 -0
- package/examples/approved-design/domain/models.aug.md +3 -25
- package/examples/approved-design/domain/numbers.aug +3 -2
- package/examples/approved-design/domain/numbers.aug.md +19 -116
- package/examples/approved-design/main.aug +1 -0
- package/examples/approved-design/main.aug.md +12 -95
- package/examples/benchmark/.aug-spec/manifest.json +1 -1
- package/examples/benchmark/main.aug +1 -0
- package/examples/benchmark/main.aug.md +6 -36
- package/examples/cli-args/.aug-spec/manifest.json +1 -1
- package/examples/cli-args/main.aug +1 -0
- package/examples/cli-args/main.aug.md +5 -32
- package/examples/collections/.aug-spec/manifest.json +1 -1
- package/examples/collections/main.aug +1 -0
- package/examples/collections/main.aug.md +6 -36
- package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/developer-workflow/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
- package/examples/developer-workflow/calculator.aug +3 -2
- package/examples/developer-workflow/calculator.aug.md +28 -189
- package/examples/developer-workflow/logging/console.aug +2 -1
- package/examples/developer-workflow/logging/console.aug.md +7 -57
- package/examples/developer-workflow/logging/export.aug +1 -0
- package/examples/developer-workflow/logging/export.aug.md +3 -15
- package/examples/developer-workflow/logging/logger.aug +1 -0
- package/examples/developer-workflow/logging/logger.aug.md +6 -46
- package/examples/developer-workflow/main.aug +1 -0
- package/examples/developer-workflow/main.aug.md +10 -68
- package/examples/drop/.aug-spec/manifest.json +1 -1
- package/examples/drop/main.aug +1 -0
- package/examples/drop/main.aug.md +6 -28
- package/examples/drop/resource.aug +1 -0
- package/examples/drop/resource.aug.md +6 -34
- package/examples/errors/.aug-spec/manifest.json +1 -1
- package/examples/errors/errors.aug +2 -1
- package/examples/errors/errors.aug.md +4 -27
- package/examples/errors/main.aug +1 -0
- package/examples/errors/main.aug.md +6 -29
- package/examples/ffi/.aug-spec/manifest.json +1 -1
- package/examples/ffi/main.aug +1 -0
- package/examples/ffi/main.aug.md +5 -21
- package/examples/ffi/native.aug +2 -1
- package/examples/ffi/native.aug.md +5 -35
- package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/generic-di/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/generic-di/.aug-spec/manifest.json +3 -3
- package/examples/generic-di/main.aug +1 -0
- package/examples/generic-di/main.aug.md +8 -40
- package/examples/generic-di/types.aug +3 -2
- package/examples/generic-di/types.aug.md +18 -97
- package/examples/generics/.aug-spec/manifest.json +1 -1
- package/examples/generics/main.aug +1 -0
- package/examples/generics/main.aug.md +9 -48
- package/examples/generics/types.aug +4 -3
- package/examples/generics/types.aug.md +18 -104
- package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.21.0}/io/contracts.aug +4 -3
- package/examples/hello/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/hello/.aug-spec/manifest.json +3 -3
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +3 -13
- package/examples/hello/app/greeter.aug +2 -1
- package/examples/hello/app/greeter.aug.md +10 -94
- package/examples/hello/logging/console.aug +2 -1
- package/examples/hello/logging/console.aug.md +7 -55
- package/examples/hello/logging/export.aug +1 -0
- package/examples/hello/logging/export.aug.md +3 -15
- package/examples/hello/logging/logger.aug +1 -0
- package/examples/hello/logging/logger.aug.md +6 -48
- package/examples/hello/main.aug +1 -0
- package/examples/hello/main.aug.md +8 -40
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/interceptors/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/interceptors/.aug-spec/manifest.json +3 -3
- package/examples/interceptors/app.aug +3 -2
- package/examples/interceptors/app.aug.md +15 -141
- package/examples/interceptors/interceptors.aug +3 -2
- package/examples/interceptors/interceptors.aug.md +19 -152
- package/examples/interceptors/logging.aug +2 -1
- package/examples/interceptors/logging.aug.md +10 -79
- package/examples/interceptors/main.aug +1 -0
- package/examples/interceptors/main.aug.md +9 -66
- package/examples/native-blake3/.aug-spec/manifest.json +16 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.1/native.abi.json +29 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug +14 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/api.aug.md +34 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug +4 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/contracts.aug.md +8 -0
- package/examples/native-blake3/.aug-spec/packages/@greenpandastudios/aug-blake3/0.1.3/native.abi.json +29 -0
- package/examples/native-blake3/AGENTS.md +5 -0
- package/examples/native-blake3/aug.lock.json +253 -0
- package/examples/native-blake3/hashing.aug +11 -0
- package/examples/native-blake3/hashing.aug.md +25 -0
- package/examples/native-blake3/main.aug +8 -0
- package/examples/native-blake3/main.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/manifest.json +18 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.1/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.3/native.abi.json +142 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug +101 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/api.aug.md +160 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug +3 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/bindings.aug.md +8 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug +6 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/contracts.aug.md +13 -0
- package/examples/native-pytorch/.aug-spec/packages/@greenpandastudios/aug-pytorch/0.1.4/native.abi.json +142 -0
- package/examples/native-pytorch/AGENTS.md +5 -0
- package/examples/native-pytorch/aug.lock.json +309 -0
- package/examples/native-pytorch/main.aug +8 -0
- package/examples/native-pytorch/main.aug.md +13 -0
- package/examples/native-pytorch/tensors.aug +23 -0
- package/examples/native-pytorch/tensors.aug.md +35 -0
- package/examples/native-sqlite/.aug-spec/manifest.json +18 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.2/native.abi.json +100 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug +48 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/api.aug.md +91 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug +3 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/bindings.aug.md +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug +8 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/contracts.aug.md +22 -0
- package/examples/native-sqlite/.aug-spec/packages/@greenpandastudios/aug-sqlite/0.1.3/native.abi.json +100 -0
- package/examples/native-sqlite/AGENTS.md +5 -0
- package/examples/native-sqlite/aug.lock.json +236 -0
- package/examples/native-sqlite/database.aug +15 -0
- package/examples/native-sqlite/database.aug.md +27 -0
- package/examples/native-sqlite/main.aug +8 -0
- package/examples/native-sqlite/main.aug.md +13 -0
- package/examples/native-zlib/.aug-spec/manifest.json +16 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json +57 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug +29 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/api.aug.md +54 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug +4 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md +8 -0
- package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json +57 -0
- package/examples/native-zlib/AGENTS.md +5 -0
- package/examples/native-zlib/aug.lock.json +236 -0
- package/examples/native-zlib/compression.aug +15 -0
- package/examples/native-zlib/compression.aug.md +27 -0
- package/examples/native-zlib/main.aug +10 -0
- package/examples/native-zlib/main.aug.md +13 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/new-syntax/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/new-syntax/.aug-spec/manifest.json +3 -3
- package/examples/new-syntax/console.aug +2 -1
- package/examples/new-syntax/console.aug.md +7 -53
- package/examples/new-syntax/greeter.aug +2 -1
- package/examples/new-syntax/greeter.aug.md +10 -74
- package/examples/new-syntax/logger.aug +1 -0
- package/examples/new-syntax/logger.aug.md +6 -46
- package/examples/new-syntax/main.aug +1 -0
- package/examples/new-syntax/main.aug.md +9 -54
- package/examples/new-syntax/math.aug +2 -1
- package/examples/new-syntax/math.aug.md +3 -24
- package/examples/oidc-login/.aug-spec/manifest.json +13 -13
- package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
- package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
- package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
- package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
- package/examples/oidc-login/aug.lock.json +100 -0
- package/examples/oidc-login/client/contracts.aug +1 -0
- package/examples/oidc-login/client/contracts.aug.md +9 -66
- package/examples/oidc-login/client/endpoints.aug +6 -5
- package/examples/oidc-login/client/endpoints.aug.md +13 -145
- package/examples/oidc-login/client/export.aug +1 -0
- package/examples/oidc-login/client/export.aug.md +4 -24
- package/examples/oidc-login/client/login.aug +7 -6
- package/examples/oidc-login/client/login.aug.md +25 -303
- package/examples/oidc-login/client/logout.aug +5 -4
- package/examples/oidc-login/client/logout.aug.md +13 -135
- package/examples/oidc-login/client/protocol.aug +7 -6
- package/examples/oidc-login/client/protocol.aug.md +36 -283
- package/examples/oidc-login/client/session.aug +5 -4
- package/examples/oidc-login/client/session.aug.md +12 -139
- package/examples/oidc-login/client/views.aug +3 -2
- package/examples/oidc-login/client/views.aug.md +8 -57
- package/examples/oidc-login/common/export.aug +1 -0
- package/examples/oidc-login/common/export.aug.md +5 -27
- package/examples/oidc-login/common/headers.aug +4 -3
- package/examples/oidc-login/common/headers.aug.md +9 -67
- package/examples/oidc-login/common/keys.aug +6 -5
- package/examples/oidc-login/common/keys.aug.md +29 -165
- package/examples/oidc-login/common/settings.aug +2 -1
- package/examples/oidc-login/common/settings.aug.md +5 -39
- package/examples/oidc-login/common/views.aug +2 -1
- package/examples/oidc-login/common/views.aug.md +4 -28
- package/examples/oidc-login/main.aug +6 -16
- package/examples/oidc-login/main.aug.md +17 -146
- package/examples/oidc-login/main.yaml +7 -0
- package/examples/oidc-login/provider/authorization.aug +7 -6
- package/examples/oidc-login/provider/authorization.aug.md +23 -238
- package/examples/oidc-login/provider/contracts.aug +1 -0
- package/examples/oidc-login/provider/contracts.aug.md +23 -158
- package/examples/oidc-login/provider/credentials.aug +3 -2
- package/examples/oidc-login/provider/credentials.aug.md +9 -53
- package/examples/oidc-login/provider/discovery.aug +4 -3
- package/examples/oidc-login/provider/discovery.aug.md +11 -118
- package/examples/oidc-login/provider/export.aug +1 -0
- package/examples/oidc-login/provider/export.aug.md +6 -34
- package/examples/oidc-login/provider/token.aug +6 -5
- package/examples/oidc-login/provider/token.aug.md +16 -204
- package/examples/oidc-login/provider/userinfo.aug +4 -3
- package/examples/oidc-login/provider/userinfo.aug.md +10 -92
- package/examples/oidc-login/provider/views.aug +3 -2
- package/examples/oidc-login/provider/views.aug.md +8 -52
- package/examples/ownership/.aug-spec/manifest.json +1 -1
- package/examples/ownership/counter.aug +3 -2
- package/examples/ownership/counter.aug.md +12 -66
- package/examples/ownership/main.aug +1 -0
- package/examples/ownership/main.aug.md +6 -31
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug +37 -0
- package/examples/ownership-transfer/.aug-spec/august/0.21.0/io/contracts.aug.md +82 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
- package/examples/ownership-transfer/main.aug +1 -0
- package/examples/ownership-transfer/main.aug.md +9 -53
- package/examples/ownership-transfer/resource.aug +2 -1
- package/examples/ownership-transfer/resource.aug.md +12 -71
- package/examples/packages/app/.aug-spec/manifest.json +1 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
- package/examples/packages/app/main.aug +1 -0
- package/examples/packages/app/main.aug.md +6 -26
- package/examples/packages/math/.aug-spec/manifest.json +1 -1
- package/examples/packages/math/aug-package.json +1 -1
- package/examples/packages/math/src/arithmetic.aug +2 -1
- package/examples/packages/math/src/arithmetic.aug.md +9 -51
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +3 -13
- package/examples/visibility/.aug-spec/manifest.json +1 -1
- package/examples/visibility/counter.aug +4 -3
- package/examples/visibility/counter.aug.md +12 -68
- package/examples/visibility/main.aug +1 -0
- package/examples/visibility/main.aug.md +6 -32
- package/examples/weather-api/.aug-spec/manifest.json +8 -0
- package/examples/weather-api/AGENTS.md +17 -0
- package/examples/weather-api/README.md +19 -0
- package/examples/weather-api/forecasts.aug +47 -0
- package/examples/weather-api/forecasts.aug.md +32 -0
- package/examples/weather-api/main.aug +4 -0
- package/examples/weather-api/main.aug.md +15 -0
- package/examples/weather-api/main.yaml +5 -0
- package/examples/weather-api/weather.http +5 -0
- package/native/compiler-packs.json +43 -0
- package/package.json +4 -4
- package/runtime/aug_http.c +48 -21
- package/runtime/aug_http_ir.c +30 -0
- package/runtime/aug_http_ir.h +18 -0
- package/runtime/aug_ir.c +209 -0
- package/runtime/aug_ir.h +89 -0
- package/runtime/aug_json.c +6 -1
- package/runtime/aug_runtime.c +82 -16
- package/runtime/aug_runtime.h +16 -2
- package/runtime/aug_tasks.c +38 -7
- package/runtime/aug_values.c +12 -6
- package/scripts/bootstrap-native.mjs +184 -106
- package/scripts/native-setup.mjs +98 -0
- package/scripts/native-toolchain.mjs +28 -0
- package/src/ast.js +1 -1
- package/src/builtins.js +1 -1
- package/src/checker.js +369 -100
- package/src/cli.js +198 -26
- package/src/codegen.js +32 -7
- package/src/compiler-packs.js +66 -0
- package/src/config.js +3 -3
- package/src/contracts.js +10 -0
- package/src/editor.js +86 -22
- package/src/fixes.js +90 -2
- package/src/formatter.js +23 -10
- package/src/git-http.js +137 -0
- package/src/git-packages.js +118 -0
- package/src/help.js +33 -24
- package/src/http-contracts.js +14 -0
- package/src/http-policies.js +5 -5
- package/src/ir-types.js +5 -0
- package/src/ir-verify.js +277 -0
- package/src/ir.js +962 -0
- package/src/libraries.js +1 -1
- package/src/llvm-debug.js +101 -0
- package/src/llvm-native.js +152 -0
- package/src/llvm-platform.js +20 -0
- package/src/llvm.js +781 -0
- package/src/lsp.js +14 -5
- package/src/native-artifacts.js +207 -0
- package/src/native-bindings.js +189 -0
- package/src/native-contracts.js +295 -0
- package/src/native-declarations.js +68 -0
- package/src/native-facts.js +63 -0
- package/src/native.js +19 -13
- package/src/navigation.js +4 -2
- package/src/openapi.js +5 -4
- package/src/package-locking.js +88 -0
- package/src/package-manager.js +267 -68
- package/src/parser.js +32 -6
- package/src/policies.js +3 -3
- package/src/project-init.js +78 -4
- package/src/project.js +11 -9
- package/src/runtime-abi.js +23 -0
- package/src/runtime-adapters.js +18 -0
- package/src/schemas.js +24 -17
- package/src/semantic.js +54 -5
- package/src/snippets.js +60 -0
- package/src/spec-hints.js +56 -0
- package/src/spec-tree.js +241 -0
- package/src/spec.js +669 -305
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
- /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,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "august/0.21.0/io/contracts.aug · Modules and composition"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/approved-design/.aug-spec/august/0.21.0/io/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
|
+
# `august/0.21.0/io/contracts.aug`
|
|
14
|
+
|
|
15
|
+
[Modules and composition](../../../../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
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
30
|
+
capability Console:
|
|
31
|
+
/** Write one line of text. @param value Text to display. */
|
|
32
|
+
write<T>(T value) uses Console.write
|
|
33
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
34
|
+
SystemConsole() implements Console:
|
|
35
|
+
write<T>(T value):
|
|
36
|
+
print(value=value)
|
|
37
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
38
|
+
capability FileReader:
|
|
39
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
40
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
41
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
42
|
+
capability FileWriter:
|
|
43
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
44
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
45
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
46
|
+
LocalFiles() implements FileReader, FileWriter:
|
|
47
|
+
read(string path):
|
|
48
|
+
return read_file(path=path)
|
|
49
|
+
write(string path, string content):
|
|
50
|
+
write_file(path=path, content=content)
|
|
51
|
+
/** Read command-line input through an explicit dependency. */
|
|
52
|
+
capability Arguments:
|
|
53
|
+
read() returns List<string> uses Arguments.read
|
|
54
|
+
/** Native command-line arguments. */
|
|
55
|
+
ProcessArguments() implements Arguments:
|
|
56
|
+
read():
|
|
57
|
+
return arguments()
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```aug [Braces]
|
|
61
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
62
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
63
|
+
capability Console {
|
|
64
|
+
/** Write one line of text. @param value Text to display. */
|
|
65
|
+
write<T>(T value) uses Console.write
|
|
66
|
+
}
|
|
67
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
68
|
+
SystemConsole() implements Console {
|
|
69
|
+
write<T>(T value) {
|
|
70
|
+
print(value=value)
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
74
|
+
capability FileReader {
|
|
75
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
76
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
77
|
+
}
|
|
78
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
79
|
+
capability FileWriter {
|
|
80
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
81
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
82
|
+
}
|
|
83
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
84
|
+
LocalFiles() implements FileReader, FileWriter {
|
|
85
|
+
read(string path) {
|
|
86
|
+
return read_file(path=path)
|
|
87
|
+
}
|
|
88
|
+
write(string path, string content) {
|
|
89
|
+
write_file(path=path, content=content)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** Read command-line input through an explicit dependency. */
|
|
93
|
+
capability Arguments {
|
|
94
|
+
read() returns List<string> uses Arguments.read
|
|
95
|
+
}
|
|
96
|
+
/** Native command-line arguments. */
|
|
97
|
+
ProcessArguments() implements Arguments {
|
|
98
|
+
read() {
|
|
99
|
+
return arguments()
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
:::
|
|
105
|
+
|
|
106
|
+
::::
|
|
107
|
+
|
|
108
|
+
:::: example-spec
|
|
109
|
+
|
|
110
|
+
## Compiled specification {#specification}
|
|
111
|
+
|
|
112
|
+
### `Console` · capability interface · [source](contracts.md#code) {#symbol-Console}
|
|
113
|
+
|
|
114
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
115
|
+
|
|
116
|
+
#### `Console.write` · [source](contracts.md#code) {#symbol-Console.write}
|
|
117
|
+
|
|
118
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.md#symbol-Console.write).
|
|
119
|
+
|
|
120
|
+
### `SystemConsole` · class · [source](contracts.md#code) {#symbol-SystemConsole}
|
|
121
|
+
|
|
122
|
+
The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.md#symbol-Console).
|
|
123
|
+
|
|
124
|
+
#### `SystemConsole.write` · [source](contracts.md#code) {#symbol-SystemConsole.write}
|
|
125
|
+
|
|
126
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
|
|
127
|
+
|
|
128
|
+
### `FileReader` · capability interface · [source](contracts.md#code) {#symbol-FileReader}
|
|
129
|
+
|
|
130
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
131
|
+
|
|
132
|
+
#### `FileReader.read` · [source](contracts.md#code) {#symbol-FileReader.read}
|
|
133
|
+
|
|
134
|
+
Read text. It takes `path` as a string (File path).
|
|
135
|
+
|
|
136
|
+
It returns `string`. It can call [`FileReader.read`](contracts.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
|
|
137
|
+
|
|
138
|
+
### `FileWriter` · capability interface · [source](contracts.md#code) {#symbol-FileWriter}
|
|
139
|
+
|
|
140
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
141
|
+
|
|
142
|
+
#### `FileWriter.write` · [source](contracts.md#code) {#symbol-FileWriter.write}
|
|
143
|
+
|
|
144
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
|
|
145
|
+
|
|
146
|
+
### `LocalFiles` · class · [source](contracts.md#code) {#symbol-LocalFiles}
|
|
147
|
+
|
|
148
|
+
Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.md#symbol-FileReader) and [`FileWriter`](contracts.md#symbol-FileWriter).
|
|
149
|
+
|
|
150
|
+
#### `LocalFiles.read` · [source](contracts.md#code) {#symbol-LocalFiles.read}
|
|
151
|
+
|
|
152
|
+
Read text. It takes `path` as a string (File path). Failures can raise `FileError` (The file could not be read). It returns `read_file` with `path`.
|
|
153
|
+
|
|
154
|
+
#### `LocalFiles.write` · [source](contracts.md#code) {#symbol-LocalFiles.write}
|
|
155
|
+
|
|
156
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). Failures can raise `FileError` (Writing failed). It calls `write_file` with `path` and `content`.
|
|
157
|
+
|
|
158
|
+
### `Arguments` · capability interface · [source](contracts.md#code) {#symbol-Arguments}
|
|
159
|
+
|
|
160
|
+
Read command-line input through an explicit dependency.
|
|
161
|
+
|
|
162
|
+
#### `Arguments.read` · [source](contracts.md#code) {#symbol-Arguments.read}
|
|
163
|
+
|
|
164
|
+
It returns `List<string>`. It can call [`Arguments.read`](contracts.md#symbol-Arguments.read).
|
|
165
|
+
|
|
166
|
+
### `ProcessArguments` · class · [source](contracts.md#code) {#symbol-ProcessArguments}
|
|
167
|
+
|
|
168
|
+
Native command-line arguments. It implements [`Arguments`](contracts.md#symbol-Arguments).
|
|
169
|
+
|
|
170
|
+
#### `ProcessArguments.read` · [source](contracts.md#code) {#symbol-ProcessArguments.read}
|
|
171
|
+
|
|
172
|
+
It returns `arguments`.
|
|
173
|
+
|
|
174
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
175
|
+
|
|
176
|
+
::::
|
|
177
|
+
|
|
178
|
+
:::::
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
import Console from august.io
|
|
37
38
|
import Fruit from models
|
|
38
39
|
/** The application's explicit startup operation. */
|
|
@@ -41,13 +42,14 @@ interface Application:
|
|
|
41
42
|
start() uses Console.write
|
|
42
43
|
/** Construction stores dependencies; start performs the visible external work. */
|
|
43
44
|
ApplicationImpl(resolve Console console) implements Application:
|
|
44
|
-
start()
|
|
45
|
+
start():
|
|
45
46
|
fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
|
|
46
47
|
for item in fruit:
|
|
47
48
|
console.write(value=item.name)
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
```aug [Braces]
|
|
52
|
+
// aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
51
53
|
import Console from august.io
|
|
52
54
|
import Fruit from models
|
|
53
55
|
/** The application's explicit startup operation. */
|
|
@@ -57,7 +59,7 @@ interface Application {
|
|
|
57
59
|
}
|
|
58
60
|
/** Construction stores dependencies; start performs the visible external work. */
|
|
59
61
|
ApplicationImpl(resolve Console console) implements Application {
|
|
60
|
-
start()
|
|
62
|
+
start() {
|
|
61
63
|
fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
|
|
62
64
|
for item in fruit {
|
|
63
65
|
console.write(value=item.name)
|
|
@@ -74,91 +76,25 @@ ApplicationImpl(resolve Console console) implements Application {
|
|
|
74
76
|
|
|
75
77
|
## Compiled specification {#specification}
|
|
76
78
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### In this file
|
|
80
|
-
|
|
81
|
-
- [`Application`](app.md#symbol-Application) is an interface.
|
|
82
|
-
- [`ApplicationImpl`](app.md#symbol-ApplicationImpl) is a class implementing `Application`.
|
|
83
|
-
|
|
84
|
-
### `Application` {#symbol-Application}
|
|
85
|
-
|
|
86
|
-
[source](app.md#code)
|
|
87
|
-
|
|
88
|
-
Interface.
|
|
89
|
-
|
|
90
|
-
**Author documentation**
|
|
79
|
+
### `Application` · interface · [source](app.md#code) {#symbol-Application}
|
|
91
80
|
|
|
92
81
|
The application's explicit startup operation.
|
|
93
82
|
|
|
94
|
-
#### `Application.start` {#symbol-Application.start}
|
|
95
|
-
|
|
96
|
-
[source](app.md#code)
|
|
97
|
-
|
|
98
|
-
Returns: no value.
|
|
99
|
-
|
|
100
|
-
Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
101
|
-
|
|
102
|
-
Interface contract. A selected implementation supplies the behavior.
|
|
103
|
-
|
|
104
|
-
**Author documentation**
|
|
105
|
-
|
|
106
|
-
Writes the fruit names through the selected console.
|
|
107
|
-
|
|
108
|
-
### `ApplicationImpl` {#symbol-ApplicationImpl}
|
|
109
|
-
|
|
110
|
-
[source](app.md#code)
|
|
111
|
-
|
|
112
|
-
Behavioral class.
|
|
113
|
-
|
|
114
|
-
Satisfies [`Application`](app.md#symbol-Application).
|
|
115
|
-
|
|
116
|
-
**Author documentation**
|
|
117
|
-
|
|
118
|
-
Construction stores dependencies; start performs the visible external work.
|
|
119
|
-
|
|
120
|
-
**Inputs**
|
|
121
|
-
|
|
122
|
-
- `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it — stored as `console` and read-only after initialization.
|
|
123
|
-
|
|
124
|
-
#### `ApplicationImpl.start` {#symbol-ApplicationImpl.start}
|
|
125
|
-
|
|
126
|
-
[source](app.md#code)
|
|
127
|
-
|
|
128
|
-
Returns: no value.
|
|
129
|
-
|
|
130
|
-
Capabilities: [`console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
131
|
-
|
|
132
|
-
**What it does**
|
|
133
|
-
|
|
134
|
-
- Set `fruit` to a list containing call [`Fruit`](models.md#symbol-Fruit) with `code` = `1`; `name` = `"apple"`, call [`Fruit`](models.md#symbol-Fruit) with `name` = `"pear"`; `code` = `2`.
|
|
135
|
-
- For each `item` in a snapshot of `fruit`, in iteration order:
|
|
136
|
-
- Call [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `name` of `item`.
|
|
137
|
-
|
|
138
|
-
**Author documentation**
|
|
139
|
-
|
|
140
|
-
Writes the fruit names through the selected console.
|
|
141
|
-
|
|
142
|
-
### Dependencies used by this file
|
|
143
|
-
|
|
144
|
-
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
145
|
-
|
|
146
|
-
#### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
83
|
+
#### `Application.start` · [source](app.md#code) {#symbol-Application.start}
|
|
147
84
|
|
|
148
|
-
|
|
85
|
+
Writes the fruit names through the selected console. It can call [`Console.write`](../dependencies/august/0.21.0/io/contracts.md#symbol-Console.write).
|
|
149
86
|
|
|
150
|
-
|
|
87
|
+
### `ApplicationImpl` · class · [source](app.md#code) {#symbol-ApplicationImpl}
|
|
151
88
|
|
|
152
|
-
|
|
89
|
+
Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.md#symbol-Application). The `console` dependency is injected as [`Console`](../dependencies/august/0.21.0/io/contracts.md#symbol-Console) and stored read-only.
|
|
153
90
|
|
|
154
|
-
|
|
91
|
+
#### `ApplicationImpl.start` · [source](app.md#code) {#symbol-ApplicationImpl.start}
|
|
155
92
|
|
|
156
|
-
-
|
|
157
|
-
- Read `name` (`string`).
|
|
93
|
+
Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../dependencies/august/0.21.0/io/contracts.md#symbol-Console.write).
|
|
158
94
|
|
|
159
|
-
###
|
|
95
|
+
### Dependencies
|
|
160
96
|
|
|
161
|
-
|
|
97
|
+
It uses [`Console`](../dependencies/august/0.21.0/io/contracts.md#symbol-Console) ([`write`](../dependencies/august/0.21.0/io/contracts.md#symbol-Console.write)) from `august.io`. It uses [`Fruit`](models.md#symbol-Fruit) (`name`) from `models`.
|
|
162
98
|
|
|
163
99
|
::::
|
|
164
100
|
|
|
@@ -33,6 +33,7 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
export Application from app
|
|
37
38
|
export ApplicationImpl from app
|
|
38
39
|
export Fruit from models
|
|
@@ -41,6 +42,7 @@ export RangeError from numbers
|
|
|
41
42
|
```
|
|
42
43
|
|
|
43
44
|
```aug [Braces]
|
|
45
|
+
// aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
44
46
|
export Application from app
|
|
45
47
|
export ApplicationImpl from app
|
|
46
48
|
export Fruit from models
|
|
@@ -56,27 +58,11 @@ export RangeError from numbers
|
|
|
56
58
|
|
|
57
59
|
## Compiled specification {#specification}
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
### Exports
|
|
60
62
|
|
|
61
|
-
|
|
63
|
+
Export the declaration `Application` from [`app.aug`](app.md#symbol-Application). Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl). Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit). Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
- Export `ApplicationImpl` from this folder.
|
|
65
|
-
- Export `Fruit` from this folder.
|
|
66
|
-
- Export `double` from this folder.
|
|
67
|
-
- Export `RangeError` from this folder.
|
|
68
|
-
|
|
69
|
-
### Folder exports
|
|
70
|
-
|
|
71
|
-
- Export the declaration `Application` from [`app.aug`](app.md#symbol-Application).
|
|
72
|
-
- Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl).
|
|
73
|
-
- Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit).
|
|
74
|
-
- Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
|
|
75
|
-
- Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
|
|
76
|
-
|
|
77
|
-
### Shared language rules
|
|
78
|
-
|
|
79
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
65
|
+
Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
|
|
80
66
|
|
|
81
67
|
::::
|
|
82
68
|
|
|
@@ -33,11 +33,13 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
/** Immutable fruit data, with public construction labels and structural equality. */
|
|
37
38
|
record Fruit(int code, string name)
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
```aug [Braces]
|
|
42
|
+
// aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
41
43
|
/** Immutable fruit data, with public construction labels and structural equality. */
|
|
42
44
|
record Fruit(int code, string name)
|
|
43
45
|
```
|
|
@@ -50,30 +52,9 @@ record Fruit(int code, string name)
|
|
|
50
52
|
|
|
51
53
|
## Compiled specification {#specification}
|
|
52
54
|
|
|
53
|
-
|
|
55
|
+
### `Fruit` · immutable record · [source](models.md#code) {#symbol-Fruit}
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
- [`Fruit`](models.md#symbol-Fruit) is an immutable record.
|
|
58
|
-
|
|
59
|
-
### `Fruit` {#symbol-Fruit}
|
|
60
|
-
|
|
61
|
-
[source](models.md#code)
|
|
62
|
-
|
|
63
|
-
Immutable record.
|
|
64
|
-
|
|
65
|
-
**Author documentation**
|
|
66
|
-
|
|
67
|
-
Immutable fruit data, with public construction labels and structural equality.
|
|
68
|
-
|
|
69
|
-
**Inputs**
|
|
70
|
-
|
|
71
|
-
- `code` (`int`) — required labeled input — stored as `code` and read-only after initialization.
|
|
72
|
-
- `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
|
|
73
|
-
|
|
74
|
-
### Shared language rules
|
|
75
|
-
|
|
76
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
57
|
+
Immutable fruit data, with public construction labels and structural equality. It takes `code` as an integer, kept read-only and `name` as a string, kept read-only.
|
|
77
58
|
|
|
78
59
|
::::
|
|
79
60
|
|
|
@@ -33,12 +33,13 @@ pageClass: aug-example-page
|
|
|
33
33
|
::: code-group
|
|
34
34
|
|
|
35
35
|
```aug [Indentation]
|
|
36
|
+
// aug-spec: "numbers.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
36
37
|
/** Raised when an input is outside the operation's domain. */
|
|
37
38
|
RangeError(int value) implements Error:
|
|
38
39
|
pass
|
|
39
40
|
/** A pure validation layer, shared by any compatible callable. */
|
|
40
41
|
interceptor Positive<T>():
|
|
41
|
-
around(int amount) returns T
|
|
42
|
+
around(int amount) returns T:
|
|
42
43
|
if amount < 0:
|
|
43
44
|
throw RangeError(value=amount)
|
|
44
45
|
return next()
|
|
@@ -49,7 +50,7 @@ interceptor Positive<T>():
|
|
|
49
50
|
* @throws RangeError A validation layer rejected a negative input.
|
|
50
51
|
*/
|
|
51
52
|
[Positive]
|
|
52
|
-
double(int amount)
|
|
53
|
+
double(int amount):
|
|
53
54
|
return amount * 2
|
|
54
55
|
test double:
|
|
55
56
|
when "positive":
|
|
@@ -65,13 +66,14 @@ test double:
|
|
|
65
66
|
```
|
|
66
67
|
|
|
67
68
|
```aug [Braces]
|
|
69
|
+
// aug-spec: "numbers.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
68
70
|
/** Raised when an input is outside the operation's domain. */
|
|
69
71
|
RangeError(int value) implements Error {
|
|
70
72
|
pass
|
|
71
73
|
}
|
|
72
74
|
/** A pure validation layer, shared by any compatible callable. */
|
|
73
75
|
interceptor Positive<T>() {
|
|
74
|
-
around(int amount) returns T
|
|
76
|
+
around(int amount) returns T {
|
|
75
77
|
if amount < 0 {
|
|
76
78
|
throw RangeError(value=amount)
|
|
77
79
|
}
|
|
@@ -85,7 +87,7 @@ interceptor Positive<T>() {
|
|
|
85
87
|
* @throws RangeError A validation layer rejected a negative input.
|
|
86
88
|
*/
|
|
87
89
|
[Positive]
|
|
88
|
-
double(int amount)
|
|
90
|
+
double(int amount) {
|
|
89
91
|
return amount * 2
|
|
90
92
|
}
|
|
91
93
|
test double {
|
|
@@ -115,133 +117,41 @@ test double {
|
|
|
115
117
|
|
|
116
118
|
## Compiled specification {#specification}
|
|
117
119
|
|
|
118
|
-
|
|
120
|
+
### `RangeError` · class · [source](numbers.md#code) {#symbol-RangeError}
|
|
119
121
|
|
|
120
|
-
|
|
122
|
+
Raised when an input is outside the operation's domain. It implements `Error`. It takes `value` as an integer, kept read-only.
|
|
121
123
|
|
|
122
|
-
|
|
123
|
-
- [`Positive`](numbers.md#symbol-Positive) is an interceptor.
|
|
124
|
-
- [`double`](numbers.md#symbol-double) is a function returning `int`.
|
|
125
|
-
- [`test double`](numbers.md#symbol-test-20-double) is a same-file test suite.
|
|
124
|
+
### `Positive` · interceptor · [source](numbers.md#code) {#symbol-Positive}
|
|
126
125
|
|
|
127
|
-
|
|
126
|
+
A pure validation layer, shared by any compatible callable. The type parameters are `T`. Creates one interceptor per invocation. Its around operation may delegate once or finish early.
|
|
128
127
|
|
|
129
|
-
[source](numbers.md#code)
|
|
128
|
+
#### `Positive.around` · [source](numbers.md#code) {#symbol-Positive.around}
|
|
130
129
|
|
|
131
|
-
|
|
130
|
+
It takes `amount` as an integer. Failures can raise [`RangeError`](numbers.md#symbol-RangeError). If `amount` is negative, it raises a [`RangeError`](numbers.md#symbol-RangeError) with `value` from `amount`. It returns `next`.
|
|
132
131
|
|
|
133
|
-
|
|
132
|
+
### `double` · [source](numbers.md#code) {#symbol-double}
|
|
134
133
|
|
|
135
|
-
|
|
134
|
+
Double a nonnegative amount. It takes `amount` as an integer (Integer to double). It returns `int` — Twice the amount, with defined integer wrapping. Failures can raise [`RangeError`](numbers.md#symbol-RangeError) (A validation layer rejected a negative input).
|
|
136
135
|
|
|
137
|
-
|
|
136
|
+
Layers run in the declared order. Call [`Positive.around`](numbers.md#symbol-Positive.around). It returns `amount` times `2`.
|
|
138
137
|
|
|
139
|
-
|
|
138
|
+
### `test double` · [source](numbers.md#code) {#symbol-test-20-double}
|
|
140
139
|
|
|
141
|
-
|
|
140
|
+
Tests [`double`](numbers.md#symbol-double). Each case gets fresh setup and dependencies.
|
|
142
141
|
|
|
143
|
-
|
|
142
|
+
#### `positive`
|
|
144
143
|
|
|
145
|
-
[source](numbers.md#code)
|
|
144
|
+
##### `doubles` · [source](numbers.md#code)
|
|
146
145
|
|
|
147
|
-
|
|
146
|
+
Run once for each row of a tuple containing `0`, `0`; a tuple containing `3`, `6`; a tuple containing `7`, `14`. Bind row positions to `input`, `expected`. The test requires [`double`](numbers.md#symbol-double) with `amount` from `input` equals `expected`.
|
|
148
147
|
|
|
149
|
-
|
|
148
|
+
##### `rejects_negative` · [source](numbers.md#code)
|
|
150
149
|
|
|
151
|
-
|
|
150
|
+
It sets `rejected` to `false`.
|
|
152
151
|
|
|
153
|
-
|
|
152
|
+
It tries to call [`double`](numbers.md#symbol-double) with `amount` `-1`. If this work raises [`RangeError`](numbers.md#symbol-RangeError) as `error`, it sets `rejected` to `error.value` equals `-1`. The test requires `rejected` is true.
|
|
154
153
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
#### `Positive.around` {#symbol-Positive.around}
|
|
158
|
-
|
|
159
|
-
[source](numbers.md#code)
|
|
160
|
-
|
|
161
|
-
**Inputs**
|
|
162
|
-
|
|
163
|
-
- `amount` (`int`) — required labeled input.
|
|
164
|
-
|
|
165
|
-
Returns: `T`.
|
|
166
|
-
|
|
167
|
-
Can fail with `RangeError`. Callers must catch or propagate these errors.
|
|
168
|
-
|
|
169
|
-
**What it does**
|
|
170
|
-
|
|
171
|
-
- If `amount` is less than `0`:
|
|
172
|
-
- Fail with call [`RangeError`](numbers.md#symbol-RangeError) with `value` = `amount`. Transfer control to a matching catch or propagate the failure.
|
|
173
|
-
- Return call `next`.
|
|
174
|
-
|
|
175
|
-
### `double` {#symbol-double}
|
|
176
|
-
|
|
177
|
-
[source](numbers.md#code)
|
|
178
|
-
|
|
179
|
-
**Inputs**
|
|
180
|
-
|
|
181
|
-
- `amount` (`int`) — required labeled input.
|
|
182
|
-
|
|
183
|
-
Returns: `int`.
|
|
184
|
-
|
|
185
|
-
Can fail with `RangeError`. Callers must catch or propagate these errors.
|
|
186
|
-
|
|
187
|
-
**Interceptors, in execution order**
|
|
188
|
-
|
|
189
|
-
1. Call [`Positive.around`](numbers.md#symbol-Positive.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
|
|
190
|
-
|
|
191
|
-
The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
|
|
192
|
-
|
|
193
|
-
**What it does**
|
|
194
|
-
|
|
195
|
-
- Return `amount` times `2`.
|
|
196
|
-
|
|
197
|
-
**Author documentation**
|
|
198
|
-
|
|
199
|
-
Double a nonnegative amount.
|
|
200
|
-
|
|
201
|
-
**Returns** Twice the amount, with defined integer wrapping.
|
|
202
|
-
|
|
203
|
-
**Parameters**
|
|
204
|
-
- `amount`: Integer to double.
|
|
205
|
-
|
|
206
|
-
**Throws**
|
|
207
|
-
- `RangeError`: A validation layer rejected a negative input.
|
|
208
|
-
|
|
209
|
-
### `test double` {#symbol-test-20-double}
|
|
210
|
-
|
|
211
|
-
[source](numbers.md#code)
|
|
212
|
-
|
|
213
|
-
Same-file function tests for [`double`](numbers.md#symbol-double). Each case gets isolated setup and dependency bindings.
|
|
214
|
-
|
|
215
|
-
#### Group `positive`
|
|
216
|
-
|
|
217
|
-
##### `doubles`
|
|
218
|
-
|
|
219
|
-
[source](numbers.md#code)
|
|
220
|
-
|
|
221
|
-
Run once for each row of a tuple containing `0`, `0`; a tuple containing `3`, `6`; a tuple containing `7`, `14`. Bind row positions to `input`, `expected`.
|
|
222
|
-
|
|
223
|
-
- Call `assert` with (call [`double`](numbers.md#symbol-double) with `amount` = `input` equals `expected`).
|
|
224
|
-
|
|
225
|
-
##### `rejects_negative`
|
|
226
|
-
|
|
227
|
-
[source](numbers.md#code)
|
|
228
|
-
|
|
229
|
-
- Set `rejected` of type `bool` to `false`.
|
|
230
|
-
- Try these operations:
|
|
231
|
-
- Call [`double`](numbers.md#symbol-double) with `amount` = `-1`.
|
|
232
|
-
- If they fail with [`RangeError`](numbers.md#symbol-RangeError), name the failure `error` and recover:
|
|
233
|
-
- Set `rejected` to `value` of `error` equals `-1`.
|
|
234
|
-
- Call `assert` with `rejected` = `rejected`.
|
|
235
|
-
|
|
236
|
-
### Built-in operations used by this file
|
|
237
|
-
|
|
238
|
-
- `assert` (`condition`: `bool`) → `void`: Assert a bool in a test case or its setup. Catching an assertion failure cannot make the case pass; every case must execute an assertion.
|
|
239
|
-
|
|
240
|
-
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
241
|
-
|
|
242
|
-
### Shared language rules
|
|
243
|
-
|
|
244
|
-
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
154
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
245
155
|
|
|
246
156
|
::::
|
|
247
157
|
|
|
@@ -10,9 +10,17 @@ outline: [2, 3]
|
|
|
10
10
|
|
|
11
11
|
# Modules and composition
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Startup combines narrow domain exports with a scoped counter provider. Records and validation keep data and checked failures visible.
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
|
|
16
|
+
|
|
17
|
+
## Follow the program
|
|
18
|
+
|
|
19
|
+
Read [`main.aug`](main.md). Follow the domain imports, provider choices, explicit scope, and checked failure before opening the implementation files.
|
|
20
|
+
|
|
21
|
+
Read [`domain/export.aug`](domain/export.md). The export file gives callers the folder's deliberate public API.
|
|
22
|
+
|
|
23
|
+
Read [`domain/numbers.aug`](domain/numbers.md). The validation interceptor rejects a negative input. Tests cover successful doubling and recovery from that failure.
|
|
16
24
|
|
|
17
25
|
## Project files
|
|
18
26
|
|
|
@@ -27,13 +35,14 @@ Read a file below to see its highlighted source and the Markdown produced by `au
|
|
|
27
35
|
|
|
28
36
|
## Try this project
|
|
29
37
|
|
|
30
|
-
|
|
38
|
+
[Download this project](/downloads/approved-design.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
|
|
31
39
|
|
|
32
40
|
```sh
|
|
33
|
-
|
|
34
|
-
aug
|
|
35
|
-
aug
|
|
36
|
-
aug
|
|
41
|
+
cd approved-design
|
|
42
|
+
aug check .
|
|
43
|
+
aug spec .
|
|
44
|
+
aug test .
|
|
45
|
+
aug run .
|
|
37
46
|
```
|
|
38
47
|
|
|
39
48
|
[Browse all examples](../index.md)
|