@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,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Command-line arguments"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/cli-args"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Command-line arguments
|
|
12
|
+
|
|
13
|
+
Read arguments, inspect collections, and return a process exit status.
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
## Try this project
|
|
23
|
+
|
|
24
|
+
From a repository checkout with August installed:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
aug check examples/cli-args
|
|
28
|
+
aug spec examples/cli-args
|
|
29
|
+
aug run examples/cli-args
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · Command-line arguments"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/cli-args/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
|
+
[Command-line arguments](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
::::: example-compare
|
|
23
|
+
|
|
24
|
+
:::: example-code
|
|
25
|
+
|
|
26
|
+
## Code {#code}
|
|
27
|
+
|
|
28
|
+
::: code-group
|
|
29
|
+
|
|
30
|
+
```aug [Indentation]
|
|
31
|
+
try:
|
|
32
|
+
args = arguments()
|
|
33
|
+
print(value=args.length())
|
|
34
|
+
if args.length() > 0:
|
|
35
|
+
print(value=args.get(index=0))
|
|
36
|
+
numbers = List<int>(1, 2)
|
|
37
|
+
borrow numbers:
|
|
38
|
+
numbers.append(value=3)
|
|
39
|
+
print(value=numbers.get(index=2))
|
|
40
|
+
catch IndexError error:
|
|
41
|
+
print(value="unexpected index failure")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```aug [Braces]
|
|
45
|
+
try {
|
|
46
|
+
args = arguments()
|
|
47
|
+
print(value=args.length())
|
|
48
|
+
if args.length() > 0 {
|
|
49
|
+
print(value=args.get(index=0))
|
|
50
|
+
}
|
|
51
|
+
numbers = List<int>(1, 2)
|
|
52
|
+
borrow numbers {
|
|
53
|
+
numbers.append(value=3)
|
|
54
|
+
}
|
|
55
|
+
print(value=numbers.get(index=2))
|
|
56
|
+
}
|
|
57
|
+
catch IndexError error {
|
|
58
|
+
print(value="unexpected index failure")
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
:::
|
|
63
|
+
|
|
64
|
+
::::
|
|
65
|
+
|
|
66
|
+
:::: example-spec
|
|
67
|
+
|
|
68
|
+
## Compiled specification {#specification}
|
|
69
|
+
|
|
70
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
71
|
+
|
|
72
|
+
### In this file
|
|
73
|
+
|
|
74
|
+
- Run startup operations with checked error recovery.
|
|
75
|
+
|
|
76
|
+
### Startup, in source order
|
|
77
|
+
|
|
78
|
+
- Try these operations:
|
|
79
|
+
- Set `args` to call `arguments`.
|
|
80
|
+
- Call `print` with `value` = call `length` on `args`.
|
|
81
|
+
- If call `length` on `args` is greater than `0`:
|
|
82
|
+
- Call `print` with `value` = call `get` on `args` with `index` = `0`.
|
|
83
|
+
- Set `numbers` to a list of `int` containing `1`, `2`.
|
|
84
|
+
- Grant exclusive mutable access to `numbers` for this block, then end the borrow:
|
|
85
|
+
- Call `append` on `numbers` with `value` = `3`.
|
|
86
|
+
- Call `print` with `value` = call `get` on `numbers` with `index` = `2`.
|
|
87
|
+
- If they fail with `IndexError`, name the failure `error` and recover:
|
|
88
|
+
- Call `print` with `value` = `"unexpected index failure"`.
|
|
89
|
+
|
|
90
|
+
### Built-in operations used by this file
|
|
91
|
+
|
|
92
|
+
- `List<int>.append` (`value`: `int`) → `void`: Append an element with exclusive mutable access. Read-only and owned aliases cannot be stored here. Changes the receiver.
|
|
93
|
+
- `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`.
|
|
94
|
+
- `List<string>.get` (`index`: `int`) → `string`: Read a zero-based position. An invalid index raises checked IndexError. Reference results grant reading. Can fail with `IndexError`.
|
|
95
|
+
- `List<string>.length` (no inputs) → `int`: Read the number of elements.
|
|
96
|
+
- `arguments` (no inputs) → `List<string>`: Composition arguments. Other callables receive the Arguments capability.
|
|
97
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
98
|
+
|
|
99
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
100
|
+
|
|
101
|
+
### Shared language rules
|
|
102
|
+
|
|
103
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
104
|
+
|
|
105
|
+
::::
|
|
106
|
+
|
|
107
|
+
:::::
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Lists, tuples, sets, and maps"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/collections"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Lists, tuples, sets, and maps
|
|
12
|
+
|
|
13
|
+
Create typed collections and update them through checked mutable access.
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
## Try this project
|
|
23
|
+
|
|
24
|
+
From a repository checkout with August installed:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
aug check examples/collections
|
|
28
|
+
aug spec examples/collections
|
|
29
|
+
aug run examples/collections
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · Lists, tuples, sets, and maps"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "examples/collections/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
|
+
[Lists, tuples, sets, and maps](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
::::: example-compare
|
|
23
|
+
|
|
24
|
+
:::: example-code
|
|
25
|
+
|
|
26
|
+
## Code {#code}
|
|
27
|
+
|
|
28
|
+
::: code-group
|
|
29
|
+
|
|
30
|
+
```aug [Indentation]
|
|
31
|
+
try:
|
|
32
|
+
numbers = List<int>(2, 4)
|
|
33
|
+
borrow numbers:
|
|
34
|
+
numbers.append(value=6)
|
|
35
|
+
print(value=numbers.length())
|
|
36
|
+
print(value=numbers.get(index=1))
|
|
37
|
+
scores = Map<string, int>()
|
|
38
|
+
borrow scores:
|
|
39
|
+
scores.set(value=42, key="ada")
|
|
40
|
+
print(value=scores.contains(key="ada"))
|
|
41
|
+
print(value=scores.get(key="ada"))
|
|
42
|
+
print(value=scores.length())
|
|
43
|
+
catch IndexError error:
|
|
44
|
+
print(value="unexpected index failure")
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```aug [Braces]
|
|
48
|
+
try {
|
|
49
|
+
numbers = List<int>(2, 4)
|
|
50
|
+
borrow numbers {
|
|
51
|
+
numbers.append(value=6)
|
|
52
|
+
}
|
|
53
|
+
print(value=numbers.length())
|
|
54
|
+
print(value=numbers.get(index=1))
|
|
55
|
+
scores = Map<string, int>()
|
|
56
|
+
borrow scores {
|
|
57
|
+
scores.set(value=42, key="ada")
|
|
58
|
+
}
|
|
59
|
+
print(value=scores.contains(key="ada"))
|
|
60
|
+
print(value=scores.get(key="ada"))
|
|
61
|
+
print(value=scores.length())
|
|
62
|
+
}
|
|
63
|
+
catch IndexError error {
|
|
64
|
+
print(value="unexpected index failure")
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
:::
|
|
69
|
+
|
|
70
|
+
::::
|
|
71
|
+
|
|
72
|
+
:::: example-spec
|
|
73
|
+
|
|
74
|
+
## Compiled specification {#specification}
|
|
75
|
+
|
|
76
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
77
|
+
|
|
78
|
+
### In this file
|
|
79
|
+
|
|
80
|
+
- Run startup operations with checked error recovery.
|
|
81
|
+
|
|
82
|
+
### Startup, in source order
|
|
83
|
+
|
|
84
|
+
- Try these operations:
|
|
85
|
+
- Set `numbers` to a list of `int` containing `2`, `4`.
|
|
86
|
+
- Grant exclusive mutable access to `numbers` for this block, then end the borrow:
|
|
87
|
+
- Call `append` on `numbers` with `value` = `6`.
|
|
88
|
+
- Call `print` with `value` = call `length` on `numbers`.
|
|
89
|
+
- Call `print` with `value` = call `get` on `numbers` with `index` = `1`.
|
|
90
|
+
- Set `scores` to an empty map from `string` to `int`.
|
|
91
|
+
- Grant exclusive mutable access to `scores` for this block, then end the borrow:
|
|
92
|
+
- Call `set` on `scores` with `value` = `42`; `key` = `"ada"`.
|
|
93
|
+
- Call `print` with `value` = call `contains` on `scores` with `key` = `"ada"`.
|
|
94
|
+
- Call `print` with `value` = call `get` on `scores` with `key` = `"ada"`.
|
|
95
|
+
- Call `print` with `value` = call `length` on `scores`.
|
|
96
|
+
- If they fail with `IndexError`, name the failure `error` and recover:
|
|
97
|
+
- Call `print` with `value` = `"unexpected index failure"`.
|
|
98
|
+
|
|
99
|
+
### Built-in operations used by this file
|
|
100
|
+
|
|
101
|
+
- `List<int>.append` (`value`: `int`) → `void`: Append an element with exclusive mutable access. Read-only and owned aliases cannot be stored here. Changes the receiver.
|
|
102
|
+
- `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`.
|
|
103
|
+
- `List<int>.length` (no inputs) → `int`: Read the number of elements.
|
|
104
|
+
- `Map<string, int>.contains` (`key`: `string`) → `bool`: Check for a key, including entries whose value is null.
|
|
105
|
+
- `Map<string, int>.get` (`key`: `string`) → `optional int`: Read a value by key; an absent key returns null. contains distinguishes an absent key from a stored null.
|
|
106
|
+
- `Map<string, int>.length` (no inputs) → `int`: Read the number of elements.
|
|
107
|
+
- `Map<string, int>.set` (`key`: `string`, `value`: `int`) → `void`: Insert or replace an entry with exclusive mutable access. Changes the receiver.
|
|
108
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
109
|
+
|
|
110
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
111
|
+
|
|
112
|
+
### Shared language rules
|
|
113
|
+
|
|
114
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
115
|
+
|
|
116
|
+
::::
|
|
117
|
+
|
|
118
|
+
:::::
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Map and Set benchmark"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "benchmarks/collections"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Map and Set benchmark
|
|
12
|
+
|
|
13
|
+
Insert, find, and iterate over 20,000 collection entries.
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
## Try this project
|
|
23
|
+
|
|
24
|
+
From a repository checkout with August installed:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
aug check benchmarks/collections
|
|
28
|
+
aug spec benchmarks/collections
|
|
29
|
+
aug run benchmarks/collections
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
|
|
33
|
+
|
|
34
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · Map and Set benchmark"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "benchmarks/collections/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
|
+
[Map and Set benchmark](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
::::: example-compare
|
|
23
|
+
|
|
24
|
+
:::: example-code
|
|
25
|
+
|
|
26
|
+
## Code {#code}
|
|
27
|
+
|
|
28
|
+
::: code-group
|
|
29
|
+
|
|
30
|
+
```aug [Indentation]
|
|
31
|
+
own Map<int,int> values = {}
|
|
32
|
+
own Set<int> unique = {}
|
|
33
|
+
int index = 0
|
|
34
|
+
while index < 20000:
|
|
35
|
+
values.set(key=index, value=index * 3)
|
|
36
|
+
unique.add(value=index)
|
|
37
|
+
index = index + 1
|
|
38
|
+
int checksum = 0
|
|
39
|
+
for (key, value) in values:
|
|
40
|
+
if unique.contains(value=key):
|
|
41
|
+
checksum = checksum + value
|
|
42
|
+
print(value=checksum)
|
|
43
|
+
print(value=values.length() == unique.length())
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```aug [Braces]
|
|
47
|
+
own Map<int,int> values = {}
|
|
48
|
+
own Set<int> unique = {}
|
|
49
|
+
int index = 0
|
|
50
|
+
while index < 20000 {
|
|
51
|
+
values.set(key=index, value=index * 3)
|
|
52
|
+
unique.add(value=index)
|
|
53
|
+
index = index + 1
|
|
54
|
+
}
|
|
55
|
+
int checksum = 0
|
|
56
|
+
for (key, value) in values {
|
|
57
|
+
if unique.contains(value=key) {
|
|
58
|
+
checksum = checksum + value
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
print(value=checksum)
|
|
62
|
+
print(value=values.length() == unique.length())
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
:::
|
|
66
|
+
|
|
67
|
+
::::
|
|
68
|
+
|
|
69
|
+
:::: example-spec
|
|
70
|
+
|
|
71
|
+
## Compiled specification {#specification}
|
|
72
|
+
|
|
73
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
74
|
+
|
|
75
|
+
### In this file
|
|
76
|
+
|
|
77
|
+
- Run 8 other startup steps in source order.
|
|
78
|
+
|
|
79
|
+
### Startup, in source order
|
|
80
|
+
|
|
81
|
+
- Set `values` of type `Map<int,int>` to a context-typed empty collection with no items.
|
|
82
|
+
- This variable owns the value.
|
|
83
|
+
- Set `unique` of type `Set<int>` to a context-typed empty collection with no items.
|
|
84
|
+
- This variable owns the value.
|
|
85
|
+
- Set `index` of type `int` to `0`.
|
|
86
|
+
- While `index` is less than `20000`, repeat:
|
|
87
|
+
- Call `set` on `values` with `key` = `index`; `value` = (`index` times `3`).
|
|
88
|
+
- Call `add` on `unique` with `value` = `index`.
|
|
89
|
+
- Set `index` to `index` plus `1`.
|
|
90
|
+
- Check the condition again before the next iteration.
|
|
91
|
+
- Set `checksum` of type `int` to `0`.
|
|
92
|
+
- For each `key` and `value` in a snapshot of `values`, in iteration order:
|
|
93
|
+
- If call `contains` on `unique` with `value` = `key` is true:
|
|
94
|
+
- Set `checksum` to `checksum` plus `value`.
|
|
95
|
+
- Call `print` with `value` = `checksum`.
|
|
96
|
+
- Call `print` with `value` = (call `length` on `values` equals call `length` on `unique`).
|
|
97
|
+
|
|
98
|
+
### Built-in operations used by this file
|
|
99
|
+
|
|
100
|
+
- `Map<int, int>.length` (no inputs) → `int`: Read the number of elements.
|
|
101
|
+
- `Map<int, int>.set` (`key`: `int`, `value`: `int`) → `void`: Insert or replace an entry with exclusive mutable access. Changes the receiver.
|
|
102
|
+
- `Set<int>.add` (`value`: `int`) → `void`: Insert a unique element with exclusive mutable access. Changes the receiver.
|
|
103
|
+
- `Set<int>.contains` (`value`: `int`) → `bool`: Test structural or identity equality with a stored element.
|
|
104
|
+
- `Set<int>.length` (no inputs) → `int`: Read the number of elements.
|
|
105
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
106
|
+
|
|
107
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
108
|
+
|
|
109
|
+
### Shared language rules
|
|
110
|
+
|
|
111
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
112
|
+
|
|
113
|
+
::::
|
|
114
|
+
|
|
115
|
+
:::::
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "CPU benchmark"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "benchmarks/cpu"
|
|
5
|
+
editLink: false
|
|
6
|
+
prev: false
|
|
7
|
+
next: false
|
|
8
|
+
outline: [2, 3]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# CPU benchmark
|
|
12
|
+
|
|
13
|
+
Two million dependent integer steps with a checked result.
|
|
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
|
+
|
|
21
|
+
|
|
22
|
+
## Try this project
|
|
23
|
+
|
|
24
|
+
From a repository checkout with August installed:
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
aug check benchmarks/cpu
|
|
28
|
+
aug spec benchmarks/cpu
|
|
29
|
+
aug run benchmarks/cpu
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
See [the performance page](../../performance.md) for measurements, input sizes, and reproduction steps.
|
|
33
|
+
|
|
34
|
+
[Browse all examples](../index.md)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "main.aug · CPU benchmark"
|
|
3
|
+
generated: true
|
|
4
|
+
source: "benchmarks/cpu/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
|
+
[CPU benchmark](index.md) · Source and specification
|
|
15
|
+
|
|
16
|
+
::: details Files in this project
|
|
17
|
+
|
|
18
|
+
- [`main.aug`](main.md)
|
|
19
|
+
|
|
20
|
+
:::
|
|
21
|
+
|
|
22
|
+
::::: example-compare
|
|
23
|
+
|
|
24
|
+
:::: example-code
|
|
25
|
+
|
|
26
|
+
## Code {#code}
|
|
27
|
+
|
|
28
|
+
::: code-group
|
|
29
|
+
|
|
30
|
+
```aug [Indentation]
|
|
31
|
+
// A loop-carried dependency prevents removal of the computation.
|
|
32
|
+
int state = 123
|
|
33
|
+
int index = 0
|
|
34
|
+
while index < 2000000:
|
|
35
|
+
int product = state * 48271
|
|
36
|
+
state = product - product / 2147483647 * 2147483647
|
|
37
|
+
index = index + 1
|
|
38
|
+
print(value=state)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```aug [Braces]
|
|
42
|
+
// A loop-carried dependency prevents removal of the computation.
|
|
43
|
+
int state = 123
|
|
44
|
+
int index = 0
|
|
45
|
+
while index < 2000000 {
|
|
46
|
+
int product = state * 48271
|
|
47
|
+
state = product - product / 2147483647 * 2147483647
|
|
48
|
+
index = index + 1
|
|
49
|
+
}
|
|
50
|
+
print(value=state)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
:::
|
|
54
|
+
|
|
55
|
+
::::
|
|
56
|
+
|
|
57
|
+
:::: example-spec
|
|
58
|
+
|
|
59
|
+
## Compiled specification {#specification}
|
|
60
|
+
|
|
61
|
+
August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
|
|
62
|
+
|
|
63
|
+
### In this file
|
|
64
|
+
|
|
65
|
+
- Run 4 other startup steps in source order.
|
|
66
|
+
|
|
67
|
+
### Startup, in source order
|
|
68
|
+
|
|
69
|
+
- Set `state` of type `int` to `123`.
|
|
70
|
+
- Set `index` of type `int` to `0`.
|
|
71
|
+
- While `index` is less than `2000000`, repeat:
|
|
72
|
+
- Set `product` of type `int` to `state` times `48271`.
|
|
73
|
+
- Set `state` to `product` minus ((`product` divided by `2147483647`) times `2147483647`).
|
|
74
|
+
- Set `index` to `index` plus `1`.
|
|
75
|
+
- Check the condition again before the next iteration.
|
|
76
|
+
- Call `print` with `value` = `state`.
|
|
77
|
+
|
|
78
|
+
### Built-in operations used by this file
|
|
79
|
+
|
|
80
|
+
- `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
|
|
81
|
+
|
|
82
|
+
[Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
83
|
+
|
|
84
|
+
### Shared language rules
|
|
85
|
+
|
|
86
|
+
See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
|
|
87
|
+
|
|
88
|
+
::::
|
|
89
|
+
|
|
90
|
+
:::::
|