Background:
Wave currently supports importing .wave source files from the local directory and subdirectories,
but it does not yet provide a system for compiled libraries.
Introducing a .wlib format would enable precompiled, reusable Wave libraries, similar to .rlib in Rust or .a in C.
This would improve performance, enable modular distribution, and lay the foundation for a full package ecosystem.
Expected Behavior:
-
When compiled with a special flag (e.g., --lib), a Wave file or module is compiled into a .wlib binary.
-
Other Wave projects can import .wlib files without accessing their original source code.
-
The compiler recognizes and links .wlib files during compilation automatically or via explicit import.
-
Example usage:
wavec build mylib.wave --lib # → creates mylib.wlib
import("lib::mylib"); // mylib.wlib is found and linked
User Scenarios:
- A developer wants to distribute a utility library (e.g., string tools) without exposing source code.
- A team wants to compile a shared internal library once and reuse it across multiple Wave projects.
- Future Vex packages may rely on
.wlib format for dependency resolution and build caching.
Additional Information:
-
Language version: - (not yet assigned)
-
Target branch: develop
-
.wlib format spec will need to be designed, including metadata, symbols, and compatibility versioning
-
This feature is under active design review and is likely to be included
Background:
Wave currently supports importing
.wavesource files from the local directory and subdirectories,but it does not yet provide a system for compiled libraries.
Introducing a
.wlibformat would enable precompiled, reusable Wave libraries, similar to.rlibin Rust or.ain C.This would improve performance, enable modular distribution, and lay the foundation for a full package ecosystem.
Expected Behavior:
When compiled with a special flag (e.g.,
--lib), a Wave file or module is compiled into a.wlibbinary.Other Wave projects can import
.wlibfiles without accessing their original source code.The compiler recognizes and links
.wlibfiles during compilation automatically or via explicit import.Example usage:
wavec build mylib.wave --lib # → creates mylib.wlibUser Scenarios:
.wlibformat for dependency resolution and build caching.Additional Information:
Language version: - (not yet assigned)
Target branch:
develop.wlibformat spec will need to be designed, including metadata, symbols, and compatibility versioningThis feature is under active design review and is likely to be included