Skip to content

Commit b77ca27

Browse files
committed
More simplifications and -DMINIEXPR_USE_LIBTCC_FALLBACK -> -DMINIEXPR_ENABLE_TCC_JIT
1 parent 89afb57 commit b77ca27

4 files changed

Lines changed: 19 additions & 26 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ jobs:
3131
if [ "$RUNNER_OS" == "Windows" ]; then
3232
# Visual Studio generators are multi-config; select Release at build time.
3333
cmake -S . -B build -G "Visual Studio 17 2022" -T ClangCL \
34-
-DCMAKE_C_COMPILER=clang-cl \
35-
-DMINIEXPR_ENABLE_WINDOWS_LIBTCC_JIT=ON
34+
-DCMAKE_C_COMPILER=clang-cl
3635
grep -Ei '^CMAKE_C_COMPILER:(FILEPATH|STRING|UNINITIALIZED)=.*clang-cl' build/CMakeCache.txt
3736
else
3837
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
@@ -95,16 +94,14 @@ jobs:
9594
-DMINIEXPR_BUILD_BENCH=OFF \
9695
-DMINIEXPR_BUILD_EXAMPLES=OFF \
9796
-DMINIEXPR_USE_SLEEF=OFF \
98-
-DMINIEXPR_ENABLE_WASM_LIBTCC_JIT=ON \
9997
-DMINIEXPR_BUILD_BUNDLED_LIBTCC=OFF \
10098
-DMINIEXPR_DSL_TRACE_DEFAULT=ON
10199
102100
- name: Verify wasm32 CMake flags
103101
shell: bash
104102
run: |
105-
grep -E '^MINIEXPR_ENABLE_WASM_LIBTCC_JIT:BOOL=ON$' build-wasm32/CMakeCache.txt
106103
grep -E '^MINIEXPR_BUILD_BUNDLED_LIBTCC:BOOL=OFF$' build-wasm32/CMakeCache.txt
107-
grep -E '^MINIEXPR_USE_LIBTCC_FALLBACK:BOOL=ON$' build-wasm32/CMakeCache.txt
104+
grep -E '^MINIEXPR_ENABLE_TCC_JIT:BOOL=ON$' build-wasm32/CMakeCache.txt
108105
109106
- name: Build wasm32 miniexpr + tests
110107
shell: bash

CMakeLists.txt

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,32 +21,24 @@ option(MINIEXPR_BUILD_TESTS "Build tests" ON)
2121
option(MINIEXPR_BUILD_EXAMPLES "Build examples" ON)
2222
option(MINIEXPR_BUILD_BENCH "Build benchmarks" ON)
2323
option(MINIEXPR_USE_SLEEF "Enable SLEEF SIMD acceleration" ON)
24-
option(MINIEXPR_USE_LIBTCC_FALLBACK "Enable libtcc DSL JIT fallback" ON)
25-
option(MINIEXPR_BUILD_BUNDLED_LIBTCC "Build bundled libtcc from minicc sources when fallback is enabled" ON)
24+
option(MINIEXPR_ENABLE_TCC_JIT "Enable TCC-based JIT backends (libtcc/wasm32)" ON)
25+
option(MINIEXPR_BUILD_BUNDLED_LIBTCC "Build bundled libtcc from minicc sources when TCC JIT is enabled" ON)
2626
option(MINIEXPR_DSL_TRACE_DEFAULT "Enable DSL trace logs by default when ME_DSL_TRACE is unset" OFF)
27-
option(MINIEXPR_ENABLE_WASM_LIBTCC_JIT "Enable experimental libtcc DSL JIT support on Emscripten" OFF)
28-
option(MINIEXPR_ENABLE_WINDOWS_LIBTCC_JIT "Enable experimental libtcc DSL JIT support on Windows" OFF)
2927

