Conversation
borisbat
added a commit
that referenced
this pull request
Jul 13, 2021
aleksisch
referenced
this pull request
in aleksisch/daScript
Dec 9, 2025
Revert "dynamically load jit-ted code from dll"
4 tasks
borisbat
added a commit
that referenced
this pull request
Apr 23, 2026
- handleRegistry_registerDump / handleRegistry_dumpAll moved to a .cpp (DAS_API _impl symbols) so the hooks vector is one instance across daslang.exe + every dasModule*.shared_module. Register path takes a mutex and dedupes by fn-pointer. dumpAll snapshots the hooks vector under the lock and invokes callbacks outside the critical section. - ast_handle.h: dumpHandleLeaks<T> template added next to das_handle_release; addHandleAnnotation<T> registers it. Compile-time safe: requires typeName<T> specialization, which MAKE_EXTERNAL_TYPE_FACTORY provides. - Module::Shutdown gains an optional bool parameter (default true) and invokes handleRegistry_dumpAll() between the module destructor loop (which drains job threads via Module_JobQue::~Module_JobQue) and the DynamicModuleInfo teardown that unloads shared modules. That window is the only safe place: before it, legitimate in-flight jobs hold handles; after it, the dumpHandleLeaks<T> function pointers in DLLs are dangling. - Docs: memory_leak_detection.md and .rst #6 section rewritten (dormant -> automatic). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
borisbat
added a commit
that referenced
this pull request
Apr 23, 2026
- handleRegistry_registerDump / handleRegistry_dumpAll moved to a .cpp (DAS_API _impl symbols) so the hooks vector is one instance across daslang.exe + every dasModule*.shared_module. Register path takes a mutex and dedupes by fn-pointer. dumpAll snapshots the hooks vector under the lock and invokes callbacks outside the critical section. - ast_handle.h: dumpHandleLeaks<T> template added next to das_handle_release; addHandleAnnotation<T> registers it. Compile-time safe: requires typeName<T> specialization, which MAKE_EXTERNAL_TYPE_FACTORY provides. - Module::Shutdown gains an optional bool parameter (default true) and invokes handleRegistry_dumpAll() between the module destructor loop (which drains job threads via Module_JobQue::~Module_JobQue) and the DynamicModuleInfo teardown that unloads shared modules. That window is the only safe place: before it, legitimate in-flight jobs hold handles; after it, the dumpHandleLeaks<T> function pointers in DLLs are dangling. - Docs: memory_leak_detection.md and .rst #6 section rewritten (dormant -> automatic). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
borisbat
added a commit
that referenced
this pull request
Apr 27, 2026
Fixes 7 review comments in one push: * MCP stdio safety (#1, #5): read_import and compile_and_collect both print warnings/failures to stdout, which corrupts the JSON-RPC protocol stream when called from the MCP server. Add `quiet : bool = false` to both helpers (default preserves CLI behavior); MCP find_duplicates passes true and surfaces failure counts via the returned envelope. * Test portability (#2, #3): replace hard-coded /tmp/... corpus path in test_find_duplicates_corpus_not_found with create_temp_file_result + immediate remove() — guaranteed-nonexistent path that works on Windows runners. * Newline-delimited paths (#4): MCP do_find_duplicates now normalizes \n to , before parse_file_list, matching the README's documented "git diff --name-only | …" pipeline use case. * Project (.das_project) plumbing (#6): add `project` to the find_duplicates schema, dispatch, and handler signature; thread through to compile_and_collect, which now takes `project : string = ""` and uses make_file_access(project) instead of the previous hardcoded "" — matching the convention used by compile_check / lint / find_symbol. * Deterministic compile order (#7): both the MCP tool and CLI main.das build a sorted array<string> from `keys(against_files)` and iterate that, instead of the unspecified-order table-key iteration. Makes per-candidate report ordering and --check exit behavior reproducible across runs. Drive-by: PERF006 fix in resolve_against_files (reserve before push loop). All test suites still green: 6987 in tests/, 54 find_dupes, 181 MCP (includes 5 updated find_duplicates tests for new signature). MCP end-to-end smoke confirms newline-delimited paths and project parameter both reach the handler. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
borisbat
added a commit
that referenced
this pull request
May 12, 2026
#1 DasGlfw_ChainClear restores prev callbacks before erasing the map entry. Without this, the dispatcher stays installed but early-returns on every real event, silently disconnecting ImGui_ImplGlfw and any other prior listener. #2 ApngWriter::enqueue validates stride_bytes >= row_bytes and rejects null pixels. Negative or too-small stride was being cast to size_t and underflowing into OOB reads. #3 stbi_apng_frame docstring now matches the implementation: positive stride only, always returns 1 on success, drops oldest on overflow (visible via stbi_apng_dropped). The prior copy claimed negative stride and a 0-return-on-full contract, neither of which exists. #4 mouse_click validates `action` and returns a structured error on anything other than "press" / "release". Typos like "pressed" no longer silently flip to release. #5 mouse_play sorts the wire timeline by t_ms before building the internal queue, so out-of-order input no longer drops earlier events. Extracted MouseEventWire + sort_play_events into a small standalone module (live/mouse_events) so the regression test under tests/dasglfw/test_mouse_play_sort.das can require only the algorithm, not glfw_live's full GLFW/OpenGL chain. The module is marked options no_aot to keep the test interpreter-friendly under test_aot. tests/aot/CMakeLists.txt registers tests/dasglfw/ alongside the other test directories. #6 record_start clamps `fps` to >= 1.0 and stores/reports the effective value, instead of accepting a sub-1 fps in status output while running the scheduler at the clamped rate. #7 record_tick resyncs next_capture_t to `now + frame_interval_s` after a stall instead of catch-up bursting. delay_ms now reflects the actual elapsed time between captures so playback timing matches the real spacing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.