Help us shape the future of Go! Take the 2026 Go Developer Survey

dialect

package
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package dialect holds one package per shell the substrate imitates.

Nothing here is imported by syntax or interp, and that is the point. The substrate defines the *questions* — a grammar flag, a semantics axis, a diagnostic value — and each shell answers them in its own package. Adding a shell adds a directory; it does not touch the core.

Each package exports the same four functions, one per vector:

Dialect()     what parses
Semantics()   what it means where the shells conflict
Diagnostics() how failure is reported
Style()       how a formatter lays it back out

Style is the newest and the thinnest, because most of what a formatter decides is not a shell's to decide. It earns its place on one question: zsh's brace-spelled bodies parse to the tree the keyword spelling parses to, so nothing but a dialect's stated preference can say which spelling a formatter writes back. docs/spec/style.md holds the measurements.

No shell is defined in terms of another. Every preset starts from syntax.POSIX or interp.PosixSemantics — the standard, which is not a shell and has no successors — and overrides only what was measured to differ. Deriving zsh from bash, which is what this replaced, once silently gave zsh bash's answer for whether a readonly reassignment is fatal; zsh's own answer is the opposite, and nothing caught it until something exercised it. A preset that inherits from a sibling inherits its future mistakes too.

Directories

Path Synopsis
Package ash answers the substrate's questions the way BusyBox ash does.
Package ash answers the substrate's questions the way BusyBox ash does.
Package bash answers the substrate's questions the way bash 5 does.
Package bash answers the substrate's questions the way bash 5 does.
Package dash answers the substrate's questions the way dash does.
Package dash answers the substrate's questions the way dash does.
Package ksh answers the substrate's questions the way ksh93 does.
Package ksh answers the substrate's questions the way ksh93 does.
Package zsh answers the substrate's questions the way zsh does.
Package zsh answers the substrate's questions the way zsh does.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL