Re: [Fedora Update] [CRITPATH] [comment] rust-add-determinism-0.4.0-1.fc42

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi folks,

I pushed an update of add-det to Rawhide. It contains a rewrite of the
handler for pyc files (*). The new code should resolve an irreproducibility
that affects a large number of python packages, in particular those with
lots and lots of python files. If you see any issues with building anything
with python code, please let me know.

(*) Details: the python pyc file contains a header and a series of
entries for objects: numbers, strings, None, True, False, Ellipsis,
StopIteration, tuples, sets, lists, and code objects. When an
identical entry is needed more then once, instead of writing it out
again, it can be replaced by a reference to a previously-written
entry. For an entry to be used as a target of a reference, it must be
flagged by setting a bit in the entry header. When reading, all
entries with the flag set are put in a list, and the reference entries
specify an index into this list to refer to a specific entry. The
first issue that we had to solve was that sometimes Python would set
the flag on entries which actually weren't referenced later. This
created an irreproducibility because on different build architectures
Python would flag slightly different sets of entries. The second issue
that is now being solved is that Python doesn't always use a reference
where it could, and on different architectures some objects are
written as a reference while on others the entry is serialized
again. The previous vesions of add-det just cleared the flag on some
entries. The new version completely rewrites the serialization stream,
always using references when possible. This means that the pyc files
are smaller (usually 1–3%). If the current code works as expected, I
want to enable further shrinking of the pyc files by using shorter
serialization forms, e.g. a 32-bit int instead of a PyLong. (This
wouldn't actually save that much space, the int is 4 bytes and the
PyLong would be 6–12 bytes. But the representation when parsed is more
efficient, so it saves some bytes also at runtime.)

On Fri, Oct 11, 2024 at 07:19:44PM +0000, updates@xxxxxxxxxxxxxxxxx wrote:
> ================================================================================
>      FEDORA-2024-15c1e66f23
> ================================================================================
>     Release: Fedora 42
>      Status: pending
>        Type: unspecified
>    Severity: unspecified
>       Karma: 0
>    Critpath: True
>       Notes: Automatic update for rust-add-determinism-0.4.0-1.fc42.
>              Changelog
>              * Fri Oct 11 2024 Zbigniew Jędrzejewski-Szmek <zbyszek@xxxxxxxxx>
>              - 0.4.0-1
>              - Version 0.4.0
>              * Sat Sep 28 2024 Fabio Valentini <decathorpe@xxxxxxxxx> - 0.3.6-2
>              - Regenerate with rust2rpm v26 and update license tag
>   Submitter: zbyszek
>   Submitted: 2024-10-11 19:19:44.010372
>    Comments: bodhi - 2024-10-11 19:19:44.026392 (karma 0)
>              This update was automatically created
> 
>   https://bodhi.fedoraproject.org/updates/FEDORA-2024-15c1e66f23

Zbyszek
-- 
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux