Skip to content

4.1.5

Latest

Choose a tag to compare

@rizsotto rizsotto released this 03 Jul 08:41
4.1.5
b66ddb8

What's Changed

Features

  • Vala (valac) compiler support (#709). Bear now recognizes valac invocations and emits one compilation entry per Vala (.vala) or Genie (.gs) source, so vala-language-server can consume a Bear-generated compile_commands.json on non-meson builds.
  • Inline @file response files (#701, opt-in). Response-file arguments can be expanded inline into each entry, so the recorded command is self-contained instead of pointing at a file the consumer has to resolve.
  • Configurable environment-derived flags. Flags Bear derives from the build environment are now configurable, giving finer control over what ends up in each entry.
  • --append: latest compilation wins for rebuilt files. When appending to an existing database, the newest compilation of a rebuilt file supersedes the stale one instead of leaving a duplicate.
  • Full process-tree teardown with signal fidelity. The supervisor now tears down the entire build tree and forwards the real terminating signal, reaping detached descendants via cgroup v2 so nothing is left running after an interrupted build.

Bug Fixes

  • Recognize GCC by its FSF copyright, not the (GCC) tag (#711). Fixes cc recognition on Alpine Linux, whose GCC banner omits the (GCC) marker Bear previously relied on.
  • OS-independent output path handling. The output_from_o path logic no longer assumes a specific platform's path conventions.
  • exec the driver from the install entry script. The installed bear entry script now execs bear-driver instead of spawning it as a child.

Internal Refactoring

  • Regroup the workspace crates by role into directory roots, extract the shared interception runtime into an intercept crate, split driver-side interception into intercept-supervisor, and split bear-driver / bear-wrapper into dedicated binary crates.
  • Rename the interpreter YAML directory to compilers and build CompilerInterpreter in a single pass.
  • Refresh workspace dependencies: ctor 0.6 -> 1.0 plus a sweep to the latest compatible versions.

Tests

  • New bear-test-tools cdb-compare binary for comparing compilation databases, with invariants, sampling, and a CMake-oracle comparison mode.
  • A staged dogfooding harness (containerized golden-regression, CMake-oracle, and determinism self-checks) that validates Bear against real projects at kernel and midsize scale.

Documentation

  • Reorganize the docs tree: split requirements and rationale, make requirements contract-only, and repoint the routing tables.
  • Turn the release procedure into an invocable skill and capture the shared coding-style and commit conventions.
  • Man page fixes, including escaping -- to prevent unintended smartification (#708).

Closed Issues

  • #711 - Bear-4.1.4 fails to recognize cc on Alpine Linux (fixed)
  • #701 - Allow inlining response files in command line arguments (implemented)
  • #702 - ld.so $LIB preload warning with 32-bit arm-linux-gcc (documented; not a Bear defect)

Thanks

New Contributors

Full Changelog: 4.1.4...4.1.5