3028
if(EMSCRIPTEN)
31-
if(MINIEXPR_ENABLE_WASM_LIBTCC_JIT)
32-
set(MINIEXPR_USE_LIBTCC_FALLBACK ON)
33-
set(MINIEXPR_BUILD_BUNDLED_LIBTCC OFF)
29+
# wasm32 JIT uses a static libtcc build; bundled host shared libtcc is not used.
30+
set(MINIEXPR_BUILD_BUNDLED_LIBTCC OFF)
31+
if(MINIEXPR_ENABLE_TCC_JIT)
3432
set(MINIEXPR_USE_WASM32_JIT ON)
3533
else()
36-
# Plain wasm32 builds default to interpreter-only DSL execution.
37-
set(MINIEXPR_USE_LIBTCC_FALLBACK OFF)
3834
set(MINIEXPR_USE_WASM32_JIT OFF)
3935
endif()
40-
elseif(WIN32)
41-
if(MINIEXPR_ENABLE_WINDOWS_LIBTCC_JIT)
42-
set(MINIEXPR_USE_LIBTCC_FALLBACK ON)
43-
else()
44-
set(MINIEXPR_USE_LIBTCC_FALLBACK OFF)
45-
endif()
36+
elseif(NOT DEFINED MINIEXPR_USE_WASM32_JIT)
37+
set(MINIEXPR_USE_WASM32_JIT OFF)
4638
endif()
4739

4840
set(MINIEXPR_NEEDS_BUNDLED_TINYCC OFF)
49-
if(MINIEXPR_USE_LIBTCC_FALLBACK AND MINIEXPR_BUILD_BUNDLED_LIBTCC)
41+
if(MINIEXPR_ENABLE_TCC_JIT AND MINIEXPR_BUILD_BUNDLED_LIBTCC)
5042
set(MINIEXPR_NEEDS_BUNDLED_TINYCC ON)
5143
endif()
5244
set(MINIEXPR_NEEDS_TINYCC OFF)
@@ -248,7 +240,7 @@ function(miniexpr_setup_target target_name)
248240
else()
249241
target_compile_definitions(${target_name} PRIVATE ME_USE_SLEEF=0)
250242
endif()
251-
if(MINIEXPR_USE_LIBTCC_FALLBACK)
243+
if(MINIEXPR_ENABLE_TCC_JIT)
252244
target_compile_definitions(${target_name} PRIVATE ME_USE_LIBTCC_FALLBACK=1)
253245
if(DEFINED MINIEXPR_TINYCC_STAGED_SHARED_PATH)
254246
target_compile_definitions(${target_name}

README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,14 @@ Options:
207207
- `-DMINIEXPR_BUILD_EXAMPLES=ON|OFF`
208208
- `-DMINIEXPR_BUILD_BENCH=ON|OFF`
209209
- `-DMINIEXPR_USE_SLEEF=ON|OFF`
210-
- `-DMINIEXPR_USE_LIBTCC_FALLBACK=ON|OFF`
211-
- `-DMINIEXPR_BUILD_BUNDLED_LIBTCC=ON|OFF` (build bundled libtcc from minicc when fallback is enabled)
210+
- `-DMINIEXPR_ENABLE_TCC_JIT=ON|OFF`
211+
- `-DMINIEXPR_BUILD_BUNDLED_LIBTCC=ON|OFF` (build bundled libtcc from minicc when TCC JIT is enabled)
212212
- `-DMINIEXPR_DSL_TRACE_DEFAULT=ON|OFF` (emit DSL trace logs by default when `ME_DSL_TRACE` is unset)
213-
- `-DMINIEXPR_ENABLE_WASM_LIBTCC_JIT=ON|OFF` (Emscripten-only, experimental)
214-
- `-DMINIEXPR_ENABLE_WINDOWS_LIBTCC_JIT=ON|OFF` (Windows-only, experimental)
213+
214+
Notes:
215+
- On Windows, TCC JIT is enabled by default (`MINIEXPR_ENABLE_TCC_JIT=ON`).
216+
- On Emscripten, setting `MINIEXPR_ENABLE_TCC_JIT=ON` enables wasm32 JIT support automatically.
217+
- Setting `MINIEXPR_ENABLE_TCC_JIT=OFF` disables TCC-based JIT backends; on Linux/macOS, the separate `# me:compiler=cc` runtime path may still be available.
215218

216219
### SLEEF SIMD acceleration
217220

doc/dsl-usage.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Notes:
9090
- This pragma is independent from `# me:fp=...`.
9191
- With `# me:compiler=cc`, runtime uses `CC` (default: `cc`) to select the compiler executable.
9292
- With `# me:compiler=cc`, runtime also honors `CFLAGS`.
93+
- Build option `MINIEXPR_ENABLE_TCC_JIT=OFF` disables TCC-based JIT backends; on Linux/macOS, the separate `# me:compiler=cc` runtime path may still be available.
9394
- If the selected backend is unavailable at runtime, miniexpr falls back to interpreter execution.
9495

9596
### Temporary Variables

0 commit comments

Comments
 (0)