From 35363eb267eff69a91a0f0a72e8231065325cbf1 Mon Sep 17 00:00:00 2001 From: Glen Whitney Date: Wed, 18 Sep 2024 19:11:03 -0700 Subject: [PATCH] doc: Initial README with project goals --- README.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0cd1c0e..d5cbc27 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,25 @@ # husht -All the Rust, just with less syntax \ No newline at end of file +All the Rust, just with less syntax + +You can think of husht as a preprocessor for Rust, or as a +indentation-significant "quiet syntax" language that compiles to Rust. +In any case, the idea is that .hsh files will transform 1-1 into .rs files, +and that all Rust language features will be available in a straightforward +way in husht. Along the way, we will likely add some additional syntactic +sugar in husht to easy some of the more common language patterns in Rust. +In particular, we plan to add more familiar syntax for closures. + +One less common feature of husht is that we will maintain its ability to +perform "disassembly" of Rust into recommended husht abbreviated form. Thus, +one can test husht by performing round trips, and in particular, Rust -> +husht -> Rust should have essentially the same behavior as prettyprinting the +original Rust code with rustfmt. + +The base source code of husht is written in husht, but for (relatively clear) +bootstrapping purposes, it ships with the transformed Rust, and one key +end-to-end test is that the shipped husht code for husht indeed transforms +into the Rust code. + +Documentation of specific syntax features of husht will be added as they are +implemented.