Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.5.3](https://github.com/tycho/gloam/compare/0.5.2...0.5.3) - 2026-07-27

### Added

- *(gnenerator)* add Rust backend implementation

### Other

- *(bundled)* embed specs/headers as DEFLATE blobs (~6 MiB smaller binary)

## [0.5.2](https://github.com/tycho/gloam/compare/0.5.1...0.5.2) - 2026-07-24

### Added
Expand Down
20 changes: 19 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ check, header/source readers) live in `tests/common/mod.rs`.
| Test file | Coverage |
|---|---|
| `generate_c.rs` | GL/GLES C loader generation + compilation |
| `generate_rust.rs` | Rust loader crate structure, constant typing, `cargo check` |
| `generate_vulkan.rs` | Vulkan-specific generation |
| `generate_wgl_glx.rs` | WGL, GLX, and cross-API edge cases |
| `predecessor_promoted.rs` | `--promoted` and `--predecessors` flag behavior |
Expand All @@ -174,7 +175,8 @@ cargo test

`tests/golden.rs` compares generated `.h`/`.c` output (preamble stripped)
byte-for-byte against checked-in snapshots under `tests/golden/`, one config
per spec family plus the merged GL+GLES2 build. A refactor that should not
per spec family plus the merged GL+GLES2 build, plus two Rust-backend
configs (`Cargo.toml` + `src/lib.rs`). A refactor that should not
change output is proven neutral by `cargo test`. When output changes
deliberately — or a bundle refresh changes resolved content — re-bless and
review the diff:
Expand All @@ -184,6 +186,22 @@ GLOAM_BLESS=1 cargo test --test golden
git diff tests/golden/
```

### Miri

The library unit tests run clean under Miri and should stay that way:

```sh
cargo +nightly miri test --no-default-features --lib
```

Expect the first run to be slow (Miri builds its own sysroot). Scope is
`--lib` only: the integration tests spawn the gloam binary as a
subprocess, which Miri cannot interpret. Note this checks gloam itself,
not the generated loaders — their dispatch paths call driver FFI, which
no interpreter can execute; the generated crate's soundness-sensitive
choices (Option<fn> transmutes, explicit unsafe blocks, checked dispatch)
are enforced structurally at generation time instead.

### Regenerating downstream trees

`cargo xtask regen <tree-root>` re-runs the command line recorded in every
Expand Down
36 changes: 18 additions & 18 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ members = ["xtask"]

[package]
name = "gloam"
version = "0.5.2"
version = "0.5.3"
edition = "2024"
description = "Loader generator for Vulkan, OpenGL, OpenGL ES, EGL, GLX, and WGL"
license = "MIT OR Apache-2.0"
Expand Down
Loading