Skip to content

32 bit support#6

Merged
borisbat merged 1 commit into
masterfrom
32_bits
Jan 10, 2019
Merged

32 bit support#6
borisbat merged 1 commit into
masterfrom
32_bits

Conversation

@AntonYudintsev
Copy link
Copy Markdown
Collaborator

No description provided.

@borisbat borisbat merged commit 89ea043 into master Jan 10, 2019
@borisbat borisbat deleted the 32_bits branch January 11, 2019 16:13
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"
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>
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.

2 participants