Documentation
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
goalchemy
command
Command goalchemy validates and transpiles Goalchemy programs.
|
Command goalchemy validates and transpiles Goalchemy programs. |
|
hardening
command
Command hardening runs bounded differential campaigns, performance baselines, and versioned upgrade checks for all released targets.
|
Command hardening runs bounded differential campaigns, performance baselines, and versioned upgrade checks for all released targets. |
|
protoc-gen-goalchemy
command
Command protoc-gen-goalchemy is a protoc and buf plugin that generates Goalchemy-subset Go messages with proto3 JSON encoding and Connect clients for unary methods.
|
Command protoc-gen-goalchemy is a protoc and buf plugin that generates Goalchemy-subset Go messages with proto3 JSON encoding and Connect clients for unary methods. |
|
examples
|
|
|
bank
command
Command bank models accounts with typed errors, interfaces, and deferred audit logging.
|
Command bank models accounts with typed errors, interfaces, and deferred audit logging. |
|
calc
command
Command calc parses and evaluates integer arithmetic expressions.
|
Command calc parses and evaluates integer arithmetic expressions. |
|
fetch
command
Command fetch downloads the iris dataset over HTTPS and summarizes it.
|
Command fetch downloads the iris dataset over HTTPS and summarizes it. |
|
jwt
command
Command jwt signs and verifies HS256 JSON Web Tokens.
|
Command jwt signs and verifies HS256 JSON Web Tokens. |
|
life
command
Command life runs Conway's Game of Life on a fixed toroidal board.
|
Command life runs Conway's Game of Life on a fixed toroidal board. |
|
pipeline
command
Command pipeline fans jobs out to workers under per-job deadlines.
|
Command pipeline fans jobs out to workers under per-job deadlines. |
|
wordfreq
command
Command wordfreq counts words in a text and prints the most frequent ones.
|
Command wordfreq counts words in a text and prints the most frequent ones. |
|
internal
|
|
|
apidoc
Package apidoc extracts source documentation and native API declarations.
|
Package apidoc extracts source documentation and native API declarations. |
|
catalog
Package catalog locates the contract catalog and exposes the external capability registry derived from it.
|
Package catalog locates the contract catalog and exposes the external capability registry derived from it. |
|
conformance
Package conformance runs canonical contract cases against a target's runtime through its JSON Lines harness process.
|
Package conformance runs canonical contract cases against a target's runtime through its JSON Lines harness process. |
|
contracts
Package contracts loads, validates, and normalizes the canonical runtime contract catalog and the target mappings that implement it.
|
Package contracts loads, validates, and normalizes the canonical runtime contract catalog and the target mappings that implement it. |
|
driver
Package driver runs the compiler pipeline: load, validate, lower, emit.
|
Package driver runs the compiler pipeline: load, validate, lower, emit. |
|
emit/artifact
Package artifact describes native source files and source-package ownership for one whole-program emission.
|
Package artifact describes native source files and source-package ownership for one whole-program emission. |
|
emit/c
Package c emits C17.
|
Package c emits C17. |
|
emit/csharp
Package csharp emits C# 12 for .NET 8.
|
Package csharp emits C# 12 for .NET 8. |
|
emit/golang
Package golang emits lowered Go: a Go program whose control flow is structured from the IR's basic blocks and whose implementation-dependent operations (append growth, map order, panic reporting) call the Goalchemy Go runtime.
|
Package golang emits lowered Go: a Go program whose control flow is structured from the IR's basic blocks and whose implementation-dependent operations (append growth, map order, panic reporting) call the Goalchemy Go runtime. |
|
emit/java
Package java emits Java 21.
|
Package java emits Java 21. |
|
emit/py
Package py emits Python 3.10+.
|
Package py emits Python 3.10+. |
|
emit/rust
Package rust emits Rust (edition 2021).
|
Package rust emits Rust (edition 2021). |
|
emit/swift
Package swift emits native Swift with explicit Go storage.
|
Package swift emits native Swift with explicit Go storage. |
|
emit/ts
Package ts emits TypeScript for Node.js.
|
Package ts emits TypeScript for Node.js. |
|
frontend
Package frontend loads Go packages under the locked Goalchemy source profile.
|
Package frontend loads Go packages under the locked Goalchemy source profile. |
|
hardening
Package hardening generates small, type-valid programs for differential testing.
|
Package hardening generates small, type-valid programs for differential testing. |
|
ir
Package ir defines Goalchemy's target-independent typed intermediate representation: typed functions made of basic blocks with explicit branch targets, local storage cells, and three-address instructions whose evaluation order and copy boundaries are already decided by lowering.
|
Package ir defines Goalchemy's target-independent typed intermediate representation: typed functions made of basic blocks with explicit branch targets, local storage cells, and three-address instructions whose evaluation order and copy boundaries are already decided by lowering. |
|
jsontype
Package jsontype describes Go types for std/encoding/json the way encoding/json's reflection does, so the language gate and the lowering of json.Marshal agree on encoders, struct fields and unsupported types.
|
Package jsontype describes Go types for std/encoding/json the way encoding/json's reflection does, so the language gate and the lowering of json.Marshal agree on encoders, struct fields and unsupported types. |
|
link
Package link resolves the runtime files a generated program needs and writes them with a build manifest.
|
Package link resolves the runtime files a generated program needs and writes them with a build manifest. |
|
lower
Package lower translates type-checked Goalchemy source into IR.
|
Package lower translates type-checked Goalchemy source into IR. |
|
naming
Package naming assigns deterministic private identifiers to emitted IR.
|
Package naming assigns deterministic private identifiers to emitted IR. |
|
project
Package project reads goalchemy.yaml, the project configuration that records roots, build tags, the language gate, and target outputs.
|
Package project reads goalchemy.yaml, the project configuration that records roots, build tags, the language gate, and target outputs. |
|
protoc
Package protoc generates Goalchemy-subset Go from protobuf descriptors: one struct per message with proto3 JSON encoding through std/encoding/protojson.
|
Package protoc generates Goalchemy-subset Go from protobuf descriptors: one struct per message with proto3 JSON encoding through std/encoding/protojson. |
|
sourcemap
Package sourcemap writes Source Map v3 files mapping generated lines back to Goalchemy source positions.
|
Package sourcemap writes Source Map v3 files mapping generated lines back to Goalchemy source positions. |
|
specgen
Package specgen generates per-target specifications, harness bindings and the runtime library reference from the canonical contract catalog.
|
Package specgen generates per-target specifications, harness bindings and the runtime library reference from the canonical contract catalog. |
|
structure
Package structure rebuilds structured control flow (if, loops, labelled blocks, break and continue) from a function's block graph, so targets print source-like code instead of a block-dispatch loop.
|
Package structure rebuilds structured control flow (if, loops, labelled blocks, break and continue) from a function's block graph, so targets print source-like code instead of a block-dispatch loop. |
|
subset
Package subset validates that type-checked Go source stays within the implemented Goalchemy feature gates.
|
Package subset validates that type-checked Go source stays within the implemented Goalchemy feature gates. |
|
testutil
Package testutil runs language fixtures natively and through Goalchemy targets and compares their observations.
|
Package testutil runs language fixtures natively and through Goalchemy targets and compares their observations. |
|
lib
|
|
|
callback
Package callback declares a bounded asynchronous host callback capability.
|
Package callback declares a bounded asynchronous host callback capability. |
|
checksum
Package checksum provides non-cryptographic checksums backed by host APIs where available.
|
Package checksum provides non-cryptographic checksums backed by host APIs where available. |
|
clock
SPDX-License-Identifier: Apache-2.0 Package clock provides wall time, independent of Goalchemy virtual time.
|
SPDX-License-Identifier: Apache-2.0 Package clock provides wall time, independent of Goalchemy virtual time. |
|
context
Package context provides Goalchemy's cancellation contexts; deadlines use the virtual clock.
|
Package context provides Goalchemy's cancellation contexts; deadlines use the virtual clock. |
|
crypto
SPDX-License-Identifier: Apache-2.0 Package crypto provides bounded native cryptographic capabilities.
|
SPDX-License-Identifier: Apache-2.0 Package crypto provides bounded native cryptographic capabilities. |
|
encoding
SPDX-License-Identifier: Apache-2.0 Package encoding provides canonical RFC 4648 base64 encodings.
|
SPDX-License-Identifier: Apache-2.0 Package encoding provides canonical RFC 4648 base64 encodings. |
|
errors
Package errors provides Goalchemy's error values.
|
Package errors provides Goalchemy's error values. |
|
http
SPDX-License-Identifier: Apache-2.0 Package http provides bounded HTTP exchanges, retaining TLS verification and returning redirect responses without following them.
|
SPDX-License-Identifier: Apache-2.0 Package http provides bounded HTTP exchanges, retaining TLS verification and returning redirect responses without following them. |
|
json
Package json is the native Go implementation behind std/encoding/json used when the program runs with the Go toolchain.
|
Package json is the native Go implementation behind std/encoding/json used when the program runs with the Go toolchain. |
|
log
Package log routes structured log records from Goalchemy programs to a sink the host application installs.
|
Package log routes structured log records from Goalchemy programs to a sink the host application installs. |
|
os
Package os reads and writes whole host files and opens files as handles.
|
Package os reads and writes whole host files and opens files as handles. |
|
runtime
Package runtime provides Goalchemy's scheduler controls.
|
Package runtime provides Goalchemy's scheduler controls. |
|
sync
Package sync provides Goalchemy's synchronization primitives.
|
Package sync provides Goalchemy's synchronization primitives. |
|
task
Package task provides structured waiting for Goalchemy programs.
|
Package task provides structured waiting for Goalchemy programs. |
|
time
Package time provides Goalchemy's virtual clock: Sleep advances it deterministically.
|
Package time provides Goalchemy's virtual clock: Sleep advances it deterministically. |
|
std
|
|
|
bytes
Package bytes manipulates byte slices.
|
Package bytes manipulates byte slices. |
|
connect
Package connect is a Connect protocol client for unary calls with the JSON codec, the transport behind services generated by protoc-gen-goalchemy.
|
Package connect is a Connect protocol client for unary calls with the JSON codec, the transport behind services generated by protoc-gen-goalchemy. |
|
encoding/binary
Package binary translates between unsigned integers and byte sequences, and encodes varints.
|
Package binary translates between unsigned integers and byte sequences, and encodes varints. |
|
encoding/hex
Package hex encodes and decodes hexadecimal strings.
|
Package hex encodes and decodes hexadecimal strings. |
|
encoding/json
Package json encodes and decodes JSON with the semantics of Go's encoding/json.
|
Package json encodes and decodes JSON with the semantics of Go's encoding/json. |
|
encoding/json/jcs
Package jcs implements the JSON Canonicalization Scheme of RFC 8785.
|
Package jcs implements the JSON Canonicalization Scheme of RFC 8785. |
|
encoding/jsonvalue
Package jsonvalue parses, inspects, builds and encodes JSON documents of any shape as a tree of Values, without declaring Go types.
|
Package jsonvalue parses, inspects, builds and encodes JSON documents of any shape as a tree of Values, without declaring Go types. |
|
encoding/protojson
Package protojson encodes and decodes proto3 JSON for messages generated by protoc-gen-goalchemy, matching google.golang.org/protobuf/encoding/protojson.
|
Package protojson encodes and decodes proto3 JSON for messages generated by protoc-gen-goalchemy, matching google.golang.org/protobuf/encoding/protojson. |
|
errors
Package errors implements functions to manipulate errors: creation, wrapping inspection with Is and As, and joining.
|
Package errors implements functions to manipulate errors: creation, wrapping inspection with Is and As, and joining. |
|
fmt
Package fmt formats values into strings and errors with Go's verbs, flags, widths, precisions and argument indexes.
|
Package fmt formats values into strings and errors with Go's verbs, flags, widths, precisions and argument indexes. |
|
http
Package http sends HTTP requests whose bodies stream through std/io: the request body is read from an io.Reader and the response body is an io.ReadCloser, so neither is held in memory whole.
|
Package http sends HTTP requests whose bodies stream through std/io: the request body is read from an io.Reader and the response body is an io.ReadCloser, so neither is held in memory whole. |
|
io
Package io provides basic interfaces to I/O primitives and helpers that combine them, matching Go's io package.
|
Package io provides basic interfaces to I/O primitives and helpers that combine them, matching Go's io package. |
|
io/hostio
Package hostio adapts host streams passed to library exports as std/io interfaces.
|
Package hostio adapts host streams passed to library exports as std/io interfaces. |
|
log/slog
Package slog provides structured logging with Go's log/slog API.
|
Package slog provides structured logging with Go's log/slog API. |
|
net
Package net provides the host and port helpers of Go's net package: JoinHostPort, SplitHostPort and AddrError.
|
Package net provides the host and port helpers of Go's net package: JoinHostPort, SplitHostPort and AddrError. |
|
net/url
Package url parses URLs and implements query escaping, following Go's net/url: the same parsing rules, escaping and error messages.
|
Package url parses URLs and implements query escaping, following Go's net/url: the same parsing rules, escaping and error messages. |
|
os
Package os reads and writes whole files on the host file system.
|
Package os reads and writes whole files on the host file system. |
|
sort
Package sort sorts collections through the Len, Less, and Swap methods.
|
Package sort sorts collections through the Len, Less, and Swap methods. |
|
strconv
Package strconv converts between integers, Booleans, and their string forms, and formats floating-point numbers.
|
Package strconv converts between integers, Booleans, and their string forms, and formats floating-point numbers. |
|
strings
Package strings manipulates UTF-8 encoded strings.
|
Package strings manipulates UTF-8 encoded strings. |
|
time
Package time measures and displays time.
|
Package time measures and displays time. |
|
unicode
Package unicode classifies runes and maps their case using the Unicode tables of the reference Go toolchain.
|
Package unicode classifies runes and maps their case using the Unicode tables of the reference Go toolchain. |
|
unicode/utf8
Package utf8 encodes and decodes UTF-8 text.
|
Package utf8 encodes and decodes UTF-8 text. |
|
targets
|
|
|
go/runtime
Package rt is the Goalchemy runtime for the lowered Go target.
|
Package rt is the Goalchemy runtime for the lowered Go target. |
|
go/tests/harness
command
Command harness serves runtime conformance requests for the Go target over JSON Lines on standard input and output.
|
Command harness serves runtime conformance requests for the Go target over JSON Lines on standard input and output. |
|
tests
|
|
|
corpus/r001_print_tuple
command
|
|
|
corpus/r002_named_map_methods
command
|
|
|
corpus/r003_func_nil_compare
command
|
|
|
corpus/r004_defer_named_results
command
|
|
|
corpus/r005_append_nil_capacity
command
|
|
|
corpus/r006_comma_ok_assert_type
command
|
|
|
corpus/r008_defer_named_struct_result
command
goalchemy:gate cooperative
|
goalchemy:gate cooperative |
|
corpus/r009_range_empty_struct_map
command
goalchemy:gate cooperative
|
goalchemy:gate cooperative |
Click to show internal directories.
Click to hide internal directories.