Closed Bug 1494138 Opened 6 years ago Closed 6 years ago

update vendored libprio to 1.2

Categories

(Firefox :: General, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
Firefox 64
Tracking Status
firefox64 --- fixed

People

(Reporter: rhelmer, Assigned: rhelmer)

Details

Attachments

(1 file)

libprio 1.2 is out, here are the changes since last import:

commit 02a81fb652d385d0f4f10989d051317097ab55fb
Author: Henry Corrigan-Gibbs <163574+henrycg@users.noreply.github.com>
Date:   Mon Sep 24 09:34:53 2018 -0700

    Remove all variable-length arrays on the stack (#45)
    
    * Remove all variable-length arrays
    
    * Fix indenting

commit 919088a37a125d033e0b499d885f76023a94326f
Author: Henry Corrigan-Gibbs <163574+henrycg@users.noreply.github.com>
Date:   Mon Sep 24 00:49:59 2018 -0700

    Use AddressSanitizer and UBSanitizer in ptest (#46)

commit 2a49189144fc8e4ee266e9180de11e045a82c0ac
Author: Nathan Froyd <froydnj@gmail.com>
Date:   Fri Sep 21 07:54:58 2018 -0700

    make roots data read-only, shareable between processes, and smaller on 64-bit platforms (#38)
    
    * don't clang-format generated roots
    
    The formatted arrays are significantly less readable.
    
    * eliminate the need for RootsInv data
    
    Since RootsInv is essentially Roots stored in reverse order, we don't
    need to store an entirely separate array for the inverse roots.  We can
    simply iterate over Roots in reverse order to produce the inverse roots.
    
    * make roots data read-only and shareable between processes
    
    The roots of unity are currently stored as:
    
    static const char *Roots[] = { ... };
    
    which is inefficient for two reasons:
    
    1. `Roots` is a writable array, even though we only ever read from it.
    2. `Roots` contain pointers, which require run-time relocations.
       These run-time relocations can be at least as large as the entries
       in the array.
    
    The upshot is that `Roots` requires more space than necessary and cannot
    be shared between processes.
    
    To fix both of these problems, let's change the storage format to one
    long character array, where individual roots are formatted to all be the
    same width.  This format enables efficient access to individual roots
    and is pointer-free, so no run-time relocations are required.
    
    * Script works with Python3, add one sanity check
Comment on attachment 9012008 [details]
Bug 1494138 - update vendored libprio to 1.2 r?glandium

Mike Hommey [:glandium] has approved the revision.
Attachment #9012008 - Flags: review+
Pushed by rhelmer@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/920494c619ef
update vendored libprio to 1.2 r=glandium
https://hg.mozilla.org/mozilla-central/rev/920494c619ef
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 64
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: