@greenpandastudios/aug-cli 0.19.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/LICENSE +21 -0
- package/README.md +13 -0
- package/THIRD_PARTY_NOTICES.md +18 -0
- package/bin/aug.mjs +3 -0
- package/docs/api/crypto.md +351 -0
- package/docs/api/io.md +207 -0
- package/docs/api/json.md +21 -0
- package/docs/api/memory.md +109 -0
- package/docs/api/time.md +54 -0
- package/docs/api/web.md +184 -0
- package/docs/assets/benchmarks/execution.svg +2978 -0
- package/docs/assets/benchmarks/http.svg +1674 -0
- package/docs/assets/benchmarks/improvements.svg +2315 -0
- package/docs/assets/benchmarks/memory.svg +1891 -0
- package/docs/benchmark-baseline.json +1087 -0
- package/docs/benchmark-results.json +91123 -0
- package/docs/benchmarks.json +38 -0
- package/docs/compatibility.md +42 -0
- package/docs/concurrency-implementation.md +18 -0
- package/docs/diagnostics.md +97 -0
- package/docs/docker.md +35 -0
- package/docs/example-projects.json +26 -0
- package/docs/examples/approved-design/counters.md +253 -0
- package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/approved-design/domain/app.md +165 -0
- package/docs/examples/approved-design/domain/export.md +83 -0
- package/docs/examples/approved-design/domain/models.md +80 -0
- package/docs/examples/approved-design/domain/numbers.md +248 -0
- package/docs/examples/approved-design/index.md +39 -0
- package/docs/examples/approved-design/main-yaml.md +24 -0
- package/docs/examples/approved-design/main.md +215 -0
- package/docs/examples/benchmark/index.md +33 -0
- package/docs/examples/benchmark/main-yaml.md +17 -0
- package/docs/examples/benchmark/main.md +117 -0
- package/docs/examples/cli-args/index.md +32 -0
- package/docs/examples/cli-args/main.md +107 -0
- package/docs/examples/collections/index.md +32 -0
- package/docs/examples/collections/main.md +118 -0
- package/docs/examples/collections-benchmark/index.md +34 -0
- package/docs/examples/collections-benchmark/main.md +115 -0
- package/docs/examples/cpu-benchmark/index.md +34 -0
- package/docs/examples/cpu-benchmark/main.md +90 -0
- package/docs/examples/developer-workflow/calculator.md +357 -0
- package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/developer-workflow/index.md +37 -0
- package/docs/examples/developer-workflow/logging/console.md +124 -0
- package/docs/examples/developer-workflow/logging/export.md +70 -0
- package/docs/examples/developer-workflow/logging/logger.md +111 -0
- package/docs/examples/developer-workflow/main.md +172 -0
- package/docs/examples/drop/index.md +33 -0
- package/docs/examples/drop/main.md +85 -0
- package/docs/examples/drop/resource.md +95 -0
- package/docs/examples/errors/errors.md +85 -0
- package/docs/examples/errors/index.md +33 -0
- package/docs/examples/errors/main.md +92 -0
- package/docs/examples/ffi/index.md +33 -0
- package/docs/examples/ffi/main.md +75 -0
- package/docs/examples/ffi/native.md +93 -0
- package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/generic-di/index.md +33 -0
- package/docs/examples/generic-di/main.md +111 -0
- package/docs/examples/generic-di/types.md +180 -0
- package/docs/examples/generics/index.md +33 -0
- package/docs/examples/generics/main.md +120 -0
- package/docs/examples/generics/types.md +189 -0
- package/docs/examples/hello/app/export.md +67 -0
- package/docs/examples/hello/app/greeter.md +190 -0
- package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/hello/index.md +37 -0
- package/docs/examples/hello/logging/console.md +121 -0
- package/docs/examples/hello/logging/export.md +71 -0
- package/docs/examples/hello/logging/logger.md +120 -0
- package/docs/examples/hello/main.md +115 -0
- package/docs/examples/http-benchmark/index.md +35 -0
- package/docs/examples/http-benchmark/main.md +79 -0
- package/docs/examples/http-benchmark/routes.md +88 -0
- package/docs/examples/index.md +60 -0
- package/docs/examples/interceptors/app.md +250 -0
- package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/interceptors/index.md +35 -0
- package/docs/examples/interceptors/interceptors.md +284 -0
- package/docs/examples/interceptors/logging.md +155 -0
- package/docs/examples/interceptors/main.md +162 -0
- package/docs/examples/json-benchmark/data.md +71 -0
- package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
- package/docs/examples/json-benchmark/index.md +35 -0
- package/docs/examples/json-benchmark/main.md +131 -0
- package/docs/examples/new-syntax/console.md +118 -0
- package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/new-syntax/greeter.md +145 -0
- package/docs/examples/new-syntax/index.md +36 -0
- package/docs/examples/new-syntax/logger.md +111 -0
- package/docs/examples/new-syntax/main.md +135 -0
- package/docs/examples/new-syntax/math.md +79 -0
- package/docs/examples/oidc-login/client/contracts.md +151 -0
- package/docs/examples/oidc-login/client/endpoints.md +263 -0
- package/docs/examples/oidc-login/client/export.md +107 -0
- package/docs/examples/oidc-login/client/login.md +515 -0
- package/docs/examples/oidc-login/client/logout.md +249 -0
- package/docs/examples/oidc-login/client/protocol.md +595 -0
- package/docs/examples/oidc-login/client/session.md +297 -0
- package/docs/examples/oidc-login/client/views.md +144 -0
- package/docs/examples/oidc-login/common/export.md +115 -0
- package/docs/examples/oidc-login/common/headers.md +162 -0
- package/docs/examples/oidc-login/common/keys.md +336 -0
- package/docs/examples/oidc-login/common/settings.md +116 -0
- package/docs/examples/oidc-login/common/views.md +103 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
- package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
- package/docs/examples/oidc-login/index.md +57 -0
- package/docs/examples/oidc-login/main-yaml.md +28 -0
- package/docs/examples/oidc-login/main.md +283 -0
- package/docs/examples/oidc-login/provider/authorization.md +457 -0
- package/docs/examples/oidc-login/provider/contracts.md +267 -0
- package/docs/examples/oidc-login/provider/credentials.md +148 -0
- package/docs/examples/oidc-login/provider/discovery.md +215 -0
- package/docs/examples/oidc-login/provider/export.md +131 -0
- package/docs/examples/oidc-login/provider/token.md +364 -0
- package/docs/examples/oidc-login/provider/userinfo.md +228 -0
- package/docs/examples/oidc-login/provider/views.md +137 -0
- package/docs/examples/ownership/counter.md +140 -0
- package/docs/examples/ownership/index.md +33 -0
- package/docs/examples/ownership/main.md +90 -0
- package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
- package/docs/examples/ownership-transfer/index.md +33 -0
- package/docs/examples/ownership-transfer/main.md +125 -0
- package/docs/examples/ownership-transfer/resource.md +150 -0
- package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
- package/docs/examples/packages-app/index.md +34 -0
- package/docs/examples/packages-app/main-yaml.md +18 -0
- package/docs/examples/packages-app/main.md +80 -0
- package/docs/examples/packages-math/aug-package-json.md +24 -0
- package/docs/examples/packages-math/index.md +36 -0
- package/docs/examples/packages-math/package-json.md +25 -0
- package/docs/examples/packages-math/src/arithmetic.md +121 -0
- package/docs/examples/packages-math/src/export.md +63 -0
- package/docs/examples/startup-benchmark/index.md +34 -0
- package/docs/examples/startup-benchmark/main.md +68 -0
- package/docs/examples/visibility/counter.md +142 -0
- package/docs/examples/visibility/index.md +33 -0
- package/docs/examples/visibility/main.md +96 -0
- package/docs/examples.json +47 -0
- package/docs/getting-started.md +5 -0
- package/docs/grammar.md +136 -0
- package/docs/implementation-map.md +106 -0
- package/docs/index.md +46 -0
- package/docs/language-conformance.md +30 -0
- package/docs/language-constructs.md +1461 -0
- package/docs/language-design-audit.md +147 -0
- package/docs/maintaining-docs.md +43 -0
- package/docs/packages.md +184 -0
- package/docs/performance.md +535 -0
- package/docs/production-readiness.md +39 -0
- package/docs/reference.md +361 -0
- package/docs/release-review.md +23 -0
- package/docs/releasing.md +79 -0
- package/docs/roadmap.md +13 -0
- package/docs/specifications.md +86 -0
- package/docs/testing.md +120 -0
- package/docs/tooling.md +197 -0
- package/docs/web-implementation-plan.md +39 -0
- package/docs/web-library-gaps.md +27 -0
- package/docs/web.md +197 -0
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/approved-design/.aug-spec/manifest.json +14 -0
- package/examples/approved-design/counters.aug +22 -0
- package/examples/approved-design/counters.aug.md +177 -0
- package/examples/approved-design/domain/app.aug +12 -0
- package/examples/approved-design/domain/app.aug.md +97 -0
- package/examples/approved-design/domain/export.aug +5 -0
- package/examples/approved-design/domain/export.aug.md +25 -0
- package/examples/approved-design/domain/models.aug +2 -0
- package/examples/approved-design/domain/models.aug.md +30 -0
- package/examples/approved-design/domain/numbers.aug +29 -0
- package/examples/approved-design/domain/numbers.aug.md +141 -0
- package/examples/approved-design/main.aug +26 -0
- package/examples/approved-design/main.aug.md +108 -0
- package/examples/approved-design/main.yaml +8 -0
- package/examples/benchmark/.aug-spec/manifest.json +7 -0
- package/examples/benchmark/main.aug +17 -0
- package/examples/benchmark/main.aug.md +43 -0
- package/examples/benchmark/main.yaml +1 -0
- package/examples/cli-args/.aug-spec/manifest.json +7 -0
- package/examples/cli-args/main.aug +15 -0
- package/examples/cli-args/main.aug.md +38 -0
- package/examples/collections/.aug-spec/manifest.json +7 -0
- package/examples/collections/main.aug +18 -0
- package/examples/collections/main.aug.md +43 -0
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
- package/examples/developer-workflow/calculator.aug +55 -0
- package/examples/developer-workflow/calculator.aug.md +228 -0
- package/examples/developer-workflow/logging/console.aug +8 -0
- package/examples/developer-workflow/logging/console.aug.md +67 -0
- package/examples/developer-workflow/logging/export.aug +2 -0
- package/examples/developer-workflow/logging/export.aug.md +19 -0
- package/examples/developer-workflow/logging/logger.aug +6 -0
- package/examples/developer-workflow/logging/logger.aug.md +57 -0
- package/examples/developer-workflow/main.aug +25 -0
- package/examples/developer-workflow/main.aug.md +79 -0
- package/examples/drop/.aug-spec/manifest.json +8 -0
- package/examples/drop/main.aug +3 -0
- package/examples/drop/main.aug.md +35 -0
- package/examples/drop/resource.aug +8 -0
- package/examples/drop/resource.aug.md +44 -0
- package/examples/errors/.aug-spec/manifest.json +8 -0
- package/examples/errors/errors.aug +6 -0
- package/examples/errors/errors.aug.md +33 -0
- package/examples/errors/main.aug +7 -0
- package/examples/errors/main.aug.md +36 -0
- package/examples/ffi/.aug-spec/manifest.json +8 -0
- package/examples/ffi/main.aug +2 -0
- package/examples/ffi/main.aug.md +27 -0
- package/examples/ffi/native.aug +6 -0
- package/examples/ffi/native.aug.md +43 -0
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/generic-di/.aug-spec/manifest.json +10 -0
- package/examples/generic-di/main.aug +9 -0
- package/examples/generic-di/main.aug.md +49 -0
- package/examples/generic-di/types.aug +17 -0
- package/examples/generic-di/types.aug.md +124 -0
- package/examples/generics/.aug-spec/manifest.json +8 -0
- package/examples/generics/main.aug +9 -0
- package/examples/generics/main.aug.md +58 -0
- package/examples/generics/types.aug +19 -0
- package/examples/generics/types.aug.md +132 -0
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/hello/.aug-spec/manifest.json +14 -0
- package/examples/hello/app/export.aug +1 -0
- package/examples/hello/app/export.aug.md +17 -0
- package/examples/hello/app/greeter.aug +22 -0
- package/examples/hello/app/greeter.aug.md +109 -0
- package/examples/hello/logging/console.aug +7 -0
- package/examples/hello/logging/console.aug.md +65 -0
- package/examples/hello/logging/export.aug +2 -0
- package/examples/hello/logging/export.aug.md +19 -0
- package/examples/hello/logging/logger.aug +9 -0
- package/examples/hello/logging/logger.aug.md +59 -0
- package/examples/hello/main.aug +9 -0
- package/examples/hello/main.aug.md +49 -0
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/interceptors/.aug-spec/manifest.json +12 -0
- package/examples/interceptors/app.aug +28 -0
- package/examples/interceptors/app.aug.md +162 -0
- package/examples/interceptors/interceptors.aug +40 -0
- package/examples/interceptors/interceptors.aug.md +180 -0
- package/examples/interceptors/logging.aug +12 -0
- package/examples/interceptors/logging.aug.md +96 -0
- package/examples/interceptors/main.aug +22 -0
- package/examples/interceptors/main.aug.md +76 -0
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/new-syntax/.aug-spec/manifest.json +13 -0
- package/examples/new-syntax/console.aug +7 -0
- package/examples/new-syntax/console.aug.md +63 -0
- package/examples/new-syntax/greeter.aug +10 -0
- package/examples/new-syntax/greeter.aug.md +89 -0
- package/examples/new-syntax/logger.aug +6 -0
- package/examples/new-syntax/logger.aug.md +57 -0
- package/examples/new-syntax/main.aug +12 -0
- package/examples/new-syntax/main.aug.md +64 -0
- package/examples/new-syntax/math.aug +3 -0
- package/examples/new-syntax/math.aug.md +29 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
- package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
- package/examples/oidc-login/.aug-spec/manifest.json +40 -0
- package/examples/oidc-login/README.md +29 -0
- package/examples/oidc-login/client/contracts.aug +7 -0
- package/examples/oidc-login/client/contracts.aug.md +80 -0
- package/examples/oidc-login/client/endpoints.aug +21 -0
- package/examples/oidc-login/client/endpoints.aug.md +161 -0
- package/examples/oidc-login/client/export.aug +7 -0
- package/examples/oidc-login/client/export.aug.md +29 -0
- package/examples/oidc-login/client/login.aug +58 -0
- package/examples/oidc-login/client/login.aug.md +331 -0
- package/examples/oidc-login/client/logout.aug +18 -0
- package/examples/oidc-login/client/logout.aug.md +150 -0
- package/examples/oidc-login/client/protocol.aug +106 -0
- package/examples/oidc-login/client/protocol.aug.md +326 -0
- package/examples/oidc-login/client/session.aug +34 -0
- package/examples/oidc-login/client/session.aug.md +155 -0
- package/examples/oidc-login/client/views.aug +21 -0
- package/examples/oidc-login/client/views.aug.md +68 -0
- package/examples/oidc-login/common/export.aug +9 -0
- package/examples/oidc-login/common/export.aug.md +33 -0
- package/examples/oidc-login/common/headers.aug +11 -0
- package/examples/oidc-login/common/headers.aug.md +79 -0
- package/examples/oidc-login/common/keys.aug +37 -0
- package/examples/oidc-login/common/keys.aug.md +207 -0
- package/examples/oidc-login/common/settings.aug +4 -0
- package/examples/oidc-login/common/settings.aug.md +47 -0
- package/examples/oidc-login/common/views.aug +16 -0
- package/examples/oidc-login/common/views.aug.md +34 -0
- package/examples/oidc-login/main.aug +39 -0
- package/examples/oidc-login/main.aug.md +166 -0
- package/examples/oidc-login/main.yaml +12 -0
- package/examples/oidc-login/provider/authorization.aug +59 -0
- package/examples/oidc-login/provider/authorization.aug.md +264 -0
- package/examples/oidc-login/provider/contracts.aug +15 -0
- package/examples/oidc-login/provider/contracts.aug.md +193 -0
- package/examples/oidc-login/provider/credentials.aug +10 -0
- package/examples/oidc-login/provider/credentials.aug.md +64 -0
- package/examples/oidc-login/provider/discovery.aug +13 -0
- package/examples/oidc-login/provider/discovery.aug.md +133 -0
- package/examples/oidc-login/provider/export.aug +13 -0
- package/examples/oidc-login/provider/export.aug.md +41 -0
- package/examples/oidc-login/provider/token.aug +37 -0
- package/examples/oidc-login/provider/token.aug.md +223 -0
- package/examples/oidc-login/provider/userinfo.aug +26 -0
- package/examples/oidc-login/provider/userinfo.aug.md +104 -0
- package/examples/oidc-login/provider/views.aug +18 -0
- package/examples/oidc-login/provider/views.aug.md +63 -0
- package/examples/ownership/.aug-spec/manifest.json +8 -0
- package/examples/ownership/counter.aug +14 -0
- package/examples/ownership/counter.aug.md +85 -0
- package/examples/ownership/main.aug +4 -0
- package/examples/ownership/main.aug.md +38 -0
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
- package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
- package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
- package/examples/ownership-transfer/main.aug +9 -0
- package/examples/ownership-transfer/main.aug.md +63 -0
- package/examples/ownership-transfer/resource.aug +16 -0
- package/examples/ownership-transfer/resource.aug.md +89 -0
- package/examples/packages/README.md +15 -0
- package/examples/packages/app/.aug-spec/manifest.json +9 -0
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
- package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
- package/examples/packages/app/main.aug +2 -0
- package/examples/packages/app/main.aug.md +33 -0
- package/examples/packages/app/main.yaml +2 -0
- package/examples/packages/math/.aug-spec/manifest.json +8 -0
- package/examples/packages/math/README.md +3 -0
- package/examples/packages/math/aug-package.json +8 -0
- package/examples/packages/math/package.json +9 -0
- package/examples/packages/math/src/arithmetic.aug +8 -0
- package/examples/packages/math/src/arithmetic.aug.md +63 -0
- package/examples/packages/math/src/export.aug +1 -0
- package/examples/packages/math/src/export.aug.md +17 -0
- package/examples/visibility/.aug-spec/manifest.json +8 -0
- package/examples/visibility/counter.aug +14 -0
- package/examples/visibility/counter.aug.md +87 -0
- package/examples/visibility/main.aug +7 -0
- package/examples/visibility/main.aug.md +39 -0
- package/package.json +50 -0
- package/runtime/aug_crypto.c +121 -0
- package/runtime/aug_html.c +93 -0
- package/runtime/aug_http.c +829 -0
- package/runtime/aug_json.c +165 -0
- package/runtime/aug_runtime.c +792 -0
- package/runtime/aug_runtime.h +245 -0
- package/runtime/aug_tasks.c +172 -0
- package/runtime/aug_time.c +5 -0
- package/runtime/aug_values.c +80 -0
- package/scripts/bootstrap-native.mjs +121 -0
- package/scripts/native-dependencies.lock.json +65 -0
- package/scripts/native-home.mjs +11 -0
- package/src/actions.js +109 -0
- package/src/ast.js +19 -0
- package/src/builtins.js +93 -0
- package/src/checker.js +2896 -0
- package/src/cli.js +344 -0
- package/src/codegen.js +1159 -0
- package/src/config.js +149 -0
- package/src/continuation.js +110 -0
- package/src/di.js +24 -0
- package/src/documentation.js +27 -0
- package/src/editor.js +782 -0
- package/src/effects.js +29 -0
- package/src/fixes.js +222 -0
- package/src/formatter.js +296 -0
- package/src/freshness.js +154 -0
- package/src/help.js +212 -0
- package/src/html.js +27 -0
- package/src/http-policies.js +90 -0
- package/src/inference.js +16 -0
- package/src/interceptors.js +70 -0
- package/src/javadoc.js +67 -0
- package/src/lexer.js +199 -0
- package/src/libraries.js +31 -0
- package/src/lsp.js +180 -0
- package/src/native.js +144 -0
- package/src/navigation.js +162 -0
- package/src/openapi.js +220 -0
- package/src/ownership.js +232 -0
- package/src/package-manager.js +299 -0
- package/src/parser.js +1155 -0
- package/src/policies.js +130 -0
- package/src/project-init.js +19 -0
- package/src/project.js +292 -0
- package/src/schemas.js +62 -0
- package/src/semantic.js +255 -0
- package/src/spec.js +738 -0
- package/src/testing.js +186 -0
- package/src/types.js +10 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "logging/logger.aug · A small tested application"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/developer-workflow/logging/logger.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `logging/logger.aug`
|
|
13
|
+
|
|
14
|
+
[A small tested application](../index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](../main.md)
|
|
19
|
+
- [`calculator.aug`](../calculator.md)
|
|
20
|
+
- [`logging/console.aug`](console.md)
|
|
21
|
+
- [`logging/export.aug`](export.md)
|
|
22
|
+
- [`logging/logger.aug`](logger.md)
|
|
23
|
+
|
|
24
|
+
:::
|
|
25
|
+
|
|
26
|
+
::::: example-compare
|
|
27
|
+
|
|
28
|
+
:::: example-code
|
|
29
|
+
|
|
30
|
+
## Code {#code}
|
|
31
|
+
|
|
32
|
+
::: code-group
|
|
33
|
+
|
|
34
|
+
```aug [Indentation]
|
|
35
|
+
import Console from august.io
|
|
36
|
+
/** Receives a message describing an application operation. */
|
|
37
|
+
interface Logger:
|
|
38
|
+
/** @param message Text to write. */
|
|
39
|
+
log(resolve Console console, string message) uses Console.write
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```aug [Braces]
|
|
43
|
+
import Console from august.io
|
|
44
|
+
/** Receives a message describing an application operation. */
|
|
45
|
+
interface Logger {
|
|
46
|
+
/** @param message Text to write. */
|
|
47
|
+
log(resolve Console console, string message) uses Console.write
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
:::
|
|
52
|
+
|
|
53
|
+
::::
|
|
54
|
+
|
|
55
|
+
:::: example-spec
|
|
56
|
+
|
|
57
|
+
## Compiled specification {#specification}
|
|
58
|
+
|
|
59
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
60
|
+
|
|
61
|
+
### In this file
|
|
62
|
+
|
|
63
|
+
- [`Logger`](logger.md#symbol-Logger) is an interface.
|
|
64
|
+
|
|
65
|
+
### `Logger` {#symbol-Logger}
|
|
66
|
+
|
|
67
|
+
[source](logger.md#code)
|
|
68
|
+
|
|
69
|
+
Interface.
|
|
70
|
+
|
|
71
|
+
**Author documentation**
|
|
72
|
+
|
|
73
|
+
Receives a message describing an application operation.
|
|
74
|
+
|
|
75
|
+
#### `Logger.log` {#symbol-Logger.log}
|
|
76
|
+
|
|
77
|
+
[source](logger.md#code)
|
|
78
|
+
|
|
79
|
+
**Inputs**
|
|
80
|
+
|
|
81
|
+
- `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
|
|
82
|
+
- `message` (`string`) — required labeled input.
|
|
83
|
+
|
|
84
|
+
Returns: no value.
|
|
85
|
+
|
|
86
|
+
Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
87
|
+
|
|
88
|
+
Interface contract. A selected implementation supplies the behavior.
|
|
89
|
+
|
|
90
|
+
**Author documentation**
|
|
91
|
+
|
|
92
|
+
**Parameters**
|
|
93
|
+
- `message`: Text to write.
|
|
94
|
+
|
|
95
|
+
### Dependencies used by this file
|
|
96
|
+
|
|
97
|
+
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
98
|
+
|
|
99
|
+
#### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
|
|
100
|
+
|
|
101
|
+
Capability interface from `august.io`.
|
|
102
|
+
|
|
103
|
+
- [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
|
|
104
|
+
|
|
105
|
+
### Shared language rules
|
|
106
|
+
|
|
107
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
108
|
+
|
|
109
|
+
::::
|
|
110
|
+
|
|
111
|
+
:::::
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · A small tested application"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/developer-workflow/main.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `main.aug`
|
|
13
|
+
|
|
14
|
+
[A small tested application](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`calculator.aug`](calculator.md)
|
|
20
|
+
- [`logging/console.aug`](logging/console.md)
|
|
21
|
+
- [`logging/export.aug`](logging/export.md)
|
|
22
|
+
- [`logging/logger.aug`](logging/logger.md)
|
|
23
|
+
|
|
24
|
+
:::
|
|
25
|
+
|
|
26
|
+
::::: example-compare
|
|
27
|
+
|
|
28
|
+
:::: example-code
|
|
29
|
+
|
|
30
|
+
## Code {#code}
|
|
31
|
+
|
|
32
|
+
::: code-group
|
|
33
|
+
|
|
34
|
+
```aug [Indentation]
|
|
35
|
+
import Console and SystemConsole from august.io
|
|
36
|
+
implement Console with SystemConsole
|
|
37
|
+
import Logger and ConsoleLogger from logging
|
|
38
|
+
import Arithmetic and Calculator and load from calculator
|
|
39
|
+
implement Logger with ConsoleLogger
|
|
40
|
+
try:
|
|
41
|
+
List<int> numbers = [1, 2]
|
|
42
|
+
Tuple<int,string> pair = (1, "apple")
|
|
43
|
+
Set<int> unique = {1, 2, 1}
|
|
44
|
+
Map<int,string> fruit = {1: "apples", 2: "pears"}
|
|
45
|
+
calculator = Calculator()
|
|
46
|
+
print(value=calculator.add(right=numbers.get(index=1), left=numbers.get(index=0)))
|
|
47
|
+
print(value=pair.get(index=1))
|
|
48
|
+
print(value=unique.length())
|
|
49
|
+
print(value=fruit.get(key=2))
|
|
50
|
+
try:
|
|
51
|
+
print(value=load(fail=true))
|
|
52
|
+
catch FileError error:
|
|
53
|
+
print(value="load failed as expected")
|
|
54
|
+
catch IndexError error:
|
|
55
|
+
print(value="unexpected index failure")
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```aug [Braces]
|
|
59
|
+
import Console and SystemConsole from august.io
|
|
60
|
+
implement Console with SystemConsole
|
|
61
|
+
import Logger and ConsoleLogger from logging
|
|
62
|
+
import Arithmetic and Calculator and load from calculator
|
|
63
|
+
implement Logger with ConsoleLogger
|
|
64
|
+
try {
|
|
65
|
+
List<int> numbers = [1, 2]
|
|
66
|
+
Tuple<int,string> pair = (1, "apple")
|
|
67
|
+
Set<int> unique = {1, 2, 1}
|
|
68
|
+
Map<int,string> fruit = {1: "apples", 2: "pears"}
|
|
69
|
+
calculator = Calculator()
|
|
70
|
+
print(value=calculator.add(right=numbers.get(index=1), left=numbers.get(index=0)))
|
|
71
|
+
print(value=pair.get(index=1))
|
|
72
|
+
print(value=unique.length())
|
|
73
|
+
print(value=fruit.get(key=2))
|
|
74
|
+
try {
|
|
75
|
+
print(value=load(fail=true))
|
|
76
|
+
}
|
|
77
|
+
catch FileError error {
|
|
78
|
+
print(value="load failed as expected")
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch IndexError error {
|
|
82
|
+
print(value="unexpected index failure")
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
:::
|
|
87
|
+
|
|
88
|
+
::::
|
|
89
|
+
|
|
90
|
+
:::: example-spec
|
|
91
|
+
|
|
92
|
+
## Compiled specification {#specification}
|
|
93
|
+
|
|
94
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
95
|
+
|
|
96
|
+
### In this file
|
|
97
|
+
|
|
98
|
+
- Register 2 dependency providers before startup.
|
|
99
|
+
- Run startup operations with checked error recovery.
|
|
100
|
+
|
|
101
|
+
### Dependency providers
|
|
102
|
+
|
|
103
|
+
Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
|
|
104
|
+
|
|
105
|
+
- Provide [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
|
|
106
|
+
- Provide [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
|
|
107
|
+
|
|
108
|
+
### Startup, in source order
|
|
109
|
+
|
|
110
|
+
- Try these operations:
|
|
111
|
+
- Set `numbers` of type `List<int>` to a list containing `1`, `2`.
|
|
112
|
+
- Set `pair` of type `Tuple<int,string>` to a tuple containing `1`, `"apple"`.
|
|
113
|
+
- Set `unique` of type `Set<int>` to a set containing `1`, `2`, `1`.
|
|
114
|
+
- Set `fruit` of type `Map<int,string>` to a map with `1` mapped to `"apples"`; `2` mapped to `"pears"`.
|
|
115
|
+
- Set `calculator` to call [`Calculator`](calculator.md#symbol-Calculator); inject `_logger` from `Logger`.
|
|
116
|
+
- Call `print` with `value` = call [`Calculator.add`](calculator.md#symbol-Calculator.add) on `calculator` with `right` = call `get` on `numbers` with `index` = `1`; `left` = call `get` on `numbers` with `index` = `0`; inject `console` from `Console`.
|
|
117
|
+
- Call `print` with `value` = call `get` on `pair` with `index` = `1`.
|
|
118
|
+
- Call `print` with `value` = call `length` on `unique`.
|
|
119
|
+
- Call `print` with `value` = call `get` on `fruit` with `key` = `2`.
|
|
120
|
+
- Try these operations:
|
|
121
|
+
- Call `print` with `value` = call [`load`](calculator.md#symbol-load) with `fail` = `true`.
|
|
122
|
+
- If they fail with `FileError`, name the failure `error` and recover:
|
|
123
|
+
- Call `print` with `value` = `"load failed as expected"`.
|
|
124
|
+
- If they fail with `IndexError`, name the failure `error` and recover:
|
|
125
|
+
- Call `print` with `value` = `"unexpected index failure"`.
|
|
126
|
+
|
|
127
|
+
### Dependencies used by this file
|
|
128
|
+
|
|
129
|
+
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
130
|
+
|
|
131
|
+
#### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
|
|
132
|
+
|
|
133
|
+
Class from `august.io`.
|
|
134
|
+
|
|
135
|
+
Used as a type or provider.
|
|
136
|
+
|
|
137
|
+
#### [`Calculator`](calculator.md#symbol-Calculator)
|
|
138
|
+
|
|
139
|
+
Class from `calculator`.
|
|
140
|
+
|
|
141
|
+
- Construct with no caller inputs → [`Calculator`](calculator.md#symbol-Calculator).
|
|
142
|
+
- [`Calculator.add`](calculator.md#symbol-Calculator.add) (`left`: `int`, `right`: `int`) → `int`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
|
|
143
|
+
|
|
144
|
+
#### [`load`](calculator.md#symbol-load)
|
|
145
|
+
|
|
146
|
+
Function from `calculator`.
|
|
147
|
+
|
|
148
|
+
- [`load`](calculator.md#symbol-load) (`fail`: `bool`) → `string`; can fail with `FileError`.
|
|
149
|
+
|
|
150
|
+
#### [`ConsoleLogger`](logging/console.md#symbol-ConsoleLogger)
|
|
151
|
+
|
|
152
|
+
Class from `logging`.
|
|
153
|
+
|
|
154
|
+
Used as a type or provider.
|
|
155
|
+
|
|
156
|
+
### Built-in operations used by this file
|
|
157
|
+
|
|
158
|
+
- `List<int>.get` (`index`: `int`) → `int`: Read a zero-based position. An invalid index raises checked IndexError. Reference results grant reading. Can fail with `IndexError`.
|
|
159
|
+
- `Map<int, string>.get` (`key`: `int`) → `optional string`: Read a value by key; an absent key returns null. contains distinguishes an absent key from a stored null.
|
|
160
|
+
- `Set<int>.length` (no inputs) → `int`: Read the number of elements.
|
|
161
|
+
- `Tuple<int, string>.get` (`index`: `int`) → `string`: Read a statically checked constant position. Prefer tuple destructuring when reading several positions.
|
|
162
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
163
|
+
|
|
164
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
165
|
+
|
|
166
|
+
### Shared language rules
|
|
167
|
+
|
|
168
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
169
|
+
|
|
170
|
+
::::
|
|
171
|
+
|
|
172
|
+
:::::
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Resource cleanup"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/drop"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Resource cleanup
|
|
12
|
+
|
|
13
|
+
Release an owned resource when its lifetime ends.
|
|
14
|
+
|
|
15
|
+
Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
|
|
16
|
+
|
|
17
|
+
## Project files
|
|
18
|
+
|
|
19
|
+
- [`main.aug`](main.md)
|
|
20
|
+
- [`resource.aug`](resource.md)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Try this project
|
|
24
|
+
|
|
25
|
+
From a repository checkout with August installed:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
aug check examples/drop
|
|
29
|
+
aug spec examples/drop
|
|
30
|
+
aug run examples/drop
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · Resource cleanup"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/drop/main.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `main.aug`
|
|
13
|
+
|
|
14
|
+
[Resource cleanup](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`resource.aug`](resource.md)
|
|
20
|
+
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
::::: example-compare
|
|
24
|
+
|
|
25
|
+
:::: example-code
|
|
26
|
+
|
|
27
|
+
## Code {#code}
|
|
28
|
+
|
|
29
|
+
::: code-group
|
|
30
|
+
|
|
31
|
+
```aug [Indentation]
|
|
32
|
+
import Resource from resource
|
|
33
|
+
own Resource resource = Resource()
|
|
34
|
+
print(value="using resource")
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```aug [Braces]
|
|
38
|
+
import Resource from resource
|
|
39
|
+
own Resource resource = Resource()
|
|
40
|
+
print(value="using resource")
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
:::
|
|
44
|
+
|
|
45
|
+
::::
|
|
46
|
+
|
|
47
|
+
:::: example-spec
|
|
48
|
+
|
|
49
|
+
## Compiled specification {#specification}
|
|
50
|
+
|
|
51
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
52
|
+
|
|
53
|
+
### In this file
|
|
54
|
+
|
|
55
|
+
- Run 2 other startup steps in source order.
|
|
56
|
+
|
|
57
|
+
### Startup, in source order
|
|
58
|
+
|
|
59
|
+
- Set `resource` of type [`Resource`](resource.md#symbol-Resource) to call [`Resource`](resource.md#symbol-Resource).
|
|
60
|
+
- This variable owns the value.
|
|
61
|
+
- Call `print` with `value` = `"using resource"`.
|
|
62
|
+
|
|
63
|
+
### Dependencies used by this file
|
|
64
|
+
|
|
65
|
+
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
66
|
+
|
|
67
|
+
#### [`Resource`](resource.md#symbol-Resource)
|
|
68
|
+
|
|
69
|
+
Class from `resource`.
|
|
70
|
+
|
|
71
|
+
- Construct with no caller inputs → [`Resource`](resource.md#symbol-Resource).
|
|
72
|
+
|
|
73
|
+
### Built-in operations used by this file
|
|
74
|
+
|
|
75
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
76
|
+
|
|
77
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
78
|
+
|
|
79
|
+
### Shared language rules
|
|
80
|
+
|
|
81
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
82
|
+
|
|
83
|
+
::::
|
|
84
|
+
|
|
85
|
+
:::::
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "resource.aug · Resource cleanup"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/drop/resource.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `resource.aug`
|
|
13
|
+
|
|
14
|
+
[Resource cleanup](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`resource.aug`](resource.md)
|
|
20
|
+
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
::::: example-compare
|
|
24
|
+
|
|
25
|
+
:::: example-code
|
|
26
|
+
|
|
27
|
+
## Code {#code}
|
|
28
|
+
|
|
29
|
+
::: code-group
|
|
30
|
+
|
|
31
|
+
```aug [Indentation]
|
|
32
|
+
Resource() implements IResource:
|
|
33
|
+
drop():
|
|
34
|
+
pass
|
|
35
|
+
interface IResource:
|
|
36
|
+
pass
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```aug [Braces]
|
|
40
|
+
Resource() implements IResource {
|
|
41
|
+
drop() {
|
|
42
|
+
pass
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
interface IResource {
|
|
46
|
+
pass
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
:::
|
|
51
|
+
|
|
52
|
+
::::
|
|
53
|
+
|
|
54
|
+
:::: example-spec
|
|
55
|
+
|
|
56
|
+
## Compiled specification {#specification}
|
|
57
|
+
|
|
58
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
59
|
+
|
|
60
|
+
### In this file
|
|
61
|
+
|
|
62
|
+
- [`Resource`](resource.md#symbol-Resource) is a class implementing `IResource`.
|
|
63
|
+
- [`IResource`](resource.md#symbol-IResource) is an interface.
|
|
64
|
+
|
|
65
|
+
### `Resource` {#symbol-Resource}
|
|
66
|
+
|
|
67
|
+
[source](resource.md#code)
|
|
68
|
+
|
|
69
|
+
Behavioral class.
|
|
70
|
+
|
|
71
|
+
Satisfies [`IResource`](resource.md#symbol-IResource).
|
|
72
|
+
|
|
73
|
+
#### `Resource.drop` {#symbol-Resource.drop}
|
|
74
|
+
|
|
75
|
+
[source](resource.md#code)
|
|
76
|
+
|
|
77
|
+
Returns: no value.
|
|
78
|
+
|
|
79
|
+
**What it does**
|
|
80
|
+
|
|
81
|
+
- Continue without another operation.
|
|
82
|
+
|
|
83
|
+
### `IResource` {#symbol-IResource}
|
|
84
|
+
|
|
85
|
+
[source](resource.md#code)
|
|
86
|
+
|
|
87
|
+
Interface.
|
|
88
|
+
|
|
89
|
+
### Shared language rules
|
|
90
|
+
|
|
91
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
92
|
+
|
|
93
|
+
::::
|
|
94
|
+
|
|
95
|
+
:::::
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "errors.aug · Checked failures"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/errors/errors.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `errors.aug`
|
|
13
|
+
|
|
14
|
+
[Checked failures](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`errors.aug`](errors.md)
|
|
20
|
+
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
::::: example-compare
|
|
24
|
+
|
|
25
|
+
:::: example-code
|
|
26
|
+
|
|
27
|
+
## Code {#code}
|
|
28
|
+
|
|
29
|
+
::: code-group
|
|
30
|
+
|
|
31
|
+
```aug [Indentation]
|
|
32
|
+
load(bool fail) returns string unless FileError:
|
|
33
|
+
if fail:
|
|
34
|
+
throw FileError()
|
|
35
|
+
return "loaded"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```aug [Braces]
|
|
39
|
+
load(bool fail) returns string unless FileError {
|
|
40
|
+
if fail {
|
|
41
|
+
throw FileError()
|
|
42
|
+
}
|
|
43
|
+
return "loaded"
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
:::
|
|
48
|
+
|
|
49
|
+
::::
|
|
50
|
+
|
|
51
|
+
:::: example-spec
|
|
52
|
+
|
|
53
|
+
## Compiled specification {#specification}
|
|
54
|
+
|
|
55
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
56
|
+
|
|
57
|
+
### In this file
|
|
58
|
+
|
|
59
|
+
- [`load`](errors.md#symbol-load) is a function returning `string`.
|
|
60
|
+
|
|
61
|
+
### `load` {#symbol-load}
|
|
62
|
+
|
|
63
|
+
[source](errors.md#code)
|
|
64
|
+
|
|
65
|
+
**Inputs**
|
|
66
|
+
|
|
67
|
+
- `fail` (`bool`) — required labeled input.
|
|
68
|
+
|
|
69
|
+
Returns: `string`.
|
|
70
|
+
|
|
71
|
+
Can fail with `FileError`. Callers must catch or propagate these errors.
|
|
72
|
+
|
|
73
|
+
**What it does**
|
|
74
|
+
|
|
75
|
+
- If `fail` is true:
|
|
76
|
+
- Fail with call `FileError`. Transfer control to a matching catch or propagate the failure.
|
|
77
|
+
- Return `"loaded"`.
|
|
78
|
+
|
|
79
|
+
### Shared language rules
|
|
80
|
+
|
|
81
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
82
|
+
|
|
83
|
+
::::
|
|
84
|
+
|
|
85
|
+
:::::
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Checked failures"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/errors"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Checked failures
|
|
12
|
+
|
|
13
|
+
Declare errors with unless, catch them, and run cleanup.
|
|
14
|
+
|
|
15
|
+
Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
|
|
16
|
+
|
|
17
|
+
## Project files
|
|
18
|
+
|
|
19
|
+
- [`main.aug`](main.md)
|
|
20
|
+
- [`errors.aug`](errors.md)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## Try this project
|
|
24
|
+
|
|
25
|
+
From a repository checkout with August installed:
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
aug check examples/errors
|
|
29
|
+
aug spec examples/errors
|
|
30
|
+
aug run examples/errors
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · Checked failures"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/errors/main.aug"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
pageClass: aug-example-page
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `main.aug`
|
|
13
|
+
|
|
14
|
+
[Checked failures](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
- [`errors.aug`](errors.md)
|
|
20
|
+
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
::::: example-compare
|
|
24
|
+
|
|
25
|
+
:::: example-code
|
|
26
|
+
|
|
27
|
+
## Code {#code}
|
|
28
|
+
|
|
29
|
+
::: code-group
|
|
30
|
+
|
|
31
|
+
```aug [Indentation]
|
|
32
|
+
import load from errors
|
|
33
|
+
try:
|
|
34
|
+
print(value=load(fail=true))
|
|
35
|
+
catch FileError error:
|
|
36
|
+
print(value="caught FileError")
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```aug [Braces]
|
|
40
|
+
import load from errors
|
|
41
|
+
try {
|
|
42
|
+
print(value=load(fail=true))
|
|
43
|
+
}
|
|
44
|
+
catch FileError error {
|
|
45
|
+
print(value="caught FileError")
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
:::
|
|
50
|
+
|
|
51
|
+
::::
|
|
52
|
+
|
|
53
|
+
:::: example-spec
|
|
54
|
+
|
|
55
|
+
## Compiled specification {#specification}
|
|
56
|
+
|
|
57
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
58
|
+
|
|
59
|
+
### In this file
|
|
60
|
+
|
|
61
|
+
- Run startup operations with checked error recovery.
|
|
62
|
+
|
|
63
|
+
### Startup, in source order
|
|
64
|
+
|
|
65
|
+
- Try these operations:
|
|
66
|
+
- Call `print` with `value` = call [`load`](errors.md#symbol-load) with `fail` = `true`.
|
|
67
|
+
- If they fail with `FileError`, name the failure `error` and recover:
|
|
68
|
+
- Call `print` with `value` = `"caught FileError"`.
|
|
69
|
+
|
|
70
|
+
### Dependencies used by this file
|
|
71
|
+
|
|
72
|
+
Only referenced types and operations appear here. Each name links to its complete specification.
|
|
73
|
+
|
|
74
|
+
#### [`load`](errors.md#symbol-load)
|
|
75
|
+
|
|
76
|
+
Function from `errors`.
|
|
77
|
+
|
|
78
|
+
- [`load`](errors.md#symbol-load) (`fail`: `bool`) → `string`; can fail with `FileError`.
|
|
79
|
+
|
|
80
|
+
### Built-in operations used by this file
|
|
81
|
+
|
|
82
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
83
|
+
|
|
84
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
85
|
+
|
|
86
|
+
### Shared language rules
|
|
87
|
+
|
|
88
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
89
|
+
|
|
90
|
+
::::
|
|
91
|
+
|
|
92
|
+
:::::
|