Repository navigation
Release 1.0.2: attributes and messages work on Windows too - #40
Merged
Merged
Conversation
On Windows, 1.0.1 still reserved every field and method of every class: found_method() compared object_getmethod()'s answer with the address of method_false as the external sees it, which on Windows is the external's own import thunk (the SDK declares method_false without dllimport), never the function Max returns. The object now asks Max once what it answers for a name no class can have, and compares with that. The glue test's kernel answers an unknown name with its own max_method_false, not the method_false this module can take the address of — Windows' situation — and every attribute and message scenario fails without the fix. Found by the maintainer trying the 1.0.1 package on Windows. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rVV9SkjkWmiBXFMT4whkz
1.0.1 was tagged but never released — its Windows package still reserved every name. The changelog's 1.0.1 section becomes 1.0.2, dated, with that fix described; the plan records the Windows finding under 8.2. Verified on Windows by the maintainer. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rVV9SkjkWmiBXFMT4whkz
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.
Verified on Windows by you, with this branch's package.
The bug
1.0.1 still reserved every field and method on Windows. Your console showed "the field gain is reserved by the host", "greet() is reserved…", then "doesn't understand…".
found_method()comparedobject_getmethod()'s answer with&method_false. In a Windows DLL, that's the external's own import thunk, because the SDK declares the function withoutdllimport. It never equals the function Max returns, so every name read as found. On macOS the address is Max's real function, which is why the Mac session passed.The fix
not_found_method()asks Max once what it answers for a name no class can have (it contains spaces).found_method()compares with that.max_method_false, not themethod_falsethe module can take the address of. That's Windows' situation, on every platform. Every attribute and message scenario fails without the fix and passes with it (9 scenarios, 113 assertions).Release
Checked
After this merges, I'll tag
v1.0.2. The workflow makes a draft for you to publish.🤖 Generated with Claude Code
https://claude.ai/code/session_019rVV9SkjkWmiBXFMT4whkz