[pull] master from GaijinEntertainment:master#986
Merged
Conversation
Runtime things are not connected to simulate.
ModuleGroup annotation was declared in incorrect module
This function depends on AST and implemented in AST module. It's incorrect to export it through JIT module.
No need to call it from builtin.cpp. Static initialization will happen at startup and launch this check.
Same way we did with imgui. Allow to set input, output, path to library for llvm C-API binder.
Prebuilt LLVM.dll bundles ship different curated target sets per platform.
The Windows build, in particular, omits Initialize{Disassembler,AsmPrinter}
for {SystemZ, M68k, VE, Xtensa, XCore, Sparc}; macOS prebuilts vary similarly.
Binding all 18 per-target LLVMInitialize<X>* symbols means the das extern
declarations fail to load at compile time on platforms whose LLVM.dll
doesn't export every variant, even though daslib's JIT only ever needs the
host target.
bind_llvm.das gets a single `universal_targets` allow-list (X86, AArch64,
ARM) — anything else is filtered at regen time. Covers the suffix family
{TargetInfo, Target, TargetMC, AsmPrinter, AsmParser, Disassembler}.
modules/dasLLVM/bindings/llvm_func.das is regenerated accordingly.
modules/dasLLVM/daslib/llvm_targets.das is trimmed to the same three
targets so LLVMInitializeAllTargetInfos/Targets/TargetMCs/AsmPrinters
only call symbols that are guaranteed to exist.
This is sufficient for native JIT on every platform we ship (Linux x86_64
and arm64, macOS arm64, Windows x86_64). Cross-target codegen would need
a wider list — add the target to universal_targets in both bind_llvm.das
and llvm_targets.das and verify every prebuilt exports it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
LLVM was updated to 22 version. Updated llvm bindings in this commit.
The prebuilt LLVM.dll for macOS arm64 hardcodes
/opt/homebrew/opt/z3/lib/libz3.4.15.dylib as a dynamic dependency (z3
solver, enabled by default in upstream LLVM builds). CI macOS runners
don't have z3 installed, so dlopen("LLVM.dll") fails with:
Library not loaded: /opt/homebrew/opt/z3/lib/libz3.4.15.dylib
and every dasLLVM extern fails to apply. Add `brew install z3` to the
darwin15/darwin26 install step in both build.yml and extended_checks.yml.
Homebrew currently ships z3 4.15.x which matches the encoded
install_name.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
darwin15 x86_64 do not introduce new architecture/os and very unlikely could trigger any new bugs. Moreover, it's deprecated, free github runner no longer support it. Let's remove it from CI.
Feature/update llvm
Five new cards from the dasImgui indexed-widgets session (2026-05-12): - how-do-indexed-table-keyed-dasimgui-widgets-work — end-to-end walkthrough of the table-keyed widget form (`slider_float(t[k], …)`): user-declared `table<K; StateT>`, per-(kind, IDENT) wrapper, snapshot path naming, hot-reload story, snapshot expiration for removed keys, V1 restrictions (no init/bounds sugar, no flags, locked-table gotcha, radio_button_int exemption). - how-do-init-and-bounds-named-args-work — `bounds=` (state-field name match) and `init=` (rename to `value`) sugar for single-global widget calls, pumped into ExprMakeStruct(useInitializer) at module init, stripped from the call; indexed form rejects. - why-does-clone-type-func-result-stored-on-a-call-macro-class-field — TypeDeclPtr fields on AstCallMacro classes get pointer-aliased between compile passes; stash FunctionPtr/StructurePtr and clone the type at visit time instead. - why-does-find-widget-snap-ident-null-give-wrong-results — daslib/json `?[]` returns JV(null) placeholder for missing keys, so `find_widget(snap, ident) != null` is always true; use `widget_exists(snap, ident)` for existence checks. - why-does-for-k-in-keys-t-panic — `for keys(t)` / `values(t)` locks the table; `t[k]` inside the body is auto-insert and trips the lock even when k exists. Snapshot keys to a local array first. Plus the slider min/max card got updated to point at the new `bounds=`/`init=` sugar (with the imperative pattern retained for the indexed-form case). Three older cards land in this commit too (uncommitted from prior sessions — daslang sort is qsort, per-frame array delete, shared-module native-path require, daspkg release CI). All present in ~/.claude/projects/d--Work-daScript/memory as feedback entries; just syncing the mouse cache to disk. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ary-splits Aleksisch/more library splits
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )