@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
package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.1/native.abi.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 1,
|
|
3
|
+
"profile": "aug-native-abi-1",
|
|
4
|
+
"resources": [],
|
|
5
|
+
"functions": [
|
|
6
|
+
{
|
|
7
|
+
"module": "api",
|
|
8
|
+
"name": "_compress",
|
|
9
|
+
"symbol": "aug_zlib_compress_v1",
|
|
10
|
+
"params": [
|
|
11
|
+
{
|
|
12
|
+
"name": "input",
|
|
13
|
+
"kind": "bytes"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"result": {
|
|
17
|
+
"kind": "bytes",
|
|
18
|
+
"release": "aug_zlib_release_v1"
|
|
19
|
+
},
|
|
20
|
+
"error": "contracts.CompressionError",
|
|
21
|
+
"callingConvention": "C",
|
|
22
|
+
"status": "i32",
|
|
23
|
+
"uses": [],
|
|
24
|
+
"changes": [],
|
|
25
|
+
"thread": "caller",
|
|
26
|
+
"retainsInputs": false
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"module": "api",
|
|
30
|
+
"name": "_decompress",
|
|
31
|
+
"symbol": "aug_zlib_decompress_v1",
|
|
32
|
+
"params": [
|
|
33
|
+
{
|
|
34
|
+
"name": "input",
|
|
35
|
+
"kind": "bytes"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "maximumOutput",
|
|
39
|
+
"kind": "i64",
|
|
40
|
+
"minimum": 0,
|
|
41
|
+
"maximum": 268435456
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"result": {
|
|
45
|
+
"kind": "bytes",
|
|
46
|
+
"release": "aug_zlib_release_v1"
|
|
47
|
+
},
|
|
48
|
+
"error": "contracts.CompressionError",
|
|
49
|
+
"callingConvention": "C",
|
|
50
|
+
"status": "i32",
|
|
51
|
+
"uses": [],
|
|
52
|
+
"changes": [],
|
|
53
|
+
"thread": "caller",
|
|
54
|
+
"retainsInputs": false
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated by aug spec. This is a copy of the installed dependency source.
|
|
2
|
+
// aug-spec: "api.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
3
|
+
import CompressionError from contracts
|
|
4
|
+
extern C _compress(Bytes input) returns Bytes unless CompressionError
|
|
5
|
+
extern C _decompress(Bytes input, int maximumOutput) returns Bytes unless CompressionError
|
|
6
|
+
/** Compress bytes with the standard zlib framing. */
|
|
7
|
+
compress(Bytes input) returns Bytes:
|
|
8
|
+
unsafe:
|
|
9
|
+
return _compress(input)
|
|
10
|
+
/** Decompress at most maximumOutput bytes (maximum 256 MiB). */
|
|
11
|
+
decompress(Bytes input, int maximumOutput) returns Bytes:
|
|
12
|
+
unsafe:
|
|
13
|
+
return _decompress(input, maximumOutput)
|
|
14
|
+
|
|
15
|
+
test compress:
|
|
16
|
+
when compression:
|
|
17
|
+
it preserves_bytes:
|
|
18
|
+
Bytes input = "The world runs on language".bytes()
|
|
19
|
+
Bytes packed = compress(input)
|
|
20
|
+
Bytes restored = decompress(input=packed, maximumOutput=4096)
|
|
21
|
+
assert(restored.text() == "The world runs on language")
|
|
22
|
+
it checks_output_limit:
|
|
23
|
+
Bytes packed = compress(input="length limit".bytes())
|
|
24
|
+
bool rejected = false
|
|
25
|
+
try:
|
|
26
|
+
decompress(input=packed, maximumOutput=1)
|
|
27
|
+
catch CompressionError error:
|
|
28
|
+
rejected = true
|
|
29
|
+
assert(rejected)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `api.aug`
|
|
4
|
+
|
|
5
|
+
<a id="symbol-compress"></a>
|
|
6
|
+
## `compress` · [source](api.aug#L7)
|
|
7
|
+
|
|
8
|
+
Compress bytes with the standard zlib framing. It takes `input` as `Bytes`. Failures can raise [`CompressionError`](contracts.aug.md#symbol-CompressionError).
|
|
9
|
+
|
|
10
|
+
Within an unsafe block, it returns [`_compress`](api.aug.md#symbol-_compress) with `input`. Native operations must satisfy their declared C contracts.
|
|
11
|
+
|
|
12
|
+
<a id="symbol-decompress"></a>
|
|
13
|
+
## `decompress` · [source](api.aug#L11)
|
|
14
|
+
|
|
15
|
+
Decompress at most maximumOutput bytes (maximum 256 MiB). It takes `input` as `Bytes` and `maximumOutput` as an integer. Failures can raise [`CompressionError`](contracts.aug.md#symbol-CompressionError).
|
|
16
|
+
|
|
17
|
+
Within an unsafe block, it returns [`_decompress`](api.aug.md#symbol-_decompress) with `input` and `maximumOutput`. Native operations must satisfy their declared C contracts.
|
|
18
|
+
|
|
19
|
+
<a id="symbol-_compress"></a>
|
|
20
|
+
## `_compress` · [source](api.aug#L4)
|
|
21
|
+
|
|
22
|
+
It is private to its defining scope. It takes `input` as `Bytes`. It returns `Bytes`. Failures can raise [`CompressionError`](contracts.aug.md#symbol-CompressionError).
|
|
23
|
+
|
|
24
|
+
Native implementation: `@greenpandastudios/aug-zlib@0.1.3`, `1.3.2`. Supported targets: linux arm64 glibc 2.36+, linux x64 glibc 2.36+, macos arm64 14.0+. Binding contract: [`native.abi.json`](native.abi.json) (SHA-256 `c3d4b36eadcccd13caff71597ed77a8e7307f0cfe3d13660a8e9127efe942b3d`). It calls `aug_zlib_compress_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. August copies the returned buffer, then calls `aug_zlib_release_v1` to release it. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
|
|
25
|
+
|
|
26
|
+
<a id="symbol-_decompress"></a>
|
|
27
|
+
## `_decompress` · [source](api.aug#L5)
|
|
28
|
+
|
|
29
|
+
It is private to its defining scope. It takes `input` as `Bytes` and `maximumOutput` as an integer. It returns `Bytes`. Failures can raise [`CompressionError`](contracts.aug.md#symbol-CompressionError).
|
|
30
|
+
|
|
31
|
+
Native implementation: `@greenpandastudios/aug-zlib@0.1.3`, `1.3.2`. Supported targets: linux arm64 glibc 2.36+, linux x64 glibc 2.36+, macos arm64 14.0+. Binding contract: [`native.abi.json`](native.abi.json) (SHA-256 `c3d4b36eadcccd13caff71597ed77a8e7307f0cfe3d13660a8e9127efe942b3d`). It calls `aug_zlib_decompress_v1` through the C ABI on the caller thread; a blocking native call blocks that thread. August copies the returned buffer, then calls `aug_zlib_release_v1` to release it. The compiler checks the provider, descriptor digest, signature and ownership at August call sites. The native author promises not to retain inputs, enter August from foreign threads, or unwind across the C boundary; internal native workers may run. The compiler does not prove those promises.
|
|
32
|
+
|
|
33
|
+
<a id="symbol-test compress"></a>
|
|
34
|
+
## `test compress` · [source](api.aug#L15)
|
|
35
|
+
|
|
36
|
+
Tests [`compress`](api.aug.md#symbol-compress). Each case gets fresh setup and dependencies.
|
|
37
|
+
|
|
38
|
+
### `compression`
|
|
39
|
+
|
|
40
|
+
#### `preserves_bytes` · [source](api.aug#L17)
|
|
41
|
+
|
|
42
|
+
It sets `input` of type `Bytes` to `bytes` on `"The world runs on language"`. It sets `packed` of type `Bytes` to [`compress`](api.aug.md#symbol-compress) with `input`. It sets `restored` of type `Bytes` to [`decompress`](api.aug.md#symbol-decompress) with `input` from `packed` and `maximumOutput` `4096`. The test requires `restored.text` equals `"The world runs on language"`.
|
|
43
|
+
|
|
44
|
+
#### `checks_output_limit` · [source](api.aug#L22)
|
|
45
|
+
|
|
46
|
+
It sets `packed` of type `Bytes` to [`compress`](api.aug.md#symbol-compress) with `input` from `bytes` on `"length limit"`. It sets `rejected` to `false`.
|
|
47
|
+
|
|
48
|
+
It tries to call [`decompress`](api.aug.md#symbol-decompress) with `input` from `packed` and `maximumOutput` `1`. If this work raises [`CompressionError`](contracts.aug.md#symbol-CompressionError), it sets `rejected` to `true`. The test requires `rejected` is true.
|
|
49
|
+
|
|
50
|
+
## Dependencies
|
|
51
|
+
|
|
52
|
+
It uses [`CompressionError`](contracts.aug.md#symbol-CompressionError) from `contracts`.
|
|
53
|
+
|
|
54
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/contracts.aug.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `contracts.aug`
|
|
4
|
+
|
|
5
|
+
<a id="symbol-CompressionError"></a>
|
|
6
|
+
## `CompressionError` · class · [source](contracts.aug#L3)
|
|
7
|
+
|
|
8
|
+
It implements `Error`. It takes `code` as an integer, kept read-only and `message` as a string, kept read-only.
|
package/examples/native-zlib/.aug-spec/packages/@greenpandastudios/aug-zlib/0.1.3/native.abi.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 1,
|
|
3
|
+
"profile": "aug-native-abi-1",
|
|
4
|
+
"resources": [],
|
|
5
|
+
"functions": [
|
|
6
|
+
{
|
|
7
|
+
"module": "api",
|
|
8
|
+
"name": "_compress",
|
|
9
|
+
"symbol": "aug_zlib_compress_v1",
|
|
10
|
+
"params": [
|
|
11
|
+
{
|
|
12
|
+
"name": "input",
|
|
13
|
+
"kind": "bytes"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"result": {
|
|
17
|
+
"kind": "bytes",
|
|
18
|
+
"release": "aug_zlib_release_v1"
|
|
19
|
+
},
|
|
20
|
+
"error": "contracts.CompressionError",
|
|
21
|
+
"callingConvention": "C",
|
|
22
|
+
"status": "i32",
|
|
23
|
+
"uses": [],
|
|
24
|
+
"changes": [],
|
|
25
|
+
"thread": "caller",
|
|
26
|
+
"retainsInputs": false
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"module": "api",
|
|
30
|
+
"name": "_decompress",
|
|
31
|
+
"symbol": "aug_zlib_decompress_v1",
|
|
32
|
+
"params": [
|
|
33
|
+
{
|
|
34
|
+
"name": "input",
|
|
35
|
+
"kind": "bytes"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "maximumOutput",
|
|
39
|
+
"kind": "i64",
|
|
40
|
+
"minimum": 0,
|
|
41
|
+
"maximum": 268435456
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"result": {
|
|
45
|
+
"kind": "bytes",
|
|
46
|
+
"release": "aug_zlib_release_v1"
|
|
47
|
+
},
|
|
48
|
+
"error": "contracts.CompressionError",
|
|
49
|
+
"callingConvention": "C",
|
|
50
|
+
"status": "i32",
|
|
51
|
+
"uses": [],
|
|
52
|
+
"changes": [],
|
|
53
|
+
"thread": "caller",
|
|
54
|
+
"retainsInputs": false
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Working on this August project
|
|
2
|
+
|
|
3
|
+
Read each file's adjacent `.aug.md` before editing; change `.aug` source and regenerate with `aug spec .`.
|
|
4
|
+
This project imports real zlib through a tagged public package. Keep dependency versions and the decompressed output bound explicit. Do not replace native operations with a mock.
|
|
5
|
+
Use the August 0.21.0 LLVM preview on macOS 14+ ARM64. Run `aug install .`, `aug check .`, `aug test .`, and `aug run .`. Consumer installation must not invoke native build scripts.
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 1,
|
|
3
|
+
"compiler": "0.21.0",
|
|
4
|
+
"specifications": {
|
|
5
|
+
"url_d228d2263a1adea428cd": "https://github.com/GreenPandaStudios/aug-zlib#v0.1.3"
|
|
6
|
+
},
|
|
7
|
+
"roots": {
|
|
8
|
+
"url_d228d2263a1adea428cd": "packages/url_d228d2263a1adea428cd"
|
|
9
|
+
},
|
|
10
|
+
"npm": {},
|
|
11
|
+
"git": [
|
|
12
|
+
{
|
|
13
|
+
"request": "https://github.com/GreenPandaStudios/aug-zlib#v0.1.3",
|
|
14
|
+
"repository": "https://github.com/GreenPandaStudios/aug-zlib.git",
|
|
15
|
+
"revision": "v0.1.3",
|
|
16
|
+
"folder": "",
|
|
17
|
+
"commit": "827a8dde5d0d013d00fff6a2a19036b299d0085f"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"packages": [
|
|
21
|
+
{
|
|
22
|
+
"path": "packages/url_d228d2263a1adea428cd",
|
|
23
|
+
"name": "@greenpandastudios/aug-zlib",
|
|
24
|
+
"version": "0.1.3",
|
|
25
|
+
"source": "src",
|
|
26
|
+
"digest": "655984ba9c26061fb89b2dbc9764a114926c1b5e1bce1fb1ff0b4f0283aab74b",
|
|
27
|
+
"dependencies": {},
|
|
28
|
+
"native": {
|
|
29
|
+
"profile": "aug-native-abi-1",
|
|
30
|
+
"bindings": "native.abi.json",
|
|
31
|
+
"bindingsSha256": "c3d4b36eadcccd13caff71597ed77a8e7307f0cfe3d13660a8e9127efe942b3d",
|
|
32
|
+
"upstream": {
|
|
33
|
+
"repository": "https://github.com/madler/zlib",
|
|
34
|
+
"version": "1.3.2",
|
|
35
|
+
"sourceRevision": "bb329a0a2cd0274d05519d61c667c062e06990d72e125ee2dfa8de64f0119d16"
|
|
36
|
+
},
|
|
37
|
+
"artifacts": [
|
|
38
|
+
{
|
|
39
|
+
"id": "linux-arm64",
|
|
40
|
+
"target": {
|
|
41
|
+
"triple": "aarch64-unknown-linux-gnu",
|
|
42
|
+
"os": "linux",
|
|
43
|
+
"arch": "arm64",
|
|
44
|
+
"minimumLibc": "2.36",
|
|
45
|
+
"cpuBaseline": "armv8-a",
|
|
46
|
+
"libc": "glibc"
|
|
47
|
+
},
|
|
48
|
+
"url": "https://github.com/GreenPandaStudios/aug-zlib/releases/download/v0.1.3/native-linux-arm64.tar.gz",
|
|
49
|
+
"sha256": "6da832fa341a1fba96643244da2bb63957107d2b1413743c363fca002e500c66",
|
|
50
|
+
"maximumDownloadBytes": 101094,
|
|
51
|
+
"maximumUnpackedBytes": 248063,
|
|
52
|
+
"link": {
|
|
53
|
+
"kind": "dynamic",
|
|
54
|
+
"libraries": [
|
|
55
|
+
"lib/libaug_zlib.so.1"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"runtime": {
|
|
59
|
+
"files": [
|
|
60
|
+
"lib/libaug_zlib.so.1"
|
|
61
|
+
],
|
|
62
|
+
"closureManifest": "runtime-files.json",
|
|
63
|
+
"relocation": "loader-relative"
|
|
64
|
+
},
|
|
65
|
+
"components": [
|
|
66
|
+
{
|
|
67
|
+
"id": "https://github.com/madler/zlib",
|
|
68
|
+
"version": "1.3.2",
|
|
69
|
+
"compatibilityKey": "aug-zlib-runtime",
|
|
70
|
+
"linkage": "static",
|
|
71
|
+
"required": true
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"fileManifest": "files.json",
|
|
75
|
+
"provenance": "provenance.json",
|
|
76
|
+
"notices": "THIRD_PARTY_NOTICES.md"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "linux-x64",
|
|
80
|
+
"target": {
|
|
81
|
+
"triple": "x86_64-unknown-linux-gnu",
|
|
82
|
+
"os": "linux",
|
|
83
|
+
"arch": "x64",
|
|
84
|
+
"minimumLibc": "2.36",
|
|
85
|
+
"cpuBaseline": "x86-64",
|
|
86
|
+
"libc": "glibc"
|
|
87
|
+
},
|
|
88
|
+
"url": "https://github.com/GreenPandaStudios/aug-zlib/releases/download/v0.1.3/native-linux-x64.tar.gz",
|
|
89
|
+
"sha256": "c2a6e6522e3a96e1ee99f1b195f7457a7ab633dc05b65a29020aa5ea1ec7aa5d",
|
|
90
|
+
"maximumDownloadBytes": 109033,
|
|
91
|
+
"maximumUnpackedBytes": 205301,
|
|
92
|
+
"link": {
|
|
93
|
+
"kind": "dynamic",
|
|
94
|
+
"libraries": [
|
|
95
|
+
"lib/libaug_zlib.so.1"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"runtime": {
|
|
99
|
+
"files": [
|
|
100
|
+
"lib/libaug_zlib.so.1"
|
|
101
|
+
],
|
|
102
|
+
"closureManifest": "runtime-files.json",
|
|
103
|
+
"relocation": "loader-relative"
|
|
104
|
+
},
|
|
105
|
+
"components": [
|
|
106
|
+
{
|
|
107
|
+
"id": "https://github.com/madler/zlib",
|
|
108
|
+
"version": "1.3.2",
|
|
109
|
+
"compatibilityKey": "aug-zlib-runtime",
|
|
110
|
+
"linkage": "static",
|
|
111
|
+
"required": true
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"fileManifest": "files.json",
|
|
115
|
+
"provenance": "provenance.json",
|
|
116
|
+
"notices": "THIRD_PARTY_NOTICES.md"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"id": "macos-arm64",
|
|
120
|
+
"target": {
|
|
121
|
+
"triple": "aarch64-apple-darwin",
|
|
122
|
+
"os": "macos",
|
|
123
|
+
"arch": "arm64",
|
|
124
|
+
"minimumOS": "14.0",
|
|
125
|
+
"cpuBaseline": "armv8-a",
|
|
126
|
+
"libc": "libSystem"
|
|
127
|
+
},
|
|
128
|
+
"url": "https://github.com/GreenPandaStudios/aug-zlib/releases/download/v0.1.3/native-macos-arm64.tar.gz",
|
|
129
|
+
"sha256": "62419afbf81826f939e89be6c025781edb0cae4fe60e43736b2d3fa9fdf28dd4",
|
|
130
|
+
"maximumDownloadBytes": 39969,
|
|
131
|
+
"maximumUnpackedBytes": 106060,
|
|
132
|
+
"link": {
|
|
133
|
+
"kind": "dynamic",
|
|
134
|
+
"libraries": [
|
|
135
|
+
"lib/libaug_zlib.1.dylib"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"runtime": {
|
|
139
|
+
"files": [
|
|
140
|
+
"lib/libaug_zlib.1.dylib"
|
|
141
|
+
],
|
|
142
|
+
"closureManifest": "runtime-files.json",
|
|
143
|
+
"relocation": "loader-relative"
|
|
144
|
+
},
|
|
145
|
+
"components": [
|
|
146
|
+
{
|
|
147
|
+
"id": "https://github.com/madler/zlib",
|
|
148
|
+
"version": "1.3.2",
|
|
149
|
+
"compatibilityKey": "aug-zlib-runtime",
|
|
150
|
+
"linkage": "static",
|
|
151
|
+
"required": true
|
|
152
|
+
}
|
|
153
|
+
],
|
|
154
|
+
"fileManifest": "files.json",
|
|
155
|
+
"provenance": "provenance.json",
|
|
156
|
+
"notices": "THIRD_PARTY_NOTICES.md"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"sourceBuild": {
|
|
160
|
+
"recipe": "native/build.json",
|
|
161
|
+
"inputs": "native/sources.lock.json",
|
|
162
|
+
"tools": [
|
|
163
|
+
"Node 24+",
|
|
164
|
+
"Clang",
|
|
165
|
+
"macOS: Apple SDK",
|
|
166
|
+
"GNU/Linux: Docker with the pinned Debian 12 maintainer image and patchelf"
|
|
167
|
+
],
|
|
168
|
+
"automatic": false
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"native": {
|
|
174
|
+
"format": 1,
|
|
175
|
+
"targets": {
|
|
176
|
+
"aarch64-apple-darwin/macos14": {
|
|
177
|
+
"target": {
|
|
178
|
+
"triple": "aarch64-apple-darwin",
|
|
179
|
+
"os": "macos",
|
|
180
|
+
"arch": "arm64",
|
|
181
|
+
"cpuBaseline": "armv8-a",
|
|
182
|
+
"libc": "libSystem",
|
|
183
|
+
"minimumOS": "26.0"
|
|
184
|
+
},
|
|
185
|
+
"packages": [
|
|
186
|
+
{
|
|
187
|
+
"sourcePackage": "@greenpandastudios/aug-zlib@0.1.3",
|
|
188
|
+
"sourceDigest": "655984ba9c26061fb89b2dbc9764a114926c1b5e1bce1fb1ff0b4f0283aab74b",
|
|
189
|
+
"sourceCommit": "827a8dde5d0d013d00fff6a2a19036b299d0085f",
|
|
190
|
+
"contractSha256": "c3d4b36eadcccd13caff71597ed77a8e7307f0cfe3d13660a8e9127efe942b3d",
|
|
191
|
+
"artifact": {
|
|
192
|
+
"id": "macos-arm64",
|
|
193
|
+
"target": {
|
|
194
|
+
"triple": "aarch64-apple-darwin",
|
|
195
|
+
"os": "macos",
|
|
196
|
+
"arch": "arm64",
|
|
197
|
+
"minimumOS": "14.0",
|
|
198
|
+
"cpuBaseline": "armv8-a",
|
|
199
|
+
"libc": "libSystem"
|
|
200
|
+
},
|
|
201
|
+
"url": "https://github.com/GreenPandaStudios/aug-zlib/releases/download/v0.1.3/native-macos-arm64.tar.gz",
|
|
202
|
+
"sha256": "62419afbf81826f939e89be6c025781edb0cae4fe60e43736b2d3fa9fdf28dd4",
|
|
203
|
+
"maximumDownloadBytes": 39969,
|
|
204
|
+
"maximumUnpackedBytes": 106060,
|
|
205
|
+
"link": {
|
|
206
|
+
"kind": "dynamic",
|
|
207
|
+
"libraries": [
|
|
208
|
+
"lib/libaug_zlib.1.dylib"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
"runtime": {
|
|
212
|
+
"files": [
|
|
213
|
+
"lib/libaug_zlib.1.dylib"
|
|
214
|
+
],
|
|
215
|
+
"closureManifest": "runtime-files.json",
|
|
216
|
+
"relocation": "loader-relative"
|
|
217
|
+
},
|
|
218
|
+
"components": [
|
|
219
|
+
{
|
|
220
|
+
"id": "https://github.com/madler/zlib",
|
|
221
|
+
"version": "1.3.2",
|
|
222
|
+
"compatibilityKey": "aug-zlib-runtime",
|
|
223
|
+
"linkage": "static",
|
|
224
|
+
"required": true
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"fileManifest": "files.json",
|
|
228
|
+
"provenance": "provenance.json",
|
|
229
|
+
"notices": "THIRD_PARTY_NOTICES.md"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// aug-spec: "compression.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
2
|
+
import CompressionError and compress and decompress from "https://github.com/GreenPandaStudios/aug-zlib#v0.1.3"
|
|
3
|
+
|
|
4
|
+
/** Compress text with zlib, then restore its bytes within a fixed output limit. */
|
|
5
|
+
roundTrip() returns Bytes unless CompressionError:
|
|
6
|
+
Bytes input = "The world runs on language".bytes()
|
|
7
|
+
Bytes compressed = compress(input)
|
|
8
|
+
return decompress(input=compressed, maximumOutput=4096)
|
|
9
|
+
|
|
10
|
+
test roundTrip:
|
|
11
|
+
when compression:
|
|
12
|
+
it preserves_the_original_bytes:
|
|
13
|
+
Bytes restored = roundTrip()
|
|
14
|
+
assert(restored.text() == "The world runs on language")
|
|
15
|
+
assert(restored.length() == 26)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `compression.aug`
|
|
4
|
+
|
|
5
|
+
<a id="symbol-roundTrip"></a>
|
|
6
|
+
## `roundTrip` · [source](compression.aug#L5)
|
|
7
|
+
|
|
8
|
+
Compress text with zlib, then restore its bytes within a fixed output limit. Failures can raise [`CompressionError`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/contracts.aug.md#symbol-CompressionError).
|
|
9
|
+
|
|
10
|
+
It sets `input` of type `Bytes` to the UTF-8 bytes of `"The world runs on language"`. It sets `compressed` of type `Bytes` to [`compress`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/api.aug.md#symbol-compress) with `input`. It returns [`decompress`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/api.aug.md#symbol-decompress) with `input` from `compressed` and `maximumOutput` `4096`.
|
|
11
|
+
|
|
12
|
+
<a id="symbol-test roundTrip"></a>
|
|
13
|
+
## `test roundTrip` · [source](compression.aug#L10)
|
|
14
|
+
|
|
15
|
+
Tests [`roundTrip`](compression.aug.md#symbol-roundTrip). Each case gets fresh setup and dependencies.
|
|
16
|
+
|
|
17
|
+
### `compression`
|
|
18
|
+
|
|
19
|
+
#### `preserves_the_original_bytes` · [source](compression.aug#L12)
|
|
20
|
+
|
|
21
|
+
It gets `restored` of type `Bytes` from [`roundTrip`](compression.aug.md#symbol-roundTrip). The test requires `restored.text` equals `"The world runs on language"`. The test requires the byte length of `restored` equals `26`.
|
|
22
|
+
|
|
23
|
+
## Dependencies
|
|
24
|
+
|
|
25
|
+
It uses [`compress`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/api.aug.md#symbol-compress), [`decompress`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/api.aug.md#symbol-decompress), and [`CompressionError`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/contracts.aug.md#symbol-CompressionError) from `https://github.com/GreenPandaStudios/aug-zlib#v0.1.3`.
|
|
26
|
+
|
|
27
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
2
|
+
import roundTrip from compression
|
|
3
|
+
import CompressionError from "https://github.com/GreenPandaStudios/aug-zlib#v0.1.3"
|
|
4
|
+
|
|
5
|
+
try:
|
|
6
|
+
print(value=roundTrip().text())
|
|
7
|
+
catch CompressionError error:
|
|
8
|
+
print(value=error.message)
|
|
9
|
+
catch ConversionError error:
|
|
10
|
+
print(value="Invalid UTF-8")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `main.aug`
|
|
4
|
+
|
|
5
|
+
## Startup
|
|
6
|
+
|
|
7
|
+
It prints `text` on [`roundTrip`](compression.aug.md#symbol-roundTrip). If this work raises [`CompressionError`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/contracts.aug.md#symbol-CompressionError) as `error`, it prints `error.message`. If this work raises `ConversionError`, it prints `"Invalid UTF-8"`.
|
|
8
|
+
|
|
9
|
+
## Dependencies
|
|
10
|
+
|
|
11
|
+
It uses [`CompressionError`](.aug-spec/packages/%40greenpandastudios/aug-zlib/0.1.3/contracts.aug.md#symbol-CompressionError) (`message`) from `https://github.com/GreenPandaStudios/aug-zlib#v0.1.3`. It uses [`roundTrip`](compression.aug.md#symbol-roundTrip) from `compression`.
|
|
12
|
+
|
|
13
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Generated by aug spec. This is a copy of the installed dependency source.
|
|
2
|
+
// aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
|
|
3
|
+
/** Permission to write to a console, provided by an explicitly selected adapter. */
|
|
4
|
+
capability Console:
|
|
5
|
+
/** Write one line of text. @param value Text to display. */
|
|
6
|
+
write<T>(T value) uses Console.write
|
|
7
|
+
|
|
8
|
+
/** The native standard-output adapter. Construction performs no output. */
|
|
9
|
+
SystemConsole() implements Console:
|
|
10
|
+
write<T>(T value):
|
|
11
|
+
print(value=value)
|
|
12
|
+
|
|
13
|
+
/** Read UTF-8 text through an explicitly selected filesystem adapter. */
|
|
14
|
+
capability FileReader:
|
|
15
|
+
/** Read text. @param path File path. @throws FileError The file could not be read. */
|
|
16
|
+
read(string path) returns string uses FileReader.read unless FileError
|
|
17
|
+
|
|
18
|
+
/** Write UTF-8 text through an explicitly selected filesystem adapter. */
|
|
19
|
+
capability FileWriter:
|
|
20
|
+
/** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
|
|
21
|
+
write(string path, string content) uses FileWriter.write unless FileError
|
|
22
|
+
|
|
23
|
+
/** Native files. Operations are explicit; construction opens no files. */
|
|
24
|
+
LocalFiles() implements FileReader, FileWriter:
|
|
25
|
+
read(string path) :
|
|
26
|
+
return read_file(path=path)
|
|
27
|
+
write(string path, string content) :
|
|
28
|
+
write_file(path=path, content=content)
|
|
29
|
+
|
|
30
|
+
/** Read command-line input through an explicit dependency. */
|
|
31
|
+
capability Arguments:
|
|
32
|
+
read() returns List<string> uses Arguments.read
|
|
33
|
+
|
|
34
|
+
/** Native command-line arguments. */
|
|
35
|
+
ProcessArguments() implements Arguments:
|
|
36
|
+
read() :
|
|
37
|
+
return arguments()
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!-- Generated by aug spec. Edit the August source, then regenerate. -->
|
|
2
|
+
|
|
3
|
+
# `contracts.aug`
|
|
4
|
+
|
|
5
|
+
<a id="symbol-Console"></a>
|
|
6
|
+
## `Console` · capability interface · [source](contracts.aug#L4)
|
|
7
|
+
|
|
8
|
+
Permission to write to a console, provided by an explicitly selected adapter.
|
|
9
|
+
|
|
10
|
+
<a id="symbol-Console.write"></a>
|
|
11
|
+
### `Console.write` · [source](contracts.aug#L6)
|
|
12
|
+
|
|
13
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.aug.md#symbol-Console.write).
|
|
14
|
+
|
|
15
|
+
<a id="symbol-SystemConsole"></a>
|
|
16
|
+
## `SystemConsole` · class · [source](contracts.aug#L9)
|
|
17
|
+
|
|
18
|
+
The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.aug.md#symbol-Console).
|
|
19
|
+
|
|
20
|
+
<a id="symbol-SystemConsole.write"></a>
|
|
21
|
+
### `SystemConsole.write` · [source](contracts.aug#L10)
|
|
22
|
+
|
|
23
|
+
Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
|
|
24
|
+
|
|
25
|
+
<a id="symbol-FileReader"></a>
|
|
26
|
+
## `FileReader` · capability interface · [source](contracts.aug#L14)
|
|
27
|
+
|
|
28
|
+
Read UTF-8 text through an explicitly selected filesystem adapter.
|
|
29
|
+
|
|
30
|
+
<a id="symbol-FileReader.read"></a>
|
|
31
|
+
### `FileReader.read` · [source](contracts.aug#L16)
|
|
32
|
+
|
|
33
|
+
Read text. It takes `path` as a string (File path).
|
|
34
|
+
|
|
35
|
+
It returns `string`. It can call [`FileReader.read`](contracts.aug.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
|
|
36
|
+
|
|
37
|
+
<a id="symbol-FileWriter"></a>
|
|
38
|
+
## `FileWriter` · capability interface · [source](contracts.aug#L19)
|
|
39
|
+
|
|
40
|
+
Write UTF-8 text through an explicitly selected filesystem adapter.
|
|
41
|
+
|
|
42
|
+
<a id="symbol-FileWriter.write"></a>
|
|
43
|
+
### `FileWriter.write` · [source](contracts.aug#L21)
|
|
44
|
+
|
|
45
|
+
Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.aug.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
|
|
46
|
+
|
|
47
|
+
<a id="symbol-LocalFiles"></a>
|
|
48
|
+
## `LocalFiles` · class · [source](contracts.aug#L24)
|
|
49
|
+
|
|
50
|
+
Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.aug.md#symbol-FileReader) and [`FileWriter`](contracts.aug.md#symbol-FileWriter).
|
|
51
|
+
|
|
52
|
+
<a id="symbol-LocalFiles.read"></a>
|
|
53
|
+
### `LocalFiles.read` · [source](contracts.aug#L25)
|
|
54
|
+
|
|
55
|
+
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`.
|
|
56
|
+
|
|
57
|
+
<a id="symbol-LocalFiles.write"></a>
|
|
58
|
+
### `LocalFiles.write` · [source](contracts.aug#L27)
|
|
59
|
+
|
|
60
|
+
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`.
|
|
61
|
+
|
|
62
|
+
<a id="symbol-Arguments"></a>
|
|
63
|
+
## `Arguments` · capability interface · [source](contracts.aug#L31)
|
|
64
|
+
|
|
65
|
+
Read command-line input through an explicit dependency.
|
|
66
|
+
|
|
67
|
+
<a id="symbol-Arguments.read"></a>
|
|
68
|
+
### `Arguments.read` · [source](contracts.aug#L32)
|
|
69
|
+
|
|
70
|
+
It returns `List<string>`. It can call [`Arguments.read`](contracts.aug.md#symbol-Arguments.read).
|
|
71
|
+
|
|
72
|
+
<a id="symbol-ProcessArguments"></a>
|
|
73
|
+
## `ProcessArguments` · class · [source](contracts.aug#L35)
|
|
74
|
+
|
|
75
|
+
Native command-line arguments. It implements [`Arguments`](contracts.aug.md#symbol-Arguments).
|
|
76
|
+
|
|
77
|
+
<a id="symbol-ProcessArguments.read"></a>
|
|
78
|
+
### `ProcessArguments.read` · [source](contracts.aug#L36)
|
|
79
|
+
|
|
80
|
+
It returns `arguments`.
|
|
81
|
+
|
|
82
|
+
Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
|