Skip the bullshit
// docs / Language

It is not Rust

Some of the syntax is familiar. The crab is not coming.

VCWL looks like Rust. It is not Rust. There is no borrow checker, no lifetimes, no unsafe, and no crab. Writing Rust in a .vcwl file gets you a diagnostic, not a compiler.

Rust on the left, VCWL on the right

vcwl
println!("hi") -> print("hi")
let mut n = 0 -> var n = 0
std::fmt::Display -> std.fmt.Display (paths use `.`)
&x, &mut x -> x (no references)
x.unwrap() -> x.unwrap_or(d), match, or `x?`
Vec<T> -> [T]
Option<T> -> T?
pub fn f() -> export fn f()
use a::b; -> import "./b.vcwl"
#[derive(Debug)] -> (nothing)
fn f<'a>(s: &'a str) -> fn f(s: String)

What the compiler says

When a file fails to parse and contains Rust-isms (println!, ::, &, let mut, #[derive], .unwrap(), Vec<, pub fn, use, lifetimes), the error says so and gives the VCWL spelling. An entry file ending in .rs is refused outright.