required to gain access to 8-byte atomics. Add a hacks.mk file
to pull in devel/libatomic on powerpc ports. The reason is that
even though llvm itself doesn't need or use 8-byte atomics, other
programs refer to this installed CheckAtomic cmake file and may
indeed both need and use 8-byte atomics.
Verified that llvm still builds on NetBSD/macppc 9.0.
Bump PKGREVISION to 1.
Changelog:
JDK 15 Release Notes
These notes describe important changes, enhancements, removed APIs and
features, deprecated APIs and features, and other information about JDK 15 and
Java SE 15. In some cases, the descriptions provide links to additional
detailed information about an issue or a change. This page does not duplicate
the descriptions provided by the Java SE 15 ( JSR 390) Platform Specification,
which provides informative background for all specification changes and might
also include the identification of removed or deprecated APIs and features not
described here. The Java SE 15 ( JSR 390) specification provides links to:
* Annex 1: The complete Java SE 15 API Specification.
* Annex 2: An annotated API specification showing the exact differences
relative to Java SE 15. Informative background for these changes may be
found in the list of approved Change Specification Requests for this
release.
* Annex 3: Java SE 15 Editions of The Java Language Specification and The
Java Virtual Machine Specification. . The Java SE 15 Editions contain all
corrections and clarifications made since the Java SE 14 Editions, as well
as additions for new features.
You should be aware of the content in that document as well as the items
described in this page.
The descriptions on this Release Note page also identify potential
compatibility issues that you might encounter when migrating to JDK 15. The
Kinds of Compatibility page on the OpenJDK wiki identifies three types of
potential compatibility issues for Java programs used in these descriptions:
* Source: Source compatibility preserves the ability to compile existing
source code without error.
* Binary: Binary compatibility is defined in The Java Language Specification
as preserving the ability to link existing class files without error.
* Behavioral: Behavioral compatibility includes the semantics of the code
that is executed at runtime.
See CSRs Approved for JDK 15 for the list of CSRs closed in JDK 15 and the
Compatibility & Specification Review (CSR) page on the OpenJDK wiki for general
information about compatibility.
Contents
* New Features
* Removed Features and Options
* Deprecated Features and Options
* Known Issues
* Other Notes
New Features
This section describes some of the enhancements in Java SE 15 and JDK 15. In
some cases, the descriptions provide links to additional detailed information
about an issue or a change. The APIs described here are those that are provided
with the Oracle JDK. It includes a complete implementation of the Java SE 15
Platform and additional Java APIs to support developing, debugging, and
monitoring Java applications. Another source of information about important
enhancements and new features in Java SE 15 and JDK 15 is the Java SE 15 ( JSR
390) Platform Specification, which documents the changes to the specification
made between Java SE 14 and Java SE 15. This document includes descriptions of
those new features and enhancements that are also changes to the specification.
The descriptions also identify potential compatibility issues that you might
encounter when migrating to JDK 15.
Support for Unicode 13.0 (JDK-8239383)
core-libs/java.lang
This release upgrades Unicode support to 13.0, which includes the following:
* The java.lang.Character class supports Unicode Character Database of 13.0
level, which 13.0 adds 5,930 characters, for a total of 143,859 characters.
These additions include 4 new scripts, for a total of 154 scripts, as well
as 55 new emoji characters.
* The java.text.Bidi and java.text.Normalizer classes support 13.0 level of
Unicode Standard Annexes, #9 and #15, respectively.
* The java.util.regex package supports Extended Grapheme Clusters based on
13.0 level of Unicode Standard Annex #29 For more detail about Unicode
13.0, refer to the Unicode Consortium's release note.
Added isEmpty Default Method to CharSequence (JDK-8215401)
core-libs/java.lang
java.lang.CharSequence has been updated in this release to define a default
isEmpty method that tests if a character sequence is empty. Testing for, and
filtering out, empty Strings and other CharSequences is a common occurrence in
code and CharSequence::isEmpty can be used as a method reference. Classes that
implement java.lang.CharSequence and another interface that defines isEmpty
method should be aware of this addition as they may need to be modified to
override the isEmpty method.
JEP 371: Hidden Classes (JDK-8238358)
core-libs/java.lang.invoke
JEP 371 introduces hidden classes in Java 15. Hidden classes have the following
implications to existing code:
1. Class::getName traditionally returns a binary name, but for a hidden class
it returns a string that contains an ASCII forward slash (/) and is
therefore not a binary name. Programs that assume the returned string is a
binary name might need to be updated to handle hidden classes. That said,
the longstanding practice of Unsafe::defineAnonymousClass was to define
classes whose names were not binary names, so some programs may already
handle such names successfully.
2. Class::descriptorString and MethodType::descriptorString returns a string
that contains a ASCII dot (.) for a hidden class and therefore is not a
type descriptor conforming to JVMS 4.3. Programs that assume the returned
string is a type descriptor that conforms to JVMS 4.3 might need to be
updated to handle hidden classes.
3. Class::getNestMembers is changed to not throw an exception when it fails to
validate a nest membership of any member listed in NestMembers attribute.
Instead, Class::getNestMembers returns the nest host and the members listed
in the host's NestMembers attribute that are successfully resolved and
determined to have the same nest host as this class. (This means it may
return fewer members that listed in NestMembers attribute.) Existing code
that expects LinkageError when there is a bad nest membership might be
impacted.
4. The nestmate test in the JVM is changed to throw only IllegalAccessError
when the nest membership is invalid. Some historical understanding is
necessary:
* In Java 8, every access control failure was signaled with
IllegalAccessError (IAE). Moreover, if a given access check failed with IAE
once, then the same check would fail with IAE every time.
* In Java 11, the introduction of nest mates (JEP 181) meant that an access
control failure could be signaled either with IllegalAccessError or, if
nest membership was invalid, LinkageError. Still, if a given access check
failed with a specific exception, then the same check would always fail
with the same exception.
* In Java 15, the introduction of Lookup::defineHiddenClass implies that the
nest host of the lookup class must be determined eagerly, when the hidden
class is defined as a nestmate of the lookup class. Both
Lookup::defineHiddenClass and Class::getNestHost both determine the nest
host of a class in a more resilient manner than the JVM did in Java 11;
namely, the API simply treats a class as self-hosted if its purported nest
membership is invalid. For consistency with the API, the JVM no longer
throws LinkageError when a class's nest membership is invalid, and instead
treats the class as self-hosted. This means that the JVM only throws IAE
from access control (because a self-hosted class will not permit any other
class to access its private members). This is the behavior expected by the
vast majority of user code.
5. JVM TI GetClassSignature returns a string that contains a ASCII dot (.) for
a hidden class. JVM TI agents might need updating for hidden classes if
they assume the returned string from GetClassSignature is a type descriptor
conforming to JVMS 4.3.
Added Support for SO_INCOMING_NAPI_ID Support (JDK-8243099)
core-libs/java.net
A new JDK-specific socket option SO_INCOMING_NAPI_ID has been added to
jdk.net.ExtendedSocketOptions in this release. The socket option is Linux
specific and allows applications to query the NAPI (New API) ID of the
underlying device queue associated with its socket connection and take
advantage of the Application Device Queue (ADQ) feature of high performance
Network Interface Card (NIC) devices.
Specialized Implementations of TreeMap Methods (JDK-8176894)
core-libs/java.util:collections
The TreeMap class now provides overriding implementations of the putIfAbsent,
computeIfAbsent, computeIfPresent, compute, and merge methods. The new
implementations provide a performance improvement. However, if the function
provided to the compute- or merge methods modifies the map,
ConcurrentModificationException may be thrown, because the function that is
provided to these methods is prohibited from modifying the map. If a
ConcurrentModificationException occurs, the function must either be changed to
avoid modifying the map, or the surrounding code should be rewritten to replace
uses of the compute- and merge methods with conventional Map methods such as
get and put.
See JDK-8227666 for further information.
Added Ability to Configure Third Port for Remote JMX (JDK-8234484)
core-svc/javax.management
JMX supports (explicit) remote network access through the configuration of two
network ports (either from the command line or in a property file), by setting
the following properties:
com.sun.management.jmxremote.port=<port#>
com.sun.management.jmxremote.rmi.port=<port#>
Note: If it is not specified, the second port will default to the first.
A third local port is also opened to accept (local) JMX connections. This port
previously had its number selected at random, which could cause port
collisions.
However, it is now possible to configure the third JMX port (local only) by
using:
com.sun.management.jmxremote.local.port=<port#>
New Option Added to jstatd for Specifying RMI Connector Port Number (
JDK-8196729)
core-svc/tools
A new -r <port> option has been added to the jstatd command to specify the RMI
connector port number. If a port number is not specified, a random available
port is used.
New Option Added to jcmd for Writing a gzipped Heap Dump (JDK-8237354)
core-svc/tools
A new integer option gz has been added to the GC.heap_dump diagnostic command.
If it is specified, it will enable the gzip compression of the written heap
dump. The supplied value is the compression level. It can range from 1
(fastest) to 9 (slowest, but best compression). The recommended level is 1.
JEP 378: Text Blocks (JDK-8236934)
Text blocks have been added to the Java language. A text block is a multi-line
string literal that avoids the need for most escape sequences, automatically
formats the string in a predictable way, and gives the developer control over
the format when desired.
New Options Added to jhsdb for debugd Mode (JDK-8196751)
hotspot/svc-agent
Three new options have been added to the jhsdb command for the debugd mode:
1. --rmiport <port> is used to specify a RMI connector port number. If a port
number is not specified, a random available port is used.
2. --registryport <port> is used to specify a RMI registry port number. This
option overrides the system property sun.jvm.hotspot.rmi.port. If a port
number is not specified, the system property is used. If the system
property is not set, the default port 1099 is used.
3. --hostname <hostname> is used to specify a RMI connector host name. The
value could be a hostname or an IPv4/IPv6 address. This option overrides
the system property java.rmi.server.hostname. If a host name not specified,
the system property is used. If the system property is not set, a system
host name is used.
Added Revocation Checking to jarsigner (JDK-8242060)
security-libs/java.security
A new -revCheck option has been added to the jarsigner command to enable
revocation checking of certificates.
Tools Warn If Weak Algorithms Are Used Before Restricting Them (JDK-8172404)
security-libs/java.security
The keytool and jarsigner tools have been updated to warn users about weak
cryptographic algorithms being used before they are disabled. In this release,
the tools issue warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA
keys.
SunJCE Provider Supports SHA-3 Based Hmac Algorithms (JDK-8172680)
security-libs/javax.crypto
The SunJCE provider has been enhanced to support HmacSHA3-224, HmacSHA3-256,
HmacSHA3-384, and HmacSHA3-512. Implementations for these algorithms are
available under the Mac and KeyGenerator services. The Mac service generates
the keyed-hash and the KeyGenerator service generates the key for the Mac.
New System Properties to Configure the TLS Signature Schemes (JDK-8242141)
security-libs/javax.net.ssl
Two new system properties have been added to customize the TLS signature
schemes in JDK. jdk.tls.client.SignatureSchemes has been added for the TLS
client side, and jdk.tls.server.SignatureSchemes has been added for the server
side.
Each system property contains a comma-separated list of supported signature
scheme names specifying the signature schemes that could be used for the TLS
connections.
The names are described in the "Signature Schemes" section of the Java Security
Standard Algorithm Names Specification.
Support for certificate_authorities Extension (JDK-8206925)
security-libs/javax.net.ssl
The "certificate_authorities" extension is an optional extension introduced in
TLS 1.3. It is used to indicate the certificate authorities (CAs) that an
endpoint supports and should be used by the receiving endpoint to guide
certificate selection.
With this JDK release, the "certificate_authorities" extension is supported for
TLS 1.3 in both the client and the server sides. This extension is always
present for client certificate selection, while it is optional for server
certificate selection.
Applications can enable this extension for server certificate selection by
setting the jdk.tls.client.enableCAExtension system property to true. The
default value of the property is false.
Note that if the client trusts more CAs than the size limit of the extension
(less than 2^16 bytes), the extension is not enabled. Also, some server
implementations do not allow handshake messages to exceed 2^14 bytes.
Consequently, there may be interoperability issues when
jdk.tls.client.enableCAExtension is set to true and the client trusts more CAs
than the server implementation limit.
Support for canonicalize in krb5.conf (JDK-8239385)
security-libs/org.ietf.jgss:krb5
The 'canonicalize' flag in the krb5.conf file is now supported by the JDK
Kerberos implementation. When set to true, RFC 6806 name canonicalization is
requested by clients in TGT requests to KDC services (AS protocol). Otherwise,
and by default, it is not requested.
The new default behavior is different from JDK 14 and previous releases where
name canonicalization was always requested by clients in TGT requests to KDC
services (provided that support for RFC 6806 was not explicitly disabled with
the sun.security.krb5.disableReferrals system or security properties).
Removed Features and Options
This section describes the APIs, features, and options that were removed in
Java SE 15 and JDK 15. The APIs described here are those that are provided with
the Oracle JDK. It includes a complete implementation of the Java SE 15
Platform and additional Java APIs to support developing, debugging, and
monitoring Java applications. Another source of information about important
enhancements and new features in Java SE 15 and JDK 15 is the Java SE 15 ( JSR
390) Platform Specification, which documents changes to the specification made
between Java SE 14 and Java SE 15. This document includes the identification of
removed APIs and features not described here. The descriptions below might also
identify potential compatibility issues that you could encounter when migrating
to JDK 15. See CSRs Approved for JDK 15 for the list of CSRs closed in JDK 15.
Removal of Terminally Deprecated Solaris-specific SO_FLOW_SLA Socket Option (
JDK-8244582)
core-libs/java.net
In this release, in conjunction with the removal of the Solaris port in JEP 381
, the JDK-specific socket option jdk.net.ExtendedSocketOptions.SO_FLOW_SLA,
which is only relevant to sockets on Solaris, and its supporting classes
SocketFlow and SocketFlow.Status, have been removed.
Removal of RMI Static Stub Compiler (rmic) (JDK-8225319)
core-libs/java.rmi
The RMI static stub compiler rmic has been removed. The rmic tool is obsolete
and has been deprecated for removal since JDK 13.
Removal of Deprecated Constant RMIConnectorServer.CREDENTIAL_TYPES (JDK-8213222
)
core-svc/javax.management
The terminally deprecated constant
javax.management.remote.rmi.RMIConnectorServer.CREDENTIAL_TYPE has been
removed. A filter pattern can be specified instead by using
RMIConnectorServer.CREDENTIALS_FILTER_PATTERN.
Removal of Nashorn JavaScript Engine (JDK-8236933)
The Nashorn JavaScript script engine, its APIs, and the jjs tool have been
removed. The engine, the APIs, and the tool were deprecated for removal in Java
11 with the express intent to remove them in a future release.
Obsolete -XX:UseAdaptiveGCBoundary (JDK-8228991)
hotspot/gc
The VM option UseAdaptiveGCBoundary is obsolete. Use of this option will
produce an obsolete option warning but will otherwise be ignored.
This option was previously disabled by default, and enabling it only had an
effect when also using -XX:+UseParallelGC. Enabling it was intended to provide
a performance benefit for some applications. However, it has been disabled by
default for a long time because of crashes and performance regressions.
Removal of DocuSign Root CA Certificate (JDK-8225068)
security-libs/java.security
The following expired DocuSign root CA certificate has been removed from the
cacerts keystore:
+ alias name "keynectisrootca [jdk]"
Distinguished Name: CN=KEYNECTIS ROOT CA, OU=ROOT, O=KEYNECTIS, C=FR
Removal of Comodo Root CA Certificate (JDK-8225069)
security-libs/java.security
The following expired Comodo root CA certificate has been removed from the
cacerts keystore:
+ alias name "addtrustclass1ca [jdk]"
Distinguished Name: CN=AddTrust Class 1 CA Root, OU=AddTrust TTP Network, O=AddTrust AB, C=SE
Removal of com.sun.net.ssl.internal.ssl.Provider Name (JDK-8219989)
security-libs/javax.net.ssl
The legacy SunJSSE provider name, "com.sun.net.ssl.internal.ssl.Provider" has
been removed and should no longer be used. The "SunJSSE" name should be used
instead. For example, SSLContext.getInstance("TLS", "SunJSSE").
Retired the Deprecated SSLSession.getPeerCertificateChain() Method
Implementation (JDK-8241039)
security-libs/javax.net.ssl
The implementation of the deprecated SSLSession.getPeerCertificateChain()
method has been removed from the JDK in the SunJSSE provider and the HTTP
client implementation. The default implementation of this method has been
changed to throw UnsupportedOperationException.
SSLSession.getPeerCertificateChain() is a deprecated method and will be removed
in a future release. To mitigate the removal compatibility impact, applications
should use the SSLSession.getPeerCertificates() method instead. For service
providers, please remove this method from the existing implementation, and do
not support this method in any new implementation.
Deprecated Features and Options
Additional sources of information about the APIs, features, and options
deprecated in Java SE 15 and JDK 15 include:
* The Deprecated API page identifies all deprecated APIs including those
deprecated in Java SE 15.
* The Java SE 15 ( JSR 390) specification specification documents changes to
the specification made between Java SE 14 and Java SE 15 that include the
identification of deprecated APIs and features not described here.
* JEP 277: Enhanced Deprecation provides a detailed description of the
deprecation policy. You should be aware of the updated policy described in
this document.
You should be aware of the contents in those documents as well as the items
described in this release notes page.
The descriptions of deprecated APIs might include references to the deprecation
warnings of forRemoval=true and forRemoval=false. The forRemoval=true text
indicates that a deprecated API might be removed from the next major release.
The forRemoval=false text indicates that a deprecated API is not expected to be
removed from the next major release but might be removed in some later release.
The descriptions below also identify potential compatibility issues that you
might encounter when migrating to JDK 15. See CSRs Approved for JDK 15 for the
list of CSRs closed in JDK 15.
Deprecated RMI Activation for Removal (JDK-8245068)
core-libs/java.rmi
The RMI Activation mechanism has been deprecated and may be removed in a future
version of the platform. RMI Activation is an obsolete part of RMI that has
been optional since Java 8. It allows RMI server JVMs to be started
("activated") upon receipt of a request from a client, instead of requiring RMI
server JVMs to be running continuously. Other parts of RMI are not deprecated.
See JEP 385 for further information.
Deprecated NSWindowStyleMaskTexturedBackground (JDK-8240995)
After an upgrade of the macOS SDK used to build the JDK, the behavior of the
apple.awt.brushMetalLook and textured Swing properties has changed. When these
properties are set, the title of the frame is still visible. It is recommended
that the apple.awt.transparentTitleBar property be set to true to make the
title of the frame invisible again. The apple.awt.fullWindowContent property
can also be used.
Please note that Textured window support was implemented by using the
NSTexturedBackgroundWindowMask value of NSWindowStyleMask. However, this was
deprecated in macOS 10.12 along with NSWindowStyleMaskTexturedBackground, which
was deprecated in macOS 10.14.
For additional information, refer to the following documentation:
* apple.awt.brushMetalLook: https://developer.apple.com/documentation/appkit/
nstexturedbackgroundwindowmask?language=objc
* apple.awt.transparentTitleBar: https://developer.apple.com/documentation/
appkit/nswindow/1419167-titlebarappearstransparent?language=objc
* apple.awt.fullWindowContent: https://developer.apple.com/documentation/
appkit/nsfullsizecontentviewwindowmask
Deprecated -XX:ForceNUMA Option (JDK-8243628)
hotspot/gc
The VM option ForceNUMA is deprecated. Use of this option will produce a
deprecation warning. This option will be removed in a future release.
This option has always been disabled by default. It exists to support testing
of NUMA-related code paths when running on a single node / UMA platform.
Disabled Biased-locking and Deprecated Biased-locking Flags (JDK-8231264)
hotspot/runtime
Biased locking has been disabled by default in this release. In addition, the
VM option UseBiasedLocking along with the VM options BiasedLockingStartupDelay,
BiasedLockingBulkRebiasThreshold, BiasedLockingBulkRevokeThreshold,
BiasedLockingDecayTime and UseOptoBiasInlining have been deprecated. The
options will continue to work as intended but will generate a deprecation
warning when they are used.
Biased locking might affect performance on applications that exhibit
significant amounts of uncontended synchronization, such as applications that
rely on older Java Collections APIs that synchronize on every access. Hashtable
and Vector are examples of these APIs. Use -XX:+BiasedLocking on the command
line to re-enable biased locking. Report any significant performance
regressions to Oracle with biased locking disabled.
Disable Native SunEC Implementation by Default (JDK-8237219)
security-libs/javax.crypto
The SunEC crypto provider no longer advertises curves that are not implemented
by using modern formulas and techniques. Arbitrary and named curves, listed at
the bottom of this note, are disabled. Commonly used named curves, secp256r1,
secp384r1, secp521r1, x25519, and x448, remain supported and enabled by SunEC
because they use modern techniques. Applications that still require the
disabled curves from the SunEC provider can re-enable them by setting the
System property jdk.sunec.disableNative to false. For example: java
-Djdk.sunec.disableNative=false ....
If this property is set to any other value, the curves will remain disabled.
Exceptions thrown when the curves are disabled will contain the message Legacy
SunEC curve disabled, followed by the name of the curve. Methods affected by
the change are KeyPair.generateKeyPair(), KeyAgreement.generateSecret(),
Signature.verify(), and Signature.sign(). These methods throw the same
exception class they had before when the curve was not supported.
The following curves are disabled: secp112r1, secp112r2, secp128r1, secp128r2,
secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1,
secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1,
sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1,
sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62
c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62
c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62
prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3,
brainpoolP256r1 brainpoolP320r1, brainpoolP384r1, brainpoolP512r1
Added forRemoval=true to Previously Deprecated ContentSigner APIs (JDK-8242260)
security-libs/jdk.security
The ContentSigner and ContentSignerParameters classes in the com.sun.jarsigner
package support alternative signers and have been deprecated with forRemoval=
true. When the -altsigner or -altsignerpath options are specified, the
jarsigner tool produces a warning that these options are deprecated and will be
removed.
Known Issues
java.net.HttpClient Does Not Override Protocols Specified in SSLContext Default
Parameters (JDK-8239594)
core-libs/java.net
During the setup of new connections, java.net.http.HttpClient now uses the
default set of protocols provided by the SSLContext when negotiating the TLS
handshake. In the absence of any SSLParameters explicitly supplied to the
HttpClient.builder, the HttpClient has been updated to no longer override any
default-selected protocols in the SSLContext. As a result, the actual TLS
version that is negotiated might differ from that of previous releases, or it
might even succeed or fail to negotiate when it previously might not have.
[macos] Support for Notarizing jpackage app-image and dmg (JDK-8237490)
tools/jpackage
jpackage cannot create packages on macOS that are suitable for notarization.
Other Notes
The following notes describe additional changes and information about this
release. In some cases, the following descriptions provide links to additional
detailed information about an issue or a change.
Workaround for Windows GDI API's memory restrictions (JDK-8240654)
client-libs
It has been found that some Windows GDI functions don't support all types of
Java heap memory allocation schemes. This problem can cause repaint issues and
printing bugs. It has been worked around by allocating temporary buffers off
heap.
See: https://support.microsoft.com/en-us/help/4567569/
gdi-apis-may-fail-when-large-pages-or-vad-spanning-is-used
java.awt.Robot.delay() Method Completes With Interrupt Status Set When
Interrupted (JDK-8210231)
client-libs/java.awt
When it is interrupted, the implementation of the java.awt.Robot.delay() method
has been changed to complete with the interrupt status set.
If a thread is interrupted while waiting in the java.awt.Robot.delay() method,
then this method returns immediately with the interrupt status set. If the
interrupted status is already set, this method returns immediately with the
interrupt status set.
Optimized Empty Substring Handling (JDK-8240094)
core-libs/java.lang
The implementation of String.substring and related methods stripLeading and
stripTrailing have changed in this release to avoid redundantly creating a new
empty String. This may impact code that depends on unspecified behaviour and
the identity of empty sub-strings.
Lookup::defineClass Links the Class (JDK-8238195)
core-libs/java.lang.invoke
Lookup::defineClass is specified to throw LinkageError if a linkage error
occurs, but the implementation was not actually linking the class. In this
release, the implementation has been changed to link the class before
returning, so conforming to the specification. If Lookup::defineClass is called
to define a class that fails linking, LinkageError will be thrown.
DatagramPacket.getPort() Returns 0 When the Port Is Not Set (JDK-8237890)
core-libs/java.net
In this release, the default port number for a datagram packet has been changed
to 0. Previously, this value was -1, which was undocumented. The port can be
retrieved by using DatagramPacket::getPort.
DatagramSocket::disconnect Allows an Implementation to Throw
UncheckedIOException (JDK-8235783)
core-libs/java.net
Previously, DatagramChannel::disconnect threw an IOException while
DatagramSocket::disconnect did not. As a result, the DatagramChannel::socket
adapter, which calls DatagramChannel::disconnect, catches the thrown
IOException and rethrows it as an Error. However, this was undocumented
behavior and not user-friendly.
The DatagramChannel::socket adapter has been changed to throw an
UncheckedIOException, and the specification of DatagramSocket::disconnect has
been updated to document that an implementation may now throw an
UncheckedIOException. This ensures consistency in behavior between
DatagramSocket, DatagramChannel, and DatagramChannel::socket adapter.
Filtering and Ordering of Addresses Returned by Alternative Hosts File Name
Service Provider (JDK-8244958)
core-libs/java.net
In this release, the behavior of InetAddress.getAllByName has been modified
when the alternative hosts file name service is selected .
The JDK allows specifying an alternative host's file name service by using the
jdk.net.hosts.file system property. The implementation of the alternative name
service has been changed to take into account the values of the
java.net.preferIPv4Stack and java.net.preferIPv6Addresses system properties.
This affects the results returned by InetAddress.getAllByName when the host's
file name service is selected. For details about java.net.preferIPv4Stack and
java.net.preferIPv6Addresses, see Networking Properties in the API
documentation.
Modified the MS950 charset Encoder's Conversion Table (JDK-8232161)
core-libs/java.nio.charsets
In this release, some of the one-way byte-to-char mappings have been aligned
with the preferred mappings provided by the Unicode Consortium.
Support Monetary Grouping Separator in DecimalFormat/DecimalFormatSymbols (
JDK-8227313)
core-libs/java.text
DecimalFormat/DecimalFormatSymbols classes are now capable of dealing with
grouping separators for currency values. For example, the monetary grouping
separator for the German language used in Austria (the de-AT locale) is '.',
whereas the monetary grouping separator in other German locales is ' '.
ValueRange.of(long, long, long) Does Not Throw IAE on Invalid Inputs (
JDK-8239520)
core-libs/java.time
java.time.temporal.ValueRange.of() methods are now correctly throwing an
InvalidArgumentException on given invalid arguments. For example, of(5, 2, 10)
which is invalid because the minimum is greater than the smallest maximum, now
throws the exception.
localizedBy() Overrides Localized Values With Default Values (JDK-8244245)
core-libs/java.time
java.time.format.DateTimeFormatter.localizedBy(Locale) method now honors the
default locale values, such as Chronologyand/or DecimalStyle of the specified
locale argument.
For example, in previous JDK releases:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
.localizedBy(Locale.forLanguageTag("fa"))
.format(LocalDate.now())
$3 ==> "جمعه 1 مهٔ 2020"
the numbers are in Arabic (Western) numerals.
In JDK 15:
jshell> DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
.localizedBy(Locale.forLanguageTag("fa"))
.format(LocalDate.now())
$3 ==> "جمعه ۱ مهٔ ۲۰۲۰"
the numbers are in Extended Arabic-Indic numerals because it is the default
numbering system for the Farsi locale.
Performance Improvement for InflaterOutputStream.write (JDK-8242848)
core-libs/java.util.jar
InflaterOutputStream(OutputStream out, Inflater infl, int bufLen) allows for
specifying the decompressor and buffer size to be used.
InflaterOutputStream.write(byte[] b, int off, int len) was writing data using a
max buffer size of 512 bytes.
Starting with JDK 15 the buffer size specified via InflaterOutputStream
(OutputStream out, Inflater infl, int bufLen) will be used in calls to
InflaterOutputStream.write(byte[] b, int off, int len). If the buffer size is
not specified when invoking the InflaterOutputStreamconstructor, it will
default to 512 bytes.
Case Insensitive Matching Doesn't Work Correctly for Some Character Classes (
JDK-8214245)
core-libs/java.util.regex
The Java regular expression engine supports the case insensitive mode. When
this mode is turned on, the engine is supposed to match the input text without
regard to the case of the characters it consists of.
However, the current implementation of matching against some named character
classes (those that are encoded with p{name} or P{name} constructs) fails to
respect the case insensitive mode.
This fix makes these character classes behave consistently with respect to case
sensitivity. When the regular expression engine operates in the case
insensitive mode, the named character classes will match the input characters
without regard to their case: lower case, upper case, or title case.
Localized Time Zone Name Inconsistency Between English and Other Locales (
JDK-8236548)
core-libs/java.util:i18n
English time zone names provided by the CLDR locale provider are now correctly
synthesized following the CLDR spec, rather than substituted from the COMPAT
provider. For example, SHORT style names are no longer synthesized
abbreviations of LONG style names, but instead produce GMT offset formats.
Support for CLDR version 37 (JDK-8239480)
core-libs/java.util:i18n
Locale data based on Unicode Consortium's CLDR has been upgraded to their
version 37. For the detailed locale data changes, please refer to the Unicode
Consortium's CLDR release notes:
* http://cldr.unicode.org/index/downloads/cldr-37
Flags Controlling C1 Inlining Have New Names (JDK-8235673)
hotspot/compiler
A number of flags controlling inlining in the C1 and C2 compilers have been
split up into separate flags. The C2 compiler keeps the flags with the old
names, and the C1 compiler gets the new flags.
Old flags now only controlling C2
* MaxInlineLevel
* MaxRecursiveInlineLevel
* MaxInlineSize
* MaxTrivialSize
* InlineSmallCode
* FreqInlineSize
New flags for C1 that replace the old ones
* C1MaxInlineLevel
* C1MaxRecursiveInlineLevel
* C1MaxInlineSize
* C1MaxTrivialSize
Deprecation
If the old flags are used in a JDK build without the C2 compiler, a deprecation
warning will be printed.
JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production) (
JDK-8209683)
hotspot/gc
The Z Garbage Collector (ZGC) is now ready for use in production and no longer
marked as an experimental feature. ZGC is enabled by using the -XX:+UseZGC
command-line option (using -XX:+UnlockExperimentalVMOptions is no longer
needed).
See JEP 377 for more details.
Improved Ergonomics for G1 Heap Region Size (JDK-8241670)
hotspot/gc
The default heap region size calculation has been changed to return larger
regions by default. The calculation still aims to have 2048 regions, but two
aspects have changed:
* Only the maximum heap size is considered. The old calculation also took the
initial heap size into consideration, but this can give unexpected behavior
when no heap size is set.
* The region size is rounded up to the nearest power of 2 instead of down.
This will return larger region sizes in cases where the maximum heap size
is not a power of 2.
These changes improve startup and runtime performance.
Disabling NUMA Interleaving on Windows (JDK-8245002)
hotspot/gc
-XX:+UseNUMAInterleaving has no effect on Windows in this release. It was found
that GDI APIs used by java2d don't support the memory reservation scheme used
for NUMA interleaving. The JVM detects this problem and both warns about this
and turns off NUMA interleaving. See: https://support.microsoft.com/en-us/help/
4567569/gdi-apis-may-fail-when-large-pages-or-vad-spanning-is-used
Disabling large pages on Windows (JDK-8245000)
hotspot/gc
-XX:+UseLargePages has no effect on Windows in this release. It was found that
GDI APIs used by java2d don't support large pages. The JVM detects this problem
and both warns about this and reverts to using small pages. See: https://
support.microsoft.com/en-us/help/4567569/
gdi-apis-may-fail-when-large-pages-or-vad-spanning-is-used
Field Layout Computation Changed (JDK-8237767)
hotspot/runtime
The way that field layout is computed has been changed, with more aggressive
optimizations to avoid unused gaps in instances. These new optimizations can be
disabled by using a new VM option -XX:-UseEmptySlotsInSupers.
For a limited time, it is possible to continue to use the old code to compute
field layout with a new VM option -XX:-UseNewFieldLayout. However, this option
has been deprecated in JDK 15 and the old code will be removed in a future
release.
Enable ShowCodeDetailsInExceptionMessages by default (JDK-8233014)
hotspot/runtime
The default of the flag ShowCodeDetailsInExceptionMessages was changed to
'true'. The helpful NullPointerException messages of JEP 358 are now printed by
default. The messages contain snippets of the code where the
NullPointerException was raised.
App deployers should double check the output of their web applications and
similar usage scenarios. The NullPointerException message could be included in
application error messages or be displayed by other means in the app. This
could give remote attackers valuable hints about a potential vulnerable state
of the software components being used.
An example message is 'Cannot read field "c" because "a.b" is null'. The
attacker knows that field b of a contains null which might be unintended and
offer an opportunity for an attack. For more details of what the message can
contain see the above mentioned JEP 358.
Signature and SignatureSpi Get Parameter Methods May Return null When
Unsupported (JDK-8243424)
security-libs/java.security
Signature.getParameters() and SignatureSpi.engineGetParameters() may return
null if the underlying provider does not support returning the parameters as
AlgorithmParameters. For further details, see the Signature and SignatureSpi
method descriptions.
SunPKCS11 Initialization With NSS When External FIPS Modules Are in Security
Modules Database (JDK-8238555)
security-libs/javax.crypto:pkcs11
The SunPKCS11 security provider can now be initialized with NSS when
FIPS-enabled external modules are configured in the Security Modules Database
(NSSDB). Before this change, when such a library was configured for NSS in
non-FIPS mode, the SunPKCS11 provider would throw a RuntimeException with the
message "FIPS flag set for non-internal module".
This change allows the JDK to work properly with recent NSS releases in GNU/
Linux operating systems when the system-wide FIPS policy is turned on.
Default SSLEngine Should Create in Server Role (JDK-8237474)
security-libs/javax.net.ssl
In JDK 11 and later, javax.net.ssl.SSLEngine by default used client mode when
handshaking. As a result, the set of default enabled protocols may differ to
what is expected. SSLEngine would usually be used in server mode. From this JDK
release onwards, SSLEngine will default to server mode. The
javax.net.ssl.SSLEngine.setUseClientMode(boolean mode) method may be used to
configure the mode.
New in 2020.08.2:
+ Fixes:
+ Fix output of `--show-config` option [1a1fe7fb][f00c4198]
New in 2020.08.1:
+ Changes:
+ Fix compiler version [1336e5f3]
+ Method `invoke` of `WalkList` returns a lazy `Seq` instance now [fe40ee1e]
+ Internal:
+ `Seq` class now has its own proto for `new` method [a19996db]
New in 2020.08:
+ Changes:
+ Methods `name` and `usage-name` of `Parameter` now return an empty `Str`,
when there is no name, instead of `Nil`. Method `default` returns `Code` type object,
when no default was provided instead of `Any` type object [c11f4b18]
+ Remove redundant `(())` from `Map.new.raku` [491e1def]
+ Routine `done-testing` of `Test` module returns `Bool` now,
indicating if the tests passed or not [337848fe]
+ Deprecations:
+ Deprecate `--nqp-lib` command line option,
which had no effect for more than a year [9071653e]
+ Fixes:
+ Make `X::Method::NotFound` exception more user-friendly
[b36afcb3][760034ef][eb0ca2a3][66adb771][acc5e64d][4546a603]
+ Fix false positive typechecking exceptions for some generic types
[3d5fba7b][973b83de][8d40691d][1db17c46][1eb712d5]
+ Ensure `Routine` subtypes are composed before performing mixins with
their instances [7f2ae26c][e3c2646e]
+ Fix mixing in a role with attributes into a NQP class [1b5f6b98][9e51d01b]
+ Make exceptions thrown by supply iterators don't claim to have
originally been thrown within the iterator itself [fcfc60b6]
+ Fix `Baggy.pickpairs` called with a `Callable` [08f81f24]
+ Fix a rare, yet possible data race [9d6d8dd7]
+ Additions:
+ Add `set_parameterizer`, `parameterize_type`, `type_parameterized`,
`type_parameters` and `type_parameter_at` methods for `Metamodel::Primitives` [2ab94429]
+ Internal:
+ Type `Parameter` methods [c11f4b18]
+ Fix release pipeline to not delete the GNU/Linux build [4ad4bd30]
+ Make `Rakudo::Internals::JSON` up to 4.4x as fast [b60e1636][43bd739f]
+ Do roast-related cleanup, add `quicktest` make target
[1e20dfca][6fd09811][333ce78c][dd8cd411]
+ Rework `tools/update-passing-test-data.pl` to support backends [ea0c98cf]
+ Make `main-version.nqp` a backend-specific configuration file [80b0747a]
+ Add a `Perl6::SysConfig` class [ace5e22f]
+ Simplify binary release instructions a little [27eb5ea9]
+ Add tests to make sure profilers can be invoked [d7aa7e66]
+ Remove an outdated workaround from `Cool` implementation [a3af5833]
+ Fix incorrect method call [02a83442]
New in 2020.07:
+ Fixes:
+ Improve "Method not found" error message for some rare cases [0a86798f]
+ Fix calling `.say`/`.put`/`.note` methods on Match objects [9f546ef6]
+ Add word wrapping to numerous error messages, improve wording
[eb589c03][1b84e036][3cb29a03][6db1fb1d][80aaede3][42031860][f70a3ccd]
[3ffed2fb][a7a1fe24][cd8846ad][83a126b3][3add8615][3d9a9fc4][697596fd]
[56e5f7dc][88b0e7a3][7a93c907][f550c9f9][a4b982cd][93963433][58685eeb]
[5f423a7e][92f8c19b][5627e02b][5b7ecdc0][a7455050][f96a641f][1f93724f]
[98c7e512][248664c6][3bc4fa90]
+ Wordwrap `Mu.WHY` [16d24a21]
+ Fix check for valid Raku module extension to be an exact match instead of suffix-like one [d4eef8d4]
+ Fix result of `.raku` method called on a generic typed array [90f86d4c]
+ Additions:
+ Set equality operators: `(==)` Unicode `≡` and `≢` which allow to check
for sameness of the operands using QuantHash semantics
(for example, `1,2,3 (==) 3,1,2` returns `True`) [701f4cfb][dbd69ba7]
+ Add support for Supply.tail(*) and .tail(Inf) [9ccfc90e]
+ Add support for Supply.tail(*-3) [eaa72afa]
+ Make `Supply.head(*-3)` consistent with `List.head(*-3)` [5c8c7324][70e5cfb9]
+ Rakudo now supports the `--rakudo-home` command line option to specify the path of the Rakudo home [914bcbad]
+ Efficiency:
+ Make <a b c d>.permutations between 23 and 85x faster [682a4d4f]
+ Make IO::Handle.read(1) about 3x as fast and consuming less memory [2946ed64][252b9349]
+ Internal:
+ Micro-optimize `buf8.new` creation code in compiler [ed936c14]
+ Give `Supply.tail` its own candidate [1a91af8c]
+ Add `Str.naive-word-wrapper` (implementation detail)
[056d6a4e][9ea66e13][6db1fb1d][45893495][821f582f][3674f812]
+ Make `IO::Path` use its own `.succ` / `.pred` logic [305fc7bd]
+ Remove placeholder files [07009cc0]
+ Re-imagine `CompUnit::Repository::FileSystem!distribution` [f3b1c8df]
+ Change `perl6` to `Raku` in nqp-configure submodule URL [ddebab5a]
+ Refactor `Rakudo home` and `NQP home` handling [e4f020ca]
+ Do core setting name mapping via compiler config [6e087e13]
+ Fix for spectest not seeing Inline::Perl5 [d5630720]
New in 2020.06:
+ SPECIAL NOTES:
+ Results of `dir` routine called with dirty base path are presented
as cleaned up for some paths (like `///` or `a/../a`) unlike
before. While compatibility with most of other cases is preserved
and no ecosystem fallout was observed, be cautious of the possible
observable changes if the code does not clean dirty paths using `cleanup` method.
+ Since this release, when you start Raku with "-" as a single positional parameter, it
will now check if STDIN is connected to a terminal. If it is, then
the REPL will be started, rather than appearing to freeze waiting
for the user to enter something and issue an EOF. If STDIN is *not*
connected to a terminal, then Raku will read from STDIN and process
that as the source of a program.
+ The `run` routine, `Proc.spawn` and `Proc::Async.new` are
extended with a new argument `:$win-verbatim-args` defaulting to
`False`. If the argument is left off or set to False, the
arguments are quoted according to the Microsoft convention. This
is identical to Rakus previous behavior and thus backwards
compatible. When passing True the passed arguments are
concatenated with a single space. No other processing takes
place. This allows to manually quote the arguments as necessary.
+ Changes:
+ Support verbatim argument handling for `Proc` [709941c6][9a75738f]
+ Signatures of `slurp` and `spurt` routines not accepting redundant arguments is
now compile time error rather than run-time one [22f43444]
+ The `Distro.desc` method now states codename for MacOS [b4b2a5ec]
+ The `gist` method output for multi-dimensional arrays is truncated now [cfc3e57f][4bfe5bd5]
+ Parametrization a variable type in form `my $foo is Type[Foo, Bar]` works for all types now [de43f193]
+ The `rotate` method now returns `Seq` instead of `List` [4b501bd4]
+ Add CACHEDIR.TAG to mark cache dirs as cache [37646b86][c3bdb617][ef90599e]
+ Improve GNU C++ name mangling [4f672c27]
+ Make `Instant.raku` output simpler [c0b5fb28]
+ Improve smartmatching against `Mu`/`Any`/`Junction` types
(`Mu.new ~~ Mu` does not die anymore, `any(Mu, Any) ~~ Mu` returns `True` now) [3b4794f4][840d3e81]
+ Fixes:
+ Fix code objects created BEGIN time EVAL getting lost in precompilation [537f8877][169f63d9]
+ The `is` routine from `Test` module now handles types that cannot be stringified and
compares them using `raku` method now [c9e94623]
+ Fix various JVM and JS backend issues [8e5b610a][2b81f978]
[12f8f1eb][5b86436c][1464b35e][a059373e][9fe471cf]
+ Fix BEGIN time `EVAL` accidentally running CHECK phasers of the outer comp unit [eeb4f43f][b874c68e]
+ Fix results o `"١٢٣".Numeric` and `"١٢٣".Int` [c2e8b22f]
+ Fix race in `PIO` method of `IO::Handle` [f33ce01c]
+ Fix `Date(now)` call [9dcbc5ff]
+ Fix `.comb(Str)` to ensure non-overlapping results [8d5a0f70]
+ Fix `Instant.raku` for Rational values [f506cc03]
+ Fix sorting of 2 element native arrays [becb85eb]
+ Make sure `push-all` does not push when exhausted when splitting using a regex [077300c5]
+ Improve error message for method calls placed after white space [4278e4c2]
+ Improve `X::Syntax::Variable::MissingInitializer` exception's error message [ee005d8b]
+ Improve `X::Method::NotFound` exception's error message to only suggest a submethod if correct [b02a7413]
+ Improve `malformed loop spec` related errors [d3c3e534]
+ Improve error message for case of too many directives in routine `sprintf` [c988f832]
+ Improve detection of a version control conflict marker to provide an error message [65e412f7]
+ Additions:
+ Add `IO::Handle.do-not-close-automatically` method [61046d76][999d04aa]
+ Add `IO::Path::Parts` class [4387f280][187312b8][e9ea048b][30ae200f]
+ Add support for `printf($format, Junction)` [110324d3]
+ Add `Supply.rotate` method [9f7c9278]
+ Add `Capture.EXIST-POS` method [6a4f79ec][b55ecdf0][3372352e]
+ Add `RAKU_REPL_OUTPUT_METHOD` environment variable which sets
the method used to stringify a value of an expression in REPL, default is `gist` [285717a0]
+ Add `:chomp` named argument to `Str.lines` similar to the same named argument of `IO::Handle.new` [1bcc5d73]
+ Efficiency:
+ Make creation of regex captures faster [15961f91][272c4636]
[ed65d733][e3fa44ab][7f47db80][0b48651c][537a6e41][f627d2c8][6f6b2dfe][219199bb]
+ Make file test methods like `.d` or `.x` faster [c821bbc5]
+ Make `Match.caps` about 35% faster [87e91def]
+ Make `Str.split(Regex)` up to 2x faster [9c74d983]
+ Make `Str.split(Regex, *%_)` up to 2x faster [a9796fe5]
+ Make `dir` routine about 15% faster [700b7432]
+ Make `Blob.join` between 4% and 11% faster [84ff64cf]
+ Make `Blob.gist` about 2x as fast [b55667ef]
+ Make `QuantHash` implementation a bit faster [4a728f2a]
+ Make `IO::Spec::Win32.basename` about 1.7x as fast [ecd06c9f]
+ Make `IO::Spec::Win32.tmpdir` about 1.8x as fast [6d427d47]
+ Make `IO::Spec::Win32.path` about 2x as fast [1a8e07c2]
+ Make `IO::Spec::Unix.path` about 3.5x as fast [8dc58abf]
+ Make `IO::Spec::Unix.basename` and `IO::Spec::Unic.extension` about 1.7x as fast [f89fad87]
+ Make `IO::Spec::Unix.tmpdir` about 1.8x as fast [a2860ead]
+ Make `WhateverCode.ACCEPTS` about 2x as fast [853e6227]
+ Make `IO::Path.sibling` about 2x as fast [a5eb1d4a]
+ Make `IO::Path.succ` and `IO::Path.pred` about 3x as fast [26b9f388][7238b094]
+ Make `IO::Path.parent` about 2.7x as fast [71cb0c56]
+ Make `IO::Path.parent(N)` about 2x as fast [f93ce875]
+ Make `IO::Path.child` about 1.4x as fast [f5b2c240]
+ Make `IO::Path.add` about 1.25x as fast [718d305b]
+ Make `IO::Path.dir` between 1.5x and 2.2x as fast [b63976a8]
[6b22c1eb][7691742a][9b9d9f64]
+ Make `IO::Path.is-absolute` a bit faster [fc88b9c2][bd7fcb28]
+ Make `IO::Path.spurt` up to 35% faster [7571f65a]
+ Make `IO::Path.slurp` up to 4.7x as fast [d03fa4b0][cde948ae][36d89cf6]
+ Make `slurp` routine up to 40% faster [f3baa389][fc3e1aea]
+ Make `spurt` routine a few % faster [da5825e6]
+ Make `Str.Numeric` about 4.3x as fast [a0e58412]
+ Make `.IO` method and `IO::Path.new` about 2x as fast [2a88990b]
+ Make `IO::Spec.curupdir` about 25% faster [6a0eaabd][16d93e26]
+ Make `"42".Int` about 4.3x faster [3ee1777a]
+ Reduce overhead of `Code.ACCEPTS(value)` by 20% [2eec62fe]
+ Make `so` and `not` routines faster [d8c26500][8a3c36f8][5c93ddac][cb69cfce]
+ Optimize symbol lookup [c5f5d7ee][dc6594d6][5d61b3d0]
+ Prevent `$*OUT` lookup for each eigenstate of Junction when calling `print` or `put` [4297cb05]
+ Make `printf` routine up to 5% faster [e46d4590]
+ Streamline variable `is` and `of` handling [5561669b]
+ Make `Hash.sort` a tiny bit faster [cd617248]
+ Various small optimizations [a9074977][b50fd8b5][65e17c40]
+ Internal:
+ Set up CI with Azure Pipelines [ae07d685][43213e49][55529de1]
[78fe25b8][42c37997][4085cfdc][5b4faed3][5587574e][fce783a1][adfa192b]
+ Fix `main-version.nqp` dependencies [b71cb3ae]
+ Improve `say`, `put`, `print`, `note` methods of `IO::Handle` [7a902b5e]
[88d98225][627b39b8][438c1d2f][483cac3a][2b38666f]
+ Simplify `Shaped1Array.reverse` [de173a18]
+ Simplify `EVAL(:check)` code [afe85110]
+ Rework part of `Match` internals [0a84aa7f]
+ Simplify `Kernel.signals` using `Signal` values [5644c709]
+ Simplify `Grammar.parse` code [f10e5bce][8be24067][1402c1d1]
+ Allow debuggers for Rakudo to be specified by environment variables [48e073e2]
+ Default to using egdb when possible in rakudo-gdb-m which covers OpenBSD developer environments [b01b0120]
+ Introduce INTERPOLATE [417a591a][777e7b65][3f9f23a9][638517da][05907227]
+ Various internal improvements to the code base [ef0c457b][e71d3cb0]
[37533ee6][b3d933b4][4afaab73][3796405b][17bf5d5f][d9defb6c][2aac854f]
[799d627a][a56e62de][c1decf2a][a69465a7][26d88b9e][44b27019][95f7d34e]
[b5bf1bf4][285717a0][21c3ef82][4103a309][a616fe57][e645ff6a][ea8c04db]
[ad9b9f4f][9942ccc0][1c94538e][9f73351b][e9f80357][a431968e][519a5726]
[4ba70b7a][496e9166][d984e7c2][bf01f845][da9943a4][150af9a2][6f459456]
[92d01836][98dec90d][792a0f00][902401b7][4d1ef59e][2bfaab6c]
+ Update `INSTALL.txt` for the latest changes [8bb0235b][e1db95e8][bd5e19e4]
+ Various small improvements to compiler's user-facing documentation [dac68b27]
[302bc8ed][736ce715][10a8f6a2][627ffd42][3d6756b3][eab17e7a][18ecb604]
[2cff6dd9][77b2f2a5][197bba98][621577b4][d09cf9d8][8a8f62ca][a79efdef]
[797c96de][8c3f013d][11afa53b][fbb0abc1]
+ Various changes to documentation related to renaming process
[6ead4ce1][142d03be][e0384ee0][0ccd4cfe][4d6031f6][d53a3b1a][de6ebd4e][b0032395]
New in 2020.05.1:
+ Fixes:
+ Fix relocatable builds on the moar backend [46648b9b]
New in 2020.05:
+ Fixes:
+ Decontainerize attribute default values [d71761e3]
+ Fix `Cool` catchers for some `Str` methods
[a91d7d79][63a72659][af8788b4]
+ Update some internal documentation to use Raku name [f2cc20c6]
+ Add `Cool.contains(Regex)` candidates [c3c1e8c9]
+ Make format of all `QuantHash`'s classes `.gist` uniform [cf01f7a2]
+ `Method` objects that don't have `*%_` in their signature, `.gist` ok [ac5f353a]
+ Fix `DateTime` default stringification when the second is 0 [95de7859]
+ Make `Blob/Buf.list` non-lazy so they can be used in hypers [6d146b56][291aa580]
+ Remove unnecessary parentheses from `Pair.raku` [35a827af]
+ `IO::CatHandle.slurp` did not accept `:bin` parameter [42c4c3fc]
+ Fixed some cases where `IO::Handle.slurp` was used without `:close` [efab398e]
+ `run` routine with `out` named parameter being a `Handle` and `merge` flag
enabled now writes both stdout and stderr to the handle [1f838791]
+ A single whenever react based on a signal is now serialized by default [8aa25bfb]
+ `&cmp-ok` subroutine of `Test` module now works with objects without support for methods [fc0f78d5]
+ Ensure meta-ops respect user-defined chain ops [ac012f18]
+ Fix exception when mixing in roles that use `is built` at runtime [4c026ab8]
+ Fix inconsistent match result when using a code block in a regex [1e0474d4]
+ Fix error message related to `nextcallee` subroutine [136087e7]
+ Fix regression in sequence operator [0a6456a4]
+ Fix reflection for . twigilled parameters [296fbcf4]
+ Fix `Parameter.raku` with `OUTER` default values [87d2ff95][2f8538ed]
+ Fix `Capture.WHICH` for subclasses of `Capture` [8808401c]
+ Fix `Capture.EXISTS-KEY` for some `Capture` values [2d18cdeb]
+ Make (1..-Inf).reverse) work as intended [3983b4f8]
+ Make (foo .. foo).reverse correctly [c588323e]
+ Properly throw an exception on attempts to add a key to an immutable `Map` [1a10b63a]
+ `INPUTRC` environment variable is now checked for a Readline config when using REPL [61a48362]
+ Add missing label support for some loop constructs [66a2250a]
+ Make `Real.sign` always return an `Int` [42a303ec]
+ Result of `reverse` called on a `List` value with holes returns a
reverse of the list with `Nil` in place of holes instead of `Mu` now [e9468d6a][ca49c153]
+ Various small JVM backend related improvements [945a4d81][b4819e7c][f6f8ac0d][25a1929c][717b3266]
+ Additions:
+ Added `docs/IN-MEMORIAM.md` to commemorate departed contributors [9b6d89b1][f9f3b662][170add26]
+ Implement support of environment variables `RAKULIB` and `RAKUDOLIB`
to eventually replace deprecated `PERL6LIB`
[b3bb0d38][cc165a05][1fd660a9][00c0dec3][be9bb4b1][30a3186b][e8f7eb56][61124c35][013b47d2]
+ Implement support for environment variables `RAKU_TEST_DIE_ON_FAIL` and `RAKU_TEST_TIMES`
to replace `PERL6_TEST_DIE_ON_FAIL` and `PERL6_TEST_TIMES` [30e7a67c][afff3b0b]
+ Show timing information when installing core modules in build process [58e61356]
+ Add multiple needles feature to `Str.index/rindex` [4cec44a3][cf02c2e9]
+ `dd` can now also handle `BOOTContext` objects [8b70bfb8]
+ `Str` now has `.Date` and `DateTime` coercers [d95d218f]
+ `Date.yyyy-mm-dd` now takes a separator parameter, defaulting to `-` [3017cfea]
+ Added `Date.dd-mm-yyyy` and `Date.mm-dd-yyyy` methods [70ac9b72]
+ `IterationBuffer` now has a `.Slip` method for easier iteration [d68fe5eb]
+ Add `is implementation-detail` trait and hide exposed internals with it
[12a33637][09c1b05a][2ae9fdf0][20c978e6][78371bb0][1d57d17d][0c36feb0]
+ Introduce `^...` and `^...^` sequence generator operators [371590fa][bbed2255]
+ Add `Date.last-date-in-month` and `Date.first-day-in-month` methods [2fb7198f][20ce5560]
+ Add a `parents` metamethod to `Metamodel::ParametricRoleGroupHOW` [8dcfa849]
+ Removals:
+ Remove undocumented `Seq.new-consumed` [0f97a7f5]
+ Move implementation detail to internals [aed658d6][b639221d][86bc3b3d]
[75f34c52][d3385e73][73c7ded2][9429728c][509a7f6e][439b8609][e152aa6a][ebb29499]
+ Turn `infix:<…>` and `infix:<…^>` into aliases [bd4e119d]
+ Build system:
+ Fix CircleCI configuration [efba9639][ffcc6198]
+ Be more robust when working with git reference directories that has spaces in path
[3ec58489][e6044dfc][2f0dd45e]
+ Move prebuild archive scripts to scripts folder [e1114208]
+ Change update-submodules.pl to not use the shell at all [0ae8b4e0]
+ Fix installation of perl6 aliases [aeb418a5]
+ Move RUN_CLEAN_TARGET_FILES to a separate script [ffad1024]
+ Fix building non-moar backends on Windows [47650ebe]
+ Fix `--nqp-home` Configure.pl parameter [94fdb3d5][59fe24bc]
+ Make timing based performance tests opt in via `RAKUDO_RUN_TIMING_TESTS` environment variable [31ffc2bd]
+ Efficiency:
+ Speed up compilation of large projects [c9092582][6956c063]
+ Make `raku -n` as fast as manual iteration with `.IO.lines` [be9c139f][5cad8fee]
+ Improve behavior of default `ThreadPoolScheduler`,
increasing efficiency of multithreaded applications [77a2201e][750abe03]
+ Make method lookup with the handles trait 13% faster in certain cases [af594925]
+ Simplify "previous setting" logic [9f4a0f1c]
+ Make creation of `Failure` objects faster [79ca396e]
+ Make default `DateTime` stringification about 12% faster [0e872356][d95141ed]
+ Make all `IO::Path` filetest methods a few percent faster [76c20d28][355b520b][bd9d7c1c]
+ Make `IO::Path.mode` about 14x as fast [a093b7fa]
+ Make `Date.yyyy-mm-dd` about 250x as fast [3017cfea][f9ecf6e8]
+ Make accessing native shaped arrays about 15x faster [80f2aebf]
+ Make `Seq.Numeric` and `Seq.Int` slightly faster [b7b9358f]
+ Make a number of traits around 2% faster [4bbe308b]
+ Make a minor optimization to a bunch of STORE methods [a4fbbfa3]
+ Make `Capture.raku` 45% faster [5baa645b][d6298edc]
+ Make `Capture.WHICH` 60% faster [688f6710]
+ Make `Capture.AT-KEY` 2% faster [22c0a53d]
+ Make `push(@a, foo)` about 20x as fast [385ab4cf]
+ Make `append(@a, foo)` about 20x as fast [b98d2e00][1e4c7361]
+ Make `unshift(@a, foo)` about 20x as fast [6541775c]
+ Make `prepend(@a, foo)` about 20x as fast [9b735b76]
+ Make `Num.Rat` faster [f987cdb0][2d1ba433]
+ Make `Date.succ` faster for days 28-31 [285da3b8]
+ Make `Str.tc` about 10% faster [5610416c]
+ Make `Supply.grab` a few percent faster [e0336d52]
+ `...` (SEQUENCE) optimizations [fc8c8281][935ee309][08545a33][d2ed7faa][fbf54e17][0fba27d7]
[8fe30b9c][58fa99b2][cf6177ef][75c6ac34][500dc662][9286def3][13559242][99cb2fa2]
+ CompUnit::* optimizations [1dbb227c][0249f23e][28bd4247][b4cdccc1][cb7be78c][638c8955]
[c9d9a096][83fed554][2cc509c0][f1cdfb18][9d1b3f63][db6d2306][7c9951cc][83ddbaba]
[196db682][551c157f][07643d37][e56eddd8][20d3713c][b4d32c97][8ac2eecc][4e3e937b]
[6c7ffbdb][17c45d89][89503809][747a35ba][dedb7444][cbd75f72][81ac37f8][f54ad732]
[fae4d45d][d55146bd][e33fe878][b712789e][e756e622][199888ab][95e8906c][5271d122]
[f48b80c3][954e545c][ef2d7d84][778ce379][1a0cc947][11b186c8][dec40dc4][d38d76d5]
[f31bd5ba][e1af7407][33fc8950][a62da301][0736bf7d][437f9f46][6e95e1b0][6723d3ad]
[24fd100d][b3f7ad2f][c29a2bf0][b07224f6][7de42d4b][7b5e1434][68cadd79][f980898f]
[bec2ac4c][d66068c1][31197cd3][2899d737][d4231b1f][c2a1ee95][6d3f1c12][dceef85f]
[859d8f04][5ea1c346][2a58eb39][3d6e8d6d][ea4bdf94][38a0eb82][2075489e][13ca677e]
+ Be better at inlining `any` Junction [76923bee]
+ Optimize symbol lookup at compunit creation time [35832540][75da4cfe]
+ Numerous small optimizations and improvements [014d493a][776ef800][87226876]
[49d1dcd3][d8366ff4][61b5e488][6793713b][2edce41b][d0e427dc][0b414c0a][88a9a36e]
[604085fb][f70d95e2][db6048e3][a66f5c29][80be7d19][a5535b2a][0d5f87cc][3c83ce75]
[3aaca26a][43c7e96f][dc7a7962][e78483ed][7bbf12d3][b9b46c0a][b0a720cb][fcda03ba]
[4339073b][cfc6cc3c][33f41966][0aa8b2a8][9cabea01][9b503292][6bb87106]
+ Internal:
+ Update Appveyor perl requirement on Windows to 5.22 [370956b9]
+ Add optional "lazy" flag to `Rakudo::Iterator.SequentialIterators` [101a80f2]
+ Give `IterationBuffer` its own `iterator` method [2b49d685]
+ Adopt MoarVM-provided `value_desc_cont` [4221f822]
+ Add `Rakudo::Iterator.AllButLast` iterator [77defa77][aa5154e0]
+ Add `Rakudo::Iterator.AllButFirst` iterator [4fe18a48]
+ Add and use `Rakudo::Iterator.ReifiedListReverse` iterator
[3ca38022][270cc275][cea0fc78][4025ca43][447b396f]
+ Add `Exception.message` stub [2e605520]
+ Make `Mu.iterator` use `Rakudo::Iterator.OneValue` [65fdea7d]
+ Make `Rakudo:Iterator.OneValue` a `PredictiveIterator` [ec50b961]
+ Rename `SlippyIterator` to `Rakudo::SlippyIterator` [50f13f03][fa3c0dba]
+ Don't use named variables between internal methods [92750571]
+ Implement `VM.request-garbage-collection` [e223be56]
+ `Rakudo::Iterator.ReifiedList` now returns a `PredictiveIterator` [063bfa05]
Update ruby-cucumber-gherkin to 15.0.2.
15.0.0 - 2020-08-07
Changed
* Update messages to 13.0.1
14.2.0 - 2020-07-31
Changed
* Update messages to 12.4.0
14.1.0 - 2020-07-29
Changed
* Update messages to 12.3.2
14.0.2 - 2020-06-29
Fixed
* [JavaScript] Actually merge #1094 - it wasn't done in 14.0.1
* [JavaScript] Throw NoSuchLanguageException when language is unknown #1102 (#1102 [mpkorstanje])
14.0.1 - 2020-06-29
Fixed
* [JavaScript] Remove test code from exports (#1094 aslakhellesoy)
14.0.0 - 2020-06-27
Added
* [Java] Enable consumers to find our version at runtime using clazz.getPackage().getImplementationVersion() by upgrading to cucumber-parent:2.1.0 (#976 aslakhellesoy)
* [Java/Ruby/Go/Javascript] Add tests to ensure we do not delete whitespace inside a table cell (#769 [mpkorstanje] [vincent-psarga])
Changed
* Upgrade to messages 12.2.0
* [Ruby] gherkin-query: if a feature file is empty, do not update anything. (cucumber-ruby#1427 [vincent-psarga])
* [JavaScript] Change gherkinQuery API:
* getPickleIds: now takes a URI and an astNodeId to find the pickle ids instead of a line number
* getPickleStepIds: now takes an astNodeId parameter instead of a URL and a line number to locate the pickle step id
* expose parse and parseAndCompile utilities
* Fixed Estonian translation of "Rule" (#973 [ookull])
* Fixed Estonian translation of "Scenario Outline" (#972 [ookull])
Fixed
* [JavaScript] Update gherkin-languages.json, which hadn't been updated for a few versions (not sure for how long!)
* [Ruby] Fix the default constructor of Gherkin::Parser (#1074 aslakhellesoy)
* [Ruby] Use require_relative for internal requires (#1010 [deivid-rodriguez])
* [Javascript] Escape regex characters in table header (#1077 [mpkorstanje])
Version 14.10.1 (Current)
Notable Changes
Node.js 14.10.0 included a streams regression with async generators and a docs rendering regression that are being fixed in this release.
3.7.4:
Fragment parsing was borked. This means deparsing in trepan2/trepan3k was broken
3.7+: narrow precedence for call tatement
del_stmt -> delete to better match Python AST
3.8+ Add another forelsestmt (found only in a loop)
3.8+ Add precedence on walrus operator
More files blackened
bump min xdis version
3.7.3:
Mostly small miscellaneous bug fixes
__doc__ = DocDescr() from test_descr.py was getting confused as a docstring.
detect 2.7 exchandler range better
Add for .. else reduction checks on 2.6 and before
Add reduce check for 2.7 augmented assign
Add VERSION in a pydoc-friendly way
3.7.2:
Use newer xdis
Docstrings (again) which were broken again on earlier Python
Fix 2.6 and 2.7 decompilation bug in handling "list if" comprehensions
Version 14.10.0 (Current)
Notable Changes
(SEMVER-MINOR) buffer: also alias BigUInt methods
(SEMVER-MINOR) crypto: add randomInt function
(SEMVER-MINOR) perf_hooks: add idleTime and event loop util
(SEMVER-MINOR) stream: simpler and faster Readable async iterator
(SEMVER-MINOR) stream: save error in state
go1.14.8 (released 2020/09/01) includes security fixes to the net/http/cgi and
net/http/fcgi packages. See the Go 1.14.8 milestone on our issue tracker for
details.
go1.15.1 (released 2020/09/01) includes security fixes to the net/http/cgi and
net/http/fcgi packages. See the Go 1.15.1 milestone on our issue tracker for
details.
The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
Fortran, and Go, as well as libraries for these languages (libstdc++,
libgfortran, ...).
This packages provides GCC support libraries in a specific location and allows
packages to depend on just the libraries rather than having to pull in the full
GCC package.
The GNU Compiler Collection (GCC) includes front ends for C, C++, Objective-C,
Fortran, and Go, as well as libraries for these languages (libstdc++,
libgfortran, ...).
This packages provides GCC support libraries in a specific location and allows
packages to depend on just the libraries rather than having to pull in the full
GCC package.
https://perldoc.perl.org/5.32.0/perldelta.html
Core Enhancements
The isa Operator
Unicode 13.0 is supported
Chained comparisons capability
New Unicode properties Identifier_Status and Identifier_Type supported
It is now possible to write qr/\p{Name=...}/, or qr!\p{na=/(SMILING|GRINNING) FACE/}!
Improvement of POSIX::mblen(), mbtowc, and wctomb
Alpha assertions are no longer experimental
Script runs are no longer experimental
Feature checks are now faster
Perl is now developed on GitHub
Compiled patterns can now be dumped before optimization
Security
[CVE-2020-10543] Buffer overflow caused by a crafted regular expression
[CVE-2020-10878] Integer overflow via malformed bytecode produced by a crafted regular expression
[CVE-2020-12723] Buffer overflow caused by a crafted regular expression
Additional Note
Incompatible Changes
Certain pattern matching features are now prohibited in compiling Unicode property value wildcard subpatterns
Unused functions POSIX::mbstowcs and POSIX::wcstombs are removed
A bug fix for (?[...]) may have caused some patterns to no longer compile
\p{_user-defined_} properties now always override official Unicode ones
Modifiable variables are no longer permitted in constants
Use of perlfunc/vec EXPR,OFFSET,BITS on strings with code points above 0xFF is forbidden
Use of code points over 0xFF in string bitwise operators
Sys::Hostname::hostname() does not accept arguments
Plain "0" string now treated as a number for range operator
\K now disallowed in look-ahead and look-behind assertions
Performance Enhancements
Modules and Pragmata
Updated Modules and Pragmata
Removed Modules and Pragmata
Documentation
Changes to Existing Documentation
Diagnostics
New Diagnostics
Changes to Existing Diagnostics
Utility Changes
the perlbug manpage
the streamzip manpage
This makes it at least link miniperl, but it still fails during the
build with:
panic: MUTEX_UNLOCK (1) [util.c:2616] at make_ext.pl line 613.
panic: MUTEX_LOCK (22) [op.c:864].
panic: MUTEX_UNLOCK (1) [util.c:2616] at make_ext.pl line 513.
panic: MUTEX_LOCK (22) [op.c:864].
0.8.0 (2020-08-05)
++++++++++++++++++
- Dropped Support for Python 2.7, 3.4, 3.5
- It's possible to use ``pathlib.Path`` objects now in the API
- The stubs are gone, we are now using annotations
- ``namedexpr_test`` nodes are now a proper class called ``NamedExpr``
- A lot of smaller refactorings
Vala 0.48.8
===========
* Various improvements and bug fixes:
- codegen:
+ Handle "gtk_param_spec_expression" in get_param_spec()
+ Properly compare string if binary-expression contains string-literal
+ Inline allocated and constant arrays are never NULL
+ Check param for null before using it
+ Properly destroy elements of an inline struct array [#365]
- vala:
+ Avoid subsequent critical caused by invalid array type for constant
+ Improve error handling of nested initializer lists
+ Don't allow "resize" invocation on variable with unowned array type [#928]
+ Property must be writable when invoking ReturnsModifiedPointer method [#1023]
+ Recursive check of assignment target to recognize constants [#944]
+ Return copy of constant type in get_value_type_for_symbol()
+ Handle parameter initializer without value-type
+ Fully qualify member-access when using-directive was used to resolve [#57]
+ Tranform instance member-access to a static one if possible [#270]
+ Improve check of expression passed to yield
+ Allow prototype access to signal with emitter
+ Check error-type accessibility of creation methods and delegates
- girparser: Warn about conflicting signals and properties
- girparser: Skip 'docsection' elements in <namespace>
- girwriter:
+ Add c:identifier-prefixes to <namespace>
+ Write c:type="void" when name="none"
+ Write c:symbol-prefix on supported elements
+ Don't include symbols outside of a namespace [#241]
+ Use appropriate get_ccode_* functions
- libvaladoc: Support exporting the `class` modifier on methods and fields
- Disable deprecation warnings when checking bindings
- tests: Fix "methods/extern" test with -Werror=address and gcc 5.4.0
* Bindings:
- glib-2.0: Add AtomicUint, an alternation of AtomicInt for uint [#915]
- gstreamer: Update from 1.17.2+ git master
- gtk+-3.0: Update to 3.24.21+ffe2df7b
- gtk+-3.0: Resolve conflicts of signals with properties
- gtk4: Resolve conflict of DropTarget.drop signal with property [#1033]
- gtk4: Improve Gtk.ParamSpecExpression binding
- gtk4: Fix binding of CClosureExpression ctor [#1024]
- gtk4,gtk4-unix-print: Update to 3.98.5+23dcf36e
- webkit2gtk-4.0: Update to 2.29.4
Changes from 5.0.1 to 5.1.0
---------------------------
1. The major version of the API is bumped to 3, something that should
have happened at the 5.0.0 release but didn't.
2. A number of memory leak issues have been fixed.
3. Infrastructure upgrades: Bison 3.5.4, Texinfo 6.7, Gettext 0.20.1,
Automake 1.16.2.
4. The indexing in the manual has been thoroughly revised, in particular
making use of the facilities in Texinfo 6.7. That version (or newer)
must be used to format the manual.
5. MSYS2 is now supported out-of-the-box by configure.
6. Several bugs have been fixed. See the ChangeLog for details.
* c++ doesn't predefine __ppc__, only __powerpc__. Compensate.
* On NetBSD/powerpc, use libatomic for access to 64-bit atomics.
PKGREVISION not bumped; build fix for NetBSD/powerpc, should not affect others.
'Python". For all other distributions built with distutils, we sure
don't (and, mind you, it's very unlikely to be the exact same version as
Python itself). This should fix a whole bunch of py27-* packages broken
with the previous commit. Thanks wiz@ for the heads up.
The latest Go release, version 1.15, arrives six months after Go 1.14. Most of
its changes are in the implementation of the toolchain, runtime, and libraries.
As always, the release maintains the Go 1 promise of compatibility. We expect
almost all Go programs to continue to compile and run as before.
Go 1.15 includes substantial improvements to the linker, improves allocation
for small objects at high core counts, and deprecates X.509 CommonName. GOPROXY
now supports skipping proxies that return errors and a new embedded tzdata
package has been added.
There are no changes to the language.
Python 3.7.9 final
Security
bpo-41304: Fixes python3x._pth being ignored on Windows, caused by the fix for bpo-29778 (CVE-2020-15801).
bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523).
bpo-41004: CVE-2020-14422: The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address).
bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…).
Core and Builtins
bpo-33786: Fix asynchronous generators to handle GeneratorExit in athrow() correctly
Library
bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing.
bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907).
bpo-41235: Fix the error handling in ssl.SSLContext.load_dh_params().
macOS
bpo-41100: Additional fixes for testing on macOS 11 Big Sur Intel. Note: macOS 11 is not yet released, this release of Python is not fully supported on 11.0, and not all tests pass.
Python 3.6.12 final
Security
bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523).
bpo-41004: CVE-2020-14422: The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address).
bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…).
Library
bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing.
bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907).
pkgsrc changes:
- Remove no longer needed patches/patch hunk applied upstream
Changes:
0.9.1
-----
Bugfix release with several bugs fixed, notably:
* equal? hash tables had a sporadic bug with string and vector keys
* the distribution of random numbers with bignum values had gaps
* minor fixes for SRFI 160 and SRFI 144
0.9
---
This release includes complete builtin support for the Tangerine
Edition of the R7RS large language. With the ambitious scope
of R7RS large, it's unlikely further editions will continue to have
builtin support, and will instead rely on external repositories like
snow-fort.
A new compile-time option can enable O(1) string-ref using
an offset lookup table. It is disabled by default because it's
still slower than string cursors, and has some small additional
overhead in memory, I/O and the FFI.
Other notable changes include:
* A novel syntax-case implementation built on ER macros
by Marc Nieper-Wißkirchen.
* Improved Windows support by Yuki Okumura, and BSD support
thanks to Kris Katterjon, Andrew Gwozdziewycz, and Taylor Campbell.
* LIghtweight library aliases.
* Native SRFI 160 uniform vectors, with FFI and read/write support.
* A startup option can enable strict string-cursor checks,
so that cursors can only be used with the string they reference.
* JSON read/write support, with utilities to read records.
* Diff highlighting in unit test failures.
* Updated to Unicode 13.
* ... plus many new SRFIs, portability improvements, and bugfixes.
Not counting aliases and test packages, Chibi now comes with
over 200 libraries in the base distribution, with many more available
on snow-fort.org.
They have not been kept up to-date for ~20 years and
are essentially just an outdated offline mirror of the
Website https://docs.oracle.com/javase/specs/, which
is trivial for the user to mirror themself if they wish.
- rename show-cargo-depends to print-cargo-depends (but keep a compat alias)
- make it print an RCS id preamble with a comment
This allows one to do "make print-cargo-depends > cargo-depends.mk"
and reference cargo-depends.mk from the packages main Makefile.
Makes updating packages easier.
1. LD_LIBRARY_PATH does _not_ take precedence over DT_RPATH
(e.g. Linux)
2. A previous libpython with the same major.minor is already installed
(e.g. a previous version of this package)
hold, the built python will be linked with the installed libpython,
causing it to report an old teeny version in sys.version_info while
staging the install. Then "make package" fails with PLIST mismatches for
{,Pattern}Grammar.*.pickle.
pkgsrc knows which version we're building. Pass that down instead.
For platforms that weren't having this problem, no functional change
intended. For platforms that were, this simply restores "make package",
so no PKGREVISION bump.
The intent of "--frozen --locked" was to not use the network, but the new
"--offline" option is better suited for this purpose.
It for example allows us to patch Cargo.toml if necessary without having
to regen checksums.
(It loops during the build, at least on amd64 netbsd. It hasn't
apparently been compilable at all in some time, so this should not
make it any less available.)
Allow it to be built with lang/abcl. Remove build dependency on lang/sbcl
if bootstrapping.
Changes since version 1.5.7
New in version 2.0.7
* minor incompatible change: SB-THREAD:THREAD-OS-TID returns NIL
for a thread which has exited.
* minor incompatible change: OPEN no longer calls TRUENAME
implicitly on a string filespec prior to issuing an open()
system call.
* minor incompatible change: PATHNAME is no longer a STRUCTURE-OBJECT.
* documentation: HASH-FUNCTION is a function
designator. (#1888028, reported by Jacek Zlydach)
* bug fix: eliminated a potential garbage-collector deadlock when
linking with TCMalloc.
* bug fix: foreign threads (those not made by
SB-THREAD:MAKE-THREAD) can not crash with a "GC_PENDING, but
why?" error when returning back from Lisp into the foreign
caller.
* bug fix: sb-fasteval crashed trying to install a JIT-compiled
DEFSTRUCT accessor in a locked package.
* bug fix: removed misuse of putwc() which caused stdio streams to
drop characters.
* bug fix: the "maximum interrupt nesting depth exceeded" error
generated in the C runtime is significantly less likely to
occur.
* bug fix: sb-sprof should no longer segfault from calling
pthread_kill() on a nonexistent thread.
* bug fix: a portability issue arising from various build hosts
(#1886255, reported by Pierre Neidhart)
* bug fix: spurious compiler warnings from REDUCE with
:INITIAL-VALUE. (#1885515, reported by Michael South)
* bug fix: an inconsistency between class hierarchies and the type
system under some circumstances involving
redefinition. (#1886397, reported by Atilla Lendvai)
* bug fix: the USE-VALUE restart for OPEN on non-existent files is
more likely to function as expected. (#1886587)
* bug fix: various invalid inputs to ROTATE-BYTE no longer cause
compiler errors. (#1887164, #1888152)
* optimization: PPC64 on linux uses the __thread annotation on C
variables in preference to pthread_setspecific() and
pthread_getspecific().
New in version 2.0.6
* planned incompatible change: the defined symbols in the
Metaobject Protocol, currently accessible from both SB-MOP and
SB-PCL packages, will in a later release be no longer exported
from SB-PCL.
* platform support:
* better support for dynamic-extent on the SPARC architecture.
* bug fix for loading very large core files.
* bug fix for logior and logxor on PPC64.
* enhancement: EQUALP on structure instances uses code specialized
to each structure type, inlining comparison of non-pointer
slots.
* enhancement: some standard operators, such as
WITH-OUTPUT-TO-STRING and CHANGE-CLASS, have been adapted to use
dynamic-extent temporary objects, and so cons less garbage on
the heap.
* enhancement: read tables are more space- and speed efficient
* bug fix: stream conditions with dynamic-extent streams have the
stream replaced by a stub. (reported by Matt Kaufmann)
* bug fix: garbage collections triggered from foreign callbacks
crashed. (#1884403, reported by Andrew Kent)
* bug fix: compiler failure in compiling MAKE-LIST. (#1881349)
* bug fix: using the debugger from frames with calls to functions
with unsupplied optional arguments is less likely to cause heap
corruption. (#1883745)
New in version 2.0.5
* platform support:
* experimental support for ARM32 and ARM64 on OpenBSD
* better musl libc support. (#1768368, thanks to Eric Timmons)
* more correct use of futexes on 64-bit Linux. (#1876825,
reported by Ilya Perminov)
* restore building on current Solaris. (#1881393, thanks to
Shawn Ellis)
* enhancement: CMUCL-style START-BLOCK and END-BLOCK declarations
are now supported for block compiling forms at a sub-file
granularity.
* enhancement: IPv6 support in sb-bsd-sockets is enabled on Windows.
* minor change: *compile-print* now makes it more clear what block
compilation is actually doing. The default output is now
slightly more verbose as a result.
* bug fix: number keys in EQUALP hash tables are correctly
hashed. (#1878653, reported by Syll)
* bug fix: EQness is better preserved given partial sharing of
list contents in the file compiler. (#1583753, reported by Denis
Budyak)
* bug fix: the peephole pass neglected to preserve jump table
labels. (#1876485)
* bug fix: fix compiler crash in block compilation merging of
toplevel lambdas. (#1865336, reported by il71)
* bug fix: sb-introspect's function-lambda-arglist is better at
extracting default values of nested macro arguments. (#1876194)
* bug fix: RESTART-BIND's body is an implicit progn, and so does
not accept declarations. (#1876303, reported by Michal Herda)
* optimization: EQUAL hash tables with keys involving
structure-objects will have fewer systematic collisions.
New in version 2.0.4
* platform support:
* 32-bit RISC-V is now fully supported. Unlike other ports,
its backend is entirely shared with 64-bit RISC-V.
* native threads are now supported on RISC-V.
* fix and add some x86-64 vector instructions. (reported by
Shubhamkar Ayare)
* improve pointer representation on ppc64 for low-level
performance improvement.
* threads are more stable on big-endian ppc64
* enhancement: forward-referenced type tests can now be open-coded
by using block compilation. The result is that mutually
referential defstructs are now efficiently compiled in block
compilation mode, superseding a lighter mechanism that worked in
fewer contexts. However, that lighter mechanism has been
removed, so for now, users who want to efficiently compile
mutually referential defstructs must explicitly opt-in using
block compilation.
* bug fix: defstructs with empty initforms in the sbcl source are
now explicitly intiialized with NIL, as that is undefined
behavior under ANSI. This helps cross compilation hosts which do
not implicitly initialize empty initform slots to NIL. (Thanks
to Karsten Poeck)
* bug fix: backtracing through assembly routines now works
properly on RISC-V.
* bug fix: ASH no longer gets miscompiled in certain edge cases on RISC-V.
* bug fix: &MORE args have been slightly optimized and are more
correct on RISC-V.
* bug fix: unused local functions with &REST/&KEY/&OPTIONAL now
also issue a deletion note.
* bug fix: APPLY on a large list ("large" being in excess of 2k to
16k items depending on the platform) can no longer crash the
gencgc collector.
* bug fix: sb-concurrency FRLOCK algorithm has been corrected. (#1087955)
* bug fix: block compilation now respects inlining declarations
better (like CMUCL).
* optimization: hashing of structures with raw slots for EQUALP
hash tables has been improved.
New in version 2.0.3
* incompatible change: the external format now defaults to UTF-8
and is not affected by LANG. SB-EXT:*DEFAULT-EXTERNAL-FORMAT* is
now the only way to change it.
* minor incompatible change: the undocumented :EPHEMERAL argument
to MAKE-THREAD has been removed.
* minor incompatible change: DECLARE type testing of structure
types when the SAFETY optimization quality is less than SPEED
(but greater than 0) is precise, rather than merely testing that
an object is a (general) STRUCTURE-OBJECT.
* platform support
* respect sunos platform assembler flag handling
* riscv architecture can be detected during the build
* enabled the sb-dynamic-core feature on riscv, sparc, and
made it unconditional everywhere
* cheneygc is an option for arm and arm64
* enhancement: the installed sbcl executable tree can be renamed
or moved without risk of incorrectly referencing a '.core' file
from an obsolete path. (#666086)
* optimization: transform (values-list (list one-item)) to (values
one-item) as multiple items were already recognized.
New in version 2.0.2
* new feature: CMUCL-style block compilation support has been
added, allowing whole program optimization. It has been
documented in a new section of the manual entitled "Advanced
Compiler Use and Efficiency Hints". In particular, users of
block compilation will find a large speedup for numerical code,
as functions which call or return floating point values will
keep everything unboxed.
* bug fix: in CHANGE-CLASS, handle non-standard
slot-value-using-class for :INSTANCE and :CLASS slots
better. (reported by Shinmera on #sbcl)
* bug fix: REMHASH in an EQUAL or EQUALP hash-table works
correctly on a key for which EQUAL (respectively EQUALP) is
reduced to EQ. (#1865094)
* bug fix: do not emit a warning for DEFCLASS slots with
mismatched :TYPE and :INITFORM when the class has a non-standard
metaclass.
* bug fix: DISASSEMBLE on SPARC is less likely to spuriously
annotate code sequences as error traps.
New in version 2.0.1
* minor incompatible change: some symbols have been removed from
*FEATURES* based on a determination of which should be
impermissible to examine via #+ and #- reader macros in
user-written code.
* optimization: DEFSTRUCT copiers including COPY-STRUCTURE are
able to stack-allocate the result when declared dynamic-extent.
* bug fix: loop analysis code more robust. In particular, loop
nesting depth is computed more accurately, improving the
register allocation around loops.
New in version 2.0.0
* minor incompatible change: heap relocation now works on
Windows. Since this feature now works on all platforms, it is
enabled unconditionally and the :RELOCATABLE-HEAP symbol no
longer appears on *FEATURES* in any builds. (Thanks to Luís
Borges de Oliveira)
* enhancement: malformed type specifiers and occurrences of
deprecated types in :TYPE initargs of DEFCLASS and
DEFINE-CONDITION slot specifications are detected and result in
compile-time errors and warnings respectively.
* enhancement: parallel contrib building, controlled by
SBCL_MAKE_JOBS=-jX the same as for the C runtime.
* bug fix: add a walker template for WITH-SOURCE-FORM.
* bug fix: start the summary of a compilation unit on a fresh
line. (Thanks to Zach Beane)
* bug fix: on Windows, PARSE-NATIVE-NAMESTRING produces an
absolute directory when parsing a bare drive name and
:AS-DIRECTORY is specified. (Thanks to Luís Borges de Oliveira)
* bug fix: on RISCV, the runtime is linked with libz if the core
compression feature is requested. (Thanks to Andreas Schwab)
* bug fix: ADJOIN using an EQL test and a KEY function only
transforms into an EQ test if the key function returns values
for which EQ and EQL are guaranteed to be the same.
* optimizations:
* the instruction sequence for multiple-value calls is more
efficient on x86-64.
* the direction flag is now unused on x86 and x86-64 when
handling an unknown number of return values. (Thanks to
Fanael Linithien)
* the x86-64 backend is better able to use memory operands for
arithmetic operations.
* compilation of TYPECASE to a jump table is enabled when all
the types being tested are frozen.
* compilation of CASE and ECASE into a jump table has been
implemented on 32- and 64-bit powerpc platforms.
* the implementation of Unicode normalization has been sped up.
* pretty-printing dispatch on conses is faster, particularly
with the standard pretty-print dispatch table. Deeply-nested
forms should also pretty-print faster.
New in version 1.5.9
* platform support:
* a message intended to be more helpful will be displayed for
an mmap failure on OpenBSD.
* the soft-float ABI on ARM32 is better supported, in
particular in returning double floats from calls into C.
* optimizations:
* CASE and ECASE with symbols as keys may be optimized into a
vector lookup if all result forms are quoted or
self-evaluating objects.
* CASE and ECASE can be optimized into a jump table on the
x86[-64] backends with arbitrary result forms provided that
the clause keys are either all fixnums, all characters, or
all symbols.
* a number of forms are converted to use CASE in circumstances
where that makes sense, including calls to POSITION, MEMQ
and MEMBER, and TYPECASE where the types are MEMBER/EQL
types.
* POSITION of a variable symbol in a constant sequence of
symbols is converted to CASE and thence to a jump table.
* TYPECASE of a variable where the clauses are member types is
converted to CASE and thence to a jump table.
* a number of slow instructions are no longer used on x86 and
x86-64 machines. (Thanks to Fanael Linithien)
* the compiler is better at tracking the implications of
branches after EQ and EQL tests.
* parsing &KEY lists is slightly less register-intensive.
* a pattern-based peephole optimizer pass has been added,
running some simple transformations on the x86-64 backend.
* enhancements: more thorough compile-time type checking of
various initforms (defclass, &key, defstruct).
* bug fix: unions of complicated CONS types are less likely to
cause an infinite loop. (#1799719)
* bug fix: DESCRIBE on functions not named by extended function
designators no longer signals a type error. (#1850531, reported
by Michal Herda)
New in version 1.5.8
* platform support:
* support for Mac OS X Catalina
* improvements in interoperability with C code compiled with
memory sanitization options
* libsbcl.so links to zlib when sb-core-compression is
enabled. (#1845763, thanks to Juan M. Bello-Rivas)
* workarounds for BSD issues around mmap() and
pthread_attr_setstack(). (#1845936) support SSE for bzero if
available on OpenBSD
* optimizations:
* improved type understanding and translations for division
operators (including TRUNCATE, GCD, LCM).
* sequential comparisons and branches can elide intermediate
comparisons. (#1847284)
* convert EQUAL and EQUALP to EQL if either of the arguments
is a type for which the structural equality predicate is
identical to the simpler equality check. (#1848583)
* internal operators implementing string comparisons produce
simpler-to-consume values. (#1848776)
* bug fix: inspecting adjustable arrays and vectors with fill
pointers works better. (#1846191, reported by Yves Pagani)
Changelog extracted from the unspecific changelog.md on the 1.2.6 tag.
Unable to get a Changelog diff for 1.2.4 and 1.2.6.
# v1.4.0 - yyyy-mm-dd
## Standard library additions and changes
For `net` and `nativesockets`, an `inheritable` flag has been added to all
`proc`s that create sockets, allowing the user to control whether the
resulting socket is inheritable. This flag is provided to ease the writing of
multi-process servers, where sockets inheritance is desired.
For a transistion period, define `nimInheritHandles` to enable file handle
inheritance by default. This flag does **not** affect the `selectors` module
due to the differing semantics between operating systems.
`system.setInheritable` and `nativesockets.setInheritable` is also introduced
for setting file handle or socket inheritance. Not all platform have these
`proc`s defined.
- The file descriptors created for internal bookkeeping by `ioselector_kqueue`
and `ioselector_epoll` will no longer be leaked to child processes.
- `strutils.formatFloat` with `precision = 0` has been restored to the version
1 behaviour that produces a trailing dot, e.g. `formatFloat(3.14159, precision = 0)`
is now `3.`, not `3`.
- `critbits` adds `commonPrefixLen`.
- `relativePath(rel, abs)` and `relativePath(abs, rel)` used to silently give wrong results
(see #13222); instead they now use `getCurrentDir` to resolve those cases,
and this can now throw in edge cases where `getCurrentDir` throws.
`relativePath` also now works for js with `-d:nodejs`.
- JavaScript and NimScript standard library changes: `streams.StringStream` is
now supported in JavaScript, with the limitation that any buffer `pointer`s
used must be castable to `ptr string`, any incompatible pointer type will not
work. The `lexbase` and `streams` modules used to fail to compile on
NimScript due to a bug, but this has been fixed.
The following modules now compile on both JS and NimScript: `parsecsv`,
`parsecfg`, `parsesql`, `xmlparser`, `htmlparser` and `ropes`. Additionally
supported for JS is `cstrutils.startsWith` and `cstrutils.endsWith`, for
NimScript: `json`, `parsejson`, `strtabs` and `unidecode`.
- Added `streams.readStr` and `streams.peekStr` overloads to
accept an existing string to modify, which avoids memory
allocations, similar to `streams.readLine` (#13857).
- Added high-level `asyncnet.sendTo` and `asyncnet.recvFrom`. UDP functionality.
- `paramCount` & `paramStr` are now defined in os.nim instead of nimscript.nim for nimscript/nimble.
- `dollars.$` now works for unsigned ints with `nim js`
- Improvements to the `bitops` module, including bitslices, non-mutating versions
of the original masking functions, `mask`/`masked`, and varargs support for
`bitand`, `bitor`, and `bitxor`.
- `sugar.=>` and `sugar.->` changes: Previously `(x, y: int)` was transformed
into `(x: auto, y: int)`, it now becomes `(x: int, y: int)` in consistency
with regular proc definitions (although you cannot use semicolons).
Pragmas and using a name are now allowed on the lefthand side of `=>`. Here
is an aggregate example of these changes:
```nim
import sugar
foo(x, y: int) {.noSideEffect.} => x + y
# is transformed into
proc foo(x: int, y: int): auto {.noSideEffect.} = x + y
```
- The fields of `times.DateTime` are now private, and are accessed with getters and deprecated setters.
- The `times` module now handles the default value for `DateTime` more consistently. Most procs raise an assertion error when given
an uninitialized `DateTime`, the exceptions are `==` and `$` (which returns `"Uninitialized DateTime"`). The proc `times.isInitialized`
has been added which can be used to check if a `DateTime` has been initialized.
- Fix a bug where calling `close` on io streams in osproc.startProcess was a noop and led to
hangs if a process had both reads from stdin and writes (eg to stdout).
- The callback that is passed to `system.onThreadDestruction` must now be `.raises: []`.
- The callback that is assigned to `system.onUnhandledException` must now be `.gcsafe`.
- `osproc.execCmdEx` now takes an optional `input` for stdin, `workingDir` and `env`
parameters.
- Added a `ssl_config` module containing lists of secure ciphers as recommended by
[Mozilla OpSec](https://wiki.mozilla.org/Security/Server_Side_TLS)
- `net.newContext` now defaults to the list of ciphers targeting
["Intermediate compatibility"](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29)
per Mozilla's recommendation instead of `ALL`. This change should protect
users from the use of weak and insecure ciphers while still provides
adequate compatibility with the majority of the Internet.
- A new module `std/jsonutils` with hookable `jsonTo,toJson,fromJson` operations for json
serialization/deserialization of custom types was added.
- A new proc `heapqueue.find[T](heap: HeapQueue[T], x: T): int` to get index of element ``x``
was added.
- Added `rstgen.rstToLatex` convenience proc for `renderRstToOut` and `initRstGenerator`
with `outLatex` output.
- Added `os.normalizeExe`, e.g.: `koch` => `./koch`.
- `macros.newLit` now preserves named vs unnamed tuples; use `-d:nimHasWorkaround14720`
to keep old behavior.
- Added `random.gauss`, that uses the ratio of uniforms method of sampling from a Gaussian distribution.
- Added `typetraits.elementType` to get element type of an iterable.
- `typetraits.$` changes: `$(int,)` is now `"(int,)"` instead of `"(int)"`;
`$tuple[]` is now `"tuple[]"` instead of `"tuple"`;
`$((int, float), int)` is now `"((int, float), int)"` instead of `"(tuple of (int, float), int)"`
- Added `macros.extractDocCommentsAndRunnables` helper
- `strformat.fmt` and `strformat.&` support `= specifier`. `fmt"{expr=}"` now
expands to `fmt"expr={expr}"`.
- deprecations: `os.existsDir` => `dirExists`, `os.existsFile` => `fileExists`
- Added `jsre` module, [Regular Expressions for the JavaScript target.](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
- Made `maxLines` argument `Positive` in `logging.newRollingFileLogger`,
because negative values will result in a new file being created for each logged
line which doesn't make sense.
- Changed `log` in `logging` to use proper log level on JavaScript target,
e.g. `debug` uses `console.debug`, `info` uses `console.info`, `warn` uses `console.warn`, etc.
- Tables, HashSets, SharedTables and deques don't require anymore that the passed
initial size must be a power of two - this is done internally.
Proc `rightSize` for Tables and HashSets is deprecated, as it is not needed anymore.
`CountTable.inc` takes `val: int` again not `val: Positive`; I.e. it can "count down" again.
- Removed deprecated symbols from `macros` module, deprecated as far back as `0.15`.
## Language changes
- In newruntime it is now allowed to assign discriminator field without restrictions as long as case object doesn't have custom destructor. Discriminator value doesn't have to be a constant either. If you have custom destructor for case object and you do want to freely assign discriminator fields, it is recommended to refactor object into 2 objects like this:
```nim
type
MyObj = object
case kind: bool
of true: y: ptr UncheckedArray[float]
of false: z: seq[int]
proc `=destroy`(x: MyObj) =
if x.kind and x.y != nil:
deallocShared(x.y)
x.y = nil
```
Refactor into:
```nim
type
MySubObj = object
val: ptr UncheckedArray[float]
MyObj = object
case kind: bool
of true: y: MySubObj
of false: z: seq[int]
proc `=destroy`(x: MySubObj) =
if x.val != nil:
deallocShared(x.val)
x.val = nil
```
## 1.11.3 - 2020-08-03
- Add `JANET_HASHSEED` environment variable when `JANET_PRF` is enabled.
- Expose `janet_cryptorand` in C API.
- Properly initialize PRF in default janet program
- Add `index-of` to core library.
- Add `-fPIC` back to core CFLAGS (non-optional when compiling default client with Makefile)
- Fix defaults on Windows for ARM
- Fix defaults on NetBSD.
Version 14.7.0 (Current)
Notable Changes
deps:
- upgrade npm to 6.14.7
dgram:
- (SEMVER-MINOR) add IPv6 scope id suffix to received udp6 dgrams
src:
- (SEMVER-MINOR) allow preventing SetPromiseRejectCallback
- (SEMVER-MINOR) allow setting a dir for all diagnostic output
worker:
- (SEMVER-MINOR) make MessagePort inherit from EventTarget
zlib:
- switch to lazy init for zlib streams
New Collaborators:
- add rexagod to collaborators
- add AshCripps to collaborators
- add HarshithaKP to collaborators
- add release key for Richard Lau
ChangLog:
Version 1.7.1
=============
July 18, 2020
<https://abcl.org/svn/tags/1.7.1/>
<https://github.com/armedbear/abcl/>
<https://gitlab.common-lisp.net/abcl/abcl/>
Fixes
-----
[r15337] Fix ELT on vectors specialized on (unsigned-byte 32)
[r15327] Restore svref optimizations for SIMPLE-VECTOR sorts
[r15326] Fix sorting vectors of length 0
Version 1.7.0
=============
June 3, 2020
<https://abcl.org/svn/tags/1.7.0/>
<91f7561840>
<799cfb697d>
The implementation now runs on the openjdk6, openjdk7, openjdk8,
openjdk11, openjdk13, and openjdk14 JVM runtimes.
Enhancements
------------
* [r15305][r15306][r15307] The :NIO symbol is now present in
CL:*FEATURES*, denoting the use of java.nio.ByteBuffer et. al. in
the implementation of arrays specialized on commonly used unsigned
byte-types. CL:MAKE-ARRAY now has the :NIO-BUFFER and :NIO-DIRECT
keyword arguments useful in the construction of such arrays.
* [r15280][r15283] The default implementation for CL:DISASSEMBLE has
been switched from jad to javap. The SYS:CHOOSE-ASSEMBLER interface
is now able to switch between the jad, javap, fernflower, Procyon,
and CFR backends provided as loaded ASDF definitions contained in
the ABCL-INTROSPECT contrib.
* [r15268] ABCL-BUILD:DIRECTORY-HASHES outputs the SHA256 hashes of files in
a directory.
* [r15282] The ABCL-INTROSPECT contrib now adds the EXT:WRITE-CLASS method
to write the bytecode representation of a Java class to disk.
* [r15293] The Dockerfile has been updated to use openjdk11
Fixes
-----
* [r15292] Fixed all known outstanding problems with DECODE-FLOAT for
values less than normalized floats.
* [r15287] Attempts to fill specialized 32-bit arrays with elements
greater than 2^32-1 now properly signals a type error.
* [r15267] ABCL-BUILD:ANT/CALL no longer signals an error on failure instead
reporting associated error messages.
* [r15281] Autoconfiguration for builds on supported platforms extended.
* [r15290] The invocation of CL-BENCH now utilizes its ASDF definition.
* [r15294][r15298] The contents of the <file:ci/> directory are now
included in the source release, and have had all mention of
TRAVIS_BUILD_DIR removed decoupling their use from the presence of
Travis.
Tests
-----
* [r15277] (pdietz) Additional tests for compiler failures.
* [r15278][r15279] (phoe) Added tests for unbound slots DIVISION-BY-ZERO has
ARITHMETIC-ERROR-OPERANDS.
* [r15284][r15285][r15288] The CI now tests the ability to use OpenSSL via
CL+SSL.
* [r15289] The CI now tests the version CFFI with
CFFI-SYS:MAKE-SHAREABLE-BYTE-VECTOR implemented.
* [r15291] The CI now tests IRONCLAD.
Version 1.6.1
=============
April 24, 2020
<https://abcl.org/svn/tags/1.6.1/>
<https://abcl.org/trac/changeset/15270>
<cef85a7f55>
<1d237263a7>
Enhancements
------------
* [r15223] Fix compiler for java.lang.VerifyError with PROGN
(somewhat-functional-programmer)
* [r15250] ABCL now builds and runs across openjdk{6,7,8,11,13,14}
* [r15256] Build autoconfiguration via ci/create-build-properties.bash
* [r15252] Provide accessor in URL-STREAM for underlying java.io.InputStream
* [r15226] [INCOMPLETE] Address problems with DECODE-FLOAT
(Robert Dodier)
Fixes
-----
* [r15229] Maven central repository now requires TLS
* [r15242] jstatic: check narrowing for explicit method reference
* [r15232] [r15233] [r15241] Reworking DWIM on java call sites
The FFI will now find Java call sites whose types are Short or Byte
with integers if they can be narrowed without losing information.
This work should be considered provisional, subject to possible
revision.
* [r15234] Fix calling Java methods with varargs parameters
* [r15233] Fix calling Java methods with short and byte parameters
* [r15231] abcl-build: test the install of maven-3.6.3
* [r15238] build: ensure javac compiles with UTF-8 encoding
* [r15243] abcl-asdf: rework Maven usage strategy
* [r15245] abcl-asdf: use WITH-AETHER macro to ensure Maven Aether is loaded
* [r15251] abcl-asdf: assume that either 'which' or 'where' works
Updates
-------
* [r15240] Use ASDF-3.3.4
Tests
-----
* [r15239] ci: now use latest CFFI distributed with Quicklisp
* [r15247] t/format-dollar: correction for CL:FORMAT dollar usage
* [r15248] t/jcoerce-numerics: JCOERCE across numerics without losing information
* [r15249] t/decode-float: tests for currently broken handling of CL:DECODE-FLOAT
Version 1.6.0
=============
November 22, 2019
<https://abcl.org/svn/tags/1.6.0>
Compatiblity
------------
ABCL 1.6.0 supports building and running on openjdk6, openjdk7,
openjdk8, and openjdk11.
Enhancements
-----------
* [r15085] Add a restart for generics defined over functions or macros
when arguments don't match (Alan).
* [r15086] jss: Disambiguate java class lookup in dynamic scope
(Alan).
* [r15087] jss: Optimizations for jss field accessors (Alan).
* [r15089] [r15090] jss: JSS:TO-HASHSET converts java.util.List
references to java.util.Hashset (Alan).
* [r15091] jss: Improve JSS:J2LIST, add JSS:JMAP (Olof).
* [r15092] Make JVM class names more intelligible (Olof).
* [r15093] abcl-asdf: Support multiple Maven repositories (Olof).
* [r15101] [r15102] [r15103] abcl-asdf: add test cases for multiple
repositories (Olof).
* [r15095] Define undefined conditions and handler functions following
error-fun='error pattern (Alan).
* [r15105] jss: make use of warning muffling (Olof).
* [r15133] [r15134] Support building and running in openjdk11.
* [r15142] Signal better error for out-of-bounds CL:REPLACE (Olof).
* [r15148] docker: use the now standardized openjdk8 container,
install ant and maven dependencies.
Fixes
-----
* [r15096] Fix and check array types for JSS:JMAP/J2LIST (Olof).
* [r15097] abcl-asdf: compatiblity with maven-3.5.0.
* [r15099] Export the JVM:*RESIGNAL-COMPILER-WARNINGS* interface.
* [r15100] Fix ASDF usage of MVN module (Olof).
* [r15107] Fix translate-directory-components-aux: throw takes 2
arguments (metawilm).
* [r15114] Intern SYSTEM:AVAILABLE-ENCODINGS symbols (Robert Dodier).
* [r15115] abcl-asdf: fix ABCL-ASDF:MVN-MODULE collect request (Alan).
* [r15116] Fix CL:PRINT-OBJECT of null pointer (Alan).
* [r15117] The compiled version of JSS:INVOKE-RESTARGS was evaluating
the first argument twice (Alan).
* [r15118] abcl-asdf: stop complaining about not loading a file named
the module name (Alan).
* [r15120] Don't evaluate format control string in ReaderError (Javier
Olaechea).
* [r15124] Fix monetary floating-point formatted output (Scott
Burson).
* [r15125] Stackframe head edge case fix (Alan).
* [r15137] Fix ANSI-TESTS GENSYM.ERROR.10 and GENSYM.ERROR.11 (Douglas
Miles).
* [r15138] Fix ANSI-TEST MAKE-CONCATENATED-STREAM.30 failure (Douglas
Miles).
* [r15139] Fix ANSI-TESTS FILE-POSITION.10 (Douglas Miles).
* [r15141] compiler: fix stack inconsistency errors
(somewhat-functional-programmer).
* [r15143] Check for element type before filling vectors (Olof).
* [r15144] Fix high start index for CL:SUBSEQ (Olof).
* [r15146] JSS read sharp expression bugfixes (Alan).
* [r15149] jss: explicitly scope JSS:TO-HASHSET.
Updates
-------
* ASDF 3.3.3
* JNA 5.5.0
## 1.11.1 - 2020-07-25
- Fix jpm and git with multiple git installs on Windows
- Fix importing a .so file in the current directory
- Allow passing byte sequence types directly to typed-array constructors.
- Fix bug sending files between threads.
- Disable PRF by default.
- Update the soname.
## 1.11.0 - 2020-07-18
- Add `forever` macro.
- Add `any?` predicate to core.
- Add `jpm list-pkgs` subcommand to see which package aliases are in the listing.
- Add `jpm list-installed` subcommand to see which packages are installed.
- Add `math/int-min`, `math/int-max`, `math/int32-min`, and `math/int32-max` for getting integer limits.
- The gc interval is now autotuned, to prevent very bad gc behavior.
- Improvements to the bytecode compiler, Janet will now generate more efficient bytecode.
- Add `peg/find`, `peg/find-all`, `peg/replace`, and `peg/replace-all`
- Add `math/nan`
- Add `forv` macro
- Add `symbol/slice`
- Add `keyword/slice`
- Allow cross compilation with Makefile.
- Change `compare-primitve` to `cmp` and make it more efficient.
- Add `reverse!` for reversing an array or buffer in place.
- `janet_dobytes` and `janet_dostring` return parse errors in \*out
- Add `repeat` macro for iterating something n times.
- Add `eachy` (each yield) macro for iterating a fiber.
- Fix `:generate` verb in loop macro to accept non symbols as bindings.
- Add `:h`, `:h+`, and `:h*` in `default-peg-grammar` for hexidecimal digits.
- Fix `%j` formatter to print numbers precisely (using the `%.17g` format string to printf).
0.7.1
- Fixed a couple of smaller bugs (mostly syntax error detection in
``Grammar.iter_errors``)
This is going to be the last release that supports Python 2.7, 3.4 and 3.5.
- Import hints/darwin.sh patch from open pull request.
- The fenv test program in Configure caused warnings for not including
headers for printf() and exit(), causing the script to consider
fenv.h unusable.
Note that Big Sur identifies as 10.16 on Intel Macs, but as 11.0 on
Apple Silicon (ARM).
Python 3.8.5 final
Security
bpo-41304: Fixes python3x._pth being ignored on Windows, caused by the fix for bpo-29778 (CVE-2020-15801).
bpo-39603: Prevent http header injection by rejecting control characters in http.client.putrequest(…).
Core and Builtins
bpo-41295: Resolve a regression in CPython 3.8.4 where defining “__setattr__” in a multi-inheritance setup and calling up the hierarchy chain could fail if builtins/extension types were involved in the base types.
Library
bpo-41288: Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing.
bpo-39017: Avoid infinite loop when reading specially crafted TAR files using the tarfile module (CVE-2019-20907).
Documentation
bpo-37703: Updated Documentation to comprehensively elaborate on the behaviour of gather.cancel()
Build
bpo-41302: Enable building Python 3.8 with libmpdec-2.5.0 to ease maintenance for Linux distributions. Patch by Felix Yan.
macOS
bpo-40741: Update macOS installer to use SQLite 3.32.3.
IDLE
bpo-41300: Save files with non-ascii chars. Fix regression released in 3.9.0b4 and 3.8.4.
go1.14.5 (released 2020/07/14) includes security fixes to the crypto/x509 and
net/http packages. See the Go 1.14.5 milestone on our issue tracker for
details.
go1.14.6 (released 2020/07/16) includes fixes to the go command, the compiler,
the linker, vet, and the database/sql, encoding/json, net/http, reflect, and
testing packages. See the Go 1.14.6 milestone on our issue tracker for details.
go1.13.12 (released 2020/06/01) includes fixes to the runtime, and the go/types
and math/big packages. See the Go 1.13.12 milestone on our issue tracker for
details.
go1.13.13 (released 2020/07/14) includes security fixes to the crypto/x509 and
net/http packages. See the Go 1.13.13 milestone on our issue tracker for details.
go1.13.14 (released 2020/07/16) includes fixes to the compiler, vet, and the
database/sql, net/http, and reflect packages. See the Go 1.13.14 milestone
on our issue tracker for details.
pkglint 20.2.0 (and a bit earlier) does not insist on entries
for directories any longer that do not contain complete packages.
Remove them.
While here, fix security/Makefile that had two missing entries.
Python 3.8.4 final
Security
bpo-41162: Audit hooks are now cleared later during finalization to avoid missing events.
bpo-29778: Ensure python3.dll is loaded from correct locations when Python is embedded (CVE-2020-15523).
Core and Builtins
bpo-41247: Always cache the running loop holder when running asyncio.set_running_loop.
bpo-41252: Fix incorrect refcounting in _ssl.c’s _servername_callback().
bpo-41218: Python 3.8.3 had a regression where compiling with ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension with CO_COROUTINE. Now only list comprehension making use of async/await will tagged as so.
bpo-41175: Guard against a NULL pointer dereference within bytearrayobject triggered by the bytearray() + bytearray() operation.
bpo-39960: The “hackcheck” that prevents sneaking around a type’s __setattr__() by calling the superclass method was rewritten to allow C implemented heap types.
Library
bpo-41235: Fix the error handling in ssl.SSLContext.load_dh_params().
bpo-41193: The write_history() atexit function of the readline completer now ignores any OSError to ignore error if the filesystem is read-only, instead of only ignoring FileNotFoundError and PermissionError.
bpo-41043: Fixed the use of glob() in the stdlib: literal part of the path is now always correctly escaped.
bpo-39384: Fixed email.contentmanager to allow set_content() to set a null string.
IDLE
bpo-37765: Add keywords to module name completion list. Rewrite Completions section of IDLE doc.
bpo-41152: The encoding of stdin, stdout and stderr in IDLE is now always UTF-8.
Python 3.8.4 release candidate 1
Security
bpo-41004: The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address).
bpo-39073: Disallow CR or LF in email.headerregistry.Address arguments to guard against header injection attacks.
Core and Builtins
bpo-41094: Fix decoding errors with audit when open files with non-ASCII names on non-UTF-8 locale.
bpo-41056: Fixes a reference to deallocated stack space during startup when constructing sys.path involving a relative symlink when code was supplied via -c. (discovered via Coverity)
bpo-35975: Stefan Behnel reported that cf_feature_version is used even when PyCF_ONLY_AST is not set. This is against the intention and against the documented behavior, so it’s been fixed.
bpo-40957: Fix refleak in _Py_fopen_obj() when PySys_Audit() fails
bpo-40870: Raise ValueError when validating custom AST’s where the constants True, False and None are used within a ast.Name node.
bpo-40826: Fix GIL usage in PyOS_Readline(): lock the GIL to set an exception and pass the Python thread state when checking if there is a pending signal.
bpo-40824: Unexpected errors in calling the __iter__ method are no longer masked by TypeError in the in operator and functions contains(), indexOf() and countOf() of the operator module.
bpo-40663: Correctly generate annotations where parentheses are omitted but required (e.g: Type[(str, int, *other))].
Library
bpo-41138: Fixed the trace module CLI for Python source files with non-UTF-8 encoding.
bpo-31938: Fix default-value signatures of several functions in the select module - by Anthony Sottile.
bpo-41068: Fixed reading files with non-ASCII names from ZIP archive directly after writing them.
bpo-41058: pdb.find_function() now correctly determines the source file encoding.
bpo-41056: Fix a NULL pointer dereference within the ssl module during a MemoryError in the keylog callback. (discovered by Coverity)
bpo-41048: mimetypes.read_mime_types() function reads the rule file using UTF-8 encoding, not the locale encoding. Patch by Srinivas Reddy Thatiparthy.
bpo-40448: ensurepip now disables the use of pip cache when installing the bundled versions of pip and setuptools. Patch by Krzysztof Konopko.
bpo-40855: The standard deviation and variance functions in the statistics module were ignoring their mu and xbar arguments.
bpo-40807: Stop codeop._maybe_compile, used by code.InteractiveInterpreter (and IDLE). from from emitting each warning three times.
bpo-40834: Fix truncate when sending str object with_xxsubinterpreters.channel_send.
bpo-38488: Update ensurepip to install pip 20.1.1 and setuptools 47.1.0.
bpo-40767: webbrowser now properly finds the default browser in pure Wayland systems by checking the WAYLAND_DISPLAY environment variable. Patch contributed by Jérémy Attali.
bpo-40795: ctypes module: If ctypes fails to convert the result of a callback or if a ctypes callback function raises an exception, sys.unraisablehook is now called with an exception set. Previously, the error was logged into stderr by PyErr_Print().
bpo-30008: Fix ssl code to be compatible with OpenSSL 1.1.x builds that use no-deprecated and --api=1.1.0.
bpo-40614: ast.parse() will not parse self documenting expressions in f-strings when passed feature_version is less than (3, 8).
bpo-40626: Add h5 file extension as MIME Type application/x-hdf5, as per HDF Group recommendation for HDF5 formatted data files. Patch contributed by Mark Schwab.
bpo-25872: linecache could crash with a KeyError when accessed from multiple threads. Fix by Michael Graczyk.
bpo-40597: If text content lines are longer than policy.max_line_length, always use a content-encoding to make sure they are wrapped.
bpo-40515: The ssl and hashlib modules now actively check that OpenSSL is build with thread support. Python 3.7.0 made thread support mandatory and no longer works safely with a no-thread builds.
bpo-13097: ctypes now raises an ArgumentError when a callback is invoked with more than 1024 arguments.
bpo-40457: The ssl module now support OpenSSL builds without TLS 1.0 and 1.1 methods.
bpo-39830: Add zipfile.Path to __all__ in the zipfile module.
bpo-40025: Raise TypeError when _generate_next_value_ is defined after members. Patch by Ethan Onstott.
bpo-39244: Fixed multiprocessing.context.get_all_start_methods to properly return the default method first on macOS.
bpo-39040: Fix parsing of invalid mime headers parameters by collapsing whitespace between encoded words in a bare-quote-string.
bpo-35714: struct.error is now raised if there is a null character in a struct format string.
bpo-36290: AST nodes are now raising TypeError on conflicting keyword arguments. Patch contributed by Rémi Lapeyre.
bpo-29620: assertWarns() no longer raises a RuntimeException when accessing a module’s __warningregistry__ causes importation of a new module, or when a new module is imported in another thread. Patch by Kernc.
bpo-34226: Fix cgi.parse_multipart without content_length. Patch by Roger Duran
Tests
bpo-41085: Fix integer overflow in the array.array.index() method on 64-bit Windows for index larger than 2**31.
bpo-38377: On Linux, skip tests using multiprocessing if the current user cannot create a file in /dev/shm/ directory. Add the skip_if_broken_multiprocessing_synchronize() function to the test.support module.
bpo-41009: Fix use of support.require_{linux|mac|freebsd}_version() decorators as class decorator.
bpo-41003: Fix test_copyreg when numpy is installed: test.pickletester now saves/restores warnings filters when importing numpy, to ignore filters installed by numpy.
bpo-40964: Disable remote imaplib tests, host cyrus.andrew.cmu.edu is blocking incoming connections.
bpo-40055: distutils.tests now saves/restores warnings filters to leave them unchanged. Importing tests imports docutils which imports pkg_resources which adds a warnings filter.
bpo-34401: Make test_gdb properly run on HP-UX. Patch by Michael Osipov.
Build
bpo-40204: Pin Sphinx version to 2.3.1 in Doc/Makefile.
bpo-40653: Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling issue.
Windows
bpo-41074: Fixed support of non-ASCII names in functions msilib.OpenDatabase() and msilib.init_database() and non-ASCII SQL in method msilib.Database.OpenView().
bpo-40164: Updates Windows OpenSSL to 1.1.1g
bpo-39631: Changes the registered MIME type for .py files on Windows to text/x-python instead of text/plain.
bpo-40677: Manually define IO_REPARSE_TAG_APPEXECLINK in case some old Windows SDK doesn’t have it.
bpo-40650: Include winsock2.h in pytime.c for timeval.
bpo-39148: Add IPv6 support to asyncio datagram endpoints in ProactorEventLoop. Change the raised exception for unknown address families to ValueError as it’s not coming from Windows API.
macOS
bpo-39580: Avoid opening Finder window if running installer from the command line. Patch contributed by Rick Heil.
bpo-41100: Fix configure error when building on macOS 11. Note that the current Python release was released shortly after the first developer preview of macOS 11 (Big Sur); there are other known issues with building and running on the developer preview. Big Sur is expected to be fully supported in a future bugfix release of Python 3.8.x and with 3.9.0.
bpo-41005: fixed an XDG settings issue not allowing macos to open browser in webbrowser.py
bpo-40741: Update macOS installer to use SQLite 3.32.2.
IDLE
bpo-41144: Make Open Module open a special module such as os.path.
bpo-39885: Make context menu Cut and Copy work again when right-clicking within a selection.
bpo-40723: Make test_idle pass when run after import.
Tools/Demos
bpo-40479: Update multissltest helper to test with latest OpenSSL 1.0.2, 1.1.0, 1.1.1, and 3.0.0-alpha.
bpo-40163: Fix multissltest tool. OpenSSL has changed download URL for old releases. The multissltest tool now tries to download from current and old download URLs.
This needs pkg-config available in order to handle dependencies to
build its Freetype FT2Plugin component. This fixes the build under
NetBSD, though SunOS at least has other problems, too. (While here,
also tweak a variable reference to the common form, noted by pkglint.)
MoonScript is a dynamic scripting language that compiles into Lua. It gives
you the power of one of the fastest scripting languages combined with a rich
set of features.
MoonScript can either be compiled into Lua and run at a later time, or it
can be dynamically compiled and run using the moonloader. It's as simple as
require "moonscript" in order to have Lua understand how to load and run
any MoonScript file.
Because it compiles right into Lua code, it is completely compatible with
alternative Lua implementations like LuaJIT, and it is also compatible with
all existing Lua code and libraries.
The command line tools also let you run MoonScript directly from the command
line, like any first-class scripting language.
Update php72 to 7.2
09 Jul 2020, PHP 7.2.32
- Core:
. No source changes to this release.
Vesion number added for reproduction of Windows builds. (cmb)
14 May 2020, PHP 7.2.31
- Core:
. Fixed bug #78875 (Long filenames cause OOM and temp files are not cleaned).
(CVE-2019-11048) (cmb)
. Fixed bug #78876 (Long variables in multipart/form-data cause OOM and temp
files are not cleaned). (CVE-2019-11048) (cmb)
PR 55227
Pkgsrc changes: a newer version (5.2) of texinfo is required to build the documentation.
This updates breaks math/maxima when built with ecl (clisp is the default). Maxima
upstream has already fixed this in a later release.
From the CHANGELOG file:
** Announcement
Dear Community,
After more than three years of development, we are proud to announce a new
ECL release having the version tag `20.4.24`. During that time many
important improvements have been made including bug fixes, stability
enhancements and new features. Changes include but are not limited to:
- package local nicknames support
- atomic operations support
- specialized representations of complex float types
- a port to the iOS platform
- fixes for weak hash tables and weak pointers
- fixes for race conditions in the ECL internals
- hash table extensions (synchronization and custom test functions)
- better MOP conformance and improved meta-stability
- improvements to the manual
For more information please read the file CHANGELOG which is located in the
source code, and browse commits. We'd like to thank all people who made
this release possible by contributions of code, documentation, issue
reports, testing and others. Some of them are listed here (without any
particular order): Paul Ruetz, Karsten Poeck, Vadim Penzin, Roger Sen, Stas
Boukarev, Michael Fox, Erik Bray, Bo Yao, Jeremy Cooper, Florian Margaine,
Fabrizio Fabbri, Tomek Kurcz, Kris Katterjohn, Marcin Kolenda, Zhang Yuguo,
Sébastien Villemot, Moritz Petersen, Marius Gerbershagen and Daniel
Kochmański. We'd also like to thank the company Rigetti Computing for
sponsoring the work on specialized complex float representations.
We have another important announcement we'd like to make. Embeddable
Common-Lisp project has now two maintainers: Daniel Kochmański and Marius
Gerbershagen. After numerous contributions from Marius I've proposed him
this responsibility and to my rejoice he has accepted it. That reflects our
community growth.
This release is available for download in a form of a source code archive
(we do not ship prebuilt binaries):
- [ECL 20.4.24 tarball archive](https://common-lisp.net/project/ecl/static/files/release/ecl-20.4.24.tgz)
- [The ECL Manual](https://common-lisp.net/project/ecl/static/manual/)
Happy Hacking,
The ECL Developers
** Enhancements
- iOS support thanks to the help of P. Ruetz and gitlab user Whimse
- hash-table may now have a custom equivalence predicate
- ~make-load-form-with-slots~ works for structs even if slot names are not interned
- ~ext:weak-pointer-value~ returns two values (value and its presence)
- specialized complex float types based on C99 complex numbers have been
added, together with corresponding specialized array element types.
- support for atomic operations added with an interface similar to SBCL.
Currently (SBCL 1.4.12), it differs in the following points:
- the set of supported places is slightly different
- ~atomic-incf/decf~ always implement modular arithmetic with respect to
the width of a fixnum, instead of a width of 64 bits as for some places
in SBCL.
- Functions such as ~(cas foo)~ analogous to ~(setf foo)~ are not allowed
in ECL.
- The arguments of ~defcas~ are consistent with the short form of
~defsetf~ in contrast to SBCL, where they are different.
- compare-and-swap expansions can be removed with ~remcas~
- experimental support for serializing Lisp objects in compiled files
directly instead of using the reader for faster loading of .fas files
(configure option ~--enable-serialization~).
- improvements to C backtrace interface. Compile with CFLAGS+="-rdynamic"
./configure ... (Unix) or nmake ECL_USE_DBGHELP=yes ... (MSVC) to take
full advantage of this feature.
- better handling of fifo files (see man 7 fifo)
- unicode names are always linked for unicode builds (~--with-unicode-names~ removed)
- numerous bytecodes compiler enhancements
- ~ext:run-program~: process streams may be virtual streams (for instance
~*standard-output*~ in slime, or a string-output-stream)
- ~ext:run-program~: environ argument defaults to ~:default~, when NIL
passed empty environment is used
- compiler: when gcc fails ecl prints the failing command output
- ASDF has been updated to 3.1.8.8
- The Boehm-Demers-Weiser garbage collector has been updated to version 7.6.8
- libffi has been updated to version 3.3
- package local nicknames has been implemented (after SBCL)
- hash table extensions are documented in newdoc
- various cleanups performed in the compiler
- compiler is less verbose by default now
- ~ext:run-program~ has been rewritten (almost) from scratch
- improved documentation of operating system interface (newdoc)
- example of parsing arguments in standalone executable (newdoc)
- example of using shared libraries from C world (newdoc)
- reduced =format= directive tables size
- simplified ~atan2~ implementation by using c99 equivalent - now we
produce correct output for signed zeros, infinities and nans.
- configure script supports new options =--with-libgc-prefix=,
=--with-libgc-incdir= and =--with-libgc-libdir= (these flags work the
same as flags for =libffi= and =libgmp=)
** Issues fixed
- issues with type system revealed by sbcl bootstrapping are gone
- classes are not defined at compilation time
- weak hashtables mishandled weak values when keys were present
- gethash on weak hashtables returned the pointer instead of the value
- maphash on weak hashtables mapped over pointers instead of the values
- initarg caches are now invalidated when new methods are defined. Problem
found and fixed by Alexander Wood.
- ECL allocated too much space in lisp stack. Instead of the specified size
x in bytes, ECL allocated roughly x^2/p where p is defined in
LISP_PAGESIZE (2048 by default). If you're setting the value of
ECL_OPT_LISP_STACK_SIZE, please check whether you really have
set a high enough value.
- ~block/return-from~ fixed (didn't work across some closure boundaries)
- ~mp:semaphore-signal~ fixed (race when count was > 1)
- Multiple native threads issues fixed
- ASDF systems like foo/base and bar/base doesn't have conflicts in bundles
- interactive input stream in ext:run-program on Windows
- removed race condition between waitpid and sigchld handler on UNIX
- buildsystem parallel builds work (i.e make -j999)
- ECL builds on consoles with unusual encodings on Windows (i.e cp936)
** API changes
- ~LISP~ and ~USER~ package nicknames to ~COMMON-LISP~ and
~COMMON-LISP-USER~ are removed
- make-hash-table accepts a new keyword argument ~:hashing-function~
- no-op ~--enable-asmapply~ configure option has been removed
- ~profile~ and ~rt~ contribs are now deprecated and disabled by default
- thread-local variable support has been removed (~--with___thread~)
- deprecated configure option ~--enable-opcode8~ has been removed
- mk-defsystem is not build by default (enable by ~--with-defsystem=yes~)
- asdf:make-build accepts ~:init-name~ argument for libraries
this allows specifying human-memorable initialization function name to call
in C code
- package local nicknames protocol (documented in newdoc)
- make-hash-table accepts ~:synchronize~ flag for thread safe variant. New
predicate ~ext:hash-table-synchronized-p~ implemented
- make-hash-table ~:weakness~ argument new variant ~:key-or-value~
implemented
- No more explicit option in ~main.d~ to trap SIGCHLD asynchronously
- Zombie processes are cleaned in ~external-process~ finalizer. If process
is still referenced in the memory, it's programmer duty to call wait.
- The ECL_OPT_SIGALTSTACK_SIZE option has been removed, because it had no
effect.
- Non-standard package nicknames (USER for COMMON-LISP-USER and LISP for
COMMON-LISP) have been removed.
"Okay if you have tested it" from wiz@, tested mostly with math/maxima.
It's not really cross-compiled, it's just a different target name, but is
treated the same way. Once stabilised and crate support catches up we'll
switch over to it by default from x86_64-sun-solaris. Until then I'll
build bootstrap kits for both natively.
While here fix up a bunch of obvious pkglint warnings.
Changelog:
Vala 0.48.7
===========
* Various improvements and bug fixes:
- codegen:
+ Improve array-dup-wrapper for empty arrays [#999]
+ Don't call get_ccode_finish_instance() with non-async methods
+ Cast initializer-list to struct for non-constant/-array assignment [#1013]
+ Consistently use get_ccode_lower_case_prefix() for function names [#1008]
- vala:
+ Correctly handle qualified struct type in initializer list [#1004]
+ Reduce calls of CodeContext.get()
+ Fix value-type for ArrayCreationExpression used as argument [#1009]
+ Improve parameter check of "get" method used for foreach [#1017]
+ Don't carry floating reference into unknown target type expression [#1018]
- girparser: Actually respect given cprefix metadata for enumerations
- girwriter: Append symbol-attributes to callback field [#1006]
- parser: Avoid mitigation for missing token if it follows DOT or
DOUBLE_COLON [#987]
- libvaladoc/girimporter: Skip "function-macro" elements
- build: Update git-version-gen to latest upstream
- tests: Build typelib if g-ir-compiler is available
* Bindings:
- gstreamer-audio-1.0: Adjustments for Gst.Audio.Sink class extension
- gstreamer: Update from 1.17.1+ git master
- gtk+-3.0: Deprecated abstract methods are not required to be implemented
- gtk4: Prefix value names of PaintableFlags with "STATIC_" [#1011]
- gtk4: Mark optional methods of Gdk.Paintable interface as virtual [#1021]
- gtk4: Update to 3.98.5+fca2ba96
- harfbuzz-gobject: Update to 2.6.8
- pango: Update from 1.45.2
- webkit2gtk-4.0: Update to 2.29.2
- vapi: Update GIR-based bindings
## v1.10.4 (2020-07-04)
### 1. Bug fixes
#### Elixir
* [Kernel] Fix a bug where custom types were printed as built-in types
* [Kernel] Don't add compile-time dependency on `defdelegate`
* [Kernel] Add line numbers to warnings on deprecated imports
* [Kernel] Report the correct line number when raising inside a macro
* [Task] Include callers in translated Logger metadata for Task
* [Task] Fix Task PID and caller in Task Supervisor reports
#### ExUnit
* [ExUnit.Formatter] Avoid crashes when diffing guards when the pattern does not match
* [ExUnit.Formatter] Also blame exceptions that come from linked and trapped exits
#### IEx
* [IEx.Helpers] Do not crash when printing a type that cannot be code formatted
#### Mix
* [mix app.start] Fix reading `.app` file located in archives (`.ez` files)
* [mix local.hex] Provide more guidance when Hex can't be installed
* [mix release] Properly encode config in releases
Version 12.18.2 'Erbium' (LTS)
Notable changes
deps: V8: backport
Fixes memory leak in PrototypeUsers::Add
src: use symbol to store AsyncWrap resource
Fixes reported memory leak
Version 12.18.1 'Erbium' (LTS)
Notable Changes
deps:
V8: cherry-pick
update to uvwasi 0.0.9
upgrade to libuv 1.38.0
upgrade npm to 6.14.5
Make perl a run-time dependency to fix
ERROR: [check-interpreter.mk] The interpreter "/usr/pkg/bin/perl" of "/usr/pkg/bin/scan-build" does not exist.
ERROR: [check-interpreter.mk] The interpreter "/usr/pkg/bin/perl" of "/usr/pkg/libexec/c++-analyzer" does not exist.
ERROR: [check-interpreter.mk] The interpreter "/usr/pkg/bin/perl" of "/usr/pkg/libexec/ccc-analyzer" does not exist.
Note: this is slightly different than other Lua packages and, among
other things, implements its own install target. This is becuase I
wanted to minimize the amount of patching to Makefiles to make it
fit into the pkgsrc world.
Lua is a powerful, fast, lightweight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description
constructs based on associative arrays and extensible semantics. Lua is
dynamically typed, runs by interpreting bytecode for a register-based
virtual machine, and has automatic memory management with incremental
garbage collection, making it ideal for configuration, scripting, and
rapid prototyping.
This version is a preferred choice for new Lua modules.
Python 3.6.11 final
There were no new changes in version 3.6.11.
Python 3.6.11 release candidate 1
Security
bpo-39073: Disallow CR or LF in email.headerregistry.Address arguments to guard against header injection attacks.
bpo-38576: Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised.
bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager.
bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7.
Core and Builtins
bpo-39510: Fix segfault in readinto() method on closed BufferedReader.
bpo-39421: Fix possible crashes when operating with the functions in the heapq module and custom comparison operators.
Library
bpo-39503: AbstractBasicAuthHandler of urllib.request now parses all WWW-Authenticate HTTP headers and accepts multiple challenges per header: use the realm of the first Basic challenge.
Python 3.7.8 final
Tests
bpo-41009: Fix use of support.require_{linux|mac|freebsd}_version() decorators as class decorator.
macOS
bpo-41100: Fix configure error when building on macOS 11. Note that 3.7.8 was released shortly after the first developer preview of macOS 11 (Big Sur); there are other known issues with building and running on the developer preview. Big Sur is expected to be fully supported in a future bugfix release of Python 3.8.x and with 3.9.0.
Python 3.7.8 release candidate 1
Security
bpo-39073: Disallow CR or LF in email.headerregistry.Address arguments to guard against header injection attacks.
bpo-38576: Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised.
bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager.
Core and Builtins
bpo-40663: Correctly generate annotations where parentheses are omitted but required (e.g: Type[(str, int, *other))].
bpo-40417: Fix imp module deprecation warning when PyImport_ReloadModule is called. Patch by Robert Rouhani.
bpo-20526: Fix PyThreadState_Clear(). PyThreadState.frame is a borrowed reference, not a strong reference: PyThreadState_Clear() must not call Py_CLEAR(tstate->frame).
bpo-38894: Fix a bug that was causing incomplete results when calling pathlib.Path.glob in the presence of symlinks that point to files where the user does not have read access. Patch by Pablo Galindo and Matt Wozniski.
bpo-39871: Fix a possible SystemError in math.{atan2,copysign,remainder}() when the first argument cannot be converted to a float. Patch by Zachary Spytz.
bpo-39520: Fix unparsing of ext slices with no items (foo[:,]). Patch by Batuhan Taskaya.
bpo-24048: Save the live exception during import.c’s remove_module().
bpo-22490: Don’t leak environment variable __PYVENV_LAUNCHER__ into the interpreter session on macOS.
Library
bpo-40448: ensurepip now disables the use of pip cache when installing the bundled versions of pip and setuptools. Patch by Krzysztof Konopko.
bpo-40807: Stop codeop._maybe_compile, used by code.InteractiveInterpreter (and IDLE). from from emitting each warning three times.
bpo-38488: Update ensurepip to install pip 20.1.1 and setuptools 47.1.0.
bpo-40767: webbrowser now properly finds the default browser in pure Wayland systems by checking the WAYLAND_DISPLAY environment variable. Patch contributed by Jérémy Attali.
bpo-30008: Fix ssl code to be compatible with OpenSSL 1.1.x builds that use no-deprecated and --api=1.1.0.
bpo-25872: linecache could crash with a KeyError when accessed from multiple threads. Fix by Michael Graczyk.
bpo-40515: The ssl and hashlib modules now actively check that OpenSSL is build with thread support. Python 3.7.0 made thread support mandatory and no longer works safely with a no-thread builds.
bpo-13097: ctypes now raises an ArgumentError when a callback is invoked with more than 1024 arguments.
bpo-40559: Fix possible memory leak in the C implementation of asyncio.Task.
bpo-40457: The ssl module now support OpenSSL builds without TLS 1.0 and 1.1 methods.
bpo-40459: platform.win32_ver() now produces correct ptype strings instead of empty strings.
bpo-40138: Fix the Windows implementation of os.waitpid() for exit code larger than INT_MAX >> 8. The exit status is now interpreted as an unsigned number.
bpo-39942: Set “__main__” as the default module name when “__name__” is missing in typing.TypeVar. Patch by Weipeng Hong.
bpo-40287: Fixed SpooledTemporaryFile.seek() to return the position.
bpo-40196: Fix a bug in the symtable module that was causing incorrectly report global variables as local. Patch by Pablo Galindo.
bpo-40126: Fixed reverting multiple patches in unittest.mock. Patcher’s __exit__() is now never called if its __enter__() is failed. Returning true from __exit__() silences now the exception.
bpo-40089: Fix threading._after_fork(): if fork was not called by a thread spawned by threading.Thread, threading._after_fork() now creates a _MainThread instance for _main_thread, instead of a _DummyThread instance.
bpo-39503: AbstractBasicAuthHandler of urllib.request now parses all WWW-Authenticate HTTP headers and accepts multiple challenges per header: use the realm of the first Basic challenge.
bpo-40014: Fix os.getgrouplist(): if getgrouplist() function fails because the group list is too small, retry with a larger group list. On failure, the glibc implementation of getgrouplist() sets ngroups to the total number of groups. For other implementations, double the group list size.
bpo-40025: Raise TypeError when _generate_next_value_ is defined after members. Patch by Ethan Onstott.
bpo-40016: In re docstring, clarify the relationship between inline and argument compile flags.
bpo-39652: The column name found in sqlite3.Cursor.description is now truncated on the first ‘[‘ only if the PARSE_COLNAMES option is set.
bpo-38662: The ensurepip module now invokes pip via the runpy module. Hence it is no longer tightly coupled with the internal API of the bundled pip version, allowing easier updates to a newer pip version both internally and for distributors.
bpo-39916: More reliable use of os.scandir() in Path.glob(). It no longer emits a ResourceWarning when interrupted.
bpo-39850: multiprocessing now supports abstract socket addresses (if abstract sockets are supported in the running platform). Patch by Pablo Galindo.
bpo-39828: Fix json.tool to catch BrokenPipeError. Patch by Dong-hee Na.
bpo-39040: Fix parsing of invalid mime headers parameters by collapsing whitespace between encoded words in a bare-quote-string.
bpo-35714: struct.error is now raised if there is a null character in a struct format string.
bpo-36541: lib2to3 now recognizes named assignment expressions (the walrus operator, :=)
bpo-29620: assertWarns() no longer raises a RuntimeException when accessing a module’s __warningregistry__ causes importation of a new module, or when a new module is imported in another thread. Patch by Kernc.
bpo-34226: Fix cgi.parse_multipart without content_length. Patch by Roger Duran
bpo-31758: Prevent crashes when using an uninitialized _elementtree.XMLParser object. Patch by Oren Milman.
Documentation
bpo-40561: Provide docstrings for webbrowser open functions.
bpo-27635: The pickle documentation incorrectly claimed that __new__ isn’t called by default when unpickling.
bpo-39879: Updated Data model docs to include dict() insertion order preservation. Patch by Furkan Onder and Samy Lahfa.
bpo-39677: Changed operand name of MAKE_FUNCTION from argc to flags for module dis
bpo-39435: Fix an incorrect signature for pickle.loads() in the docs
bpo-38387: Document PyDoc_STRVAR macro in the C-API reference.
Tests
bpo-40964: Disable remote imaplib tests, host cyrus.andrew.cmu.edu is blocking incoming connections.
bpo-40055: distutils.tests now saves/restores warnings filters to leave them unchanged. Importing tests imports docutils which imports pkg_resources which adds a warnings filter.
bpo-40436: test_gdb and test.pythoninfo now check gdb command exit code.
bpo-39932: Fix multiprocessing test_heap(): a new Heap object is now created for each test run.
bpo-40162: Update Travis CI configuration to OpenSSL 1.1.1f.
bpo-40146: Update OpenSSL to 1.1.1f in Azure Pipelines.
bpo-40019: test_gdb now skips tests if it detects that gdb failed to read debug information because the Python binary is optimized.
bpo-27807: test_site.test_startup_imports() is now skipped if a path of sys.path contains a .pth file.
bpo-39793: Use the same domain when testing make_msgid. Patch by Batuhan Taskaya.
bpo-1812: Fix newline handling in doctest.testfile when loading from a package whose loader has a get_data method. Patch by Peter Donis.
bpo-37957: test.regrtest now can receive a list of test patterns to ignore (using the -i/–ignore argument) or a file with a list of patterns to ignore (using the –ignore-file argument). Patch by Pablo Galindo.
bpo-38502: test.regrtest now uses process groups in the multiprocessing mode (-jN command line option) if process groups are available: if os.setsid() and os.killpg() functions are available.
bpo-37421: multiprocessing tests now stop the ForkServer instance if it’s running: close the “alive” file descriptor to ask the server to stop and then remove its UNIX address.
bpo-37421: multiprocessing tests now explicitly call _run_finalizers() to immediately remove temporary directories created by tests.
Build
bpo-40653: Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling issue.
bpo-38360: Support single-argument form of macOS -isysroot flag.
bpo-40204: Pin Sphinx version to 2.3.1 in Doc/Makefile.
bpo-40158: Fix CPython MSBuild Properties in NuGet Package (build/native/python.props)
Windows
bpo-40164: Updates Windows OpenSSL to 1.1.1g
bpo-39631: Changes the registered MIME type for .py files on Windows to text/x-python instead of text/plain.
bpo-40650: Include winsock2.h in pytime.c for timeval.
bpo-39930: Ensures the required vcruntime140.dll is included in install packages.
bpo-39847: Avoid hang when computer is hibernated whilst waiting for a mutex (for lock-related objects from threading) around 49-day uptime.
bpo-38492: Remove pythonw.exe dependency on the Microsoft C++ runtime.
macOS
bpo-39580: Avoid opening Finder window if running installer from the command line.
bpo-40400: Update the macOS installer build scripts to build with Python 3.x and to build correctly on newer macOS systems with SIP.
bpo-40741: Update macOS installer to use SQLite 3.32.2.
bpo-38329: python.org macOS installers now update the Current version symlink of /Library/Frameworks/Python.framework/Versions for 3.9 installs. Previously, Current was only updated for Python 2.x installs. This should make it easier to embed Python 3 into other macOS applications.
bpo-40164: Update macOS installer builds to use OpenSSL 1.1.1g.
IDLE
bpo-39885: Make context menu Cut and Copy work again when right-clicking within a selection.
bpo-40723: Make test_idle pass when run after import.
bpo-27115: For ‘Go to Line’, use a Query box subclass with IDLE standard behavior and improved error checking.
bpo-39885: Since clicking to get an IDLE context menu moves the cursor, any text selection should be and now is cleared.
bpo-39852: Edit “Go to line” now clears any selection, preventing accidental deletion. It also updates Ln and Col on the status bar.
bpo-38439: Add a 256×256 pixel IDLE icon to support more modern environments. Created by Andrew Clover. Delete the unused macOS idle.icns icon file.
bpo-38689: IDLE will no longer freeze when inspect.signature fails when fetching a calltip.
Tools/Demos
bpo-40479: Update multissltest helper to test with latest OpenSSL 1.0.2, 1.1.0, 1.1.1, and 3.0.0-alpha.
bpo-40179: Fixed translation of #elif in Argument Clinic.
bpo-40163: Fix multissltest tool. OpenSSL has changed download URL for old releases. The multissltest tool now tries to download from current and old download URLs.
bpo-36184: Port python-gdb.py to FreeBSD. python-gdb.py now checks for “take_gil” function name to check if a frame tries to acquire the GIL, instead of checking for “pthread_cond_timedwait” which is specific to Linux and can be a different condition than the GIL.
bpo-39889: Fixed unparse.py for extended slices containing a single element (e.g. a[i:j,]). Remove redundant tuples when index with a tuple (e.g. a[i, j]).
C API
bpo-39884: _PyMethodDef_RawFastCallDict() and _PyMethodDef_RawFastCallKeywords() now include the method name in the SystemError “bad call flags” error message to ease debug.
bpo-38643: PyNumber_ToBase() now raises a SystemError instead of crashing when called with invalid base.
The embedded copy of boehm-gc fails to build on aarch64 and sgen
is considered the "modern" mono garbage collector, so we can
easily build with just that.
For this to work, the arguments need to register with the configure
script properly, which wasn't happening because autogen was running
configure. Stop that from happening.
Bump PKGREVISION
Changelog:
Bugfixes
Fixed “Critical: 1 completed Future, multiple await: Only 1 await will be awakened (the last one)” (#13889)
Fixed ““distinct uint64” type corruption on 32-bit, when using {.borrow.} operators” (#13902)
Fixed “Regression: impossible to use typed pragmas with proc types” (#13909)
Fixed “openssl wrapper corrupts stack on OpenSSL 1.1.1f + Android” (#13903)
Fixed “add nimExe to nim dump” (#13876)
Fixed “simple ‘var openarray[char]’ assignment crash when the openarray source is a local string and using gc:arc” (#14003)
Fixed “Cant use expressions with when in type sections.” (#14007)
Fixed “Annoying warning: inherit from a more precise exception type like ValueError, IOError or OSError [InheritFromException]” (#14052)
Fixed “Incorrect escape sequence for example in jsffi library documentation” (#14110)
Fixed “macOS: dsymutil should not be called on static libraries” (#14132)
Fixed “Fix single match output” (#12920)
Fixed “algorithm.sortedByIt template corrupts tuple input under –gc:arc” (#14079)
Fixed “strformat: doc example fails” (#14054)
Fixed “Nim doc fail to run for nim 1.2.0 (nim 1.0.4 is ok)” (#13986)
Fixed “Exception when converting csize to clong” (#13698)
Fixed “[ARC] Segfault with cyclic references (?)” (#14159)
Fixed “cas is wrong for tcc” (#14151)
Fixed “Use -d:nimEmulateOverflowChecks by default?” (#14209)
Fixed “Invalid return value of openProcess is NULL rather than INVALID_HANDLE_VALUE(-1) in windows” (#14289)
Fixed “nim-gdb is missing from all released packages” (#13104)
Fixed “compiler error with inline async proc and pragma” (#13998)
Fixed “Linker error with closures” (#209)
Fixed “ARC codegen bug with inline iterators” (#14219)
Fixed “[ARC] implicit move on last use happening on non-last use” (#14269)
Fixed “Boehm GC does not scan thread-local storage” (#14364)
Fixed “RVO not exception safe” (#14126)
Fixed “ARC: unreliable setLen “ (#14495)
Fixed “lent is unsafe: after #14447 you can modify variables with “items” loop for sequences” (#14498)
Fixed “moveFile does not overwrite destination file” (#14057)
Fixed “var op = fn() wrongly gives warning ObservableStores with object of RootObj type” (#14514)
Fixed “wrapWords seems to ignore linebreaks when wrapping, leaving breaks in the wrong place” (#14579)
3.7.1:
Released to pick up new xdis version which has fixes to read bytestings better on 3.x
Handle 3.7+ "else" branch removal adAs seen in _cmp() of python3.8/distutils/version.py with optimization -O2
3.6+ "with" and "with .. as" grammar improvements
ast-check for "for" loop was missing some grammar rules
## 1.10.1 - 2020-06-18
- Expose `janet_table_clear` in API.
- Respect `JANET_NO_PROCESSES` define when building
- Fix `jpm` rules having multiple copies of the same dependency.
- Fix `jpm` install in some cases.
- Add `array/trim` and `buffer/trim` to shrink the backing capacity of these types
to their current length.
## 1.10.0 - 2020-06-14
- Hardcode default jpm paths on install so env variables are needed in fewer cases.
- Add `:no-compile` to `create-executable` option for jpm.
- Fix bug with the `trace` function.
- Add `:h`, `:a`, and `:c` flags to `thread/new` for creating new kinds of threads.
By default, threads will now consume much less memory per thread, but sending data between
threads may cost more.
- Fix flychecking when using the `use` macro.
- CTRL-C no longer exits the repl, and instead cancels the current form.
- Various small bug fixes
- New MSI installer instead of NSIS based installer.
- Make `os/realpath` work on windows.
- Add polymorphic `compare` functions for comparing numbers.
- Add `to` and `thru` peg combinators.
- Add `JANET_GIT` environment variable to jpm to use a specific git binary (useful mainly on windows).
- `asm` and `disasm` functions now use keywords instead of macros for keys. Also
some slight changes to the way constants are encoded (remove wrapping `quote` in some cases).
- Expose current macro form inside macros as (dyn :macro-form)
- Add `tracev` macro.
- Fix compiler bug that emitted incorrect code in some cases for while loops that create closures.
- Add `:fresh` option to `(import ...)` to overwrite the module cache.
- `(range x y 0)` will return an empty array instead of hanging forever.
- Rename `jpm repl` to `jpm debug-repl`.
Following discussion on tech-net, note that disabling rust on a
platform where it ought to work requires a link to an open PR.
Add a link to the PR about NetBSD/earmv7hf.
Update Ruby on Rails to 6.0.3.2.
www/ruby-actionpack60 is the really updated package and other packages
have no change except version.
CHANGELOG of www/ruby-actionpack60 is here:
## Rails 6.0.3.2 (June 17, 2020) ##
* [CVE-2020-8185] Only allow ActionableErrors if
show_detailed_exceptions is enabled
As of the last updates to each of these, made earlier this month, they
now require nghttp2>=1.41.0 to build. They expect
nghttp2_option_set_max_settings to be available.
go1.14.3 (released 2020/05/14) includes fixes to cgo, the compiler, the
runtime, and the go/doc and math/big packages. See the Go 1.14.3
milestone on our issue tracker for details.
go1.14.4 (released 2020/06/01) includes fixes to the go doc command, the
runtime, and the encoding/json and os packages. See the Go 1.14.4
milestone on our issue tracker for details.
This allows rust-bin and rust to coexist in bulk builds (for testing, etc),
but the packages still may not be installed at the same time.
rust.mk as a solution for picking the correct rust variant was suggested
by gdt@. It is intended to be included directly by packages that do not
use cargo.mk, and indirectly by packages that do use cargo.mk.
rust.mk provides one user-settable variable:
RUST_TYPE
as before, whether to bootstrap rust from source or use
official binaries. may be "src" or "bin"
And two package-settable variables:
RUST_REQ
the minimum version of Rust required by the package.
defaults to "1.20.0"
RUST_RUNTIME
whether Rust is a runtime dependency, may be "yes" or "no"
The condition had been the same as in Makefile before 1.174.
Testing for OPSYS was unnecessary since that is included in
MACHINE_PLATFORM as well.
The ${VAR} syntax is easier readable since the number of exclamation
marks matches the number of negations, contrary to !empty, which is
effectively a positive test.
Swapped the order of the conditions since it is easier to read
"generally, but not" than "not this and the general case".
Changelog:
# RETRO 2019.7
This is the changelog for the development builds of Retro.
The version number is likely to change; I'm targetting an
early July window for this release.
## Bug Fixes
- all
- strl* functions now renamed, included on all builds
- `d:add-header` is extended by retro.forth to remap
spaces back to underscores when creating headers
- fix overflow issue with `n:MIN`, `n:MAX`
- build
- fix compile issue under Solaris
- retro-unix
- `clock:year` corrected
- `clock:month` corrected
- examples
- fixed issue in mail.forth
## Build
- Merged Linux & BSD Makefiles
## Core Language
- new words
- `a:fetch`
- `a:store`
- `s:replace-all`
- renamed
- `a:nth` to `a:th`
- `v:update-using` to `v:update`
- performance improvements
- `times`
- `times<with-index>`
- `while`
- `until`
## Documentation
- merged BSD, Linux, macOS build instructions
- updated Starting instructions
- added implementation notes on arrays
- updated the initial word table in rx.muri
- added a man page for retro-describe
## Toolchain
- fixed a bug in the glossary server
## Examples
- new examples
- bury.forth
- compat.forth
- gopher.forth
- magic-8th-ball.forth
- mandelbrot.forth
- RFC865.forth
- RFC867.forth
- safety-net.retro
- shell.forth
- sqlite3 wrapper
- unix-does-user-exist.forth
- improved examples
- 99bottles.forth
- edit.forth
- other
- publish-examples.forth now uses `retro-document`
to generate glossaries
## General
- reorganized directory tree
## I/O
- retro-unix (rre)
- added `clock:utc:` namespace
- remove gopher downloader
- add sockets interface
- add `unix:slurp-pipe`
## Interfaces
- retro-compiler
- runtime now supports scripting arguments
- retro-unix
- remove FullScreenListener
- ok prompt now a hook
- rewrite the listener
- retro-c#
- restored this to the source tree
- native
- better `0x` prefix handling
## Notes for the future:
In a future release, the examples will start using a `.retro`
file name extension rather than `.forth` to avoid possible
confusion with other systems that use `.forth` (e.g., MPE).
Reference the commits that fixed the (a?) problem and the pullup to
9. Note that no pullup to 8 has occured, and add a \todo to explain
the plan.
Thanks to Martin for pointers and explanation.
The previous conditional was never true. Assume that it meant to
apply to NetBSD <= 9 and not apply to current. Add comments
explaining the reason, with \todo for aspects that are unclear,
partially rescued from CVS history, and partially from tech-pkg
discussion.
Use EARLY_PRINT_PLIST_AWK instead of PRINT_PLIST_AWK so all the transformations
are done before the file/directory lists generated as part of print-PLIST are
sorted.
Discussed on tech-pkg@:
<https://mail-index.NetBSD.org/tech-pkg/2020/05/27/msg023249.html>
Vala 0.48.6
===========
* Regression and bug fixes:
- codegen:
+ Correctly handle cast-expression of real struct to nullable struct [#991]
+ Use loop index instead of get_ccode_pos() for ellipsis parameter [#995]
- vala:
+ Allow node_ref being null in SemanticAnalyzer.get_instance_base_type()
+ SemanticAnalyzer.get_instance_base_type() is not allowed to return null
+ params-array parameter is not allowed in abstract/virtual method [#985]
+ Use stable hash for methods in HashMap of implicit_implementations [#990]
and Use "str_equal" as equal_func for ArrayList<string> instances
+ Set value_type of undefined member-access to avoid further criticals
+ Transform cast from floating-type to boxed-type [#991]
+ Transform cast from integer-type to boxed-type [#992]
+ Explicit "new" method may be incompatible with a posssible base method
- valadoc: Add implicit "Posix" using-directive for POSIX profile
- girparser: Add support for boolean "new" argument for methods
* Bindings:
- gtk4: Update to 3.98.3+028942c8
This was getting unwieldly and didn't support changing multiple checksums in
the same file (required for illumos support in 1.44.0). It was also hiding
potential bugs, with entries for vendor/rand which do not exist.
It's likely this should be in vendor/rand_os as that's what we're actually
patching, but perhaps that crate is no longer used as it appears we've never
had a checksum fix for it.
Version 10.21.0 'Dubnium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8174: napi_get_value_string_*() allows various kinds of memory corruption (High).
CVE-2020-10531: ICU-20958 Prevent SEGV_MAPERR in append (High).
CVE-2020-11080: HTTP/2 Large Settings Frame DoS (Low).
Commits
- deps: fix OPENSSLDIR on Windows
- deps: backport ICU-20958 to fix CVE-2020-10531
- (SEMVER-MINOR) deps: update nghttp2 to 1.41.0
- (SEMVER-MINOR) http2: implement support for max settings entries
- napi: fix memory corruption vulnerability
Version 12.18.0 'Erbium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8172: TLS session reuse can lead to host certificate verification bypass (High).
CVE-2020-11080: HTTP/2 Large Settings Frame DoS (Low).
CVE-2020-8174: napi_get_value_string_*() allows various kinds of memory corruption (High).
Commits
- crypto: update root certificates
- (SEMVER-MINOR) deps: update nghttp2 to 1.41.0
- (SEMVER-MINOR) http2: implement support for max settings entries
- napi: fix memory corruption vulnerability
- tls: emit session after verifying certificate
- tools: update certdata.txt
Version 14.4.0 (Current)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8172: TLS session reuse can lead to host certificate verification bypass (High).
CVE-2020-11080: HTTP/2 Large Settings Frame DoS (Low).
CVE-2020-8174: napi_get_value_string_*() allows various kinds of memory corruption (High).
Commits
- crypto: update root certificates
- (SEMVER-MINOR) deps: update nghttp2 to 1.41.0
- (SEMVER-MINOR) http2: implement support for max settings entries
- napi: fix memory corruption vulnerability
- tls: emit session after verifying certificate
- tools: update certdata.txt
perl v5.30.3
Security
[CVE-2020-10543] Buffer overflow caused by a crafted regular expression
A signed "size_t" integer overflow in the storage space calculations for nested regular expression
quantifiers could cause a heap buffer overflow in Perl's regular expression compiler that overwrites memory
allocated after the regular expression storage space with attacker supplied data.
The target system needs a sufficient amount of memory to allocate partial expansions of the nested
quantifiers prior to the overflow occurring. This requirement is unlikely to be met on 64-bit systems.
[CVE-2020-10878] Integer overflow via malformed bytecode produced by a crafted regular expression
Integer overflows in the calculation of offsets between instructions for the regular expression engine could
cause corruption of the intermediate language state of a compiled regular expression. An attacker could
abuse this behaviour to insert instructions into the compiled form of a Perl regular expression.
[CVE-2020-12723] Buffer overflow caused by a crafted regular expression
Recursive calls to "S_study_chunk()" by Perl's regular expression compiler to optimize the intermediate
language representation of a regular expression could cause corruption of the intermediate language state of
a compiled regular expression.
Additional Note
An application written in Perl would only be vulnerable to any of the above flaws if it evaluates regular
expressions supplied by the attacker. Evaluating regular expressions in this fashion is known to be
dangerous since the regular expression engine does not protect against denial of service attacks in this
usage scenario.
Incompatible Changes
There are no changes intentionally incompatible with Perl 5.30.2.
Modules and Pragmata
Updated Modules and Pragmata
o Module::CoreList has been upgraded from version 5.20200314 to 5.20200601_30.
Since do-configure-pre-hook already depends on replace-interpreter, there
is no point in making any other stage depend on that as well. At best,
it has no effect. At worst it creates a hard-to-find difference between
builds that run "bmake install" directly and builds that split the build
into "bmake configure && bmake build && bmake install", as bulk builds
do.
## 1.9.1 - 2020-05-12
- Add :prefix option to declare-source
- Re-enable minimal builds with the debugger.
- Add several flags for configuring Janet on different platforms.
- Fix broken meson build from 1.9.0 and add meson to CI.
- Fix compilation issue when nanboxing is disabled.
## 1.9.0 - 2020-05-10
- Add `:ldflags` option to many jpm declare functions.
- Add `errorf` to core.
- Add `lenprefix` combinator to PEGs.
- Add `%M`, `%m`, `%N`, and `%n` formatters to formatting functions. These are the
same as `%Q`, `%q`, `%P`, and `%p`, but will not truncate long values.
- Add `fiber/root`.
- Add beta `net/` module to core for socket based networking.
- Add the `parse` function to parse strings of source code more conveniently.
- Add `jpm rule-tree` subcommand.
- Add `--offline` flag to jpm to force use of the cache.
- Allow sending pointers and C functions across threads via `thread/send`.
- Fix bug in `getline`.
- Add `sh-rule` and `sh-phony` to jpm's dialect of Janet.
- Change C api's `janet_formatb` -> `janet_formatbv`, and add new function `janet_formatb` to C api.
- Add `edefer` macro to core.
- A struct/table literal/constructor with duplicate keys will use the last value given.
Previously, this was inconsistent between tables and structs, literals and constructor functions.
- Add debugger to core. The debugger functions are only available
in a debug repl, and are prefixed by a `.`.
- Add `sort-by` and `sorted-by` to core.
- Support UTF-8 escapes in strings via `\uXXXX` or `\UXXXXXX`.
- Add `math/erf`
- Add `math/erfc`
- Add `math/log1p`
- Add `math/next`
- Add os/umask
- Add os/perm-int
- Add os/perm-string
- Add :int-permissions option for os/stat.
- Add `jpm repl` subcommand, as well as `post-deps` macro in project.janet files.
- Various bug fixes.
Version 14.3.0 (Current)
Notable Changes
REPL previews improvements with autocompletion
The output preview is changed to generate previews for autocompleted input instead of the actual input.
Pressing <enter> during a preview is now going to evaluate the whole string including the autocompleted part. Pressing <escape> cancels that behavior.
Support for Top-Level Await
It's now possible to use the await keyword outside of async functions.
These packages are susceptible to bugs when confronted with non-ASCII
characters.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94182.
It takes some time to analyze and fix these individually, therefore they
are only marked as "needs work".
Dumb package that selects and installs a binary rust distribution
based on its guess of your platform (FreeBSD, NetBSD, Linux x86_64 are
all supported). These binaries are the official ones provided by
rust upstream and are the same as those provided by the `rustup` tool.
You can choose to use a binary rust distribution by setting:
RUST_TYPE=bin in mk.conf
(or source distribution with RUST_TYPE=src).
Currently, RUST_TYPE=bin by default ONLY for NetBSD-x86_64. This is
because TNF has been shown to _repeatedly_ be unable and _unwilling_ to
ensure that rust-dependent packages build properly on their
infrastructure, and NetBSD users are all suffering for it.
This was based on minskim's work in pkgsrc-wip.
It was tested by building librsvg and firefox-esr with the resulting
binaries.
pygls (pronounced like "pie glass") is a pythonic generic implementation
of the Language Server Protocol for use as a foundation for writing
language servers using Python (e.g. Python, XML, etc.). It allows
you to write your own language server in just a few lines of code.