Hew
Eine Sprache, die mit Fehlern rechnet.
Hew kompiliert actorbasierte Programme zu nativem Code. Jeder Actor besitzt seinen Zustand, und Supervisors bestimmen, wie fehlgeschlagene Actors neu starten.
Der Zustand bleibt beim Actor
Dieser Session-Actor besitzt seinen Nachrichtenvektor. Nur post verändert ihn, und jeder Aufruf wartet auf das Ende des Handlers, bevor er ein Result zurückgibt.
count liest denselben privaten Zustand und gibt den Wert an den Caller zurück. Der Fehlerzweig bleibt sichtbar, weil der Actor vor Abschluss des Aufrufs stoppen kann.
// A chat session is an actor: state lives in fields and only its handlers
// can mutate it. Ordinary actor calls wait for the handler and return a
// Result, whether or not the handler itself returns a value.
actor Session {
let user: string;
var messages: Vec<string> = Vec.new();
receive fn post(text: string) {
messages.push(text);
}
receive fn count() -> i64 {
messages.len()
}
}
fn main() {
let chat = spawn Session { user: "ada", messages: [] };
chat.post("hello").expect("actor stopped");
chat.post("world").expect("actor stopped");
let total = chat.count();
match total {
.Ok(n) => println(f"{n} messages posted"),
.Err(_) => println("session unavailable"),
}
}Hew installieren
Wählen Sie Betriebssystem und Compiler-Version.
v0.9.3 · Version
$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3$ curl -fsSL https://hew.sh/install | bash -s -- --version 0.9.3> Invoke-WebRequest https://hew.sh/install.ps1 -OutFile install.ps1
.\install.ps1 -Version 0.9.3Was die Sprache ausdrücklich macht
Die in v0.9.3 verfügbaren Actor-, Supervision-, Nebenläufigkeits- und Wire-Oberflächen.
- Aufrufer:
chat.post("hello"). Wartet auf das Handler-Ergebnis. - Mailbox:
post("hello"). - Ein Handler-Durchlauf:
messages.push(text). Privater Zustand:messages: ["hello"]. - Ergebnis des Aufrufs → Aufrufer.
Ein erfolgreicher post-Aufruf aktualisiert den privaten Zustand von Session, bevor er sein Ergebnis zurückgibt.
Actor-Isolation
Jeder Actor besitzt seinen Zustand exklusiv. Der Compiler erzwingt lokale Actor-Grenzen und Send-Prüfungen.
Supervision-Bäume
Dienste stürzen ab — Hew rechnet damit. Supervisor-Actors, Neustart-Budgets und die zentralen Neustartstrategien sind Teil der Sprache selbst, nicht eines separaten Frameworks.
Strukturierte Nebenläufigkeit
Ein scope begrenzt Child-Arbeit und wartet vor der Rückkehr darauf; fork startet unabhängige Actor-Aufrufe, die später zusammengeführt werden können.
Wire-Verträge
Wire-Typen bringen Schemas, Feld-Tags und Kompatibilitätsprüfungen in die Sprache, direkt neben die Actors, die sie senden.
Entwicklungsjournal
Hew 0.6.2: safer values, steadier services Edit parsed configuration without changing its source value, then see how Hew 0.6.2 carries the same actor reference across local and remote services. 21. Okt. 2026Zum Blog → EN
Hew Notes
Language development, engineering articles, releases and community projects. About once a month, with an extra issue for a significant release. Written in English.
Subscribe to Hew Notes