Changes:
3.6.6
-----
Documentation
- bpo-33503: Fix broken pypi link
- bpo-33421: Add missing documentation for typing.AsyncContextManager.
- bpo-33378: Add Korean language switcher for https://docs.python.org/3/
- bpo-33276: Clarify that the __path__ attribute on modules cannot be just
any value.
- bpo-33201: Modernize documentation for writing C extension types.
- bpo-33195: Deprecate Py_UNICODE usage in c-api/arg document.
Py_UNICODE related APIs are deprecated since Python 3.3, but it
is missed in the document.
- bpo-33126: Document PyBuffer_ToContiguous().
- bpo-27212: Modify documentation for the islice() recipe to consume initial
values up to the start index.
- bpo-28247: Update zipapp documentation to describe how to make standalone
applications.
- bpo-18802: Documentation changes for ipaddress. Patch by Jon Foster and
Berker Peksag.
- bpo-27428: Update documentation to clarify that WindowsRegistryFinder
implements MetaPathFinder. (Patch by Himanshu Lakhara)
- bpo-8243: Add a note about curses.addch and curses.addstr exception
behavior when writing outside a window, or pad.
- bpo-31432: Clarify meaning of CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED
flags for ssl.SSLContext.verify_mode.
Algorithm
Rewrite of the core int32/avx2 implementation for (1) higher speed and
(2) reduced memory consumption. Stack allocation is now at most a few
kilobytes, even for gigantic arrays.
Internally, the sorting algorithm is now mostly bitonic to simplify
indexing, although odd-even speedups are still applied when
convenient. Lanes are complemented to take the down-up decision out of
the inner loops.
As in previous djbsort versions, data is sorted first in vector lanes
and then transposed for final merges, reducing the overall number of
vector permutations. Unlike previous versions, transposition is done
in-place. The transposition in this version is bit-reversal on the outer
6 bits (bottom 3 bits and the top 3 bits), but leaves intermediate bits
alone. Non-power-of-2 array sizes are handled by an extra, more
traditional, merge step.
Sizes 2, 3, 4, 5, 6, 7, 8, 16, 32 are now special-cased. Non-power-of-2
sizes below 256 are padded to the next power of 2.
Portable implementations: The out-of-place int32/portable1 and
int32/portable2 implementations are now gone; the in-place
int32/portable3 and int32/portable4 implementations remain.
C API
float32_sort is now supported. The arithmetic in the reduction from
float32 to int32 is int32 31-bit right shift, uint32 1-bit right shift,
xor; this is slightly more efficient than the reduction from float32 to
uint32 from 2001 Herf.
Compiling
Tests now have more variation (without much slowdown): the uint32 test
cases now deviate from int32 in more than the sign; float32 uses
floating-point numbers that aren't integers; int32 does more loops for
small cases, and some larger cases.
Internals
API for 2-input sorting is now MINMAX macro operating on two
inputs in place.
Better inline assembly from Jason Donenfeld for 2-input sorting: more
flexibility in compiler's register allocation.
The package version number is now automatically copied to version.c as
the implementation version number for implementations that don't provide
version.c.
Verification
minmax now supports more peephole optimizations for complemented bitonic
sorting and for padding: xor(s,xor(s,t)) ⇒ t; xor(-1,s) ⇒ invert(s);
Reverse(Reverse(s)) ⇒ s; signedmin(invert(s),invert(t)) ⇒
invert(signedmax(s,t)); signedmax(invert(s),invert(t)) ⇒
invert(signedmin(s,t)); invert(s)[high:low] ⇒ invert(s[high:low]);
s[bits-1:0] ⇒ s; s[high:low][high2:low2] ⇒ s[high2+low:low2+low];
Concat(...)[high:low] ⇒ ...[high-pos:low-pos] when possible;
Reverse(s)[high:low] ⇒ Reverse(s[...]) when possible; eliminate
signedmin/signedmax when one input is the minimum or maximum constant.
verifymany now includes the implementation version number on
verified lines.
machine, not on the machine preparing a binary package." (Also: "The
issues are explained in Section 8 of
https://pqcrypto.eu.org/deliverables/d2.4.pdf.")
For this to work, we install the source tree (with built objects) to
${PREFIX}/share/djbsort. Then we run tests, install to ${PREFIX}/include
and ${PREFIX}/lib, and check the installed files against pseudo-PLIST.
This means pkg_add(1) will fail if no C compiler is present, which is
unusual behavior for pkg_add but perhaps not entirely unreasonable for a
C library.
Bump PKGREVISION.
Seems to make a previously segfaulting netbsd-8/i386's build not segfault.
ap-php runs PHP's configure and builds some of its code, so it needs the
same flag.
Now we can stop requiring an arbitrary GCC version. The test case in the
GCC bugzilla fails on all GCC versions I tested, but magically some
versions of GCC manage to build a working PHP.
Changelog:
changed
Thunderbird will now prompt to compact IMAP folders even if the account is online. Note: Under certain circumstances an incorrect estimate of the expected gain is shown.
fixed
Complete fix of the EFAIL vulnerability: 1) Removing some HTML crafted to carry out an attack. 2) Optionally: Not decrypting subordinate message parts that otherwise might reveal decrypted content to the attacker. Preference mailnews.p7m_subparts_external needs to be set to true for added security.
fixed
Various problems when forwarding messages inline when using "simple" HTML view
fixed
Deleting or detaching attachments corrupted messages under certain circumstances (not working only in Thunderbird version 52.9.0)
fixed
Various security fixes
Security fixes:
#CVE-2018-12359: Buffer overflow using computed size of canvas element
#CVE-2018-12360: Use-after-free when using focus()
#CVE-2018-12372: S/MIME and PGP decryption oracles can be built with HTML emails
#CVE-2018-12373: S/MIME plaintext can be leaked through HTML reply/forward
#CVE-2018-12362: Integer overflow in SSSE3 scaler
#CVE-2018-12363: Use-after-free when appending DOM nodes
#CVE-2018-12364: CSRF attacks through 307 redirects and NPAPI plugins
#CVE-2018-12365: Compromised IPC child process can list local filenames
#CVE-2018-12366: Invalid data handling during QCMS transformations
#CVE-2018-12368: No warning when opening executable SettingContent-ms files
#CVE-2018-12374: Using form to exfiltrate encrypted mail part by pressing enter in form field
#CVE-2018-5188: Memory safety bugs fixed in Firefox 60, Firefox ESR 60.1, Firefox ESR 52.9, and Thunderbird 52.9
Changelog:
General Improvements
Fixed LTO link-time performance problems caused by an overflow in the
partitioning algorithm while building large binaries.
Language Specific Changes
C++
GCC 8.2 fixed a bug introduced in GCC 8.1 affecting passing or returning of
classes with a deleted copy constructor and defaulted trivial move constructor
(bug c++/86094). GCC 8.2 introduces -fabi-version=13 and makes it the default,
ABI incompatibilities between GCC 8.1 and 8.2 can be reported with -Wabi=12.
See C++ changes for more details.
Target Specific Changes
IA-32/x86-64
-mtune=native performance regression PR84413 on Intel Skylake processors
has been fixed.
Changelog:
2.31.1
This release also contains a fix for gold/23409 where the gold
linker could end up creating duplicate copies of some symbols.
2.31
This release contains numerous bug fixes, and also the
following new features:
* Direct linking with DLLs for Cygwin and Mingw targets is now faster.
* The linker now defaults to enabling -z separate-code for Linux
targets, although a configure time option can change this.
This option can increase disk and memory size of executables, but
it does help to improve security.
* The disassembler supports Netronome Flow Processor (NFP) firmware
files.
* The AArch64 disassembler supports showing disassembly notes which
are emitted when inconsistencies are found with the instruction that
may result in the instruction being invalid. It also emits warnings
when a combination of an instruction and a named register could be
invalid.
* The AR archive manager now supports an "O" modifier to display
member offsets inside an archive.
* The ADR and ADRL pseudo-instructions supported by the ARM assembler
now only set the bottom bit of the address of thumb function symbols
if the -mthumb-interwork command line option is active.
* The MIPS assembler supports the Global INValidate (GINV) and
Cyclic Redudancy Check (CRC) architecture extensions.
* Support has been added for the Freescale S12Z architecture.
* The assembler has a new --generate-missing-build-notes=[yes|no]
option to create (or not) GNU Build Attribute notes if none are
present in the input sources.
* The -mold-gcc command-line option has been removed for x86 targets.
* The x86 assembler now supports a -O[2|s] command-line options to
enable alternate shorter instruction encodings.
* The gold linker has a new --debug=plugin option for easier debugging
of plugin-related problems.
* The gold linker now supports the -z keep_text_section_prefix option.
* The gold linker now has support for .note.gnu.property sections
(from Linux ABI extensions).
* Add gold linker now has support for Intel's Indirect Branch Tracking
(IBT) and Shadow Stack instructions.
Changelog:
General Improvements
Fixed LTO link-time performance problems caused by an overflow in the
partitioning algorithm while building large binaries.
Language Specific Changes
C++
GCC 8.2 fixed a bug introduced in GCC 8.1 affecting passing or returning of
classes with a deleted copy constructor and defaulted trivial move constructor
(bug c++/86094). GCC 8.2 introduces -fabi-version=13 and makes it the default,
ABI incompatibilities between GCC 8.1 and 8.2 can be reported with -Wabi=12.
See C++ changes for more details.
Target Specific Changes
IA-32/x86-64
-mtune=native performance regression PR84413 on Intel Skylake processors
has been fixed.
Changelog:
2.31.1
This release also contains a fix for PR gold/23409 where the gold
linker could end up creating duplicate copies of some symbols.
2.31
This release contains numerous bug fixes, and also the
following new features:
* Direct linking with DLLs for Cygwin and Mingw targets is now faster.
* The linker now defaults to enabling -z separate-code for Linux
targets, although a configure time option can change this.
This option can increase disk and memory size of executables, but
it does help to improve security.
* The disassembler supports Netronome Flow Processor (NFP) firmware
files.
* The AArch64 disassembler supports showing disassembly notes which
are emitted when inconsistencies are found with the instruction that
may result in the instruction being invalid. It also emits warnings
when a combination of an instruction and a named register could be
invalid.
* The AR archive manager now supports an "O" modifier to display
member offsets inside an archive.
* The ADR and ADRL pseudo-instructions supported by the ARM assembler
now only set the bottom bit of the address of thumb function symbols
if the -mthumb-interwork command line option is active.
* The MIPS assembler supports the Global INValidate (GINV) and
Cyclic Redudancy Check (CRC) architecture extensions.
* Support has been added for the Freescale S12Z architecture.
* The assembler has a new --generate-missing-build-notes=[yes|no]
option to create (or not) GNU Build Attribute notes if none are
present in the input sources.
* The -mold-gcc command-line option has been removed for x86 targets.
* The x86 assembler now supports a -O[2|s] command-line options to
enable alternate shorter instruction encodings.
* The gold linker has a new --debug=plugin option for easier debugging
of plugin-related problems.
* The gold linker now supports the -z keep_text_section_prefix option.
* The gold linker now has support for .note.gnu.property sections
(from Linux ABI extensions).
* Add gold linker now has support for Intel's Indirect Branch Tracking
(IBT) and Shadow Stack instructions.
Packaged initially in wip and updated by iphydf (toxcore author)
in joyent/pkgsrc-wip#98.
Toxcore is a p2p network level library that provides encrypted
communication and data transfer between peers who can find each
other anonymously through a DHT. The peers are identified with
a 256 bit public key to be used for message encryption. The
protocol specification can be found at https://toktok.ltd/spec.