13 - FAQ

Is Verge production-ready?

Not really. It is early.

That does not mean it is fake or unusable. It means exactly what it sounds like: the compiler works, features exist, programs run, but the ecosystem and tooling are still maturing. If you want maximum stability, use something older. If you want to build things with a language that is still becoming itself, Verge is interesting.

Why braces instead of indentation?

Braces make block structure explicit, easy to scan, and independent of invisible whitespace. Verge still uses tabs for indentation inside blocks for readability, but the braces are what define the structure.

Can I use Verge for systems work, web stuff, or CLI tools?

Yes, in principle.

Verge is aiming at a fairly broad space: native programs, CLIs, servers, FFI-heavy code, and even WebAssembly targets. The honest caveat is that “can” and “should for a serious production deadline tomorrow” are different questions.

Why isn’t Verge self-hosted yet?

It’s getting there. A Verge-in-Verge compiler is actively in progress — the lexer, parser, and type checker are being built and tested in Verge itself, which is the most honest stress test a language can face.

The Rust bootstrap is perfectly fine in the meantime, so self-hosting is a milestone rather than a moral requirement. Plenty of good languages spent a long time implemented in something else first, and dogfooding the compiler through its own source is exactly how the sharp edges get found and filed down.

How do I report a bug?

Because Verge is in alpha and not yet publicly available, there’s no public issue tracker yet. When there is, a good report includes the Verge version, the code that fails, what you expected, and what actually happened.

Does Verge have a package manager?

Sort of, yes.

Dependencies are managed through the CLI with verge add and verge fetch, using git-based packages. It is not a full registry ecosystem yet, but it covers the essentials.

Is Verge safe like Rust?

No. Verge gives you raw pointers, null, and direct FFI into C, with explicit allocators in std.mem when you want to manage memory yourself. It has plenty of higher-level features too, but it isn’t trying to be Rust, and there is no borrow checker enforcing memory safety at compile time. That trades some safety guarantees for lower-level control.