Announcing Wave v0.1.6-pre-beta: A Major Leap in Architecture and Ecosystem
We are thrilled to announce the release of Wave v0.1.6-pre-beta. This isn't just another update; it is a definitive milestone in Wave's journey. This release introduces a massiv...
Wave Foundation
Announcing Wave v0.1.6-pre-beta: A Major Leap in Architecture and Ecosystem
We are thrilled to announce the release of Wave v0.1.6-pre-beta. This isn't just another update; it is a definitive milestone in Wave's journey. This release introduces a massive architectural refactoring, a formal standard library system, and significant enhancements to both the compiler frontend and the LLVM backend.
With v0.1.6-pre-beta, Wave matures from a prototype into a robust tool ready for more complex systems programming.
1. Re-architecting for the Future
To ensure Wave can scale with its community, we have completely overhauled the compiler's internal structure.
-
Modular Frontend: The once-monolithic Lexer and Parser have been decomposed into functional submodules. This modularity makes the codebase easier to navigate and allows us to iterate on language features without side effects.
-
The
utilsCrate: We’ve introduced an internal utility crate to handle JSON parsing, terminal colorization, and string formatting. By replacing heavy external dependencies likeregexwith our own lightweight implementations, we’ve significantly reduced compilation times and binary size. -
Polished Diagnostics: Error messages now use a refined RGB color palette and provide more accurate source pointers, making the debugging experience much more intuitive.
2. A More Expressive Language
We’ve expanded Wave’s syntax and type system to handle a wider range of programming patterns.
-
Comprehensive Type System: Support for integer types from
i8toi128(and their unsigned counterparts), floating-point types (f32/f64),bool,char, andbyte. -
Literal Enhancements: You can now use binary (
0b), hexadecimal (0x), and octal (0o) literals, alongside character literals and boolean constants. -
Advanced Operators:
-
Full support for unary operators:
-,!, and~. -
Increment/Decrement (
++,--) in both prefix and postfix forms. -
Bitwise operations including shifts (
<<,>>) and XOR (^).
-
-
Complex Structures: Arrays now support bounds-checked type declarations and literals. Structs have been upgraded with field access and "method" syntax sugar (
obj.method()), bringing a modern feel to low-level code.
3. Backend Power & Performance (LLVM)
The LLVM backend has been upgraded to bridge the gap between Wave and the existing system ecosystem.
-
Clang-based Linking: Wave now uses Clang as its default linker. This allows seamless interoperability with the C standard library (
libc) and math library (libm). -
Optimization Levels: Developers can now use
-O0through-O3, including-Oz(for size) and-Ofast. -
Pro-level Inline Assembly: The
asmblock now supports sophisticated input/output constraints, enabling high-performance system calls and direct hardware interaction.
4. The Standard Library (std) & Tooling
A language is only as strong as its library. We are introducing the first iteration of the Wave Standard Library, distributed independently of the compiler.
-
New CLI Commands: Use
wavec install stdandwavec update stdto manage your local library installation directly from our official repository. -
Standard Modules: Initial support for
math(bit manipulation/float utils),string(trimming, finding, comparing),sys(Linux syscalls), andnet(UDP socket support). -
Granular Debugging: New
--debug-waveflags allow you to peek into the compiler’s soul, outputtingtokens,ast,ir, ormcat will.
5. Governance and Contribution
As the project grows, so does our responsibility to our contributors and the law.
-
License: Wave has returned to the Mozilla Public License 2.0 (MPL 2.0), striking a balance between open-source freedom and project integrity.
-
DCO Requirement: To ensure legal clarity, all contributions now require a Developer Certificate of Origin (Signed-off-by).
-
Streamlined Workflows: We’ve updated our
CONTRIBUTING.mdto support both modern GitHub PRs and traditional email-based patch workflows.
Moving Forward
Wave v0.1.6-pre-beta is a foundation. By modularizing the compiler and establishing a standard library, we have cleared the path for self-hosting and more advanced language features.
We want to thank all the contributors who have submitted patches, reported bugs, and helped shape the vision of Wave. This release belongs to you.
Get started today:
-
Download the latest source.
-
Build the compiler.
-
Run
wavec install std. -
Create something amazing.
or:
curl -fsSL https://wave-lang.dev/install.sh | bash -s -- --version v0.1.6-pre-beta
Build fast, stay lean, and keep waving!