-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove *_INTERNED opcodes from marshal #75558
Comments
The *_INTERN opcodes inform the marsahl reader to intern the encoded string after deserialization. I believe for pycs this is pointless because PyCode_New ends up interning all strings that are interesting to intern. Writing this opcodes makes pycs non-deterministic because the intern state may be inconsistent in the writer. See https://bugzilla.opensuse.org/show_bug.cgi?id=1049186 |
Marshal is used not only in pyc files. It is used for fast data serialization, faster than pickle, json, etc. |
Used but not really supported. Anyway, I doubt intern round-tripping is a particularly important. |
w_ref() depends on refcnt already. Lines 269 to 271 in 1f06a68
I think "intern one string, then share it 10 times" is faster than |
On Thu, Sep 7, 2017, at 01:17, INADA Naoki wrote:
I know—we're going to have to do something about that, too. In practice,
We end up interning each reference individually currently. |
But interning interned string is much faster. It only checks flag. |
On Thu, Sep 7, 2017, at 09:46, INADA Naoki wrote:
We could makes sure the version in the internal marshal memo is interned |
I doubt that interning cause reproduciblity problem. AFAIK, all strings in code object are interned or not https://bugzilla.opensuse.org/show_bug.cgi?id=1049186 |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: