Skip to content

Commit 3add75f

Browse files
Updating README.md and CHANGELOG.md.
1 parent 7a250d2 commit 3add75f

File tree

2 files changed

+37
-8
lines changed

2 files changed

+37
-8
lines changed

CHANGELOG.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
1-
# [9.0.0](https://github.com/DesignLiquido/llvm-bindings/compare/v8.0.0...v9.0.0) (2026-03-11)
2-
# [8.0.0](https://github.com/DesignLiquido/llvm-bindings/compare/v7.0.0...v8.0.0) (2026-03-11)
31
# Changelog
42

5-
## [8.0.0](https://github.com/DesignLiquido/llvm-bindings/compare/v7.0.0...v8.0.0) (2026-03-10)
3+
## [9.0.0](https://github.com/DesignLiquido/llvm-bindings/compare/v8.0.0...v9.0.0) (2026-03-11)
4+
5+
### At a glance
6+
7+
- LLVM 22 compatibility release.
8+
- No breaking JavaScript/TypeScript API surface changes.
9+
- Internal binding update for debug-info language representation.
10+
- Minimum supported LLVM version raised to 22.
11+
12+
### Changed
13+
14+
- `DIBuilder.createCompileUnit` now calls `llvm::DISourceLanguageName(lang)` instead of a raw `dwarf::SourceLanguage` cast, matching the LLVM 22 API. The JavaScript/TypeScript signature is unchanged (still accepts a number).
15+
- Removed the `#if LLVM_VERSION_MAJOR >= 22` / `#else` conditional in `DIBuilder.cpp`; only the LLVM 22+ code path is retained.
16+
- `cmake/LLVM.cmake` version-discovery loop and minimum-version guard updated to require LLVM >= 22.
17+
18+
## [8.0.0](https://github.com/DesignLiquido/llvm-bindings/compare/v7.0.0...v8.0.0) (2026-03-11)
619

720
### At a glance
821

README.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ listed in the [TypeScript definition file](./llvm-bindings.d.ts).
2828

2929
```shell
3030
# install cmake and llvm by homebrew
31-
brew install cmake llvm@21
31+
brew install cmake llvm@22
3232

3333
# install llvm-bindings by yarn
3434
yarn add llvm-bindings
@@ -40,7 +40,7 @@ yarn add llvm-bindings
4040
#install llvm by installation script
4141
wget https://apt.llvm.org/llvm.sh
4242
sudo chmod +x llvm.sh
43-
sudo ./llvm.sh 21
43+
sudo ./llvm.sh 22
4444

4545
# install cmake and zlib by apt-get
4646
sudo apt-get install cmake zlib1g-dev
@@ -51,17 +51,17 @@ yarn add llvm-bindings
5151

5252
### Install on Windows
5353

54-
First, please refer to [Build LLVM from sources on Windows 10](https://github.com/ApsarasX/llvm-bindings/wiki/Build-LLVM-from-source-code-on-Windows-10) to build LLVM. An alternative is to download a prebuilt LLVM 21 binary for Windows.
54+
First, please refer to [Build LLVM from sources on Windows 10](https://github.com/ApsarasX/llvm-bindings/wiki/Build-LLVM-from-source-code-on-Windows-10) to build LLVM. An alternative is to download a prebuilt LLVM 22 binary for Windows.
5555

56-
Then, find the `llvm-config` command in your LLVM build directory and execute `llvm-config --cmakedir` to get LLVM cmake directory, assuming `C:\Users\dev\LLVM-21.x.x-win64\lib\cmake\llvm`.
56+
Then, find the `llvm-config` command in your LLVM build directory and execute `llvm-config --cmakedir` to get LLVM cmake directory, assuming `C:\Users\dev\LLVM-22.x.x-win64\lib\cmake\llvm`.
5757

5858
Finally, execute the following commands.
5959

6060
```shell
6161
# specify the LLVM cmake directory for cmake-js
6262
# note: cmake-js reads npm-style config keys
6363
# on Windows PowerShell, prefer env var over npm config set
64-
$env:npm_config_cmake_LLVM_DIR = "C:\Users\dev\LLVM-21.x.x-win64\lib\cmake\llvm"
64+
$env:npm_config_cmake_LLVM_DIR = "C:\Users\dev\LLVM-22.x.x-win64\lib\cmake\llvm"
6565

6666
# install llvm-bindings by yarn
6767
yarn add llvm-bindings
@@ -243,6 +243,21 @@ LLVM 21 introduces binding-level API updates in this project:
243243
- Replace usages of `Attribute.AttrKind.NoCapture` with LLVM 21-compatible attribute construction.
244244
- For atomic RMW creation, use `IRBuilder.CreateAtomicRMW(op, ptr, val, align, ordering)` with `op` from `AtomicRMWInst.BinOp`.
245245

246+
## LLVM 22 / v9.0.x
247+
248+
LLVM 22 introduces a source-language naming API change in debug info and bumps the minimum supported version.
249+
250+
**At a glance**
251+
252+
- No breaking JavaScript/TypeScript API surface changes.
253+
- `DIBuilder.createCompileUnit` internally now uses `DISourceLanguageName()` to wrap the language code (LLVM 22 replaced the raw `dwarf::SourceLanguage` cast).
254+
- Minimum required LLVM version is now 22; older LLVM versions are no longer supported.
255+
256+
**Internal changes (no JS/TS impact)**
257+
258+
- `DIBuilder.cpp`: removed the `#if LLVM_VERSION_MAJOR >= 22` conditional; the LLVM 22+ API is now the only code path.
259+
- `cmake/LLVM.cmake`: the version discovery loop and the minimum-version guard now enforce LLVM >= 22.
260+
246261
## Compatibility
247262

248263
| llvm-bindings versions | compatible LLVM versions |
@@ -259,6 +274,7 @@ LLVM 21 introduces binding-level API updates in this project:
259274
| (@designliquido/llvm-bindings) 6.0.x | 19.1.x |
260275
| (@designliquido/llvm-bindings) 7.0.x | 20.1.x |
261276
| (@designliquido/llvm-bindings) 8.0.x | 21.1.x |
277+
| (@designliquido/llvm-bindings) 9.0.x | 22.1.x |
262278

263279
## Acknowledgments
264280

0 commit comments

Comments
 (0)