As per the comment in the file, this needs to have a PKGREVISION one
greater than the corresponding gcc48 package for preferential selection
by packaging tools.
PowerPC (at least, the variants used on hardware typically supported by
pkgsrc) does not offer the gamut of hardware-backed atomic instructions
that relatively recent versions of SpiderMonkey demand. Fall back to
using GCC's libatomic, so this builds and runs on that architecture.
v6.5.0:
NEW FEATURES
Backronym npm ci to npm clean-install.
Adds 'Homepage' to outdated --long output.
BUGFIXES
Fix sign-git-commit options. They were previously totally wrong.
Set lowercase headers for npm audit requests.
Fix npm edit handling of scoped packages.
Make summary output for npm ci go to stdout, not stderr.
Close the file descriptor during publish if exiting upload via an error. This will prevent strange error messages when the upload fails and make sure
cleanup happens correctly.
Version 10.15.0 'Dubnium' (LTS):
The 10.14.0 security release introduced some unexpected breakages on the 10.x release line. This is a special release to fix a regression in the HTTP binary upgrade response body and add a missing CLI flag to adjust the max header size of the http parser.
Notable Changes
cli:
add --max-http-header-size flag
http:
add maxHeaderSize property
A few patches to the configure script to recognise the combination of
NetBSD and aarch64, and a few changes to the Makefile to make sure we've
got the right combination of options for the PLIST. It now compiles on my
Pinebook.
header for NetBSD/powerpc, so that the macppc version builds.
Thanks to maya@ for the hint.
No revision bump, as this is only a build fix for NetBSD/powerpc.
1) bootstrap rustc adds -lgcc_s when linking
-> Dropped with a BUILDLINK_TRANSFORM
2) bootstrap rustc has shared linkage to libgcc_s.so.1
-> Until upstream changes this to static linkage, we look for
libgcc_s.so.1 in ${FILESDIR} where the user must place it manually.
3) newly built rustc adds -lstdc++ instead of -lc++ when linking llvm
-> fixed with patch-src_librustc__llvm_build.rs
4) newly built rustc adds -lgcc_s when linking
-> fixed with patch-src_libunwind_build.rs
uncompyle6 3.2.5:
- 3.7.2 Remove deprecation warning on regexp string that isn't raw
- main.main() parameter codes is not used - note that
- Improve Python 3.6+ control flow detection
- More complete fragment instruction annotation for imports
---------------------------------------------------------------------
--- erts-10.2.1 -----------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.2.1 application can *not* be applied independently
of other applications on an arbitrary OTP 21 installation.
On a full OTP 21 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-6.1 (first satisfied in OTP 21.1)
-- sasl-3.3 (first satisfied in OTP 21.2)
--- Fixed Bugs and Malfunctions ---
OTP-15485 Application(s): erts
Fixed bug on big endian architectures when changing
file permissions or ownership with file:change_mode,
change_owner, change_group or write_file_info. Bug
exists since OTP-21.0.
OTP-15486 Application(s): erts
Related Id(s): PR-2061
Fixed bug in atomics with option {signed,false} when
returned values are (1 bsl 63) or larger. Could cause
heap corruption leading to VM crash or other unpleasant
symptoms. Bug exists since OTP-21.2 when module atomics
was introduced.
OTP-15487 Application(s): erts
Related Id(s): ERL-804
Fixed bug in operator band of two negative operands
causing erroneous result if the absolute value of one
of the operands have the lowest N*W bits as zero and
the other absolute value is not larger than N*W bits. N
is an integer of 1 or larger and W is 32 or 64
depending on word size.
Full runtime dependencies of erts-10.2.1: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- ssl-9.1.1 -------------------------------------------------------
---------------------------------------------------------------------
The ssl-9.1.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15489 Application(s): ssl
Related Id(s): ERL-308
Fixed renegotiation bug. Client did not handle server
initiated renegotiation correctly after rewrite to two
connection processes, due to ERL-622 commit
d87ac1c55188f5ba5cdf72384125d94d42118c18. This could
manifest it self as a " bad_record_mac" alert.
Also included are some optimizations
Full runtime dependencies of ssl-9.1.1: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
--- ssh-4.7.3 -------------------------------------------------------
---------------------------------------------------------------------
The ssh-4.7.3 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15397 Application(s): ssh
Related Id(s): ERL-801
Fixed port leakage if a ssh:daemon call failed.
Full runtime dependencies of ssh-4.7.3: crypto-4.2, erts-6.0,
kernel-3.0, public_key-1.5.2, stdlib-3.3
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-13468 Application(s): erts, sasl
New counters and atomics modules supplies access to
highly efficient operations on mutable fixed word sized
variables.
OTP-14669 Application(s): erts
Related Id(s): PR-1989
There is a new module persistent_term that implements a
term storage suitable for terms that are frequently
used but never or infrequently updated. Lookups are
done in constant time without copying the terms.
OTP-15094 Application(s): ssh
Related Id(s): OTP-15419
Added public key methods ssh-ed25519 and ssh-ed448.
Requires OpenSSL 1.1.1 or higher as cryptolib under the
OTP application crypto.
OTP-15449 Application(s): ssl
*** POTENTIAL INCOMPATIBILITY ***
ssl now uses active n internally to boost performance.
Old active once behavior can be restored by setting
application variable see manual page for ssl
application (man 6).
OTP-15475 Application(s): erts
Related Id(s): ERIERL-229
Add a new pollset that is made to handle sockets that
use {active, true} or {active, N}. The new pollset will
not be polled by a pollthread, but instead polled by a
normal scheduler.
This change was made because of the overhead associated
with constantly having to re-apply the ONESHOT
mechanism on fds that all input events were
interesting.
The new pollset is only active on platforms that
support concurrent kernel poll updates, i.e. Linux and
BSD.
---------------------------------------------------------------------
--- POTENTIAL INCOMPATIBILITIES -------------------------------------
---------------------------------------------------------------------
OTP-15364 Application(s): kernel
A new function, logger:update_handler_config/3 is
added, and the handler callback changing_config now has
a new argument, SetOrUpdate, which indicates if the
configuration change comes from set_handler_config/2,3
or update_handler_config/2,3.
This allows the handler to consistently merge the new
configuration with the old (if the change comes from
update_handler_config/2,3) or with the default (if the
change comes from set_handler_config/2,3).
The built-in handlers logger_std_h and
logger_disk_log_h are updated accordingly. A bug which
could cause inconsistency between the handlers'
internal state and the stored configuration is also
corrected.
OTP-15449 Application(s): ssl
*** HIGHLIGHT ***
ssl now uses active n internally to boost performance.
Old active once behavior can be restored by setting
application variable see manual page for ssl
application (man 6).
---------------------------------------------------------------------
--- asn1-5.0.8 ------------------------------------------------------
---------------------------------------------------------------------
The asn1-5.0.8 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15470 Application(s): asn1
Related Id(s): ERIERL-278
Handle erroneous length during decode (BER only)
without crashing.
Full runtime dependencies of asn1-5.0.8: erts-7.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
--- compiler-7.3 ----------------------------------------------------
---------------------------------------------------------------------
The compiler-7.3 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15400 Application(s): compiler
Related Id(s): ERL-759
Fixed a rare internal consistency failure caused by a
bug in the beam_jump pass. (Thanks to Simon Cornish for
reporting this bug.)
OTP-15435 Application(s): compiler
Related Id(s): ERL-778
The compiler could fail with an internal consistency
check failure when compiling code that used the
is_function/2 BIF.
OTP-15437 Application(s): compiler, stdlib
Related Id(s): ERL-762
When an external fun was used, warnings for unused
variables could be suppressed.
OTP-15481 Application(s): compiler
The compiler would crash when compiling an after block
that called erlang:raise/3 like this:
erlang:raise(Class, Stacktrace, Stacktrace)
--- Improvements and New Features ---
OTP-15245 Application(s): compiler, stdlib
Related Id(s): ERL-706
When specified, the +{source,Name} option will now
override the actual file name in stack traces, instead
of only affecting the return value of
Mod:module_info().
The +deterministic flag will also affect stack traces
now, omitting all path information except the file
name, fixing a long-standing issue where deterministic
builds required deterministic paths.
Full runtime dependencies of compiler-7.3: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- crypto-4.4 ------------------------------------------------------
---------------------------------------------------------------------
The crypto-4.4 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15302 Application(s): crypto
Updated the RSA options part in the crypto
application's C-code, documentation and tests.
--- Improvements and New Features ---
OTP-15419 Application(s): crypto, public_key
Related Id(s): OTP-15094
Added ed25519 and ed448 sign/verify.
Requires OpenSSL 1.1.1 or higher as cryptolib under the
OTP application crypto.
OTP-15467 Application(s): crypto
Fixed valgrind warnings.
Full runtime dependencies of crypto-4.4: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- erts-10.2 -------------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.2 application can *not* be applied independently of
other applications on an arbitrary OTP 21 installation.
On a full OTP 21 installation, also the following runtime
dependencies have to be satisfied:
-- kernel-6.1 (first satisfied in OTP 21.1)
-- sasl-3.3 (first satisfied in OTP 21.2)
--- Fixed Bugs and Malfunctions ---
OTP-12242 Application(s): erts
Related Id(s): ERL-561
When a process was waiting for a TCP socket send
operation to complete, and another process closed the
socket during that send, the sending process could
hang. This bug has now been corrected.
OTP-15343 Application(s): erts, stdlib
Related Id(s): PR-1962
Document bit_size in match specifications and allow it
in ets:fun2ms.
OTP-15346 Application(s): erts
Fixed bug in ets:select_replace when called with a
fully bound key could cause a following call to
ets:next or ets:prev to crash the emulator or return
invalid result.
OTP-15360 Application(s): erts
When a module has been purged from memory, any literals
belonging to that module will be copied to all
processes that hold references to them. The max heap
size limit would be ignored in the garbage collection
initiated when copying literals to a process. If the
max heap size was exceeded, the process would typically
be terminated in the following garbage collection.
Corrected to terminate the process directly if copying
a literal would exceed the max heap size.
OTP-15389 Application(s): erts
Fix compilation of run_erl on Solaris 11.4 and later.
OTP-15436 Application(s): erts
Fixed a bug where lists:reverse/1-2 could use far too
many reductions. This bug was introduced in OTP 21.1.
OTP-15446 Application(s): erts
Related Id(s): PR-2024
Fixed a bug where a dirty scheduler could stay awake
forever if a distribution entry was removed as part of
a dirty GC.
OTP-15450 Application(s): erts
Related Id(s): ERIERL-229
Fix microstate accounting handing in various places.
Most importantly the GC states when the GC is run on a
dirty scheduler are now managed correctly.
OTP-15461 Application(s): erts
Related Id(s): ERL-784
Fixed bug in file:sendfile when the send operation
failed. For sockets in active modes it could cause
emulator crash or a hanging call. For sockets with
{active,false} an unexpected {inet_reply, _, _} message
could be sent to the calling process. The bug exists
since OTP-21.0.
OTP-15465 Application(s): erts
The erts configure script has been updated to reject
any CFLAGS that does not have -O. This in order to
prevent the common mistake of forgetting to add -O2 to
custom CFLAGS.
OTP-15474 Application(s): erts, stdlib
Related Id(s): ERIERL-229
Fix reduction count in lists:member/2
--- Improvements and New Features ---
OTP-13468 Application(s): erts, sasl
*** HIGHLIGHT ***
New counters and atomics modules supplies access to
highly efficient operations on mutable fixed word sized
variables.
OTP-14669 Application(s): erts
Related Id(s): PR-1989
*** HIGHLIGHT ***
There is a new module persistent_term that implements a
term storage suitable for terms that are frequently
used but never or infrequently updated. Lookups are
done in constant time without copying the terms.
OTP-15121 Application(s): erts, kernel
Related Id(s): ERIERL-189, PR-1974
A function inet:getifaddrs/1 that takes a list with a
namespace option has been added, for platforms that
support that feature, for example Linux (only?).
OTP-15357 Application(s): erts, kernel
Related Id(s): ERL-698
Added the nopush option for TCP sockets, which
corresponds to TCP_NOPUSH on *BSD and TCP_CORK on
Linux.
This is also used internally in file:sendfile to reduce
latency on subsequent send operations.
OTP-15371 Application(s): erts, stdlib
List subtraction (The -- operator) will now yield
properly on large inputs.
OTP-15471 Application(s): erts, kernel
Related Id(s): ERIERL-229
Optimize handling of send_delay for tcp sockes to
better work with the new pollthread implementation
introduced in OTP-21.
OTP-15472 Application(s): erts
Related Id(s): ERIERL-229
Optimize driver_set_timer with a zero timeout to
short-circuit and not create any timer structure, but
instead schedule the timer immediately.
OTP-15473 Application(s): erts
Related Id(s): ERIERL-229
Add erl_xcomp_code_model_small as a cross configure
variable in order to let the emulator be build with the
assumption that a small code model will be used on the
target machine.
OTP-15475 Application(s): erts
Related Id(s): ERIERL-229
*** HIGHLIGHT ***
Add a new pollset that is made to handle sockets that
use {active, true} or {active, N}. The new pollset will
not be polled by a pollthread, but instead polled by a
normal scheduler.
This change was made because of the overhead associated
with constantly having to re-apply the ONESHOT
mechanism on fds that all input events were
interesting.
The new pollset is only active on platforms that
support concurrent kernel poll updates, i.e. Linux and
BSD.
OTP-15478 Application(s): erts
Related Id(s): ERL-741
Fix bug where emulator would segfault if a literal
message was sent when sequence tracing was enabled.
Full runtime dependencies of erts-10.2: kernel-6.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- et-1.6.4 --------------------------------------------------------
---------------------------------------------------------------------
The et-1.6.4 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15463 Application(s): et
Related Id(s): ERL-780
The scroll bar of the et_viewer window could not be
dragged all the way to the top of the window. It would
always stop at the second event. This is now corrected.
Full runtime dependencies of et-1.6.4: erts-9.0, kernel-5.3,
runtime_tools-1.10, stdlib-3.4, wx-1.2
---------------------------------------------------------------------
--- hipe-3.18.2 -----------------------------------------------------
---------------------------------------------------------------------
The hipe-3.18.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Improvements and New Features ---
OTP-15482 Application(s): hipe
The code was updated to avoid causing a dialyzer
warning because of a tightened spec for
beam_lib:info/1.
Full runtime dependencies of hipe-3.18.2: compiler-5.0, erts-9.3,
kernel-5.3, stdlib-3.4, syntax_tools-1.6.14
---------------------------------------------------------------------
--- inets-7.0.3 -----------------------------------------------------
---------------------------------------------------------------------
The inets-7.0.3 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15338 Application(s): inets
Related Id(s): ERL-733
Fixed http client to not send 'content-length' header
in chunked encoded requests.
OTP-15339 Application(s): inets
Related Id(s): ERL-736
Fixed http client to not drop explicit 'Content-Type'
header in requests without a body such as requests with
the 'Content-Type' of
application/x-www-form-urlencoded.
Full runtime dependencies of inets-7.0.3: erts-6.0, kernel-3.0,
mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
---------------------------------------------------------------------
--- kernel-6.2 ------------------------------------------------------
---------------------------------------------------------------------
Note! The kernel-6.2 application can *not* be applied independently
of other applications on an arbitrary OTP 21 installation.
On a full OTP 21 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.1 (first satisfied in OTP 21.1)
--- Fixed Bugs and Malfunctions ---
OTP-15364 Application(s): kernel
*** POTENTIAL INCOMPATIBILITY ***
A new function, logger:update_handler_config/3 is
added, and the handler callback changing_config now has
a new argument, SetOrUpdate, which indicates if the
configuration change comes from set_handler_config/2,3
or update_handler_config/2,3.
This allows the handler to consistently merge the new
configuration with the old (if the change comes from
update_handler_config/2,3) or with the default (if the
change comes from set_handler_config/2,3).
The built-in handlers logger_std_h and
logger_disk_log_h are updated accordingly. A bug which
could cause inconsistency between the handlers'
internal state and the stored configuration is also
corrected.
OTP-15388 Application(s): kernel
Related Id(s): PR-1983
Fix fallback when custom erl_epmd client does not
implement address_please.
OTP-15453 Application(s): kernel
Related Id(s): ERL-782
The logger ets table did not have the read_concurrency
option. This is now added.
OTP-15466 Application(s): kernel
Related Id(s): ERL-788
During system start, logger has a simple handler which
prints to stdout. After the kernel supervision is
started, this handler is removed and replaced by the
default handler. Due to a bug, logger earlier issued a
debug printout saying it received an unexpected
message, which was the EXIT message from the simple
handler's process. This is now corrected. The simple
handler's process now unlinks from the logger process
before terminating.
OTP-15469 Application(s): kernel
The logger handler logger_std_h would not re-create
it's log file if it was removed. Due to this it could
not be used with tools like 'logrotate'. This is now
corrected.
--- Improvements and New Features ---
OTP-15121 Application(s): erts, kernel
Related Id(s): ERIERL-189, PR-1974
A function inet:getifaddrs/1 that takes a list with a
namespace option has been added, for platforms that
support that feature, for example Linux (only?).
OTP-15357 Application(s): erts, kernel
Related Id(s): ERL-698
Added the nopush option for TCP sockets, which
corresponds to TCP_NOPUSH on *BSD and TCP_CORK on
Linux.
This is also used internally in file:sendfile to reduce
latency on subsequent send operations.
OTP-15471 Application(s): erts, kernel
Related Id(s): ERIERL-229
Optimize handling of send_delay for tcp sockes to
better work with the new pollthread implementation
introduced in OTP-21.
Full runtime dependencies of kernel-6.2: erts-10.1, sasl-3.0,
stdlib-3.5
---------------------------------------------------------------------
--- observer-2.8.2 --------------------------------------------------
---------------------------------------------------------------------
The observer-2.8.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15365 Application(s): observer
Related Id(s): ERL-722
Literals such as #{"one"=>1} dumped to a crash dump
would cause crashdump_viewer to crash.
OTP-15377 Application(s): observer
crashdump_viewer would sometimes crash when processing
a dump which was truncated in the literals area. This
is now corrected.
OTP-15391 Application(s): observer
Since OTP-20.2, crashdump_viewer was very slow when
opening a crash dump with many processes. An ets:select
per process could be removed, which improved the
performance a lot.
A bug when parsing heap data in a crashdump caused
crashdump_viewer to crash when multiple Yc lines
referenced the same reference counted binary. This is
now corrected.
Full runtime dependencies of observer-2.8.2: erts-7.0, et-1.5,
kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2
---------------------------------------------------------------------
--- os_mon-2.4.7 ----------------------------------------------------
---------------------------------------------------------------------
The os_mon-2.4.7 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15387 Application(s): os_mon
Related Id(s): PR-1966
Due to /proc restrictions in newer Android releases
enforced by SELinux, cpu_sup is fixed so that it gets
some basic CPU stats using the sysinfo syscall rather
than reading /proc/loadavg.
Full runtime dependencies of os_mon-2.4.7: erts-6.0, kernel-3.0,
mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0
---------------------------------------------------------------------
--- public_key-1.6.4 ------------------------------------------------
---------------------------------------------------------------------
The public_key-1.6.4 application can be applied independently of
other applications on a full OTP 21 installation.
--- Improvements and New Features ---
OTP-15419 Application(s): crypto, public_key
Related Id(s): OTP-15094
Added ed25519 and ed448 sign/verify.
Requires OpenSSL 1.1.1 or higher as cryptolib under the
OTP application crypto.
Full runtime dependencies of public_key-1.6.4: asn1-3.0, crypto-3.8,
erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- reltool-0.7.8 ---------------------------------------------------
---------------------------------------------------------------------
The reltool-0.7.8 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15454 Application(s): reltool
Reltool would earlier erroneously split paths like
"c:\foo" into ["c","\foo"] when reading the $ERL_LIBS
variable on windows. This is now corrected.
Full runtime dependencies of reltool-0.7.8: erts-7.0, kernel-3.0,
sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2
---------------------------------------------------------------------
--- sasl-3.3 --------------------------------------------------------
---------------------------------------------------------------------
Note! The sasl-3.3 application can *not* be applied independently of
other applications on an arbitrary OTP 21 installation.
On a full OTP 21 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.2 (first satisfied in OTP 21.2)
--- Improvements and New Features ---
OTP-13468 Application(s): erts, sasl
*** HIGHLIGHT ***
New counters and atomics modules supplies access to
highly efficient operations on mutable fixed word sized
variables.
Full runtime dependencies of sasl-3.3: erts-10.2, kernel-5.3,
stdlib-3.4, tools-2.6.14
---------------------------------------------------------------------
--- ssh-4.7.2 -------------------------------------------------------
---------------------------------------------------------------------
The ssh-4.7.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15413 Application(s): ssh
Incompatibility with newer OpenSSH fixed. Previously
versions 7.8 and later could cause Erlang SSH to exit.
OTP-15416 Application(s): ssh
The 'exec' option for ssh daemons had wrong format in
the documentation.
--- Improvements and New Features ---
OTP-15094 Application(s): ssh
Related Id(s): OTP-15419
*** HIGHLIGHT ***
Added public key methods ssh-ed25519 and ssh-ed448.
Requires OpenSSL 1.1.1 or higher as cryptolib under the
OTP application crypto.
OTP-15312 Application(s): ssh
The SSH property tests are now adapted to the PropEr
testing tool.
OTP-15314 Application(s): ssh
The term "user" was not documented in the SSH app. A
new chapter with terminology is added to the User's
Manual where the term "user" is defined.
A reference manual page about the module ssh_file is
also added. This is the default callback module for
user's keys, host keys etc.
OTP-15424 Application(s): ssh
Host and user key checking is made more robust.
Full runtime dependencies of ssh-4.7.2: crypto-4.2, erts-6.0,
kernel-3.0, public_key-1.5.2, stdlib-3.3
---------------------------------------------------------------------
--- ssl-9.1 ---------------------------------------------------------
---------------------------------------------------------------------
The ssl-9.1 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15368 Application(s): ssl
PEM cache was not evicting expired entries due to due
to timezone confusion.
OTP-15384 Application(s): ssl
Related Id(s): ERL-756
Make sure an error is returned if a "transport_accept
socket" is used in some other call than ssl:handshake*
or ssl:controlling_process
OTP-15402 Application(s): ssl
Fix timestamp handling in the PEM-cache could cause
entries to not be invalidated at the correct time.
OTP-15412 Application(s): ssl
Related Id(s): ERL-731
Extend check for undelivered data at closing, could
under some circumstances fail to deliver all data that
was actually received.
OTP-15415 Application(s): ssl
Related Id(s): ERL-763
Correct signature check for TLS-1.2 that allows
different algorithms for signature of peer cert and
peer cert key. Not all allowed combinations where
accepted.
OTP-15418 Application(s): ssl
Related Id(s): ERL-770
Correct gen_statem return value, could cause
renegotiation to fail.
--- Improvements and New Features ---
OTP-15420 Application(s): ssl
Related Id(s): ERIERL-268
Add engine support for RSA key exchange
OTP-15449 Application(s): ssl
*** HIGHLIGHT ***
*** POTENTIAL INCOMPATIBILITY ***
ssl now uses active n internally to boost performance.
Old active once behavior can be restored by setting
application variable see manual page for ssl
application (man 6).
Full runtime dependencies of ssl-9.1: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.7 ------------------------------------------------------
---------------------------------------------------------------------
The stdlib-3.7 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15343 Application(s): erts, stdlib
Related Id(s): PR-1962
Document bit_size in match specifications and allow it
in ets:fun2ms.
OTP-15378 Application(s): stdlib
Related Id(s): ERL-696
The beam() type in beam_lib is defined as module() |
file:filename() | binary(). The module() is misleading.
Giving the module name as an atom will only work if the
BEAM file is in a current directory.
To avoid confusion, module() has been removed from the
type. That means that there will be a Dialyzer warning
for code that call beam_lib with an atom as filename,
but the calls will still work.
OTP-15428 Application(s): stdlib
Related Id(s): ERL-777
unicode_util crashed on certain emoji grapheme clusters
in binary strings.
OTP-15437 Application(s): compiler, stdlib
Related Id(s): ERL-762
When an external fun was used, warnings for unused
variables could be suppressed.
OTP-15474 Application(s): erts, stdlib
Related Id(s): ERIERL-229
Fix reduction count in lists:member/2
--- Improvements and New Features ---
OTP-15245 Application(s): compiler, stdlib
Related Id(s): ERL-706
When specified, the +{source,Name} option will now
override the actual file name in stack traces, instead
of only affecting the return value of
Mod:module_info().
The +deterministic flag will also affect stack traces
now, omitting all path information except the file
name, fixing a long-standing issue where deterministic
builds required deterministic paths.
OTP-15371 Application(s): erts, stdlib
List subtraction (The -- operator) will now yield
properly on large inputs.
OTP-15464 Application(s): stdlib
calendar:system_time_to_rfc3339/1,2 no longer remove
trailing zeros from fractions.
Full runtime dependencies of stdlib-3.7: compiler-5.0, crypto-3.3,
erts-10.0, kernel-6.0, sasl-3.0
---------------------------------------------------------------------
--- tools-3.0.2 -----------------------------------------------------
---------------------------------------------------------------------
The tools-3.0.2 application can be applied independently of other
applications on a full OTP 21 installation.
--- Improvements and New Features ---
OTP-15476 Application(s): tools
Remove emacs warnings and added more tests.
Full runtime dependencies of tools-3.0.2: compiler-5.0, erts-9.1,
kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
---------------------------------------------------------------------
--- wx-1.8.6 --------------------------------------------------------
---------------------------------------------------------------------
The wx-1.8.6 application can be applied independently of other
applications on a full OTP 21 installation.
--- Fixed Bugs and Malfunctions ---
OTP-15426 Application(s): wx
Related Id(s): ERL-755
Fixed delayed delete bug which caused wx applications
to crash on Mojave.
Full runtime dependencies of wx-1.8.6: erts-6.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Changes:
3.6.8
=====
Documentation
-------------
- bpo-35089: Remove mention of ``typing.io`` and ``typing.re``. Their types
should be imported from ``typing`` directly.
- bpo-35038: Fix the documentation about an unexisting `f_restricted`
attribute in the frame object. Patch by Stéphane Wirtel
- bpo-35035: Rename documentation for :mod:`email.utils` to
``email.utils.rst``.
- bpo-34967: Use app.add_object_type() instead of the deprecated Sphinx
function app.description_unit()
- bpo-33594: Document ``getargspec``, ``from_function`` and ``from_builtin``
as deprecated in their respective docstring, and include version since
deprecation in DeprecationWarning message.
- bpo-32613: Update the faq/windows.html to use the py command from PEP 397
instead of python.
Changes:
3.7.2
=====
Documentation
-------------
- bpo-35089: Remove mention of ``typing.io`` and ``typing.re``. Their types
should be imported from ``typing`` directly.
- bpo-35038: Fix the documentation about an unexisting `f_restricted`
attribute in the frame object. Patch by Stéphane Wirtel
- bpo-35044: Fix the documentation with the role ``exc`` for the
appropriated exception. Patch by Stéphane Wirtel
- bpo-35035: Rename documentation for :mod:`email.utils` to
``email.utils.rst``.
- bpo-34967: Use app.add_object_type() instead of the deprecated Sphinx
function app.description_unit()
- bpo-11233: Create availability directive for documentation. Original
patch by Georg Brandl.
- bpo-33594: Document ``getargspec``, ``from_function`` and ``from_builtin``
as deprecated in their respective docstring, and include version since
deprecation in DeprecationWarning message.
- bpo-32613: Update the faq/windows.html to use the py command from PEP 397
instead of python.
Python 3.7.2 final
Library
- bpo-31715: Associate .mjs file extension with application/javascript MIME Type.
Build
- bpo-35499: make profile-opt no longer replaces CFLAGS_NODIST with CFLAGS. It now adds profile-guided optimization (PGO) flags to CFLAGS_NODIST: existing CFLAGS_NODIST flags are kept.
- bpo-35257: Avoid leaking the linker flags from Link Time Optimizations (LTO) into distutils when compiling C extensions.
C API
- bpo-35259: Conditionally declare Py_FinalizeEx() (new in 3.6) based on Py_LIMITED_API.
Python 3.7.2 release candidate 1
Security
- bpo-34812: The -I command line option (run Python in isolated mode) is now also copied by the multiprocessing and distutils modules when spawning child processes. Previously, only -E and -s options (enabled by -I) were copied.
- bpo-34791: The xml.sax and xml.dom.domreg no longer use environment variables to override parser implementations when sys.flags.ignore_environment is set by -E or -I arguments.
Core and Builtins
- bpo-35444: Fixed error handling in pickling methods when fail to look up builtin “getattr”.
- bpo-35436: Fix various issues with memory allocation error handling. Patch by Zackery Spytz.
- bpo-35357: Internal attributes’ names of unittest.mock._Call and unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with _mock_ in order to prevent clashes with widely used object attributes. Fixed minor typo in test function name.
- bpo-35372: Fixed the code page decoder for input longer than 2 GiB containing undecodable bytes.
- bpo-35336: Fix PYTHONCOERCECLOCALE=1 environment variable: only coerce the C locale if the LC_CTYPE locale is “C”.
- bpo-33954: For str.format(), float.__format__() and complex.__format__() methods for non-ASCII decimal point when using the “n” formatter.
- bpo-35269: Fix a possible segfault involving a newly-created coroutine. Patch by Zackery Spytz.
- bpo-35214: Fixed an out of bounds memory access when parsing a truncated unicode escape sequence at the end of a string such as '\N'. It would read one byte beyond the end of the memory allocation.
- bpo-35214: The interpreter and extension modules have had annotations added so that they work properly under clang’s Memory Sanitizer. A new configure flag –with-memory-sanitizer has been added to make test builds of this nature easier to perform.
- bpo-35193: Fix an off by one error in the bytecode peephole optimizer where it could read bytes beyond the end of bounds of an array when removing unreachable code. This bug was present in every release of Python 3.6 and 3.7 until now.
- bpo-29341: Clarify in the docstrings of os methods that path-like objects are also accepted as input parameters.
- bpo-35050: socket: Fix off-by-one bug in length check for AF_ALG name and type.
- bpo-34974: bytes and bytearray constructors no longer convert unexpected exceptions (e.g. MemoryError and KeyboardInterrupt) to TypeError.
- bpo-34973: Fixed crash in bytes() when the list argument is mutated while it is iterated.
- bpo-34824: Fix a possible null pointer dereference in Modules/_ssl.c. Patch by Zackery Spytz.
- bpo-1621: Do not assume signed integer overflow behavior (C undefined behavior) when performing set hash table resizing.
Library
- bpo-35052: Fix xml.dom.minidom cloneNode() on a document with an entity: pass the correct arguments to the user data handler of an entity.
- bpo-35330: When a Mock instance was used to wrap an object, if side_effect is used in one of the mocks of it methods, don’t call the original implementation and return the result of using the side effect the same way that it is done with return_value.
- bpo-34172: Revert the fix for this issue previously released in 3.7.1 pending further investigation: Fix a reference issue inside multiprocessing.Pool that caused the pool to remain alive if it was deleted without being closed or terminated explicitly.
- bpo-10496: posixpath.expanduser() now returns the input path unchanged if the HOME environment variable is not set and the current user has no home directory (if the current user identifier doesn’t exist in the password database). This change fix the site module if the current user doesn’t exist in the password database (if the user has no home directory).
- bpo-35310: Fix a bug in select.select() where, in some cases, the file descriptor sequences were returned unmodified after a signal interruption, even though the file descriptors might not be ready yet. select.select() will now always return empty lists if a timeout has occurred. Patch by Oran Avraham.
- bpo-35380: Enable TCP_NODELAY on Windows for proactor asyncio event loop.
- bpo-35341: Add generic version of collections.OrderedDict to the typing module. Patch by Ismo Toijala.
- bpo-35371: Fixed possible crash in os.utime() on Windows when pass incorrect arguments.
- bpo-27903: Fix ResourceWarning in platform.dist() on SuSE and Caldera OpenLinux. Patch by Ville Skyttä.
- bpo-35308: Fix regression in webbrowser where default browsers may be preferred over browsers in the BROWSER environment variable.
- bpo-28604: locale.localeconv() now sets temporarily the LC_CTYPE locale to the LC_MONETARY locale if the two locales are different and monetary strings are non-ASCII. This temporary change affects other threads.
- bpo-35277: Update ensurepip to install pip 18.1 and setuptools 40.6.2.
- bpo-35226: Recursively check arguments when testing for equality of unittest.mock.call objects and add note that tracking of parameters used to create ancestors of mocks in mock_calls is not possible.
- bpo-29564: The warnings module now suggests to enable tracemalloc if the source is specified, the tracemalloc module is available, but tracemalloc is not tracing memory allocations.
- bpo-35189: Modify the following fnctl function to retry if interrupted by a signal (EINTR): flock, lockf, fnctl
- bpo-35062: Fix incorrect parsing of _io.IncrementalNewlineDecoder’s translate argument.
- bpo-35079: Improve difflib.SequenceManager.get_matching_blocks doc by adding ‘non-overlapping’ and changing ‘!=’ to ‘<’.
- bpo-35017: socketserver.BaseServer.serve_forever() now exits immediately if it’s shutdown() method is called while it is polling for new events.
- bpo-31047: Fix ntpath.abspath regression where it didn’t remove a trailing separator on Windows. Patch by Tim Graham.
- bpo-34794: Fixed a leak in Tkinter when pass the Python wrapper around Tcl_Obj back to Tcl/Tk.
- bpo-35008: Fixed references leaks when call the __setstate__() method of xml.etree.ElementTree.Element in the C implementation for already initialized element.
- bpo-23420: Verify the value for the parameter ‘-s’ of the cProfile CLI. Patch by Robert Kuska
- bpo-33947: dataclasses now handle recursive reprs without raising RecursionError.
- bpo-16965: The 2to3 execfile fixer now opens the file with mode 'rb'. Patch by Zackery Spytz.
- bpo-34966: pydoc now supports aliases not only to methods defined in the end class, but also to inherited methods. The docstring is not duplicated for aliases.
- bpo-34941: Methods find(), findtext() and findall() of the Element class in the xml.etree.ElementTree module are now able to find children which are instances of Element subclasses.
- bpo-34936: Fix TclError in tkinter.Spinbox.selection_element(). Patch by Juliette Monsel.
- bpo-34866: Adding max_num_fields to cgi.FieldStorage to make DOS attacks harder by limiting the number of MiniFieldStorage objects created by FieldStorage.
- bpo-34022: The SOURCE_DATE_EPOCH environment variable no longer overrides the value of the invalidation_mode argument to py_compile.compile(), and determines its default value instead.
- bpo-34738: ZIP files created by distutils will now include entries for directories.
- bpo-31177: Fix bug that prevented using reset_mock on mock instances with deleted attributes
- bpo-34536: Enum._missing_: raise ValueError if None returned and TypeError if non-member is returned.
- bpo-34604: Fix possible mojibake in the error message of pwd.getpwnam and grp.getgrnam using string representation because of invisible characters or trailing whitespaces. Patch by William Grzybowski.
- bpo-34574: OrderedDict iterators are not exhausted during pickling anymore. Patch by Sergey Fedoseev.
- bpo-34052: sqlite3.Connection.create_aggregate(), sqlite3.Connection.create_function(), sqlite3.Connection.set_authorizer(), sqlite3.Connection.set_progress_handler() methods raises TypeError when unhashable objects are passed as callable. These methods now don’t pass such objects to SQLite API. Previous behavior could lead to segfaults. Patch by Sergey Fedoseev.
- bpo-29877: compileall: import ProcessPoolExecutor only when needed, preventing hangs on low resource platforms
- bpo-22005: Implemented unpickling instances of datetime, date and time pickled by Python 2. encoding='latin1' should be used for successful decoding.
Python 3.6.8 final
Library
- bpo-31715: Associate .mjs file extension with application/javascript MIME Type.
Build
- bpo-35499: make profile-opt no longer replaces CFLAGS_NODIST with CFLAGS. It now adds profile-guided optimization (PGO) flags to CFLAGS_NODIST: existing CFLAGS_NODIST flags are kept.
- bpo-35257: Avoid leaking the linker flags from Link Time Optimizations (LTO) into distutils when compiling C extensions.
C API
- bpo-35259: Conditionally declare Py_FinalizeEx() (new in 3.6) based on Py_LIMITED_API.
Python 3.6.8 release candidate 1
Security
- bpo-34812: The -I command line option (run Python in isolated mode) is now also copied by the multiprocessing and distutils modules when spawning child processes. Previously, only -E and -s options (enabled by -I) were copied.
- bpo-34791: The xml.sax and xml.dom.domreg no longer use environment variables to override parser implementations when sys.flags.ignore_environment is set by -E or -I arguments.
Core and Builtins
- bpo-35444: Fixed error handling in pickling methods when fail to look up builtin “getattr”.
- bpo-35436: Fix various issues with memory allocation error handling. Patch by Zackery Spytz.
- bpo-35357: Internal attributes’ names of unittest.mock._Call and unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with _mock_ in order to prevent clashes with widely used object attributes. Fixed minor typo in test function name.
- bpo-35372: Fixed the code page decoder for input longer than 2 GiB containing undecodable bytes.
- bpo-33954: For str.format(), float.__format__() and complex.__format__() methods for non-ASCII decimal point when using the “n” formatter.
- bpo-35214: Fixed an out of bounds memory access when parsing a truncated unicode escape sequence at the end of a string such as '\N'. It would read one byte beyond the end of the memory allocation.
- bpo-35214: The interpreter and extension modules have had annotations added so that they work properly under clang’s Memory Sanitizer. A new configure flag –with-memory-sanitizer has been added to make test builds of this nature easier to perform.
- bpo-35193: Fix an off by one error in the bytecode peephole optimizer where it could read bytes beyond the end of bounds of an array when removing unreachable code. This bug was present in every release of Python 3.6 until now.
- bpo-29341: Clarify in the docstrings of os methods that path-like objects are also accepted as input parameters.
- bpo-35050: socket: Fix off-by-one bug in length check for AF_ALG name and type.
- bpo-34974: bytes and bytearray constructors no longer convert unexpected exceptions (e.g. MemoryError and KeyboardInterrupt) to TypeError.
- bpo-34973: Fixed crash in bytes() when the list argument is mutated while it is iterated.
- bpo-34824: Fix a possible null pointer dereference in Modules/_ssl.c. Patch by Zackery Spytz.
- bpo-1621: Do not assume signed integer overflow behavior (C undefined behavior) when performing set hash table resizing.
Library
- bpo-35052: Fix xml.dom.minidom cloneNode() on a document with an entity: pass the correct arguments to the user data handler of an entity.
- bpo-35330: When a Mock instance was used to wrap an object, if side_effect is used in one of the mocks of it methods, don’t call the original implementation and return the result of using the side effect the same way that it is done with return_value.
- bpo-34172: Revert the fix for this issue previously released in 3.6.7 pending further investigation: Fix a reference issue inside multiprocessing.Pool that caused the pool to remain alive if it was deleted without being closed or terminated explicitly.
- bpo-10496: posixpath.expanduser() now returns the input path unchanged if the HOME environment variable is not set and the current user has no home directory (if the current user identifier doesn’t exist in the password database). This change fix the site module if the current user doesn’t exist in the password database (if the user has no home directory).
- bpo-35310: Fix a bug in select.select() where, in some cases, the file descriptor sequences were returned unmodified after a signal interruption, even though the file descriptors might not be ready yet. select.select() will now always return empty lists if a timeout has occurred. Patch by Oran Avraham.
- bpo-35380: Enable TCP_NODELAY on Windows for proactor asyncio event loop.
- bpo-35371: Fixed possible crash in os.utime() on Windows when pass incorrect arguments.
- bpo-27903: Fix ResourceWarning in platform.dist() on SuSE and Caldera OpenLinux. Patch by Ville Skyttä.
- bpo-28604: locale.localeconv() now sets temporarily the LC_CTYPE locale to the LC_MONETARY locale if the two locales are different and monetary strings are non-ASCII. This temporary change affects other threads.
- bpo-35277: Update ensurepip to install pip 18.1 and setuptools 40.6.2.
- bpo-35226: Recursively check arguments when testing for equality of unittest.mock.call objects and add note that tracking of parameters used to create ancestors of mocks in mock_calls is not possible.
- bpo-35189: Modify the following fnctl function to retry if interrupted by a signal (EINTR): flock, lockf, fnctl
- bpo-35062: Fix incorrect parsing of _io.IncrementalNewlineDecoder’s translate argument.
- bpo-35079: Improve difflib.SequenceManager.get_matching_blocks doc by adding ‘non-overlapping’ and changing ‘!=’ to ‘<’.
- bpo-35017: socketserver.BaseServer.serve_forever() now exits immediately if it’s shutdown() method is called while it is polling for new events.
- bpo-31047: Fix ntpath.abspath regression where it didn’t remove a trailing separator on Windows. Patch by Tim Graham.
- bpo-34794: Fixed a leak in Tkinter when pass the Python wrapper around Tcl_Obj back to Tcl/Tk.
- bpo-35008: Fixed references leaks when call the __setstate__() method of xml.etree.ElementTree.Element in the C implementation for already initialized element.
- bpo-23420: Verify the value for the parameter ‘-s’ of the cProfile CLI. Patch by Robert Kuska
- bpo-16965: The 2to3 execfile fixer now opens the file with mode 'rb'. Patch by Zackery Spytz.
- bpo-34966: pydoc now supports aliases not only to methods defined in the end class, but also to inherited methods. The docstring is not duplicated for aliases.
- bpo-34941: Methods find(), findtext() and findall() of the Element class in the xml.etree.ElementTree module are now able to find children which are instances of Element subclasses.
- bpo-34936: Fix TclError in tkinter.Spinbox.selection_element(). Patch by Juliette Monsel.
- bpo-34900: Fixed unittest.TestCase.debug() when used to call test methods with subtests. Patch by Bruno Oliveira.
- bpo-34866: Adding max_num_fields to cgi.FieldStorage to make DOS attacks harder by limiting the number of MiniFieldStorage objects created by FieldStorage.
- bpo-34738: ZIP files created by distutils will now include entries for directories.
- bpo-31177: Fix bug that prevented using reset_mock on mock instances with deleted attributes
- bpo-34604: Fix possible mojibake in the error message of pwd.getpwnam and grp.getgrnam using string representation because of invisible characters or trailing whitespaces. Patch by William Grzybowski.
- bpo-34574: OrderedDict iterators are not exhausted during pickling anymore. Patch by Sergey Fedoseev.
- bpo-34052: sqlite3.Connection.create_aggregate(), sqlite3.Connection.create_function(), sqlite3.Connection.set_authorizer(), sqlite3.Connection.set_progress_handler() methods raises TypeError when unhashable objects are passed as callable. These methods now don’t pass such objects to SQLite API. Previous behavior could lead to segfaults. Patch by Sergey Fedoseev.
- bpo-29877: compileall: import ProcessPoolExecutor only when needed, preventing hangs on low resource platforms
- bpo-22005: Implemented unpickling instances of datetime, date and time pickled by Python 2. encoding='latin1' should be used for successful decoding.
0.3.1:
- Bugfixes in the diff parser and keyword-only arguments
0.3.0:
- Rewrote the pgen2 parser generator.
0.2.1:
- A bugfix for the diff parser.
- Grammar files can now be loaded from a specific path.
0.2.0:
- f-strings are now parsed as a part of the normal Python grammar. This makes
it way easier to deal with them.
0.1.1:
- Fixed a few bugs in the caching layer
- Added support for Python 3.7
Pkgsrc changes:
* Sadly, I had to reinstate the "make tar files" rust code to make
it possible to build cross-compiled bootstrap kits.
* Add an adjustable "BUILD_TARGET", "dist" for cross-building
a bootstrap kit, "build" for a normal native build.
* New bootstrap kits built for NetBSD/powerpc, NetBSD/earmv7hf,
and NetBSD/sparc64 version 1.31.1.
* gcc-wrap script amended to also drop -Wl,--enable-new-dtags
(so it could be used outside pkgsrc)
* Worked around use of AtomicU64 in release build tool (ugly band-aid patch).
Some platforms lack support for that type and associated operations.
Upstream changes:
- [Fix Rust failing to build on `powerpc-unknown-netbsd`][56562]
- [Fix broken go-to-definition in RLS][rls/1171]
- [Fix infinite loop on hover in RLS][rls/1170]
[56562]: https://github.com/rust-lang/rust/pull/56562
[rls/1171]: https://github.com/rust-lang/rls/issues/1171
[rls/1170]: https://github.com/rust-lang/rls/pull/1170
CHICKEN is a Scheme-to-C compiler supporting most of the language
features as defined in the Revised^5 Report on Scheme. CHICKEN
generates quite portable C code, and files compiled by it (including
itself) should work without any changes on most platforms.
The whole package is distributed under a BSD license and as such free
to use and modify as long as you adhere to its terms (see the manual).
Linkage to C modules and C-library functions is straightforward, so
it's easy to access C from Scheme. Compiled code can be embedded into
existing C programs without problems. The generated code supports
full tail-recursion, first-class continuations, multiple values and
dynamic-wind.
Changes since chicken-4.13.0:
5.0.0
-----
- Runtime system
- Added support for the full numeric tower, including various new
procedures taken from the "numbers" egg. All calculations will
now return exact numbers where possible, so code relying on flonums
being returned may need to be changed if rational numbers do not
provide the desired performance.
- Port directionality has been generalized from a simple input/output
flag to a bitmap, to allow for multidirectional ports.
- Weak symbol GC is faster, simpler, and can now collect all
unreferenced symbols instead of a maximum of 997 per major GC.
- The -:w option has been removed; symbols are now always collected.
- Increased the "binary compatibility version" to 9.
- Continuations which discard additional values beyond the first now
also accept multiple values via direct invocation after being
captured through `call/cc`, not just via `values` (#1390)
- Removed the deprecated C_locative_ref and C_mutate2 C functions.
- The trace buffer no longer holds on to thread objects, allowing them to
be garbage collected sooner (#1356, thanks to Kristian Lein-Mathisen)
- On Cygwin and MinGW, the "build-platform" now corresponds to the
tool chain used (gnu, clang, unknown) like on *nix, while the
software-version is now "cygwin" or "mingw32" instead of "unknown".
This also means the features list will now contain the tool chain
on all platforms.
- Symbols starting with #% are no longer treated specially and need
to be quoted with pipes. This makes the "%" sign available for use
in custom/user-defined sharp-sign read syntax.
- Compiler
- Fixed an off by one allocation problem in generated C code for (list ...).
- The "-scrutinize" compiler option has been removed.
- The "-module" compiler option (aliased as "-m") now expects a module name.
- The generated C output of the compiler is now deterministic: it
will be bit-for-bit identical when compiling the same Scheme file
with the same version of the compiler.
- the "-consult-type-file" and "-emit-type-file" options have been renamed
to "-consult-types-file" and "-emit-types-file", respectively.
- Tools
- The new "-link" option to csc allows linking with objects from extensions.
- The new "-libdir" option to csc allows overriding the runtime library
directory.
- The ambiguous "-l<libname>" option for csc has been removed (#1193).
- Removed deprecated "-n" shorthand for "-emit-inline-file" from csc.
- Removed "chicken-bug" tool.
- Core libraries
- Removed support for memory-mapped files (posix), queues
(data-structures), binary-search (data-structures), scan-input-lines
(utils), group-information (posix) object-eviction (lolevel), and
compile-file (utils). These are now available as eggs.
- Removed the srfi-1, srfi-13, srfi-14, srfi-18, srfi-69, and utils
units. These are now available as eggs.
- Added the `executable-pathname` procedure for retrieving a path to
the currently-running executable.
- Removed all support for SWIG.
- Removed interrupts-enabled declaration specifier.
- `sleep` now suspends the current thread when threading is enabled,
otherwise it sleeps the process. The new `process-sleep` procedure
in unit posix can be used to sleep the process unconditionally.
- `with-error-output-to-port' from the ports module has been renamed
to the more common `with-error-to-port', and `with-error-to-string'
has been added for completeness (thanks to Michael Silver).
- A new `make-bidirectional-port' procedure has been added to the
ports unit that will combine separate input- and output- ports into
a single bidirectional port.
- New `input-port-open?` and `output-port-open?` procedures have been
added for testing whether a port is open in a specific direction.
- An `include-relative` form has been added to the (chicken base) module.
This works like `load-relative` but for textual inclusion.
- Keywords are now always written in "portable" style by WRITE, so
that the reader's keyword style doesn't need to match the writer's.
- The environment variable `CHICKEN_PREFIX` has been removed.
- Added the `glob->sre` procedure to the irregex library.
- Removed the `get-host-name' and `system-information' procedures.
These are available in the "system-information" egg.
- Removed the `eval-when`, `select` and `ensure` macros. These are
available in the "miscmacros" egg.
- Removed the require-extension-for-syntax macro.
- Renamed bit-set? to bit->boolean because of swapped argument order
with respect to SRFI-33 and SRFI-60, which was confusing (fixes
#1385, thanks to Lemonboy).
- file-{read,write,execute}-access will now raise an exception when
the file doesn't exist or some other non-access related problem is
detected (fixes#1386, thanks to Vasilij Schneidermann).
- `change-file-mode` was renamed to set-file-permissions! and SRFI-17
generalized set! support has been added for `file-permissions`.
This procedure now also accepts a file descriptor or a port.
- `file-permissions` now returns one value: the permission integer.
- `read-file` has been renamed to `read-list`.
- `read-all` was dropped, as `read-string` with #f as its NUM argument
is equivalent.
- `read-lines` and `read-all` no longer accept a string naming a file,
only ports.
- The procedures for random numbers have been reimplemented;
access to system-specific entropy is available, together with a reasonably
good pseudo random number generator (WELL512).
- `glob` now returns an empty list for non-existent or inaccessible
directories, instead of erroring out.
- `file-copy' and `file-move' have been renamed to `copy-file' and
`move-file', for consistency with `delete-file' and `rename-file'.
- `rename-file' now refuses to overwrite an existing file unless an
optional "clobber" argument is provided.
- The `r4rs` module no longer exports `eval`, which was not in R4RS.
- `process`, `process*` and `process-execute` now expect lists of the form
(("NAME" . "VALUE") ...) instead of the previous (("NAME=VALUE") ...)
as their environment argument.
- `repository-path` is now a parameter containing a list of strings instead
of a string, as the search path for libraries can now contain multiple
directories.
- `file-read-access?`, `file-write-access?` and `file-execute-access?` have
been renamed `file-readable?`, `file-writable?` and `file-executable?`
into the (chicken file) module.
- Module system
- The compiler has been modularised, for improved namespacing. This
means names from the compiler should not leak out into the compiled
program's (macro) namespace anymore.
- The core units have been converted to modules under the "chicken"
namespace.
- Added support for list-style library names.
- The "use" and "use-for-syntax" special forms have been removed
in favor of "import" and "import-for-syntax" to reduce confusion.
- Module imports are now lexically scoped: identifiers provided by
an (import ...) inside (let ...) won't be visible outside that let.
- Modules implementing an interface can now correctly export extra
identifiers (bug reported by Martin Schneeweis, fix by "megane").
- Syntax expander
- Removed support for (define-syntax (foo e r c) ...), which was
undocumented and not officially supported anyway.
- Removed support for normal "lambda" forms as syntax transformers,
which has been deprecated since 4.8.0.
- define and friends are now aggressively rejected in "expression
contexts" (i.e., anywhere but toplevel or as internal defines).
- define-record and define-record-type now create record types
which are tagged with the module in which they're defined, so
predicates no longer return #t for records with the same tag
defined in another module. This tag is now also available under
an identifier that matches the record type name (fixes#1342).
- `include` now splices included expressions in the context in which
the inclusion appears and does not treat the expressions as toplevel
expressions by default.
- Eggs management
- Egg-installation and building has been completely overhauled.
- .meta + .setup files have been merged into a single declarative
".egg" file.
- More static checks for egg descriptions, simplified generation
of OS-specific build + install commands that is (hopefully)
more practical for package maintainers.
- Egg sources are cached locally to reduce download and rebuild
times.
- Dropped many obscure or unimportant options and features from
`chicken-install`: (`-keep-installed`, `-reinstall`, `-proxy`,
`-no-install`, `-username`, `-password`, `-init`, `-deploy`,
`-keep-going`, `-scan`, `-csi`, `-show-depends`, `-show-foreign-depends`,
`-prefix`.
- Added new "-from-list" option to chicken-install.
- Eggs can now be installed and located in multiple directories,
using the `CHICKEN_REPOSITORY_PATH` +
`CHICKEN_INSTALL_REPOSITORY`
environment variables.
- Static compilation of eggs is now fully supported and static
versions of compiled eggs are available by default.
- In a statically built chicken, the egg-tools ("chicken-install", "...-status",
"...-uninstall") are still available, but only support static compilation
of eggs.
- Foreign function interface
- The foreign type specifier "ssize_t" is now accepted, and "size_t"
arguments now only accept positive integers. Return values of
type size_t are no longer truncated on 32-bit platforms.