Skip to content

Safer jit and improved DSL specs - #732

Merged
FrancescAlted merged 17 commits into
mainfrom
safer-jit
Oct 5, 2026
Merged

FrancescAlted merged 17 commits into
mainfrom
safer-jit

Conversation

@FrancescAlted

Copy link
Copy Markdown
Member

In this PR:

  • Make bundled TCC JIT safer under SELinux using anonymous executable storage, with quiet interpreter fallback and opt-in diagnostics.
  • Add global and scoped JIT configuration covering backend selection, floating-point accuracy, tracing, compiler flags, and cache settings.
  • Extend native DSL syntax with docstrings, semicolons, multiline comments, pass, Python-style numeric literals, and chained comparisons preserving single evaluation and short-circuiting.
  • Fix compiler-path quoting, Boolean-output temporary typing, loop-variable semantics, and Windows ARM64 build configuration.
  • Update documentation

Fixes #730

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Empty constructors and several reductions mishandle newly documented per-call JIT options.

Review effort: Balanced
Findings: 2 Medium severity · 1 Low severity

Open (3)
What changed in this PR

Adds safer native JIT fallback and configuration, while expanding Python-like DSL syntax and backend consistency.

Changes:

  • Adds global/scoped JIT policies and safer TCC/CC fallback.
  • Supports docstrings, semicolons, numeric literals, pass, and chained comparisons.
  • Expands integration tests and JIT/DSL documentation.
File Description
AGENTS.md Clarifies repository operation policy.
CMakeLists.txt Updates miniexpr dependency.
RELEASE_NOTES.md Records JIT and DSL changes.
doc/​conf.py Updates generated reduction guidance.
doc/​reference/​dsl_syntax.md Documents expanded DSL syntax.
doc/​reference/​index.rst Adds JIT reference page.
doc/​reference/​jit.rst Documents JIT configuration and fallback.
doc/​reference/​lazyarray.rst Links LazyArray JIT guidance.
doc/​reference/​ndarray.rst Documents constructor JIT options.
doc/​reference/​reduction_functions.rst Documents reduction JIT options.
plans/​portable-DSLs.md Proposes portable DSL artifacts.
plans/​safer-jit-execution.md Records implementation plan.
plans/​safer-jit-review.md Records validation and risks.
src/​blosc2/​__init__.py Exports JIT configuration APIs.
src/​blosc2/​blosc2_ext.pyx Passes configuration into miniexpr.
src/​blosc2/​dsl_compare.py Lowers JavaScript comparison chains.
src/​blosc2/​dsl_js.py Supports chains and pass in JavaScript.
src/​blosc2/​dsl_kernel.py Expands DSL validation and emission.
src/​blosc2/​jit_config.py Implements global and scoped JIT settings.
src/​blosc2/​lazyexpr.py Applies JIT policy during evaluation.
src/​blosc2/​ndarray.py Documents ramp-constructor JIT options.
tests/​ndarray/​safer_jit_libtcc.c Provides relocation-failure test double.
tests/​ndarray/​safer_jit_probe.py Exercises fresh-process JIT paths.
tests/​ndarray/​test_dsl_comparisons.py Tests chained-comparison semantics.
tests/​ndarray/​test_dsl_js.py Tests JavaScript DSL extensions.
tests/​ndarray/​test_dsl_kernels.py Tests expanded native DSL syntax.
tests/​ndarray/​test_jit_options.py Tests configuration precedence and scope.
tests/​ndarray/​test_safer_jit.py Tests quiet fallback and caching.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/blosc2/lazyexpr.py
Comment thread src/blosc2/ndarray.py
Comment thread plans/safer-jit-review.md Outdated
@FrancescAlted
FrancescAlted merged commit fc2746b into main Oct 5, 2026
42 checks passed
@FrancescAlted
FrancescAlted deleted the safer-jit branch October 5, 2026 06:54
@FrancescAlted FrancescAlted mentioned this pull request Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for SELinux

2 participants