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 utils Crate: We’ve introduced an internal utility crate to handle JSON parsing, terminal colorization, and string formatting. By replacing heavy external dependencies like regex with 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 i8 to i128 (and their unsigned counterparts), floating-point types (f32/f64), bool, char, and byte.

  • 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 -O0 through -O3, including -Oz (for size) and -Ofast.

  • Pro-level Inline Assembly: The asm block 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 std and wavec update std to 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), and net (UDP socket support).

  • Granular Debugging: New --debug-wave flags allow you to peek into the compiler’s soul, outputting tokens, ast, ir, or mc at 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.md to 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:

  1. Download the latest source.

  2. Build the compiler.

  3. Run wavec install std.

  4. 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!