Skip to content

Commit

Permalink
Merge pull request #2 from hash-org/upstream-sync
Browse files Browse the repository at this point in the history
upstream sync
  • Loading branch information
feds01 authored Dec 20, 2024
2 parents f9e3a48 + 7f861b5 commit 0e93c46
Show file tree
Hide file tree
Showing 45 changed files with 2,253 additions and 406 deletions.
20 changes: 14 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on: [push, pull_request]

env:
CARGO_TERM_COLOR: always
DOC_LLVM_FEATURE: llvm17-0
DOC_LLVM_VERSION: "17.0"
DOC_LLVM_FEATURE: llvm18-0
DOC_LLVM_VERSION: "18.1"
DOC_PATH: target/doc

jobs:
Expand All @@ -29,6 +29,7 @@ jobs:
- ["5.0", "5-0"]
- ["6.0", "6-0"]
- ["7.0", "7-0"]
- ["7.1", "7-0"]
- ["8.0", "8-0"]
- ["9.0", "9-0"]
- ["10.0", "10-0"]
Expand All @@ -39,18 +40,25 @@ jobs:
- ["15.0", "15-0"]
- ["16.0", "16-0"]
- ["17.0", "17-0"]
- ["18.1", "18-0"]
include:
- os: ubuntu-20.04
# only use ubuntu-22.04 for llvm 16 and higher
# only use ubuntu-22.04 for llvm 16 and llvm 17
- os: ubuntu-22.04
llvm-version: ["16.0", "16-0"]
- os: ubuntu-22.04
llvm-version: ["17.0", "17-0"]
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Install LLVM and Clang
- name: Install LLVM and Clang (LLVM >= 7.1)
uses: KyleMayes/install-llvm-action@v2
if: ${{ matrix.llvm-version[0] > 7 }}
with:
version: ${{ matrix.llvm-version[0] }}
- name: Install LLVM and Clang (LLVM <= 7)
uses: KyleMayes/install-llvm-action@v1
if: ${{ matrix.llvm-version[0] <= 7 }}
with:
version: ${{ matrix.llvm-version[0] }}
- name: llvm-config
Expand All @@ -65,12 +73,12 @@ jobs:
run: cargo build --example kaleidoscope --features llvm${{ matrix.llvm-version[1] }} --verbose
doc:
name: Documentation
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
needs: [typos, tests]
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- uses: KyleMayes/install-llvm-action@v1
- uses: KyleMayes/install-llvm-action@v2
with:
version: ${{ env.DOC_LLVM_VERSION }}
- name: Install Rust Nightly
Expand Down
23 changes: 0 additions & 23 deletions CHANGELOG.md

This file was deleted.

20 changes: 10 additions & 10 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "inkwell"
version = "0.4.0"
version = "0.5.0"
authors = ["Daniel Kolsoi <thadan64@gmail.com>"]
description = "Inkwell aims to help you pen your own programming languages by safely wrapping llvm-sys."
documentation = "https://thedan64.github.io/inkwell/"
Expand Down Expand Up @@ -29,7 +29,7 @@ llvm14-0 = ["llvm-sys-140"]
llvm15-0 = ["llvm-sys-150"]
llvm16-0 = ["llvm-sys-160"]
llvm17-0 = ["llvm-sys-170"]
llvm18-1 = ["llvm-sys-181"]
llvm18-0 = ["llvm-sys-180"]

# Don't link against LLVM libraries. This is useful if another dependency is
# installing LLVM. See llvm-sys for more details. We can't enable a single
Expand All @@ -50,7 +50,7 @@ llvm14-0-no-llvm-linking = ["llvm14-0", "llvm-sys-140/no-llvm-linking"]
llvm15-0-no-llvm-linking = ["llvm15-0", "llvm-sys-150/no-llvm-linking"]
llvm16-0-no-llvm-linking = ["llvm16-0", "llvm-sys-160/no-llvm-linking"]
llvm17-0-no-llvm-linking = ["llvm17-0", "llvm-sys-170/no-llvm-linking"]
llvm18-1-no-llvm-linking = ["llvm18-1", "llvm-sys-181/no-llvm-linking"]
llvm18-0-no-llvm-linking = ["llvm18-0", "llvm-sys-180/no-llvm-linking"]

# Linking preference.
# If none of these are enabled, it defaults to force static linking.
Expand All @@ -62,7 +62,7 @@ llvm14-0-force-dynamic = ["llvm14-0", "llvm-sys-140/force-dynamic"]
llvm15-0-force-dynamic = ["llvm15-0", "llvm-sys-150/force-dynamic"]
llvm16-0-force-dynamic = ["llvm16-0", "llvm-sys-160/force-dynamic"]
llvm17-0-force-dynamic = ["llvm17-0", "llvm-sys-170/force-dynamic"]
llvm18-1-force-dynamic = ["llvm18-1", "llvm-sys-181/force-dynamic"]
llvm18-0-force-dynamic = ["llvm18-0", "llvm-sys-180/force-dynamic"]

# Prefer dynamic linking against LLVM libraries. See llvm-sys for more details
llvm12-0-prefer-dynamic = ["llvm12-0", "llvm-sys-120/prefer-dynamic"]
Expand All @@ -71,7 +71,7 @@ llvm14-0-prefer-dynamic = ["llvm14-0", "llvm-sys-140/prefer-dynamic"]
llvm15-0-prefer-dynamic = ["llvm15-0", "llvm-sys-150/prefer-dynamic"]
llvm16-0-prefer-dynamic = ["llvm16-0", "llvm-sys-160/prefer-dynamic"]
llvm17-0-prefer-dynamic = ["llvm17-0", "llvm-sys-170/prefer-dynamic"]
llvm18-1-prefer-dynamic = ["llvm18-1", "llvm-sys-181/prefer-dynamic"]
llvm18-0-prefer-dynamic = ["llvm18-0", "llvm-sys-180/prefer-dynamic"]

# Force static linking against LLVM libraries. See llvm-sys for more details
llvm12-0-force-static = ["llvm12-0", "llvm-sys-120/force-static"]
Expand All @@ -80,7 +80,7 @@ llvm14-0-force-static = ["llvm14-0", "llvm-sys-140/force-static"]
llvm15-0-force-static = ["llvm15-0", "llvm-sys-150/force-static"]
llvm16-0-force-static = ["llvm16-0", "llvm-sys-160/force-static"]
llvm17-0-force-static = ["llvm17-0", "llvm-sys-170/force-static"]
llvm18-1-force-static = ["llvm18-1", "llvm-sys-181/force-static"]
llvm18-0-force-static = ["llvm18-0", "llvm-sys-180/force-static"]

# Prefer static linking against LLVM libraries. See llvm-sys for more details
llvm12-0-prefer-static = ["llvm12-0", "llvm-sys-120/prefer-static"]
Expand All @@ -89,7 +89,7 @@ llvm14-0-prefer-static = ["llvm14-0", "llvm-sys-140/prefer-static"]
llvm15-0-prefer-static = ["llvm15-0", "llvm-sys-150/prefer-static"]
llvm16-0-prefer-static = ["llvm16-0", "llvm-sys-160/prefer-static"]
llvm17-0-prefer-static = ["llvm17-0", "llvm-sys-170/prefer-static"]
llvm18-1-prefer-static = ["llvm18-1", "llvm-sys-181/prefer-static"]
llvm18-0-prefer-static = ["llvm18-0", "llvm-sys-180/prefer-static"]

# Don't force linking to libffi on non-windows platforms. Without this feature
# inkwell always links to libffi on non-windows platforms.
Expand Down Expand Up @@ -135,7 +135,7 @@ experimental = ["static-alloc"]
nightly = ["inkwell_internals/nightly"]

[dependencies]
inkwell_internals = { path = "./internal_macros", version = "0.9.0" }
inkwell_internals = { path = "./internal_macros", version = "0.10.0" }

llvm-sys-40 = { package = "llvm-sys", version = "40.4", optional = true }
llvm-sys-50 = { package = "llvm-sys", version = "50.4", optional = true }
Expand All @@ -150,8 +150,8 @@ llvm-sys-130 = { package = "llvm-sys", version = "130.0.4", optional = true }
llvm-sys-140 = { package = "llvm-sys", version = "140.0.2", optional = true }
llvm-sys-150 = { package = "llvm-sys", version = "150.0.3", optional = true }
llvm-sys-160 = { package = "llvm-sys", version = "160.1.0", optional = true }
llvm-sys-170 = { package = "llvm-sys", version = "170.0.1", optional = true }
llvm-sys-181 = { package = "llvm-sys", version = "181.1.0", optional = true }
llvm-sys-170 = { package = "llvm-sys", version = "170.2.0", optional = true }
llvm-sys-180 = { package = "llvm-sys", version = "181.2.0", optional = true }

either = "1.5"
libc = "0.2"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ You'll need to point your Cargo.toml to use a single LLVM version feature flag c

```toml
[dependencies]
inkwell = { version = "0.4.0", features = ["llvm18-1"] }
inkwell = { version = "0.5.0", features = ["llvm18-0"] }
```

Supported versions:
Expand Down
2 changes: 1 addition & 1 deletion internal_macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ license = "Apache-2.0"
name = "inkwell_internals"
readme = "README.md"
repository = "https://github.com/TheDan64/inkwell"
version = "0.9.0"
version = "0.10.0"

[dependencies]
proc-macro2 = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion internal_macros/src/cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use syn::{Lit, RangeLimits};
// This array should match the LLVM features in the top level Cargo manifest
const FEATURE_VERSIONS: &[&str] = &[
"llvm4-0", "llvm5-0", "llvm6-0", "llvm7-0", "llvm8-0", "llvm9-0", "llvm10-0", "llvm11-0", "llvm12-0", "llvm13-0",
"llvm14-0", "llvm15-0", "llvm16-0", "llvm17-0", "llvm18-1",
"llvm14-0", "llvm15-0", "llvm16-0", "llvm17-0", "llvm18-0",
];

pub struct VersionRange {
Expand Down
6 changes: 3 additions & 3 deletions src/basic_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -288,9 +288,9 @@ impl<'ctx> BasicBlock<'ctx> {
///
/// let void_type = context.void_type();
/// let i32_type = context.i32_type();
/// #[cfg(not(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0", feature = "llvm18-1")))]
/// #[cfg(not(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0", feature = "llvm18-0")))]
/// let i32_ptr_type = i32_type.ptr_type(AddressSpace::default());
/// #[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0", feature = "llvm18-1"))]
/// #[cfg(any(feature = "llvm15-0", feature = "llvm16-0", feature = "llvm17-0", feature = "llvm18-0"))]
/// let i32_ptr_type = context.ptr_type(AddressSpace::default());
///
/// let fn_type = void_type.fn_type(&[i32_ptr_type.into()], false);
Expand Down Expand Up @@ -481,7 +481,7 @@ impl<'ctx> BasicBlock<'ctx> {
{
use llvm_sys::core::LLVMSetValueName2;

unsafe { LLVMSetValueName2(LLVMBasicBlockAsValue(self.basic_block), c_string.as_ptr(), name.len()) };
unsafe { LLVMSetValueName2(LLVMBasicBlockAsValue(self.basic_block), c_string.as_ptr(), c_string.to_bytes().len()) };
}
}

Expand Down
Loading

0 comments on commit 0e93c46

Please sign in to comment.