Skip to content

[pull] master from GaijinEntertainment:master#776

Merged
pull[bot] merged 8 commits into
forksnd:masterfrom
GaijinEntertainment:master
Feb 27, 2026
Merged

[pull] master from GaijinEntertainment:master#776
pull[bot] merged 8 commits into
forksnd:masterfrom
GaijinEntertainment:master

Conversation

@pull

@pull pull Bot commented Feb 27, 2026

Copy link
Copy Markdown

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 : )

Adds test_concurrent_init (static) and test_concurrent_init_dyn (dynamic)
targets that spawn 64 threads x 3 rounds, each calling
NEED_ALL_DEFAULT_MODULES + Module::Initialize/Shutdown concurrently.

Reproduces the race condition reported in #2027 on Linux/GCC.
Passes on Windows/MSVC (TLS implementation differs).
…le-init

Add concurrent module init test (issue #2027)
- CMakeLists.txt: Replace ADD_DAS_STATIC_MODULE_LIB with ADD_MODULE_LIB to
  create both static (libDasModuleClangBind) and shared (dasModuleClangBind)
  targets. Add link libraries, include directories, and SETUP_CPP11 for the
  shared target.
- dasClangBind.cpp: Add REGISTER_DYN_MODULE macro to export the dynamic
  module registrator function (register_dyn_Module_dasClangBind) needed by
  the dynamic loading system.
- .das_module: New descriptor file that registers the shared module DLL and
  native .das path for dynamic builds.
Resolves #2024  NEED_MODULE / NEED_ALL_DEFAULT_MODULES cannot be used
inside C++ namespaces because the embedded extern declaration binds to
the enclosing namespace scope.

New macros (additive, existing macros unchanged):
- DECLARE_MODULE / DECLARE_ALL_DEFAULT_MODULES  file-scope forward decl
- PULL_MODULE / PULL_ALL_DEFAULT_MODULES  namespace-safe registration

CMake now generates external_declare.inc and external_pull.inc alongside
external_need.inc for plugin modules.

Includes tutorial 22 (namespace integration), RST docs, and embedding
doc updates.
Add namespace-safe module macros (DECLARE_MODULE / PULL_MODULE)
…nfig

- release.yml: Remove 'daslang_dyn' target (renamed to 'daslang').
  Building 'daslang' already pulls in all shared modules via
  ADD_DEPENDENCIES.
- dasHV: Pass --config to ExternalProject build/install steps
  to fix Debug/Release CRT mismatch on multi-config generators.
The release install step requires static module libraries (e.g.,
libDasModuleAudio.lib) which are only built as dependencies of
daslang_static. Previously only the daslang target was built,
which only builds shared modules. Now both targets are built so
cmake --install can find all required files.
@pull pull Bot locked and limited conversation to collaborators Feb 27, 2026
@pull pull Bot added the ⤵️ pull label Feb 27, 2026
@pull pull Bot merged commit a9a7786 into forksnd:master Feb 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant