<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mah blog</title>
		<link>https://mah-lang.example.com/blog</link>
		<description>Updates, design notes, and changelogs for the Mah language.</description>
		<language>en-us</language>
		<item>
			<title>v0.1.0: runnable bytecode and the Rust VM</title>
			<link>https://mah-lang.example.com/blog/v0-1-0-runnable-bytecode-and-rust-vm</link>
			<guid>https://mah-lang.example.com/blog/v0-1-0-runnable-bytecode-and-rust-vm</guid>
			<pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
			<description>A second, from-scratch Rust implementation of the .mahc bytecode machine, plus self-contained executables that run without mah or Python installed.</description>
			<category>changelog</category>
		</item>
		<item>
			<title>v0.0.4: projects, kwargs, iterators, and mah format</title>
			<link>https://mah-lang.example.com/blog/v0-0-4-projects-kwargs-iterators-format</link>
			<guid>https://mah-lang.example.com/blog/v0-0-4-projects-kwargs-iterators-format</guid>
			<pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
			<description>mah init and mah-project.toml, default parameters and keyword arguments, ranges/iterators, Vector and Map, for loops, match guards, type annotation syntax, and the formatter.</description>
			<category>changelog</category>
		</item>
		<item>
			<title>v0.0.3: defer, async, traits, and portable bytecode</title>
			<link>https://mah-lang.example.com/blog/v0-0-3-defer-async-traits-bytecode</link>
			<guid>https://mah-lang.example.com/blog/v0-0-3-defer-async-traits-bytecode</guid>
			<pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
			<description>Zig-style defer, cooperative async with detach/.await, cross-file rename, Rust-style traits and impl, and the first portable .mahc bytecode format.</description>
			<category>changelog</category>
		</item>
		<item>
			<title>How Mah closures capture by reference</title>
			<link>https://mah-lang.example.com/blog/closures-that-capture-by-reference</link>
			<guid>https://mah-lang.example.com/blog/closures-that-capture-by-reference</guid>
			<pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
			<description>A quick look at the activation-record model behind Mah&apos;s closures, and why it gives you JavaScript-style capture instead of Python&apos;s.</description>
			<category>design</category>
			<category>internals</category>
		</item>
		<item>
			<title>v0.0.2: a hand-written compiler and the v2 language core</title>
			<link>https://mah-lang.example.com/blog/v0-0-2-hand-written-compiler-and-v2-core</link>
			<guid>https://mah-lang.example.com/blog/v0-0-2-hand-written-compiler-and-v2-core</guid>
			<pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
			<description>The v2 rewrite: a hand-written lexer/parser, heap-allocated closures, structs, enums, pattern matching, expression blocks, a forgiving parser, and the first LSP.</description>
			<category>changelog</category>
		</item>
		<item>
			<title>Why Mah is hand-written, pure Python, and dependency-free</title>
			<link>https://mah-lang.example.com/blog/why-hand-written-and-dependency-free</link>
			<guid>https://mah-lang.example.com/blog/why-hand-written-and-dependency-free</guid>
			<pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
			<description>A few deliberate constraints run through the whole project: no parser generator, no third-party runtime dependencies, and closures over a real activation-record model.</description>
			<category>design</category>
		</item>
		<item>
			<title>v0.0.1: the first Mah prototype</title>
			<link>https://mah-lang.example.com/blog/v0-0-1-the-first-prototype</link>
			<guid>https://mah-lang.example.com/blog/v0-0-1-the-first-prototype</guid>
			<pubDate>Fri, 07 Feb 2025 00:00:00 GMT</pubDate>
			<description>Where Mah started: a grammar-DSL-generated parser, a flat-array interpreter, and just enough syntax to find prime numbers.</description>
			<category>changelog</category>
		</item>
	</channel>
</rss>
