v1.11.3
1. Enhancements
Elixir
[Macro] Add Macro.unique_var/2 and Macro.generate_unique_arguments/2
2. Bug fixes
Elixir
[Code] Do not raise when checking for operator ambiguity when :static_atoms_encoder is set in Code.string_to_quoted
[Kernel] Emit undefined function warnings from with
[Kernel] Do not fail type checking when literals are used in guards
[Module] Do not warn for attributes used in @after_compile
[Record] Make sure nested record names do not clobber each other
ExUnit
[ExUnit.Assertions] Do not crash if there are macros and module attributes on the left side of ++
IEx
[IEx.Helpers] Do not use Unicode chars if ANSI is disabled
Mix
[mix deps.compile] Fix compatibility with rebar v3.14
[mix release] Do not use private ram_file:compress/1
[mix xref] Do not crash when retrieving calls for modules in memory
- forstdin QoL changes: now it exits 1 if it doesn't read anything,
and it only splits on newlines by default.
- forbacktickx, which is a wrapper to forstdin, gets the same changes.
- Line-processing binaries now chomp by default. Substitution
binaries do not.
- New -N option everywhere to disable chomping.
- New "default" directive to trap, replacing the irrelevant "timeout".
Add RUBYGEM_VERBOSE user-settable variable. It is useful for developers.
RUBYGEM_VERBOSE
Execute gem with verbose option.
Possible values: Yes No
Default: No
Passing LDFLAGS verbatim no longer works, prefix each of them with -ccopt,
this seems to work across more ocaml binaries than -ldopt.
Tested across a number of packages that previously failed.
New in 2020.12:
* Removals:
+ Deprecated method candidates (subbuf(Any:U) on Buf, chdir(Str(), :$!test) on IO::Path)
and indir(IO() $path, &what, :$test!) subroutine candidate that were
throwing an exception instead of a deprecation warning for a long time
were removed from CORE [9040318]
* Additions:
+ Add new method deterministic to Iterator role [87fc041][b83b1b3][
b63c0e0][c37a88e][96285af]
+ Introduce %*SUB-MAIN-OPTS<coerce-allomorphs-to> setting [bd5eba4][
49eecd6]
+ Add a new candidate to spurt routine and method.
It does not have an argument taking content to write,
making it similar to the touch utility [f2ea0a6]
+ Add :emit-on-empty and :emit-once-on-empty methods to Supply.batch
method [cb8eb68]
+ Add :emit-timed to Supply.batch method [492651e]
+ Make is DEPRECATED trait introspectable on Routine instances [0d1c8a8]
* Changes:
+ Improve output of Attribute documentation when rendered with
Pod::To::Text [a0a8a51]
+ Increase sensitivity of Supply.batch(:seconds) x 1000 [aecfc9b]
+ The cas subroutine now accepts Mu as both its target and values [
998cae5]
+ Defined List instances no longer return True when calling ACCEPT
with an undefined List (i.e. List ~~ () returns False now) [9fd79f9]
+ Mark the base native array class as Positional [d1d2546]
* Efficiency:
+ Implement metamodel transparency of nominalizables and fix handling of
definite parameters, gaining back some performance loss introduced with
the new coercion protocol in previous release
[d37906d][ed16d6c][b5465b1][e481619]
+ Fix a shaped array performance problem [f27e212]
+ Make execution of some kinds of when faster [c080e59][0006475][b3a2558]
+ Make cas subroutine ~10% faster [484f870]
+ Make @a[*-1] candidates about 60% faster [2d5d3bf]
+ Optimize some array operators [4ac0f73]
+ Make array access [$i] with $i being a native int about 2x as fast [
7c0956b]
+ Improve the performance of signature binding [b1f59a2]
+ Speed up various aspects of native 1-dim shaped arrays and
native arrays in general
[42fceb0][2c5b545][3def3ce][705e6e6][a76e2b6][60fa48e]
[6792cc4][bd944e7][2274aa8][392d8be][1c43c46]
* Fixes:
+ Fix number of issues with REPL execution. e.g. it "forgetting" previous
multi sub declarations, calling WHAT on native type
[7c0a81f][eae309a][e46a1da][f2851b9][e8ab527][0d6278f]
[6f7718c][be45507]
+ Fix roles not being auto-punned for postcifcumfix:<( )>, by
implementing an invocation protocol for roles [79d2aea]
[5a22a7c][77a7bd2][17223fc][4009f40][538ad1b][9f98595]
+ Fix concurrency issue in compilations with heredocs [147bae3]
+ Fix subsets of coercions [af43ef6]
+ Fix an issue with splitdir method of IO::Spec::Unix
leading to action at a distance bugs [3d46341][f154244]
+ Fix argument of a coercion type not having a workable default value
[44cc88b][856dfb2]
+ Fix error reporting for slurpy named parameters with type constraints [
e1f09cf]
+ Fix behavior of postcircumfix [ ] called with Iterable on
native array [4304e25]
+ Disallow calling of postcircumfix [ ] with type objects [6c7044e]
+ Fix a bug in set symmetric difference logic [7b6de5c]
+ Make Num coercer demand definite invocant [a75b3fa]
+ Add missing handling of adverbs :kv, :p, :k, :v for
1-dim shaped native arrays, also support many adverbs at once
(e.g. :exists:(kv|p) [0f4970d][02e48d8]
+ Give stub packages created by package_at_key a proper longname [aab4f55
]
+ Fix raku method called on CompUnit::Repository::Distribution instance [
7d0813c]
+ Fix proper reporting of the X::Parameter::RW exception message [1732054
]
+ Fix RAKUDO_MODULE_DEBUG output when the message contains meta
characters [b58510f]
+ The Test module now correctly handles RAKU_TEST_TIMES environment
variable,
previously called PERL6_TEST_TIMES [d84ed4e]
* Internal:
+ Remove deprecated functionality to core epilogue [7406f8c]
+ Introduce Rakudo::Iterator.TailWith [f6c7ddb][9dbb52f]
+ Add sink-all method to a number of PredictiveIterators [cf0f2f2]
+ Make Iterator.sink-all default to using skip-one [f0ebdd0]
+ Add raku method to Rakudo::Internals::IterationSet for easier debugging
[0d301fa]
+ Remove all easily removable nqp::stmts from Rakudo code [f2f2cf8]
+ Another round of nqp::if -> ternaries [aba90b0]
+ Fix unwanted references to other compilations by CompilerServices [
d0de766]
+ Type IO::Socket::INET family/type/protocol values [534cc54]
+ Add missing debug type names for easier debugging [a68b8ab]
+ Move "is test-assertion" to candidates [15ec4fe]
+ Adapt filenames in binary release scripts [3748884]
+ Various cleanup and micro-optimization changes [1801a5a]
[eabdee4][45246ae][6852f40][dce6804][c663cc3][1712f03]
[b525c4d][6ee47f0][912381b][2ce5260][80f9283][161325e]
[65f24a8][c02c9cd][46e9468][82d31e0][137d49b][53ad24a]
[1331ffd][c4c4ba9]
Version 10.23.1 'Dubnium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8265: use-after-free in TLSWrap (High) Affected Node.js versions are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits
CVE-2020-8287: HTTP Request Smuggling in nodejs Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html).
CVE-2020-1971: OpenSSL - EDIPARTYNAME NULL pointer de-reference (High) This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in https://www.openssl.org/news/secadv/20201208.txt
Version 12.20.1 'Erbium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8265: use-after-free in TLSWrap (High) Affected Node.js versions are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits
CVE-2020-8287: HTTP Request Smuggling in nodejs Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html).
CVE-2020-1971: OpenSSL - EDIPARTYNAME NULL pointer de-reference (High) This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in https://www.openssl.org/news/secadv/20201208.txt
Version 14.15.4 'Fermium' (LTS)
Notable Changes
Vulnerabilities fixed:
CVE-2020-1971: OpenSSL - EDIPARTYNAME NULL pointer de-reference (High)
This is a vulnerability in OpenSSL which may be exploited through Node.js. You can read more about it in https://www.openssl.org/news/secadv/20201208.txt
CVE-2020-8265: use-after-free in TLSWrap (High)
Affected Node.js versions are vulnerable to a use-after-free bug in its TLS implementation. When writing to a TLS enabled socket, node::StreamBase::Write calls node::TLSWrap::DoWrite with a freshly allocated WriteWrap object as first argument. If the DoWrite method does not return an error, this object is passed back to the caller as part of a StreamWriteResult structure. This may be exploited to corrupt memory leading to a Denial of Service or potentially other exploits.
CVE-2020-8287: HTTP Request Smuggling in nodejs (Low)
Affected versions of Node.js allow two copies of a header field in a http request. For example, two Transfer-Encoding header fields. In this case Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling (https://cwe.mitre.org/data/definitions/444.html).
Other OS bundle the necessary libraries with the bootstrap kits, and enabling
this option would mean having to carry additional patches for the bundled zlib
etc.
Camlp5 Version 7.13:
--------------------
* [03 Sep 20] Support for Ocaml 4.11.1.
Camlp5 Version 7.12:
--------------------
* [29 Apr 20] upgrade to minimal support for Ocaml 4.11.0
(specifically 4.11.0+dev2-2020-04-22). This does not provide
support for any new stuff in 4.11.0; indeed, stuff may break. This
is just minimal "build and bootstrap" support.
Python 3.8.7
Core and Builtins
bpo-32381: Fix encoding name when running a .pyc file on Windows: PyRun_SimpleFileExFlags() now uses the correct encoding to decode the filename.
bpo-42536: Several built-in and standard library types now ensure that their internal result tuples are always tracked by the garbage collector:
collections.OrderedDict.items()
dict.items()
enumerate()
functools.reduce()
itertools.combinations()
itertools.combinations_with_replacement()
itertools.permutations()
itertools.product()
itertools.zip_longest()
zip()
Previously, they could have become untracked by a prior garbage collection. Patch by Brandt Bucher.
Library
bpo-42630: tkinter functions and constructors which need a default root window raise now RuntimeError with descriptive message instead of obscure AttributeError or NameError if it is not created yet or cannot be created automatically.
bpo-42644: logging.disable will now validate the types and value of its parameter. It also now accepts strings representing the levels (as does loging.setLevel) instead of only the numerical values.
bpo-36541: Fixed lib2to3.pgen2 to be able to parse PEP-570 positional only argument syntax.
bpo-42375: subprocess module update for DragonFlyBSD support.
bpo-39825: Windows: Change sysconfig.get_config_var('EXT_SUFFIX') to the expected full platform_tag.extension format. Previously it was hard-coded to .pyd, now it is compatible with distutils.sysconfig and will result in something like .cp38-win_amd64.pyd. This brings windows into conformance with the other platforms.
bpo-39101: Fixed tests using IsolatedAsyncioTestCase from hanging on BaseExceptions.
bpo-41907: fix format() behavior for IntFlag
bpo-41889: Enum: fix regression involving inheriting a multiply-inherited enum
bpo-41891: Ensure asyncio.wait_for waits for task completion
bpo-40219: Lowered tkinter.ttk.LabeledScale dummy widget to prevent hiding part of the content label.
bpo-40084: Fix Enum.__dir__: dir(Enum.member) now includes attributes as well as methods.
Documentation
bpo-17140: Add documentation for the multiprocessing.pool.ThreadPool class.
Build
bpo-42604: Now all platforms use a value for the “EXT_SUFFIX” build variable derived from SOABI (for instance in freeBSD, “EXT_SUFFIX” is now “.cpython-310d.so” instead of “.so”). Previosuly only Linux, Mac and VxWorks were using a value for “EXT_SUFFIX” that included “SOABI”.
bpo-42598: Fix implicit function declarations in configure which could have resulted in incorrect configuration checks. Patch contributed by Joshua Root.
Tools/Demos
bpo-42613: Fix freeze.py tool to use the prope config and library directories. Patch by Victor Stinner.
Python 3.8.7 release candidate 1
Security
bpo-42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format.
bpo-42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files.
bpo-40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely.
Core and Builtins
bpo-41686: On Windows, the SIGINT event, _PyOS_SigintEvent(), is now created even if Python is configured to not install signal handlers (if PyConfig.install_signal_handlers equals to 0, or Py_InitializeEx(0)).
bpo-42143: Fix handling of errors during creation of PyFunctionObject, which resulted in operations on uninitialized memory. Patch by Yonatan Goldschmidt.
bpo-41984: The garbage collector now tracks all user-defined classes. Patch by Brandt Bucher.
bpo-41909: Fixed stack overflow in issubclass() and isinstance() when getting the __bases__ attribute leads to infinite recursion.
bpo-41894: When loading a native module and a load failure occurs, prevent a possible UnicodeDecodeError when not running in a UTF-8 locale by decoding the load error message using the current locale’s encoding.
Library
bpo-17735: inspect.findsource() now raises OSError instead of IndexError when co_lineno of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported. PR by Irit Katriel.
bpo-42116: Fix handling of trailing comments by inspect.getsource().
bpo-42482: TracebackException no longer holds a reference to the exception’s traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal.
bpo-42406: We fixed an issue in pickle.whichmodule in which importing multiprocessing could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects.
bpo-42328: Fixed tkinter.ttk.Style.map(). The function accepts now the representation of the default state as empty sequence (as returned by Style.map()). The structure of the result is now the same on all platform and does not depend on the value of wantobjects.
bpo-42014: The onerror callback from shutil.rmtree now receives correct function when os.open fails.
bpo-42237: Fix os.sendfile() on illumos.
bpo-42249: Fixed writing binary Plist files larger than 4 GiB.
bpo-35455: On Solaris, thread_time() is now implemented with gethrvtime() because clock_gettime(CLOCK_THREAD_CPUTIME_ID) is not always available. Patch by Jakub Kulik.
bpo-41754: webbrowser: Ignore NotADirectoryError when calling xdg-settings.
bpo-29566: binhex.binhex() consisently writes macOS 9 line endings.
bpo-42183: Fix a stack overflow error for asyncio Task or Future repr().
The overflow occurs under some circumstances when a Task or Future recursively returns itself.
bpo-42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases).
bpo-41491: plistlib: fix parsing XML plists with hexadecimal integer values
bpo-32498: Clearer exception message when passing an argument of type bytes to urllib.parse.unquote(). This is only for 3.8; in 3.9 and later this function accepts bytes inputs as well. PR by Irit Katriel.
bpo-42065: Fix an incorrectly formatted error from _codecs.charmap_decode() when called with a mapped value outside the range of valid Unicode code points. PR by Max Bernstein.
bpo-41966: Fix pickling pure Python datetime.time subclasses. Patch by Dean Inwood.
bpo-41976: Fixed a bug that was causing ctypes.util.find_library() to return None when triying to locate a library in an environment when gcc>=9 is available and ldconfig is not. Patch by Pablo Galindo
bpo-41900: C14N 2.0 serialisation in xml.etree.ElementTree failed for unprefixed attributes when a default namespace was defined.
bpo-41855: In importlib.metadata, fix issue where multiple children can be returned from FastPath.zip_children(). Backport of python-devs/importlib_metadata#117.
bpo-41840: Fix a bug in the symtable module that was causing module-scope global variables to not be reported as both local and global. Patch by Pablo Galindo.
bpo-41831: str() for the type attribute of the tkinter.Event object always returns now the numeric code returned by Tk instead of the name of the event type.
bpo-41662: No longer override exceptions raised in __len__() of a sequence of parameters in sqlite3 with ProgrammingError.
bpo-41662: Fixed crash when mutate list of parameters during iteration in sqlite3.
bpo-34215: Clarify the error message for asyncio.IncompleteReadError when expected is None.
bpo-41316: Fix the tarfile module to write only basename of TAR file to GZIP compression header.
bpo-12800: Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran.
bpo-16936: Allow ctypes.wintypes to be imported on non-Windows systems.
bpo-40592: shutil.which() now ignores empty entries in PATHEXT instead of treating them as a match.
bpo-40492: Fix --outfile for cProfile / profile not writing the output file in the original directory when the program being profiled changes the working directory. PR by Anthony Sottile.
bpo-40105: ZipFile truncates files to avoid corruption when a shorter comment is provided in append (“a”) mode. Patch by Jan Mazur.
bpo-27321: Fixed KeyError exception when flattening an email to a string attempts to replace a non-existent Content-Transfer-Encoding header.
bpo-32793: Fix a duplicated debug message when smtplib.SMTP.connect() is called.
Documentation
bpo-42153: Fix the URL for the IMAP protocol documents.
bpo-41910: Document the default implementation of object.__eq__.
bpo-41774: In Programming FAQ “Sequences (Tuples/Lists)” section, add “How do you remove multiple items from a list”.
bpo-39416: Document some restrictions on the default string representations of numeric classes.
Tests
bpo-41473: Reenable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1.
bpo-42553: Fix test_asyncio.test_call_later() race condition: don’t measure asyncio performance in the call_later() unit test. The test failed randomly on the CI.
bpo-40754: Include _testinternalcapi module in Windows installer for test suite
bpo-41739: Fix test_logging.test_race_between_set_target_and_flush(): the test now waits until all threads complete to avoid leaking running threads.
bpo-41944: Tests for CJK codecs no longer call eval() on content received via HTTP.
bpo-41939: Fix test_site.test_license_exists_at_url(): call urllib.request.urlcleanup() to reset the global urllib.request._opener. Patch by Victor Stinner.
bpo-41561: test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is not available
bpo-41602: Add tests for SIGINT handling in the runpy module.
bpo-41306: Fixed a failure in test_tk.test_widgets.ScaleTest happening when executing the test with Tk 8.6.10.
Build
bpo-42398: Fix a race condition in “make regen-all” when make -jN option is used to run jobs in parallel. The clinic.py script now only use atomic write to write files. Moveover, generated files are now left unchanged if the content does not change, to not change the file modification time.
Windows
bpo-42120: Remove macro definition of copysign (to _copysign) in headers.
bpo-38439: Updates the icons for IDLE in the Windows Store package.
bpo-41557: Update Windows installer to use SQLite 3.33.0.
bpo-38324: Avoid Unicode errors when accessing certain locale data on Windows.
macOS
bpo-38443: The --enable-universalsdk and --with-universal-archs options for the configure script now check that the specified architectures can be used.
bpo-41471: Ignore invalid prefix lengths in system proxy excludes.
bpo-41557: Update macOS installer to use SQLite 3.33.0.
IDLE
bpo-42426: Fix reporting offset of the RE error in searchengine.
bpo-42415: Get docstrings for IDLE calltips more often by using inspect.getdoc.
bpo-33987: Mostly finish using ttk widgets, mainly for editor, settings, and searches. Some patches by Mark Roseman.
bpo-41775: Use ‘IDLE Shell’ as shell title
bpo-40511: Typing opening and closing parentheses inside the parentheses of a function call will no longer cause unnecessary “flashing” off and on of an existing open call-tip, e.g. when typed in a string literal.
bpo-38439: Add a 256×256 pixel IDLE icon to the Windows .ico file. Created by Andrew Clover. Remove the low-color gif variations from the .ico file.
C API
bpo-41986: Py_FileSystemDefaultEncodeErrors and Py_UTF8Mode are available again in limited API.
Provides a header only, C++11 interface to R's C interface. Compared
to other approaches 'cpp11' strives to be safe against long jumps from
the C API as well as C++ exceptions, conform to normal R function
semantics and supports interaction with 'ALTREP' vectors.
ChangeLog:
2020-12-23 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: version 3.1.2
2020-12-15 Simon Sobisch <simonsobisch@gnu.org>
* configure.ac: fixed use of MPIR_LIBS
This results in a successful build and a js78 executable that runs in
my test environment (the most recent OmniOS release). However, test
suite execution yields an immediate failure with the message "too much
recursion", so it seems more work is still required here.
Version 14.15.3 'Fermium' (LTS)
Notable Changes
Node.js v14.15.2 included a commit that has caused reported breakages when cloning request objects. This release reverts the commit that introduced the behaviour change. See https://github.com/nodejs/node/issues/36550 for more details.
Normally, we would not package beta versions, except maybe in pkgsrc-wip.
This is different though, since 1.16.beta1 is the first Go version supporting
macOS on Apple Silicon.
Discussion about this was on tech-pkg@.
This uses go-1.16.beta1, which is the first (beta) release to natively
support Apple Silicon on macOS.
Discussed and tested on tech-pkg@.
Note that more is missing to be able to use Go 1.16 to build packages on
Darwin/aarch64 (or arm64).
## 1.13.1 - 2020-12-13
- Pretty printing a table with a prototype will look for `:_name` instead of `:name`
in the prototype table to tag the output.
- `match` macro implementation changed to be tail recursive.
- Adds a :preload loader which allows one to manually put things into `module/cache`.
- Add `buffer/push` function.
- Backtick delimited strings and buffers are now reindented based on the column of the
opening delimiter. Whitespace in columns to the left of the starting column is ignored unless
there are non-space/non-newline characters in that region, in which case the old behavior is preserved.
- Argument to `(error)` combinator in PEGs is now optional.
- Add `(line)` and `(column)` combinators to PEGs to capture source line and column.
This should make error reporting a bit easier.
- Add `merge-module` to core.
- During installation and release, merge janetconf.h into janet.h for easier install.
- Add `upscope` special form.
- `os/execute` and `os/spawn` can take streams for redirecting IO.
- Add `:parser` and `:read` parameters to `run-context`.
- Add `os/open` if ev is enabled.
- Add `os/pipe` if ev is enabled.
- Add `janet_thread_current(void)` to C API
- Add integer parsing forms to pegs. This makes parsing many binary protocols easier.
- Lots of updates to networking code - now can use epoll (or poll) on linux and IOCP on windows.
- Add `ev/` module. This exposes a fiber scheduler, queues, timeouts, and other functionality to users
for single threaded cooperative scheduling and asynchronous IO.
- Add `net/accept-loop` and `net/listen`. These functions break down `net/server` into it's essential parts
and are more flexible. They also allow further improvements to these utility functions.
- Various small bug fixes.
Version 12.12.0 (Current)
Notable changes
build:
Add --force-context-aware flag to prevent usage of native node addons that aren't context aware
deprecations:
Add documentation-only deprecation for process._tickCallback()
esm:
Using JSON modules is experimental again
fs:
Introduce opendir() and fs.Dir to iterate through directories
process:
Add source-map support to stack traces by using --enable-source-maps
tls:
Honor pauseOnConnect option
Add option for private keys for OpenSSL engines
Version 14.15.2 'Fermium' (LTS)
Notable Changes
deps:
upgrade npm to 6.14.9
update acorn to v8.0.4
doc: add release key for Danielle Adams
http2: check write not scheduled in scope destructor
stream: fix regression on duplex end
Pkgsrc changes:
- Follow redirects (open-cobol -> gnucobol) for MASTER_SITES and HOMEPAGE
- Add a test target
ChangeLog:
GnuCOBOL 3.1.1 released (20201208)
GnuCOBOL 3.1 released (20201111) had issues that were fixed
* New GnuCOBOL features
** XML GENERATE statement
(note: runtime support needs additional library libxml2)
** JSON GENERATE statement
(note: runtime support needs additional library cJSON or JSON-C)
** CONTINUE AFTER statement (COBOL 202x) implemented, also handle fractions
of seconds in C$SLEEP now
** TYPEDEF and SAME AS (COBOL 2002) implemented, including the MicroFocus
and RM/COBOL variants
** >>TURN (COBOL 2002) directive implemented, allowing some exception checks
to be turned on/off per source as desired
** Improved support for different compiler extensions (ACUCOBOL, IBM,
Fujitsu, MicroFocus COBOL, Microsoft COBOL, RM/COBOL, CA Realia and more)
** file handling: include support for a callable EXTFH interface also provided
by several compilers including Micro Focus
This allows users to insert an external file handler while retaining
all of the normal COBOL I/O functions with a possible callback to libcob.
To have the compiled program call `yourfh()` for file I/O use:
`cobc -fcallfh=yourfh`
In turn `yourfh()` may call `EXTFH()` to use I/O functions from GnuCOBOL.
The external file handler can also be directly invoked from COBOL, too,
using `CALL "EXTFH"`.
** Note: Not each flag contained in the FCD3 is handled already **
** file handling: added support for [RE]WRITE FILE file FROM source
** file handling: name mapping adjusted (improved MF and ACU-compatibility):
entries starting with a period or number are not resolved any more,
periods in the external identifier are always replaced by underscore
-> MY.FILE is resolved by DD_MY_FILE, dd_MY_FILE, MIFILE now;
prefixes "-F " and "-D " are removed from external names;
if filename is not absolute after translation, COB_FILE_PATH is now
still applied;
File name mapping now applies both to COBOL statements and CALLable
CBL_ and C$ file routines.
** Screen I/O: initial mouse support (for details see runtime.cfg),
use of CURSOR clause in SPECIAL-NAMES for positioning on ACCEPT
** on abort a stack trace will be genereated, this can be suppressed by
runtime configuration option COB_STRACK_TRACE
** the dump that is generated on abort (depending on -fdump at compile-time)
was heavily improved and combines consecutive identical OCCURS items,
leading to smaller dump files
** changes in handling COPY statement:
* copybook names that contain an extension aren't searched with additional
extensions [as post-rc1-change this may be set to old behaviour by
defining COB_MULTI_EXTENSION when building GnuCOBOL/cobc]
* library names are now tested for environment "COB_COPY_LIB_libname",
allowing the directory to specified externally (also as no-directory
by exporting with empty value) and has a fallback (with a warning) to
be effectively ignored (as previous versions did this)
* Removed functions
** SCREEN SECTION, REPORT-WRITER module: removed non-standard extension
"LINE / COL signed-integer" (inadvertently available since 2.2/3.0rc1);
which will now raise an error "unsigned integer expected";
if used replace by standard "LINE / COL +/- integer"
* Obsolete features (will be removed in the next version if no explicit user
requests are raised)
** support for Borland C compiler and linker
** -fif-cutoff flag for cobc (currently disabled, see entry below in 3.0rc1)
** old OpenCOBOL-only-EXTFH
* Changes to the COBOL compiler (cobc) options:
** new options:
-f[no]-ec=exception-name to tune the exception checks similar to the >>TURN
directive, you may also leave out the "EC-" prefix here, example to
enable all checks but disable all bound checks but OCCURS DEPENDING ON:
cobc -debug -fno-ec=bound -fec=bound-odo
** adjustments to warning options:
-Wextra "new" option to enable every possible warning that is not dialect
specific (this option used to be called -W)
-Wadditional new warning group for all warnings that don't have a group
on their own
-Wno-error and -Wno-error=<warning> to treat (specific <warning>s) not as error
-Wdangling-text for raising the warning "source text after program area",
not included in -Wall any more
-Wno-ignored-error allows to suppress messages that normally would be an
error and are only allowed because they are never executed
-Wimplicit-define and -Wcorresponding are now enabled by default
-f[no]-diagnostics-show-option, enabled by default, shows the
command line option responsible for the diagnostic message
extra information to a warning (or error) is now marked as "note:"
** the interal Xref got a huge speedup, has all references in ascending order
now and includes the total amount of direct references
** the interal listing got a speedup and has all error references in
ascending order now
** cobc -g (and configure --enable-debug) use the most expressive
debugging options available on the system
** cobc -g now auto-includes references to the COBOL source file and to
all ENTRY and SECTION elements to ease source level debugging
* Changes in the COBOL runtime (libcob)
** Messages from the COBOL runtime are also translated now (if installed).
To prevent this disable translations in general with using the configure
option --disable-nls (or by deactivating ENABLE_NLS in config.h).
** libcob.h does no longer auto-include gmp.h (behavior since 2.x), if you link
against libcob and need cob_decimal include gmp.h/mpir.h yourself before;
otherwise you do not need it in your include path any more
** execution times of INSPECT and INITIALIZE with OCCURS were heavily cut down
** convenience functions for direct C access to COBOL fields and for debugging
were added, see new C-API documentation
** first-time file-locking under Win32
** Breaking change: previously the return-code of registered error handlers
(by CBL_ERROR_PROC) were ignored. This was changed according to the
documentation for CBL_ERROR_PROC -> a RETURN-VALUE of ZERO skips further
error handlers to be called, including the internal one.
* New build features
** Running the internal tests by make check now fails if the testsuite has any
unexpected result.
** The modules and test programs in the NIST COBOL-85 test suite (tests/cobol85)
may now be build and/or tested and/or the test results checked separately.
You now may also run the tests with a previous installed version of GnuCOBOL
(or a version specified by a manual temporary setup).
For details see tests/cobol85/README.
** new configure option --with-math=ARG to specify which math multiple precision
library is to be used, where ARG may be: check (default), gmp, mpir
** new configure options --with-xml2 / -without-xml2 to explicit force/disable
XML runtime support, otherwise it will be included if found as working
** new configure option --with-json / -without-json to explicit force/disable
JSON runtime support, otherwise it will be included if found as working
Note: As a special case you may built-in cJSON by placing its source in
the folder "libcob". If it is included there, this version will be compiled
into libcob. It may be enforced with --with-json=local,
like --with-json=cjson and --with-json=json-c enforce the given library.
** To adjust the build system for GMP/MPIR you may use the new variables
GMP_CFLAGS / MPIR_CFLAGS and GMP_LIBS / MPIR_LIBS.
If unset configure will try pkg-config.
** To adjust configure to use libxml2 you may use the new variables XML2_CFLAGS
and XML2_LIBS. If unset configure will use pkg-config / xml2-config.
** To adjust configure to use libcjson you may use the new variables CJSON_CFLAGS
and CJSON_LIBS, similar JSON_C_CFLAGS and JSON_C_LIBS for libjson-c.
If unset configure will use pkg-config.
** new configure option --enable-hardening to either enable GNU C's
hardening options or leave as-is, or disable (which previous versions
effectively did)
** build system: defaults.h is not created or included any more, all configure
provided defines are now found in the single header config.h
** Any time after `make` you can call `pre-inst-env` script to use the still-
uninstalled binaries. Samples:
pre-inst-env cobc -xj prog.cob
pre-inst-env cobcrun -M prog start
pre-inst-env may also be called without parameters to start a new shell
session with the environment adjusted to use the uninstalled version.
* Too much bug fixes to list here (please check ChangeLogs for full details),
includes the following CVEs:
** compiler (may be triggered with special crafted source files)
CVE-2019-14468, CVE-2019-14486, CVE-2019-14528, CVE-2019-14541,
CVE-2019-16396, CVE-2019-16395
* GnuCOBOL's getopt implementation honors POSIXLY_CORRECT now:
if set to any value the option parsing in cobc, cobcrun and CBL_GC_GETOPT
stops at the first nonoption, otherwise it stays with the old behaviour and
re-orders nonoptions to the end)
* Known issues in 3.1
** testsuite:
* if built with vbisam, cisam or disam, depending on the version used, some
tests will lead to UNEXPECTED PASS, while others may fail
* possibly failing tests (false positives):
* temporary path invalid
* compiler outputs (assembler)
* compile from stdin
* NIST: OBNC1M.CBL false positive (the test runner uses a nonportable way of
emulating a program kill)
** the recent additions of ">> TURN" and "variable LIKE variable" may not work
as expected in all cases
** features that are known to not be portable to every environment yet
(especially when using a different compiler than GCC)
* function with variable-length RETURNING item
* USAGE POINTER, which may need to be manually aligned
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GnuCOBOL 3.0-rc1 released (20180422)
* New GnuCOBOL features
** REPORTWRITER module added
** INDEXED file handling: added support for sparse and split keys
** file handling: added support for [RE]WRITE FILE file FROM source
** DISPLAY ... UPON PRINTER may be redirected to an external command
(new runtime configuration COB_DISPLAY_PRINT_PIPE) or appended to a file
(new runtime configuration COB_DISPLAY_PRINT_FILE, which takes precedence)
** XML GENERATE statement
(note: runtime support needs additional library libxml2)
** JSON GENERATE statement
(note: runtime support needs additional library cJSON)
** Improved support for different compiler extensions (ACUCOBOL, IBM,
Fujitsu, MicroFocus COBOL, Microsoft COBOL, RM/COBOL and more)
** Parser support for many features of different compilers, for example
PIC 1 / USAGE BIT, ACUCOBOL extensions for graphical controls
VALIDATE statement and much more.
Most of them will be fully implemented in a later version...
** Option to dump (partial) data of modules on abort.
Use new cobc option -fdump=<scope> to prepare the module and optional
use new runtime configuration options COB_DUMP_FILE and COB_DUMP_WIDTH
to adjust the dump.
** C interface: new functions cob_set_runtime_option / cob_get_runtime_option
to set/get special runtime options (currently FILE * for trace and printer
output) or to reload the runtime configuration after changing environment
** file handling: include support for a callable EXTFH interface also provided
by several compilers including Micro Focus
This allows users to insert an external file handler while retaining
all of the normal COBOL I/O functions with a possible callback to libcob.
To have the compiled program call `yourfh()` for file I/O use:
`cobc -fcallfh=yourfh`
In turn `yourfh()` may call `EXTFH()` to use I/O functions from GnuCOBOL.
The external file handler can also be directly invoked from COBOL, too,
using `CALL "EXTFH"`.
** Note: Not all flags contained in the FCD3 are handled already **
* Changed cobc options:
** The option -debug (runtime checks) no longer implies -ftrace (option to
trace program flow of the generated module with COB_SET_TRACE).
You may specify -ftrace[all] along -debug if you want to use this feature.
** The option -E (preprocess file) does not imply an output file any more.
If no output file is explicit specified with -o filename.i the output will
be written to stdout (behavior of versions 1.1 is restored).
Requesting output to stdout explicit by using a dash as output name is
also possible.
** Changed options for listing:
The option -tsymbols was replaced by -ftsymbols and therefore can now also
be explicit deactivated by specifying -fno-tsymbols.
New options for suppressing (or explicit requesting) parts of the listing:
-fno-theader suppress all headers from listing while keeping page breaks
-fno-tmessages suppress warning and error summary from listing
-fno-tsource suppress actual source from listing (for example to only
produce the cross-reference)
** The option -fif-cutoff (option to change generated C sources to use
a label + goto for nested if/else) was deactivated to allow the C compiler
to fully control the program flow.
** Please report if you have a need for this option as it will be **
** removed permanently in the next release of GnuCOBOL otherwise. **
* Changes in the COBOL runtime (libcob)
** updated exception handling, GnuCOBOL now only cleans raised exceptions when
requested by SET LAST EXCEPTION TO OFF
** The standard-format for program tracing was changed and is now adjustable
by the runtime configuration option COB_TRACE_FORMAT.
* New build features
** New test suite for manual tests (especially SCREEN I/O),
run with `make checkmanual`.
Note: You may want to adjust the test runner tests/run_prog_manual.sh which
defaults to xterm in GUI environments and screen in terminal environments.
** new configure option --enable-debug-log to allow *internal* tracing
of GnuCOBOL (intended for developers of GnuCOBOL only)
* Too much bug fixes to list here (please check ChangeLogs for full details).
Patches for solaris and friends are reinstated (thanks jperkin@)
Also thanks to he@ for testing on powerpc and arm
Highlights for 4.10.0:
* A new best-fit allocator for the major heap which reducing both GC cost
and memory usage.
* Immutable strings are now enforced at configuration time
* User-defined indexing operators for multidimensional arrays
* Miscellaneous improvements to the manual
* A more precise exhaustiveness check for GADTs
* Many bug fixes
Highlights for 4.11.0:
* Statmemprof: a new statistical memory profiler
* A new instrumented runtime that logs runtime statistics in a standard
format
* A native backend for the RISC-V architecture
* Improved backtraces that refer to function names
* Suppport for recursive and yet unboxed types
* A quoted extension syntax for ppxs.
* Many quality of life improvements
* Many bug fixes.
4.11.1 is a bugfix release. Full details in the CHANGELOG included with
the distribution.
Python 3.9.1 final
Core and Builtins
bpo-42576: types.GenericAlias will now raise a TypeError when attempting to initialize with a keyword argument. Previously, this would cause the interpreter to crash if the interpreter was compiled with debug symbols. This does not affect interpreters compiled for release. Patch by Ken Jin.
Library
bpo-5054: CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed. Replace the special purpose getallmatchingheaders with generic get_all method and add relevant tests.
bpo-17735: inspect.findsource() now raises OSError instead of IndexError when co_lineno of a code object is greater than the file length. This can happen, for example, when a file is edited after it was imported.
bpo-42116: Fix handling of trailing comments by inspect.getsource().
bpo-42487: ChainMap.__iter__ no longer calls __getitem__ on underlying maps
bpo-42482: TracebackException no longer holds a reference to the exception’s traceback object. Consequently, instances of TracebackException for equivalent but non-equal exceptions now compare as equal.
bpo-42406: We fixed an issue in pickle.whichmodule in which importing multiprocessing could change the how pickle identifies which module an object belongs to, potentially breaking the unpickling of those objects.
bpo-34215: Clarify the error message for asyncio.IncompleteReadError when expected is None.
bpo-12800: Extracting a symlink from a tarball should succeed and overwrite the symlink if it already exists. The fix is to remove the existing file or symlink before extraction. Based on patch by Chris AtLee, Jeffrey Kintscher, and Senthil Kumaran.
Tests
bpo-41473: Reenable test_gdb on gdb 9.2 and newer: https://bugzilla.redhat.com/show_bug.cgi?id=1866884 bug is fixed in gdb 10.1.
bpo-42553: Fix test_asyncio.test_call_later() race condition: don’t measure asyncio performance in the call_later() unit test. The test failed randomly on the CI.
macOS
bpo-41116: If no explicit macOS SDK was specified, setup.py should check for Tcl and TK frameworks in /Library/Frameworks; the previous commit inadvertently broke that test.
bpo-42504: Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11
IDLE
bpo-42508: Keep IDLE running on macOS. Remove obsolete workaround that prevented running files with shortcuts when using new universal2 installers built on macOS 11.
On NetBSD, the "thread scheduler" appears to just schedule two
threads out of 4 when all they in essence to is "yield", and not
do round-robin scheduling, causing the test to loop. Reduce the
number of threads in the test to 2.
Bump PKGREVISION.
OK'ed by jaapb@
Changelog:
Bugfixes
* Fixed "dbQuote additional escape regression" (#15560)
* Fixed "[ARC] Finalizer with a do notation proc crashes the compiler" (#
15599)
* Fixed "./koch drnim: git checkout ... fails (invalid git hash)" (#15639)
* Fixed "Testament does not check memory leaks with Valgrind" (#15631)
* Fixed "Templates can't be made discardable" (#13609)
* Fixed "Taking a view of var openArray[T] generates broken C" (#15652)
* Fixed "Regression: parsecsv from newGZFileStream" (#12410)
* Fixed "NimVM generic procs that take anonymous tuples gives nil access
error." (#15662)
* Fixed "net.$ is not printing a zero group smaller than the compressed
group" (#15698)
* Fixed "map, mapIt, filter cause a segfault at compile time in a static
block when passed an inline function" (#15363)
* Fixed "const Table losing object variant data at runtime" (#8007)
* Fixed "regression(1.0.2 => 1.0.4) VM register messed up depending on
unrelated context" (#15704)
* Fixed "VM: nil procvar treated as not nil in VM, causing FieldDefect and
further errors" (#15595)
* Fixed "ICE with sequtils + algorithm (mapIt, sortedByIt) + json " (#10456
)
* Fixed "Size of packed enum of byte is 2 byte; if highest value is 0xFF but
should be 1" (#15752)
* Fixed "OrderedTable.== throws error on empty table: unhandled exception:
index out of bounds..." (#15750)
* Fixed "strictFunc: system & is considered to have side effects under arc
mode" (#15756)
* Fixed "JSON parsing fails for integer values greater than BiggestInt.max
" (#15413)
* Fixed "yet another cmpIgnoreStyle bug" (#7686)
* Fixed "1 mod 0 gives NaN with JS backend" (#7127)
* Fixed "Discarding a dom.Node raises a javascript error" (#15638)
* Fixed "Regression: overriding streams.write(T) does not work on 0.19
anymore" (#9091)
* Fixed "Converter is applied to the first parameter of operator instead of
last" (#9165)
* Fixed "Recursion using concepts crashes compiler" (#8012)
* Fixed "Union types in javascript" (#7658)
* Fixed "Ambiguous call error when it's not" (#7416)
* Fixed "Codegen does not like shadowed parameter" (#7374)
* Fixed "incomplete code generation when using a compile time variable at
run time (undeclared identifier)" (#6036)
* Fixed "Compiler doesn't warn when using {.global.} and {.threadvar.} on
JS backend despite it not working" (#11625)
* Fixed "Discarding output with nested for/if statements" (#14227)
* Fixed "regression: docgen drops enum doc comments" (#15702)
* Fixed "regression(1.0): codegen error with locals" (#12682)
* Fixed "[JS] $ on an enum in an if expression causes bad codegen" (#15651)
* Fixed "Error upon conditional declaration inside a template" (#3670)
* Fixed "Compiler crash when a value in enum is converted to the enum itself
" (#15145)
* Fixed "[AssertionDefect] json.to(type) on object with Option[ref object]
field" (#15815)
* Fixed "Crash with const tuple unpacking" (#15717)
* Fixed "JS codegen can produce extreme switch statements with case a of
range" (#8821)
* Fixed "cannot capture result, produces unhelpful eror" (#15594)
* Fixed "Code that work in 1.2.6, but not 1.4.0" (#15804)
* Fixed "C-backend link failure for let with {.global, compileTime.} pragma
" (#12640)
* Fixed "json.to crashes (SIGSEGV) when object attribute is a JsonNode and
the key is not there" (#15835)
* Fixed "Cannot use custom pragmas in ref object" (#8457)
* Fixed "GC_ref on empty string fails with [GCASSERT] incRef: interiorPtr"
(#10307)
* Fixed "VM segmentation faults with swap" (#15463)
* Fixed "$(s: WideCString) changes result to repr on -gc:arc" (#15663)
* Fixed "unittest.check rejects with a type error, code that Nim otherwise
accepts" (#15618)
* Fixed "Type mismatch on init of static[T] object with T being a static[U]
" (#11142)
* Fixed "sizeof array with static N crash in type section" (#12636)
* Fixed "-gc:arc segfaults when returning result from a proc" (#15609)
* Fixed "Error: 'newHttpHeaders' can have side effects" (#15851)
* Fixed "template that overloads [] accessor does not compile" (#8829)
* Fixed "Simple type definition crash" (#12897)
* Fixed "mapIt from sequtils not working in {.push compile_time.} context"
(#12558)
* Fixed "-gc:arc/orc Error: unhandled exception: 'sym' is not accessible
using discriminant 'kind' of type 'TNode' [FieldDefect]" (#15707)
* Fixed "incorrect type inference with static: Error: ordinal type expected
" (#15858)
* Fixed "constructor causes SIGBUS if a destroy is defined" (#14601)
* Fixed "internal error: getTypeDescAux(tyOr) on sink UnionType argument" (
#15825)
* Fixed "Console apps in Windows can rise OSError" (#15874)
* Fixed "nim doc cannot grok IOSelectorsException" (#12471)
* Fixed "Method dispatch silently breaks on non-ref objects" (#4318)
* Fixed "Cannot take the compile-time sizeof Atomic types" (#12726)
* Fixed "Setting subscript index of cstring is allowed and generates bad
code" (#14157)
* Fixed "Compiler crash using if as an expression with a noreturn branch" (
#15909)
* Fixed "docgen fatal: result[0].kind == nkSym [AssertionDefect]" (#15916)
* Fixed "Iterator for sharedlist won't iterate all items." (#15941)
* Fixed "Embedded templates with iterators fails to compile" (#2771)
* Fixed "C++ Atomics in union: ::::::field with constructor not allowed in
anonymous aggregate" ([#13062](https://github.com/nim-lang/Nim/issues/
13062))
* Fixed "memory corruption in tmarshall.nim" (#9754)
* Fixed "JS backend doesn't handle float->int type conversion " (#8404)
* Fixed "The "try except" not work when the "OSError: Too many open files
" error occurs!" (#15925)
* Fixed "lent gives wrong results with -d:release" (#14578)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "Program SIGSEGV when using '-gc:orc'" (#15753)
* Fixed "Assignment to Option[T] doesn't call destructor on existing
contained value" (#15910)
* Fixed "In for loop _ is accessible" (#15972)
* Fixed "Pragma codegenDecl doesn't work inside iterators" (#6497)
* Fixed "nim js --gc:arc gives bad error: undeclared identifier: '+!'" (#
16033)
* Fixed "create a new function definitions got Internal error: environment
misses:" (#14847)
* Fixed "Nim emits #line 0 C preprocessor directives with -debugger:native,
with ICE in gcc-10" (#15942)
* Fixed "Serializing and deserializing a proc SIGSEV's" (#16022)
* Fixed "Small tutorial error" (#16047)
* Fixed "lent codegen error for c++ (works with c,js,vm)" (#15958)
* Fixed "sink var/var sink both accepted; sink var leads to bad codegen and
strange behavior" (#15671)
* Fixed "tfuturevar fails when activated" (#9695)
* Fixed "db_sqlite: Error: undeclared field: 'untypedLen'" (#16080)
* Fixed "xmlparser removes significant white space" (#14056)
* Fixed "nre.escapeRe is not gcsafe" (#16103)
* Fixed "macros.getImpl still return incorrect AST for Sym "XXX:ObjectType
"" (#16110)
* Fixed ""Error: internal error: genRecordFieldAux" - in the "version-1-4
" branch" (#16069)
* Fixed "Tracking memory leaks under ORC (mostly with async)" (#15076)
* Fixed "Const seq into sink arg: =copy operator not found" (#16120)
* Fixed "Copying of a sink parameter into a variable not allowed" (#16119)
* Fixed "Memleak in AsyncHttpServer with arc/orc" (#16154)
Like the other test, because /dev/shm isn't available in the build
environment doesn't mean it won't be available on the destination
machine for the packages.
This attempts to build and run a program that uses POSIX semaphores.
This fails in a pbulk sandbox that doesn't contain /dev/shm, resulting
in a broken package where the idea that the platform doesn't support
POSIX semaphores is baked in forever. In newer Python versions,
this means Python doesn't even build properly.
XXX: We might want to avoid it on other platforms too...
3.7 is currently in security fixes only mode, but 3.8 will
continue to recieve a few more months of normal bug fixes.
This should give us time to prep the tree for 3.9 (a few packages
are not happy with 3.9 yet).
3.8 might be more problematic than 3.7 for Linuxes using older compilers
where shm_open isn't detected probably (however this problem doesn't
seem to be entirely absent in 3.7, as shown by certain packages like
mozjs*?). According to the CentOS 7 folks on tech-pkg this should be
possible to work around by using a newer compiler.
0.9.1
Added
- Functions to convert positions from and to utf-16 code units
- Type definitions for `ClientInfo` and `HoverParams`
Changed
- Exit server normally when `ctrl+c` is pressed in command shell.
- Mark deprecated `rangeLength` optional in `TextDocumentContentChangeEvent`
- Optimize json-rpc message serialization
- Fix `__init__()` constructors in several interface types
- Fix valueSet type in `SymbolKindAbstract`
Fixed
- `coroutine` deprecation warning - use async def instead
On NetBSD 8.x, there will be issues with shared library
support, due to missing support for ADDR16_LO, ADDR16_HI
and ADDR16_HA relocations, available in newer code.
There are however other issues, text relocations, and
apparent missing REL24 relocation support(?!?).
The testyield.ml test appears to not terminate, only two
of the 4(?) threads ever get any CPU time, so has to be killed
to complete the selftests. Test result:
2438 tests passed
36 tests skipped
12 tests failed
108 tests not started (parent test skipped or failed)
8 unexpected errors
2602 tests considered
This is for the benefit of NetBSD/powerpc, where we now depends on
the recently added libatomic-links package which leaves symlinks to
the libatomic library files in that directory. This is so that we
don't automatically pick up other libraries behind the compiler users
back.
Also, match the newly uploaded NetBSD/macppc 9.0 bootstrap (regenerated
with this patch applied to 1.46.0).
No pkgrevision bump, since this is a build fix for NetBSD/powerpc.
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* Various fixes and portability improvements.
Upgrading from Duktape 2.5
==========================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v2.5.x.
As with earlier versions, this expects 64-bit atomic operations.
Separately, there's an issue with an assertion in test code that makes
an assumption about the size of an index variable vs. size_t that
doesn't hold.
Test suite comparisons between resultant amd64 and i386 builds on
recent NetBSD releases reveal a similar number of failures (18 vs. 20),
mostly to do with date parsing, though i386 also fails with two IEEE
754 double precision tests.
I did look at carrying mozjs60 patches for NetBSD/powerpc forward, but
I don't have a viable test environment at the moment, and code
inspection suggests that may not be straightforward.
Vala 0.50.2
===========
* Various improvements and bug fixes:
- codegen:
+ More use of delegate_target_type and delegate_target_destroy_type
+ Reduce get_delegate_target/get_delegate_target_destroy_notify calls
+ Don't use inferred type for temp-value to access generic property [#1088]
+ Update outdated array _size_ variable of captured local-variable [#1090]
+ Report internal error for unsupported collection type in foreach
- vala:
+ Issue an error on void initializer for local-variable
+ Allow markup-reader to accept spaces around '=' of attribute assignment
+ CodeNode.source_reference is optional, so let the API respect that
+ Use DataType.compatible() to check for string concatenation [#1100]
- valadoc: Don't call CodeContext.pop() on empty stack [#1064]
- libvaladoc: Don't filter-out generic type-parameters of delegates
- libvaladoc/girimporter: Skip "docsection" elements in <namespace>
- testrunner: Add "-Werror=return-local-addr" flag
- manual: Update from wiki.gnome.org
* Bindings:
- alsa: Fix PcmDevice.set_poll_descriptors_revents() binding [#1092]
- curses: Add Terminfo API set, function keycodes F(n) and minor changes
- curses: Correctly use [PrintfFormat] attribute
- glib-2.0: Fix return-type of Uri.parse_params() binding
- glib-2.0: Add return codes to FileStream.putc/puts(), like posix
- glib-2.0: Add GenericArray.find_custom(), variant of find_with_equal_func()
- glib-2.0: Improve GenericArray.length property
- gio-2.0: Fix binding of Resolver.lookup_service*()
- gstreamer: Update from 1.19.0+ git master
- gtk4: Attribute Gsk.ShaderArgsBuilder.free_to_args with DestroysInstance
- gtk4: Update to 3.99.4+7551f85d [#1089]
- linux: Add missing struct in cname for Spi.IocTransfer
- posix: Declare fstat, stat, lstat and fstatat as public [#1086]
- posix: Add freopen binding, as FILE.reopen()
- rest-0.7: Fix ParamsIter.next() binding
- vapi: Update GIR-based bindings
execline is a (non-interactive) scripting language, like sh, but its syntax
is quite different from a traditional shell syntax. The execlineb program
is meant to be used as an interpreter for a text file; the other commands
are essentially useful inside an execlineb script.
I happen to have include/gts.h installed, which includes an accented
ISO-8859-1 character in its copyright message. This trips up the configuration
of Python in pkgsrc.
Ignore files with invalid unicode characters.
Also regenerate one other patch. No revision bump since the result is the same.
Elixir
[Code] Do not crash when getting docs for missing erts appdir
[Kernel] Raise meaningful error if :erlang.is_record is used in guards
[Kernel] Prune tracers when fetching __ENV__ inside functions
Mix
[mix] Fix regression where aliases could not call themselves recursively
[mix compile] Do not discard tracers that are set programmatically
(Apple Silicon being their aarch64 platform.)
This is backport of the same in lang/python39 and lang/python38. Some
parts weren't applicable in 3.7. The setup.py script needed some work
on the ffi code. Otherwise, minor changes.
Patches consist of:
- Upstream work: https://github.com/python/cpython/pull/22855
- Fix for setup.py to find libbz2.tbd and libz.tbd now that with the
shared library cache there's nothing in /usr/lib.
See: https://bugs.python.org/issue41116
- Addition of __arch64__ case to fix _decimal module. A very similar fix
has since been committed upstream.
(Apple Silicon being their aarch64 platform.)
This is backport of the same in lang/python39. Only minor changes were
needed.
Patches consist of:
- Upstream work: https://github.com/python/cpython/pull/22855
- Fix for setup.py to find libbz2.tbd and libz.tbd now that with the
shared library cache there's nothing in /usr/lib.
See: https://bugs.python.org/issue41116
- Addition of __arch64__ case to fix _decimal module. A very similar fix
has since been committed upstream.
Version 12.19.1 'Erbium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8277: Denial of Service through DNS request (High). A Node.js application that allows an attacker to trigger a DNS request for a host of their choice could trigger a Denial of Service by getting the application to resolve a DNS record with a larger number of responses.
Version 14.15.1 'Fermium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8277: Denial of Service through DNS request (High). A Node.js application that allows an attacker to trigger a DNS request for a host of their choice could trigger a Denial of Service by getting the application to resolve a DNS record with a larger number of responses.
- math/big: panic during recursive division of very large numbers
A number of math/big.Int <https://pkg.go.dev/math/big#Int> methods (Div,
Exp, DivMod, Quo, Rem, QuoRem, Mod, ModInverse, ModSqrt, Jacobi, and GCD)
can panic when provided crafted large inputs. For the panic to happen, the
divisor or modulo argument must be larger than 3168 bits (on 32-bit
architectures) or 6336 bits (on 64-bit architectures). Multiple math/big.Rat
<https://pkg.go.dev/math/big#Rat> methods are similarly affected.
crypto/rsa.VerifyPSS <https://pkg.go.dev/crypto/rsa#VerifyPSS>,
crypto/rsa.VerifyPKCS1v15 <https://pkg.go.dev/crypto/rsa#VerifyPKCS1v15>,
and crypto/dsa.Verify <https://pkg.go.dev/crypto/dsa#Verify> may panic when
provided crafted public keys and signatures. crypto/ecdsa and
crypto/elliptic operations may only be affected if custom CurveParams
<https://pkg.go.dev/crypto/elliptic#CurveParams> with unusually large field
sizes (several times larger than the largest supported curve, P-521) are in
use. Using crypto/x509.Verify on a crafted X.509 certificate chain can lead
to a panic, even if the certificates don’t chain to a trusted root. The
chain can be delivered via a crypto/tls connection to a client, or to a
server that accepts and verifies client certificates. net/http clients can
be made to crash by an HTTPS server, while net/http servers that accept
client certificates will recover the panic and are unaffected.
Moreover, an application might crash invoking
crypto/x509.(*CertificateRequest).CheckSignature on an X.509 certificate
request or during a golang.org/x/crypto/otr conversation. Parsing a
golang.org/x/crypto/openpgp Entity or verifying a signature may crash.
Finally, a golang.org/x/crypto/ssh client can panic due to a malformed host
key, while a server could panic if either PublicKeyCallback accepts a
malformed public key, or if IsUserAuthority accepts a certificate with a
malformed public key.
This issue is CVE-2020-28362 and Go issue golang.org/issue/42552.
- cmd/go: arbitrary code execution at build time through cgo
The go command may execute arbitrary code at build time when cgo is in use.
This may occur when running go get on a malicious package, or any other
command that builds untrusted code.
This can be caused by malicious gcc flags specified via a #cgo directive,
or by a malicious symbol name in a linked object file.
These issues are CVE-2020-28367 and CVE-2020-28366, and Go issues
golang.org/issue/42556 and golang.org/issue/42559 respectively.
- math/big: panic during recursive division of very large numbers
A number of math/big.Int methods (Div, Exp, DivMod, Quo, Rem, QuoRem, Mod,
ModInverse, ModSqrt, Jacobi, and GCD) can panic when provided crafted large
inputs. For the panic to happen, the divisor or modulo argument must be larger
than 3168 bits (on 32-bit architectures) or 6336 bits (on 64-bit
architectures). Multiple math/big.Rat <https://pkg.go.dev/math/big#Rat> methods
are similarly affected.
crypto/rsa.VerifyPSS <https://pkg.go.dev/crypto/rsa#VerifyPSS>,
crypto/rsa.VerifyPKCS1v15 <https://pkg.go.dev/crypto/rsa#VerifyPKCS1v15>,
and crypto/dsa.Verify <https://pkg.go.dev/crypto/dsa#Verify> may panic when
provided crafted public keys and signatures. crypto/ecdsa and
crypto/elliptic operations may only be affected if custom CurveParams
<https://pkg.go.dev/crypto/elliptic#CurveParams> with unusually large field
sizes (several times larger than the largest supported curve, P-521) are in
use. Using crypto/x509.Verify on a crafted X.509 certificate chain can lead
to a panic, even if the certificates don’t chain to a trusted root. The
chain can be delivered via a crypto/tls connection to a client, or to a
server that accepts and verifies client certificates. net/http clients can
be made to crash by an HTTPS server, while net/http servers that accept
client certificates will recover the panic and are unaffected.
Moreover, an application might crash invoking
crypto/x509.(*CertificateRequest).CheckSignature on an X.509 certificate
request or during a golang.org/x/crypto/otr conversation. Parsing a
golang.org/x/crypto/openpgp Entity or verifying a signature may crash.
Finally, a golang.org/x/crypto/ssh client can panic due to a malformed host
key, while a server could panic if either PublicKeyCallback accepts a
malformed public key, or if IsUserAuthority accepts a certificate with a
malformed public key.
Thanks to the Go Ethereum team and the OSS-Fuzz project for reporting this.
Thanks to Rémy Oudompheng and Robert Griesemer for their help developing
and validating the fix.
This issue is CVE-2020-28362 and Go issue golang.org/issue/42552.
- cmd/go: arbitrary code execution at build time through cgo
The go command may execute arbitrary code at build time when cgo is in use.
This may occur when running go get on a malicious package, or any other
command that builds untrusted code.
This can be caused by malicious gcc flags specified via a #cgo directive,
or by a malicious symbol name in a linked object file.
These issues are CVE-2020-28367 and CVE-2020-28366, and Go issues
golang.org/issue/42556 and golang.org/issue/42559 respectively.
(Apple Silicon being their aarch64 platform.)
Patches consist of:
- Upstream work: https://github.com/python/cpython/pull/22855
- Fix for setup.py to find libbz2.tbd and libz.tbd now that with the
shared library cache there's nothing in /usr/lib.
See: https://bugs.python.org/issue41116
- Addition of __arch64__ case to fix _decimal module. A very similar fix
has since been committed upstream.
Based on work by Dan Cîrnaț in wip
Version 1.66.1
--------------
- Closed bugs and merge requests:
* Throws on Unsupported caller allocates [!495, Marco Trevisan]
* arg: Fix MIN/MAX safe big integer limits [!492, Marco Trevisan]
* Fix leak when virtual function is unimplemented [!498, Evan Welsh]
* Cannot compile GJS 1.66.0 on macOS with llvm/clang 10.0.1 [#347, !499,
Marc-Antoine Perennou]
* console: fix typo in command-line option [!500, Andy Holmes]
* Prevent passing null pointers when not nullable [!503, Evan Welsh]
* Passing fundamentals to functions no longer works [#353, !506, Evan Welsh]
- Fixed examples/clutter.js to work with more recent Clutter [Philip Chimento]
Version 1.66.0
--------------
- No change from 1.65.92.
Version 1.65.92
---------------
- Closed bugs and merge requests:
* CI: Make iwyu idempotent [!481, Simon McVittie]
* Enum and flags test failing in s390x [#319, !480, Simon McVittie]
* Bring back Visual Studio build support for GJS master [!482, Chun-wei Fan]
* gjs_dbus_implementation_emit_signal: don't try to unref NULL [!482, Adam
Williamson]
* doc: add third party applications [!484, Sonny Piers]
* boxed: Initialize all the private BoxedInstance members [!487, Marco
Trevisan]
* object: Fix GjsCallBackTrampoline's leaks [!490, Marco Trevisan]
* Various maintenance [!485, Philip Chimento]
* Crash using shell's looking glass [#344, !486, Marco Trevisan]
Version 1.65.91
---------------
- Closed bugs and merge requests:
* Crash in gjs_dbus_implementation_flush() [#332, !471, Andy Holmes]
* eslint: Bump ecmaScript version [!473, Florian Müllner]
* Documentation: add documentation for ENV variables [!474, Andy Holmes]
* Fix build for master on Windows (due to SpiderMonkey-78.x upgrade) [!475,
Chun-wei Fan]
* Argument cache causes test failure in armhf [#342, !476, Marco Trevisan]
* Argument cache causes test regressions in s390x [#341, !477, Simon McVittie]
* ByteArray.toString use-after-free [#339, !472, Evan Welsh]
* Crash accessing `vfunc_` methods of `Clutter.Actor`s [#313, !478, Evan
Welsh]
- Various refactors for type safety [Marco Trevisan]
Version 1.65.90
---------------
- GJS now has an optional, Linux-only, dependency on libsysprof-capture-4
instead of libsysprof-capture-3 for the profiler functionality.
- New API: gjs_coverage_enable() allows the collection of code coverage metrics.
If you are using GjsCoverage, it is now required to call gjs_coverage_enable()
before you create the first GjsContext. Previously this was not necessary, but
due to changes in SpiderMonkey 78 you must now indicate in advance if you want
to collect code coverage metrics.
- New JavaScript features! This version of GJS is based on SpiderMonkey 78, an
upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 68.
Here are the highlights of the new JavaScript features.
For more information, look them up on MDN or devdocs.io.
* New language features
+ A new regular expression engine, supporting lookbehind and named capture
groups, among other things
* New syntax
+ The ?? operator ("nullish coalescing operator") is now supported
+ The ?. operator ("optional chaining operator") is now supported
+ Public static class fields are now supported
+ Separators in numeric literals are now supported: for example, 1_000_000
* New APIs
+ String.replaceAll() for replacing all instances of a string inside another
string
+ Promise.allSettled() for awaiting until all Promises in an array have
either fulfilled or rejected
+ Intl.Locale
+ Intl.ListFormat
+ Intl.RelativeTimeFormat.formatToParts()
* New behaviour
+ There are a lot of minor behaviour changes as SpiderMonkey's JS
implementation conforms ever closer to existing ECMAScript standards and
adopts new ones. For complete information, read the Firefox developer
release notes:
https://developer.mozilla.org/en-US/Firefox/Releases/69#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/70#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/71#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/72#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/73#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/74#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/75#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/76#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/77#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/78#JavaScript
* Backwards-incompatible changes
+ The Object.toSource() method has been removed
+ The uneval() global function has been removed
+ A leading zero is now never allowed for BigInt literals, making 08n and
09n invalid similar to the existing error when legacy octal numbers like
07n are used
+ The Function.caller property now has the value of null if the caller is a
strict, async, or generator function, instead of throwing a TypeError
- Backwards-incompatible change: Paths specified on the command line with
the --coverage-prefix argument, are now always interpreted as paths. If they
are relative paths, they will be resolved relative to the current working
directory. In previous versions, they would be treated as string prefixes,
which led to unexpected behaviour when the path of the script was absolute
and the coverage prefix relative, or vice versa.
- Closed bugs and merge requests:
* Port to libsysprof-capture-4.a [!457, Philip Withnall, Philip Chimento]
* CI: Switch ASAN jobs to runners tagged so [!461, Bartłomiej Piotrowski]
* Rework global code to support multiple global "types". (Part 1) [!453, Evan
Welsh]
* SpiderMonkey 78 [#329, !462, !458, Evan Welsh, Philip Chimento]
* GIArgument inlines [!460, Marco Trevisan, Philip Chimento]
* gjs stopped building on 32 bits [#335, !463, Marco Trevisan, Philip
Chimento]
* Improve performance of argument marshalling [#70, !48, Giovanni Campagna,
Philip Chimento]
* Build failure on 32-bit [#336, !465, Michael Catanzaro]
* Various maintenance [!464, Philip Chimento]
* arg-cache.cpp: Fix build on Visual Studio [!466, Chun-wei Fan]
* [regression] Super+A crashes gnome-shell [#338, !467, Philip Chimento]
* Generating coverage information seems to be broken [#322, !470, Philip
Chimento]
- Various refactors for type safety [Marco Trevisan]
- Various maintenance [Philip Chimento]
Version 1.65.4
--------------
- New language features! Public class fields are now supported. See for more
information:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fields
- Closed bugs and merge requests:
* arg.cpp: Add required messages for static_assert (fix building on pre-C++17)
[!441, Chun-wei Fan]
* Add include-what-you-use CI job [!448, !449, Philip Chimento]
* Let's enable class fields! [!445, Evan Welsh]
* examples: add GListModel implementation [!452, Andy Holmes]
* Update ESLint CI image. [!451, Evan Welsh]
* function: Only get function name if we actually warn [!454, Jonas Dreßler]
* Split print into native library. [!444, Evan Welsh]
* Various maintenance [!459, Philip Chimento]
- Various refactors for type safety [Marco Trevisan]
Version 1.64.4
--------------
- Closed bugs and merge requests:
* Fix CI failure caused by GTK4 update [!447, Philip Chimento]
Version 1.65.3
--------------
- In GTK 4, Gtk.Widget is now an iterable object which iterates through its
child widgets. (`for (let child of widget) { ... }`)
- Closed bugs and merge requests:
* Installed tests are not in preferred directories [#318, !427, Ross Burton]
* Build new test CI images with Buildah [!429, Philip Chimento]
* CI fixes for new test images [!433, Philip Chimento]
* Various maintenance [!428, Philip Chimento]
* Fix dead link [!436, prnsml]
* overrides/Gtk: Make GTK4 widgets iteratable [!437, Florian Müllner]
* arg.cpp: Fix building on Visual Studio [!439, Chun-wei Fan]
* Separate closures and vfuncs [!438, Philip Chimento]
* Improvements to IWYU script [!435, Philip Chimento]
* Various refactors in preparation for ES modules [!440, Evan Welsh, Philip
Chimento]
- Various refactors for type safety [Marco Trevisan]
0.790:
Bug Fixes
Fix disable_error_code config file option
Fix partial type crash during protocol checking
Store the type for assignment expression
Always type check arguments when using --disallow-untyped-calls
Make None compatible with Hashable
Don't infinite loop on self dependencies in --follow-imports=normal
Don't simplify away Any when joining union types
Check for deleted vars in raise from
Fix corner case for comparing nested overloads
Fix issues with async for and with statements
Fix internal error on list/dict comprehension with walrus operator in global scope
Fix propagation of module-specific options to the parser
Fix crash when super is called outside a method
Fix untyped decorator overload error on class decorator with __call__ overloads
Clean up terminal width handling
Add keyword arguments for functional Enum API
Validate follow_imports values in mypy.ini
Fix *expr in an assigned expression
Don't consider comparing True and False as a dangerous comparison
Make reveal_type work with call expressions returning None
Error Reporting Improvements
Improve missing module error for subdirectories
Clarify bytes formatting error messages
Fix misleading follow_imports error message in dmypy
Use [arg-type] error code for additional argument type error messages
Report some additional serious errors in junit.xml
Report note about binary operation on the same location as error message
Documentation Updates
Document disable_error_code config file option
Add cross references to config file values
Add cross references to additional config values, and missing plugins config value, and document --help option for stubgen
Remove note that Final is experimental and suggest importing it from typing
Discuss unreachable code as a common issue
Stubgen Improvements
Improve property type detection in extension modules
Fix type stubgen crash caused by invalid type annotation
Import Iterable and Iterator from typing in generated stubs
Other Improvements
Speed up type checking of unions containing many literal string types
Add scripts to misc/
go1.15.4 (released 2020/11/05) includes fixes to cgo, the compiler, linker,
runtime, and the compress/flate, net/http, reflect, and time packages. See the
Go 1.15.4 milestone on our issue tracker for details.
go1.14.11 (released 2020/11/05) includes fixes to the runtime, and the net/http
and time packages. See the Go 1.14.11 milestone on our issue tracker for
details.
Version 1.64.1
--------------
- The BigInt type is now _actually_ available, as it wasn't enabled in the
1.64.0 release even though it was mentioned in the release notes.
- Closed bugs and merge requests:
* testCommandLine's Unicode tests failing on Alpine Linux [Philip Chimento,
#296, !399]
* build: Various clean-ups [Jan Tojnar, !403]
* Correctly handle vfunc inout parameters [Marco Trevisan, !404]
* Fix failed redirect of output in CommandLine tests [Liban Parker, !409]
Version 1.58.6
--------------
- Various backports:
* Correctly handle vfunc inout parameters [Marco Trevisan]
* Fix failed redirect of output in CommandLine tests [Liban Parker]
* Avoid filename conflict when tests run in parallel [Philip Chimento]
Version 1.64.0
--------------
- No change from 1.63.92.
Version 1.63.92
---------------
- Closed bugs and merge requests:
* object: Use g_irepository_get_object_gtype_interfaces [Colin Walters, Philip
Chimento, #55, !52]
* Add -fno-semantic-interposition to -Bsymbolic-functions [Jan Alexander
Steffens (heftig), #303, !397]
* examples: add a dbus-client and dbus-service example [Andy Holmes, !398]
* Various GNOME Shell crashes during GC, mozjs68 regression [Jan Alexander
Steffens (heftig), Philip Chimento, #301, !396]
Version 1.63.91
---------------
- Closed bugs and merge requests:
* [mozjs68] Reorganize modules for ESM. [Evan Welsh, Philip Chimento, !383]
* Various maintenance [Philip Chimento, !388]
* Fix building GJS master with Visual Studio and update build instructions
[Chun-wei Fan, !389]
* Resolve "Gnome Shell crash on GC run with mozjs68" [Philip Chimento, !391]
* installed-tests/js: Add missing dep on warnlib_typelib [Jan Alexander
Steffens, !393]
* object: Cache known unresolvable properties [Daniel van Vugt, Philip
Chimento, !394, #302]
Version 1.58.5
--------------
- Closed bugs and merge requests:
* Fix Visual Studio builds of gnome-3-34 (1.58.x) branch [Chun-wei Fan, !392]
* Can not access GObject properties of classes without GI information [Juan
Pablo Ugarte, !385, #299]
Version 1.63.90
---------------
- New JS API: The GObject module has gained new overrides:
GObject.signal_handler_find(), GObject.signal_handlers_block_matched(),
GObject.signal_handlers_unblock_matched(), and
GObject.signal_handlers_disconnect_matched(). These overrides replace the
corresponding C API, which was not idiomatic for JavaScript and was not fully
functional because it used bare C pointers for some of its functionality.
See modules/overrides/GObject.js for API documentation.
- New JavaScript features! This version of GJS is based on SpiderMonkey 68, an
upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 60.
Here are the highlights of the new JavaScript features.
For more information, look them up on MDN or devdocs.io.
* New language features
+ The BigInt type, currently a stage 3 proposal in the ES standard, is now
available.
* New syntax
+ `globalThis` is now the ES-standard supported way to get the global
object, no matter what kind of JS environment. The old way, `window`, will
still work, but is no longer preferred.
+ BigInt literals are expressed by a number with "n" appended to it: for
example, `1n`, `9007199254740992n`.
* New APIs
+ String.prototype.trimStart() and String.prototype.trimEnd() now exist and
are preferred instead of trimLeft() and trimRight() which are nonstandard.
+ String.prototype.matchAll() allows easier access to regex capture groups.
+ Array.prototype.flat() flattens nested arrays, well-known from lodash and
similar libraries.
+ Array.prototype.flatMap() acts like a reverse filter(), allowing adding
elements to an array while iterating functional-style.
+ Object.fromEntries() creates an object from iterable key-value pairs.
+ Intl.RelativeTimeFormat is useful for formatting time differences into
human-readable strings such as "1 day ago".
+ BigInt64Array and BigUint64Array are two new typed array types.
* New behaviour
+ There are a lot of minor behaviour changes as SpiderMonkey's JS
implementation conforms ever closer to existing ECMAScript standards and
adopts new ones. For complete information, read the Firefox developer
release notes:
https://developer.mozilla.org/en-US/Firefox/Releases/61#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/62#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/63#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/64#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/65#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/66#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/67#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/68#JavaScript
* Backwards-incompatible changes
+ The nonstandard String generics were removed. These had only ever been
implemented by Mozilla and never made it into a standard. (An example of a
String generic is calling a string method on something that might not be a
string like this: `String.endsWith(foo, 5)`. The proper way is
`String.prototype.endsWith.call(foo, 5)` or converting `foo` to a string.)
This should not pose much of a problem for existing code, since in the
previous version these would already print a deprecation warning whenever
they were used.
You can use `moz68tool` from mozjs-deprecation-tools
(https://gitlab.gnome.org/ptomato/moz60tool) to scan your code for this
nonstandard usage.
- Closed bugs and merge requests:
* invalid import on signal.h [#295, !382, Philip Chimento]
* SpiderMonkey 68 [#270, !386, Philip Chimento]
* GObject: Add override for GObject.handler_block_by_func [#290, !371, Philip
Chimento]
Version 1.63.3
--------------
- Closed bugs and merge requests:
* JS ERROR: TypeError: this._rooms.get(...) is undefined [Philip Chimento,
#289, !367]
* Run CI build with --werror [Philip Chimento, #286, !365]
* build: Remove Autotools build system [Philip Chimento, !364]
* gjs-symlink script is incompatible with distro builds [Michael Catanzaro,
Bastien Nocera, #291, !369, !370]
* installed-tests: Don't hardcode the path of bash [Ting-Wei Lan, !372]
* Update Visual Studio build instructions (after migrating to full Meson-based
builds) [Chun-wei Fan, !375]
* object: Warn when setting a deprecated property [Florian Müllner, !378]
* CI: Create mozjs68 CI images [Philip Chimento, !379]
* Various maintenance [Philip Chimento, !374, !380, !381]
Version 1.58.4
--------------
- Now prints a warning when constructing an unregistered object inheriting from
GObject (i.e. if you forgot to use GObject.registerClass.) In 1.58.2 this
would throw an exception, which broke some existing code, so that change was
reverted in 1.58.3. In this version the check is reinstated, but we log a
warning instead of throwing an exception, so that people know to fix their
code, but without breaking things.
NOTE: In 1.64 (the next stable release) the warning will be changed back into
an exception, because code with this problem can be subtly broken and cause
unexpected errors elsewhere. So make sure to fix your code if you get this
warning.
- Closed bugs and merge requests:
* GSettings crash fixes [Andy Holmes, !373]
- Memory savings for Cairo objects [Philip Chimento, !374]
- Fix for crash in debug functions [Philip Chimento, !374]
Version 1.63.2
--------------
- There is an option for changing the generated GType name for GObject classes
created in GJS to a new scheme that is less likely to have collisions. This
scheme is not yet the default, but you can opt into it by setting
`GObject.gtypeNameBasedOnJSPath = true;` as early as possible in your
prograṁ. Doing this may require some changes in Glade files if you use
composite widget templates.
We recommend you make this change in your codebase as soon as possible, to
avoid any surprises in the future.
- New JS API: GObject.Object has gained a stop_emission_by_name() method which
is a bit more idiomatic than calling GObject.signal_stop_emission_by_name().
- It's now supported to use the "object" attribute in a signal connection in a
composite widget template in a Glade file.
- Closed bugs and merge requests:
* CI: Tweak eslint rule for unneeded parentheses [Florian Müllner, !353]
* Smarter GType name computation [Marco Trevisan, !337]
* Meson CI [Philip Chimento, !354]
* Visual Studio builds using Meson [Chun-wei Fan, !355]
* Hide internal symbols from ABI [Marco Trevisan, #194, !352]
* Allow creating custom tree models [Giovanni Campagna, #71]
* build: Fix dist files [Florian Müllner, !357]
* GObject: Add convenience wrapper for signal_stop_emission_by_name() [Florian
Müllner, !358]
* Various maintenance [Philip Chimento, !356]
* object_instance_props_to_g_parameters should do more check on argv [Philip
Chimento, #63, !359]
* Support flat C arrays of structures [Philip Chimento, !361]
* Gtk Templates: support connectObj argument [Andy Holmes, !363]
- Various build fixes [Philip Chimento]
Version 1.58.2
--------------
- Closed bugs and merge requests:
* GObject based class initialization checks [Marco Trevisan, Philip Chimento,
!336]
* Silently leaked return value of callbacks [Xavier Claessens, Philip
Chimento, #86, !44]
* Crash when calling Gio.Initable.async_init with not vfunc_async_init
implementation [Philip Chimento, #287, !362]
* [cairo] insufficient checking [Philip Chimento, #49, !360]
- Various crash fixes backported from the development branch that didn't close
a bug or merge request.
Version 1.63.1
--------------
- Note that the 1.59, 1.60, 1.61, and 1.62 releases are hereby skipped, because
we are calling the next stable series 1.64 to match gobject-introspection and
GLib.
- GJS now includes a Meson build system. This is now the preferred way to build
it; however, the old Autotools build system is still available for a
transitional period.
- Closed bugs and merge requests:
* GObject: Add convenience wrapper for signal_handler_(un)block() [Florian
Müllner, !326]
* GObject based class initialization checks [Marco Trevisan, Philip Chimento,
!336]
* Meson port [Philip Chimento, !338]
* add http client example [Sonny Piers, !342]
* Smaller CI, phase 2 [Philip Chimento, !343]
* add websocket client example [Sonny Piers, !344]
* Fix Docker images build [Philip Chimento, !345]
* CI: Use new Docker images [Philip Chimento, !346]
* docs: Update internal links [Andy Holmes, !348]
* Don't pass generic marshaller to g_signal_newv() [Niels De Graef, !349]
* tests: Fail debugger tests if command failed [Philip Chimento, !350]
* Minor CI image fixes [Philip Chimento, !351]
* Various fixes [Marco Trevisan, Philip Chimento]
Version 1.58.1
--------------
- Closed bugs and merge requests:
* Import wiki documentation [Sonny Piers, !341]
* Smaller CI, phase 1 [Philip Chimento, !339]
* Crashes after setting child property 'icon-name' on GtkStack then displaying
another GtkStack [Florian Müllner, #284, !347]
* GLib.strdelimit crashes [Philip Chimento, #283, !340]
Version 1.58.0
--------------
- No change from 1.57.92.
Version 1.57.92
---------------
- Closed bugs and merge requests:
* tests: Enable regression test cases for GPtrArrays and GArrays of structures
[Stéphane Seng, !334]
* Various maintenance [Philip Chimento, !333, !335]
Version 1.57.91
---------------
- GJS no longer links to libgtk-3. This makes it possible to load the Gtk-4.0
typelib in GJS and write programs that use GTK 4.
- The heapgraph tool has gained some improvements; it is now possible to print a
heap graph of multiple targets. You can also mark an object for better
identification in the heap graph by assigning a magic property: for example,
myObject.__heapgraph_name = 'Button' will make that object identify itself as
"Button" in heap graphs.
- Closed bugs and merge requests:
* Remove usage of Lang in non legacy code [Sonny Piers, !322]
* GTK4 [Florian Müllner, #99, !328, !330]
* JS syntax fixes [Marco Trevisan, Philip Chimento, !306, !323]
* gi: Avoid infinite recursion when converting GValues [Florian Müllner, !329]
* Implement all GObject-introspection test suites [Philip Chimento, !327,
!332]
* Heapgraph improvements [Philip Chimento, !325]
Version 1.57.90
---------------
- New JS API: GLib.Variant has gained a recursiveUnpack() method which
transforms the variant entirely into a JS object, discarding all type
information. This can be useful for dealing with a{sv} dictionaries, where
deepUnpack() will keep the values as GLib.Variant instances in order to
preserve the type information.
- New JS API: GLib.Variant has gained a deepUnpack() method which is exactly the
same as the already existing deep_unpack(), but fits with the other camelCase
APIs that GJS adds.
- Closed bugs and merge requests:
* Marshalling of GPtrArray broken [#9, !311, Stéphane Seng]
* Fix locale chooser [!313, Philip Chimento]
* dbus-wrapper: Remove interface skeleton flush idle on dispose [!312, Marco
Trevisan]
* gobject: Use auto-compartment when getting property as well [!316, Florian
Müllner]
* modules/signals: Use array destructuring in _emit [!317, Jonas Dreßler]
* GJS can't call glibtop_init function from libgtop [#259, !319,
Philip Chimento]
* GLib's VariantDict is missing lookup [#263, !320, Sonny Piers]
* toString on an object implementing an interface fails [#252, !299, Marco
Trevisan]
* Regression in GstPbutils.Discoverer::discovered callback [#262, !318, Philip
Chimento]
* GLib.Variant.deep_unpack not working properly with a{sv} variants [#225,
!321, Fabián Orccón, Philip Chimento]
* Various maintenance [!315, Philip Chimento]
- Various CI fixes [Philip Chimento]
Version 1.57.4
--------------
- Closed bugs and merge requests:
* gjs 1.57 requires a recent sysprof version for sysprof-capture-3 [#258,
!309, Olivier Fourdan]
- Misc documentation changes [Philip Chimento]
Version 1.57.3
--------------
- The GJS profiler is now integrated directly into Sysprof 3, via the
GJS_TRACE_FD environment variable. Call stack information and garbage
collector timing will show up in Sysprof. See also GNOME/Initiatives#10
- New JS API: System.addressOfGObject(obj) will return a string with the hex
address of the underlying GObject of `obj` if it is a GObject wrapper, or
throw an exception if it is not. This is intended for debugging.
- New JS API: It's now possible to pass a value from Gio.DBusProxyFlags to the
constructor of a class created by Gio.DBusProxy.makeProxyWrapper().
- Backwards-incompatible change: Trying to read a write-only property on a DBus
proxy object, or write a read-only property, will now throw an exception.
Previously it would fail silently. It seems unlikely any code is relying on
the old behaviour, and if so then it was probably masking a bug.
- Closed bugs and merge requests:
* Build failure on Continuous [#253, !300, Philip Chimento]
* build: Bump glib requirement [!302, Florian Müllner]
* profiler: avoid clearing 512 bytes of stack [!304, Christian Hergert]
* system: add addressOfGObject method [!296, Marco Trevisan]
* Add support for GJS_TRACE_FD [!295, Christian Hergert]
* Gio: Make possible to pass DBusProxyFlags to proxy wrapper [!297, Marco
Trevisan]
* Various maintenance [!301, Philip Chimento]
* Marshalling of GPtrArray broken [#9, !307, Stéphane Seng]
* Build fix [!308, Philip Chimento]
* Gio: sync dbus wrapper properties flags [!298, Marco Trevisan]
* GjsMaybeOwned: Reduce allocation when used as Object member [!303, Marco
Trevisan]
Version 1.57.2
--------------
- There are now overrides for Gio.SettingsSchema and Gio.Settings which avoid
aborting the whole process when trying to access a nonexistent key or child
schema. The original API from GLib was intended for apps, since apps should
have complete control over which settings keys they are allowed to access.
However, it is not a good fit for shell extensions, which may need to access
different settings keys depending on the version of GNOME shell they're
running on.
This feature is based on code from Cinnamon which the copyright holders have
kindly agreed to relicense to GJS's license.
- New JS API: It is now possible to pass GObject.TypeFlags to
GObject.registerClass(). For example, passing
`GTypeFlags: GObject.TypeFlags.ABSTRACT` in the class info object, will create
a class that cannot be instantiated. This functionality was present in
Lang.Class but has been missing from GObject.registerClass().
- Closed bugs and merge requests:
* Document logging features [#230, !288, Andy Holmes]
* Support optional GTypeFlags value in GObject subclasses [!290, Florian
Müllner]
* Ensure const-correctness in C++ objects [#105, !291, Onur Şahin]
* Programmer errors with GSettings cause segfaults [#205, !284, Philip
Chimento]
* Various maintenance [!292, Philip Chimento]
* debugger: Fix summary help [!293, Florian Müllner]
* context: Use Heap pointers for GC objects stored in vectors [!294, Philip
Chimento]
Version 1.56.2
--------------
- Closed bugs and merge requests:
* Crash in BoxedInstance when struct could not be allocated directly [#240,
!285, Philip Chimento]
* Cairo conversion bugs [!286, Philip Chimento]
* Gjs crashes when binding inherited property to js added gobject-property
[#246, !289, Marco Trevisan]
* console: Don't accept --profile after the script name [!287, Philip
Chimento]
Version 1.57.1
--------------
- Closed bugs and merge requests:
* Various maintenance [!279, Philip Chimento]
* mainloop: Assign null to property instead of deleting [!280, Jason Hicks]
* Added -d version note README.md [!282, Nauman Umer]
* Extra help for debugger commands [#236, !283, Nauman Umer]
* Crash in BoxedInstance when struct could not be allocated directly [#240,
!285, Philip Chimento]
* Cairo conversion bugs [!286, Philip Chimento]
Version 1.56.1
--------------
- Closed bugs and merge requests:
* Calling dumpHeap() on non-existent directory causes crash [#134, !277,
Philip Chimento]
* Using Gio.MemoryInputStream.new_from_data ("string") causes segfault [#221,
!278, Philip Chimento]
* Fix gjs_context_eval() for non-zero-terminated strings [!281, Philip
Chimento]
Version 1.56.0
--------------
- No change from 1.55.92.
Version 1.55.92
---------------
- Closed bugs and merge requests:
* Fix CI failures [!269, Philip Chimento]
* Possible memory allocation/deallocation bug (possibly in js_free() in GJS)
[!270, Chun-wei Fan, Philip Chimento]
* cairo-context: Special-case 0-sized vector [!271, Florian Müllner]
* Add some more eslint rules [!272, Florian Müllner]
* win32/NMake: Fix introspection builds [!274, Chun-wei Fan]
* NMake/libgjs-private: Export all the public symbols there [!275, Chun-wei
Fan]
Version 1.55.91
---------------
- The problem of freezing while running the tests using GCC's sanitizers was
determined to be a bug in GCC, which was fixed in GCC 9.0.1.
- Closed bugs and merge requests:
* gnome-sound-recorder crashes deep inside libgjs [#223, !266, Philip
Chimento]
* Various maintenance [!267, Philip Chimento]
* wrapperutils: Define $gtype property as non-enumerable [!268, Philip
Chimento]
Version 1.55.90
---------------
- New JS API: It's now possible to call and implement DBus methods whose
parameters or return types include file descriptor lists (type signature 'h'.)
This involves passing or receiving a Gio.UnixFDList instance along with the
parameters or return values.
To call a method with a file descriptor list, pass the Gio.UnixFDList along
with the rest of the parameters, in any order, the same way you would pass a
Gio.Cancellable or async callback.
For return values, things are a little more complicated, in order to avoid
breaking existing code. Previously, synchronously called DBus proxy methods
would return an unpacked GVariant. Now, but only if called with a
Gio.UnixFDList, they will return [unpacked GVariant, Gio.UnixFDList]. This
does not break existing code because it was not possible to call a method with
a Gio.UnixFDList before, and the return value is unchanged if not calling with
a Gio.UnixFDList. This does mean, unfortunately, that if you have a method
with an 'h' in its return signature but not in its argument signatures, you
will have to call it with an empty FDList in order to receive an FDList with
the return value, when calling synchronously.
On the DBus service side, when receiving a method call, we now pass the
Gio.UnixFDList received from DBus to the called method. Previously, sync
methods were passed the parameters, and async methods were passed the
parameters plus the Gio.DBusInvocation object. Appending the Gio.UnixFDList to
those parameters also should not break existing code.
See the new tests in installed-tests/js/testGDBus.js for examples of calling
methods with FD lists.
- We have observed on the CI server that GJS 1.55.90 will hang forever while
running the test suite compiled with GCC 9.0.0 and configured with the
--enable-asan and --enable-ubsan arguments. This should be addressed in one of
the following 1.55.x releases.
- Closed bugs and merge requests:
* GDBus proxy overrides should support Gio.DBusProxy.call_with_unix_fd_list()
[#204, !263, Philip Chimento]
* Add regression tests for GObject vfuncs [!259, Jason Hicks]
* GjsPrivate: Sources should be C files [!262, Philip Chimento]
* build: Vendor last-good version of AX_CODE_COVERAGE [!264, Philip Chimento]
Version 1.55.4
--------------
- Closed bugs and merge requests:
* Various maintenance [!258, Philip Chimento]
* Boxed copy constructor should not be called, split Boxed into prototype and
instance structs [#215, !260, Philip Chimento]
Version 1.55.3
--------------
- Closed bugs and merge requests:
* Manually constructed ByteArray toString segfaults [#219, !254, Philip
Chimento]
* signals: Add _signalHandlerIsConnected method [!255, Jason Hicks]
* Various maintenance [!257, Philip Chimento]
Version 1.52.5
--------------
- This was a release consisting only of backports from the GNOME 3.30 branch to
the GNOME 3.28 branch.
- This release includes the "Big Hammer" patch from GNOME 3.30 to reduce memory
usage. For more information, read the blog post at
https://feaneron.com/2018/04/20/the-infamous-gnome-shell-memory-leak/
It was not originally intended to be backported to GNOME 3.28, but in practice
several Linux distributions already backported it, and it has been working
well to reduce memory usage, and the bugs have been ironed out of it.
It does decrease performance somewhat, so if you don't want that then don't
install this update.
- Closed bugs and merge requests:
* Ensure not to miss the force_gc flag [#150, !132, Carlos Garnacho]
* Make GC much more aggressive [#62, !50, Giovanni Campagna, Georges Basile
Stavracas Neto, Philip Chimento]
* Queue GC when a GObject reference is toggled down [#140, !114, !127, Georges
Basile Stavracas Neto]
* Reduce memory overhead of g_object_weak_ref() [#144, !122, Carlos Garnacho,
Philip Chimento]
* context: Defer and therefore batch forced GC runs [performance] [!236,
Daniel van Vugt]
* context: use timeout with seconds to schedule a gc trigger [!239, Marco
Trevisan]
* Use compacting GC on RSS size growth [!133, #151, Carlos Garnacho]
* GType memleak fixes [!244, Marco Trevisan]
Version 1.55.2
--------------
- Closed bugs and merge requests:
* Gnome-shell crashes on destroying cached param specs [#213, !240, Marco
Trevisan]
* Various maintenance [!235, !250, Philip Chimento]
* Auto pointers builder [!243, Marco Trevisan]
* configure.ac: Update bug link [!245, Andrea Azzarone]
* SIGSEGV when exiting gnome-shell [#212, !247, Andrea Azzarone, Philip
Chimento]
* Fix build with --enable-dtrace and create CI job to ensure it doesn't break
in the future [#196, !237, !253, Philip Chimento]
* Delay JSString-to-UTF8 conversion [!249, Philip Chimento]
* Annotate return values [!251, Philip Chimento]
* Fix a regression with GError toString() [!252, Philip Chimento]
* GType memleak fixes [!244, Marco Trevisan]
* Atoms refactor [!233, Philip Chimento, Marco Trevisan]
* Write a "Code Hospitable" README file [#17, !248, Philip Chimento, Andy
Holmes, Avi Zajac]
* object: Method lookup repeatedly traverses introspection [#54, !53, Colin
Walters, Philip Chimento]
* Handler of GtkEditable::insert-text signal is not run [#147, !143, Tomasz
Miąsko, Philip Chimento]
Version 1.54.3
--------------
- Closed bugs and merge requests:
* object: Fix write-only properties [!246, Philip Chimento]
* SIGSEGV when exiting gnome-shell [#212, !247, Andrea Azzarone]
* SelectionData.get_targets crashes with "Unable to resize vector" [#201,
!241, Philip Chimento]
* Gnome-shell crashes on destroying cached param specs [#213, !240, Marco
Trevisan]
* GType memleak fixes [!244, Marco Trevisan]
* Fix build with --enable-dtrace and create CI job to ensure it doesn't break
in the future [#196, !253, Philip Chimento]
Version 1.54.2
--------------
- Closed bugs and merge requests:
* context: Defer and therefore batch forced GC runs [performance] [!236,
Daniel van Vugt]
* context: use timeout with seconds to schedule a gc trigger [!239, Marco
Trevisan]
* fundamental: Check if gtype is valid before using it [!242, Georges Basile
Stavracas Neto]
- Backported a fix for a crash in the interactive interpreter when executing
something like `throw "foo"` [Philip Chimento]
- Backported various maintenance from 3.31 [Philip Chimento]
Version 1.55.1
--------------
- New API for programs that embed GJS: gjs_memory_report(). This was already an
internal API, but now it is exported.
- Closed bugs and merge requests:
* object: Implement newEnumerate hook for GObject [!155, Ole Jørgen Brønner]
* Various maintenance [!228, Philip Chimento]
* ByteArray.toString should stop at null bytes [#195, !232, Philip Chimento]
* Byte arrays that represent encoded strings should be 0-terminated [#203,
!232, Philip Chimento]
* context: Defer and therefore batch forced GC runs [performance] [!236,
Daniel van Vugt]
* context: use timeout with seconds to schedule a gc trigger [!239, Marco
Trevisan]
* arg: Add special-case for byte arrays going to C [#67, !49, Jasper
St. Pierre, Philip Chimento]
Version 1.52.4
--------------
- This was a release consisting only of backports from the GNOME 3.30 branch to
the GNOME 3.28 branch.
- Closed bugs and merge requests:
* `ARGV` encoding issues [#22, !108, Evan Welsh]
* Segfault on enumeration of GjSFileImporter properties when a searchpath
entry contains a symlink [#154, !144, Ole Jørgen Brønner]
* Possible refcounting bug around GtkListbox signal handlers [#24, !154,
Philip Chimento]
* Fix up GJS_DISABLE_JIT flag now the JIT is enabled by default in
SpiderMonkey [!159, Christopher Wheeldon]
* Expose GObject static property symbols. [!197, Evan Welsh]
* Do not run linters on tagged commits [!181, Claudio André]
* gjs-1.52.0 fails to compile against x86_64 musl systems [#132, !214, Philip
Chimento]
* gjs no longer builds after recent autoconf-archive updates [#149, !217,
Philip Chimento]
Version 1.54.1
--------------
- Closed bugs and merge requests:
* legacy: Ensure generated GType names are valid [!229, Florian Müllner]
* Fix GJS profiler with MozJS 60 [!230, Georges Basile Stavracas Neto]
* Regression with DBus proxies [#202, !231, Philip Chimento]
Version 1.54.0
--------------
- Compatibility fix for byte arrays: the legacy toString() behaviour of byte
arrays returned from GObject-introspected functions is now restored. If you
use the functionality, a warning will be logged asking you to upgrade your
code.
- Closed bugs and merge requests:
* byteArray: Add compatibility toString property [Philip Chimento, !227]
Version 1.53.92
---------------
- Technology preview of a GNOME 3.32 feature: native Promises for GIO-style
asynchronous operations. This is the result of Avi Zajac's summer internship.
To use it, you can opt in once for each specific asynchronous method, by
including code such as the following:
Gio._promisify(Gio.InputStream.prototype, 'read_bytes_async',
'read_bytes_finish');
After executing this, you will be able to use native Promises with the
Gio.InputStream.prototype.read_async() method, simply by not passing a
callback to it:
try {
let bytes = await stream.read_bytes_async(count, priority, cancel);
} catch (e) {
logError(e, 'Failed to read bytes');
}
Note that any "success" boolean return values are deleted from the array of
return values from the async method. That is,
let [contents, etag] = file.load_contents_async(cancel);
whereas the callback version still returns a useless [ok, contents, etag]
that can never be false, since on false an exception would be thrown. In the
callback version, we must keep this for compatibility reasons.
Note that due to a bug in GJS (https://gitlab.gnome.org/GNOME/gjs/issues/189),
promisifying methods on Gio.File.prototype and other interface prototypes will
not work. We provide the API Gio._LocalFilePrototype on which you can
promisify methods that will work on Gio.File instances on the local disk only:
Gio._promisify(Gio._LocalFilePrototype, 'load_contents_async',
'load_contents_finish');
We estimate this will cover many common use cases.
Since this is a technology preview, we do not guarantee API stability with
the version coming in GNOME 3.32. These APIs are marked with underscores to
emphasize that they are not stable yet. Use them at your own risk.
- Closed bugs and merge requests:
* Added promisify to GJS GIO overrides [!225, Avi Zajac]
* Temporary fix for Gio.File.prototype [!226, Avi Zajac]
Version 1.53.91
---------------
- Closed bugs and merge requests:
* CI: add webkit and gtk-app tests [!222, Claudio André]
* Fix example eslint errors [!207, Claudio André, Philip Chimento]
* Fix more "lost" GInterface properties [!223, Florian Müllner]
* Fix --enable-installed-tests when built from a tarball [!224, Simon
McVittie]
Version 1.53.90
---------------
- GJS now depends on SpiderMonkey 60 and requires a compiler capable of C++14.
- GJS includes a simple debugger now. It has basic stepping, breaking, and
printing commands, that work like GDB. Activate it by running the GJS console
interpreter with the -d or --debugger flag before the name of the JS program
on the command line.
- New API for programs that embed GJS: gjs_context_setup_debugger_console().
To integrate the debugger into programs that embed the GJS interpreter, call
this before executing the JS program.
- New JavaScript features! This version of GJS is based on SpiderMonkey 60, an
upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 52.
Here are the highlights of the new JavaScript features.
For more information, look them up on MDN or devdocs.io.
* New syntax
+ `for await (... of ...)` syntax is used for async iteration.
+ The rest operator is now supported in object destructuring: e.g.
`({a, b, ...cd} = {a: 1, b: 2, c: 3, d: 4});`
+ The spread operator is now supported in object literals: e.g.
`mergedObject = {...obj1, ...obj2};`
+ Generator methods can now be async, using the `async function*` syntax,
or `async* f() {...}` method shorthand.
+ It's now allowed to omit the variable binding from a catch statement, if
you don't need to access the thrown exception: `try {...} catch {}`
* New APIs
+ Promise.prototype.finally(), popular in many third-party Promise
libraries, is now available natively.
+ String.prototype.toLocaleLowerCase() and
String.prototype.toLocaleUpperCase() now take an optional locale or
array of locales.
+ Intl.PluralRules is now available.
+ Intl.NumberFormat.protoype.formatToParts() is now available.
+ Intl.Collator now has a caseFirst option.
+ Intl.DateTimeFormat now has an hourCycle option.
* New behaviour
+ There are a lot of minor behaviour changes as SpiderMonkey's JS
implementation conforms ever closer to ECMAScript standards. For complete
information, read the Firefox developer release notes:
https://developer.mozilla.org/en-US/Firefox/Releases/53#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/54#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/55#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/56#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/57#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/58#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/59#JavaScripthttps://developer.mozilla.org/en-US/Firefox/Releases/60#JavaScript
* Backwards-incompatible changes
+ Conditional catch clauses have been removed, as they were a Mozilla
extension which will not be standardized. This requires some attention in
GJS programs, as previously we condoned code like `catch (e if
e.matches(Gio.IOError, Gio.IOError.EXISTS))` with a comment in
overrides/GLib.js, so it's likely this is used in several places.
+ The nonstandard `for each (... in ...)` loop was removed.
+ The nonstandard legacy lambda syntax (`function(x) x*x`) was removed.
+ The nonstandard Mozilla iteration protocol was removed, as well as
nonstandard Mozilla generators, including the Iterator and StopIteration
objects, and the Function.prototype.isGenerator() method.
+ Array comprehensions and generator comprehensions have been removed.
+ Several nonstandard methods were removed: ArrayBuffer.slice() (but not
the standard version, ArrayBuffer.prototype.slice()),
Date.prototype.toLocaleFormat(), Function.prototype.isGenerator(),
Object.prototype.watch(), and Object.prototype.unwatch().
- Many of the above backwards-incompatible changes can be caught by scanning
your source code using https://gitlab.gnome.org/ptomato/moz60tool, or
https://extensions.gnome.org/extension/1455/spidermonkey-60-migration-validator/
- Deprecation: the custom ByteArray is now discouraged. Instead of ByteArray,
use Javascript's native Uint8Array. The ByteArray module still contains
functions for converting between byte arrays, strings, and GLib.Bytes
instances.
The old ByteArray will continue to work as before, except that Uint8Array
will now be returned from introspected functions that previously returned a
ByteArray. To keep your old code working, change this:
let byteArray = functionThatReturnsByteArray();
to this:
let byteArray = new ByteArray.ByteArray(functionThatReturnsByteArray());
To port to the new code:
* ByteArray.ByteArray -> Uint8Array
* ByteArray.fromArray() -> Uint8Array.from()
* ByteArray.ByteArray.prototype.toString() -> ByteArray.toString()
* ByteArray.ByteArray.prototype.toGBytes() -> ByteArray.toGBytes()
* ByteArray.fromString(), ByteArray.fromGBytes() remain the same
* Unlike ByteArray, Uint8Array's length is fixed. Assigning an element past
the end of a ByteArray would lengthen the array. Now, it is ignored.
Instead use Uint8Array.of(), for example, this code:
let a = ByteArray.fromArray([97, 98, 99, 100]);
a[4] = 101;
should be replaced by this code:
let a = Uint8Array.from([97, 98, 99, 100]);
a = Uint8Array.of(...a, 101);
The length of the byte array must be set at creation time. This code will
not work anymore:
let a = new ByteArray.ByteArray();
a[0] = 255;
Instead, use "new Uint8Array(1)" to reserve the correct length.
- Closed bugs and merge requests:
* Run tests using real software [#178, !192, Claudio André]
* Script tests are missing some errors [#179, !192, Claudio André]
* Create a '--disable-readline' option and use it [!196, Claudio André]
* CI: stop using Fedora for clang builds [!198, Claudio André]
* Expose GObject static property symbols. [!197, Evan Welsh]
* CI fixes [!200, Claudio André]
* Docker images creation [!201, Claudio André]
* Get Docker images built and stored in GJS registry [#185, !203, !208,
Claudio André, Philip Chimento]
* Clear the static analysis image a bit more [!205, Claudio André]
* Rename the packaging job to flatpak [!210, Claudio André]
* Create SpiderMonkey 60 docker images [!202, Claudio André]
* Debugger [#110, !204, Philip Chimento]
* Add convenience g_object_set() replacement [!213, Florian Müllner]
* Add dependencies of the real tests (examples) [!215, Claudio André]
* CWE-126 [#174, !218, Philip Chimento]
* gjs no longer builds after recent autoconf-archive updates [#149, !217,
Philip Chimento]
* gjs-1.52.0 fails to compile against x86_64 musl systems [#132, !214, Philip
Chimento]
* Run the GTK real tests (recently added) [!212, Claudio André]
* Fix thorough tests failures [!220, Philip Chimento]
* Port to SpiderMonkey 60 [#161, !199, Philip Chimento]
* Replace ByteArray with native ES6 TypedArray [#5, !199, Philip Chimento]
* Overriding GInterface properties broke [#186, !216, Florian Müllner, Philip
Chimento]
* Avoid segfault when checking for GByteArray [!221, Florian Müllner]
- Various build fixes [Philip Chimento]
New in 2020.10:
Additions:
Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS<bundling>
option [75f92d2][04164a0]
Generate a rakuw.exe executable on Windows which will not spawn
a console window (in contrast to the raku.exe executable) [0ea6902][708d0ca]
Add Rakudo(TM) and Raku(welcome message [80a4ada][4e9178f][bae905e]
Changes:
Add a new implementation for multi-level Hash slicing,
not backward-compatible with 6.c version and to be enabled since 6.e
[551b577][f106c23][6986ea1][8a2d9a6][1c08e66][1c08e66]
[d08247d][94d8968][18f3808][4b278bc][f9b3f92][b1ec248]
[d6e94ae][564faa6][93503c2][b60772f][198f603][ff2f2b0]
[420cb1f][c701a48][1971ba4][964f6e4][3ca1fed][54eb431]
[d713e45]
False.truncate returns False instead of 0 now [7192a99]
Make "is rw" on parameters of MAIN worry [d0854ff]
Change IterationBuffer.raku output.
Note that IterationBuffer.raku is a debugging tool: it does
not roundtrip, nor is it the intent that it ever will. [33bb650]
Efficiency:
Adapt to simplified nqp::isprime_I [80bf1db]
Make %a{a;b} about 30% faster [a577409]
Further simplify %h{a;b;c} candidate [e435a08]
Make Hash.DELETE-KEY on a non-existing key 40% faster
[3131ce2][fcabad4]
Make making a Uni between 1.5x and 22x as fast [2999be3]
Make .grep/.first on native arrays about 3.5x as fast
[240bc9e][cf23947]
Make .unique/.repeated/.squish on native arrays faster [c37ffe7]
Fixes:
Fix stub packages in multi part declarations only knowing
part of their name [51db534]
Build System: Add a check to prevent building a Rakudo with a
stale NQP version [4dbdcb8][d8db03b]
Make BUILD(ALL)PLAN output a bit clearer [a26beb6]
Make $*USER and $*GROUP return correct values on some non-English
locales [6a89d71]
Fix possible race in multi-threaded precompilation [1294621]
Produce a better error message for my &MAIN = { } [e0e24a8]
Fix issue with Z / X used with set operators [338c743]
Produce a better error message for incorrect code infix:(&) [4af961e]
Fix NativeCall/C++ to allow double instantiation [ecaf334][f3ffb70]
An attempt to copy a directory to a file does not remove the file
anymore [41a76ca]
Fix a problem with multi submethods been treated as method [7cfca09]
Internal:
More fixes to the binary release scripts [bd029ae][99acfa9]
Move Int candidates from Numeric.pm6 to Int.pm6 [bf799ba]
Add .gitattributes file and specify file extensions [42e0434]
2020.10
6model:
[fb992950] Add MVM_str_hash_iterator_target_deleted() for HASH_DEBUG_ITER
Core:
[df77d3cf] Simplify and optimize isprime_I
[8852896d] A more complete fix for the hash max probe distance bug
[a27c7882] Make lookup table in MVP_round_up_log_base2() based on uint8_t
[0015fd05] Re-instate meaningful hash iterator debugging inside HASH_DEBUG_ITER
[60070970] oops if MVM_fixed_size_alloc() is called for a size of 0 bytes
Debug Server:
[3c3a24bf] Fix two *printf size warnings reported on ILP32 platforms
IO:
[95d21703] Minor optimization of MVM_file_isexecutable on Windows
[882dbf04] Add a function to fix up the STD IO handles
Strings:
[a989f7b5] char can be unsigned. Rewrite the "is it ASCII?" test to handle this too
Tooling/Build:
[dc50eddd] For the pthread_setname_np probe, use an auto char array instead of malloc
[4f5787d3] Create a unicode.c with #include directives instead of generating it with cat
Version 14.15.0 'Fermium' (LTS)
Notable Changes
This release marks the transition of Node.js 14.x into Long Term Support (LTS) with the codename 'Fermium'. The 14.x release line now moves into "Active LTS" and will remain so until October 2021. After that time, it will move into "Maintenance" until end of life in April 2023.
Changelog:
New in release OpenJDK 11.0.9 (2020-10-20):
===========================================
* New features
- JDK-8250784: Shenandoah: A Low-Pause-Time Garbage Collector
* Security fixes
- JDK-8233624: Enhance JNI linkage
- JDK-8236196: Improve string pooling
- JDK-8236862, CVE-2020-14779: Enhance support of Proxy class
- JDK-8237990, CVE-2020-14781: Enhanced LDAP contexts
- JDK-8237995, CVE-2020-14782: Enhance certificate processing
- JDK-8240124: Better VM Interning
- JDK-8241114, CVE-2020-14792: Better range handling
- JDK-8242680, CVE-2020-14796: Improved URI Support
- JDK-8242685, CVE-2020-14797: Better Path Validation
- JDK-8242695, CVE-2020-14798: Enhanced buffer support
- JDK-8243302: Advanced class supports
- JDK-8244136, CVE-2020-14803: Improved Buffer supports
- JDK-8244479: Further constrain certificates
- JDK-8244955: Additional Fix for JDK-8240124
- JDK-8245407: Enhance zoning of times
- JDK-8245412: Better class definitions
- JDK-8245417: Improve certificate chain handling
- JDK-8248574: Improve jpeg processing
- JDK-8249927: Specify limits of jdk.serialProxyInterfaceLimit
- JDK-8253019: Enhanced JPEG decoding
* Other changes
- JDK-6532025: GIF reader throws misleading exception with truncated images
- JDK-6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by removing a infinite loop
- JDK-8022535: [TEST BUG] javax/swing/text/html/parser/Test8017492.java fails
- JDK-8062947: Fix exception message to correctly represent LDAP connection failure
- JDK-8067354: com/sun/jdi/GetLocalVariables4Test.sh failed
- JDK-8134599: TEST_BUG: java/rmi/transport/closeServerSocket/CloseServerSocket.java fails intermittently with Address already in use
- JDK-8151678: com/sun/jndi/ldap/LdapTimeoutTest.java failed due to timeout on DeadServerNoTimeoutTest is incorrect
- JDK-8160768: Add capability to custom resolve host/domain names within the default JNDI LDAP provider
- JDK-8172404: Tools should warn if weak algorithms are used before restricting them
- JDK-8193367: Annotated type variable bounds crash javac
- JDK-8202117: com/sun/jndi/ldap/RemoveNamingListenerTest.java fails intermittently: Connection reset
- JDK-8203026: java.rmi.NoSuchObjectException: no such object in table
- JDK-8203281: [Windows] JComboBox change in ui when editor.setBorder() is called
- JDK-8203382: Rename SystemDictionary::initialize_wk_klass to resolve_wk_klass
- JDK-8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
- JDK-8203928: [Test] Convert non-JDB scaffolding serviceability shell script tests to java
- JDK-8204963: javax.swing.border.TitledBorder has a memory leak
- JDK-8204994: SA might fail to attach to process with "Windbg Error: WaitForEvent failed"
- JDK-8205534: Remove SymbolTable dependency from serviceability agent
- JDK-8206309: Tier1 SA tests fail
- JDK-8208281: java/nio/channels/AsynchronousSocketChannel/Basic.java timed out
- JDK-8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
- JDK-8209332: [TEST] test/jdk/com/sun/jdi/CatchPatternTest.sh is incorrect
- JDK-8209342: Problemlist SA tests on Solaris due to Error attaching to process: Can't create thread_db agent!
- JDK-8209343: Test javax/swing/border/TestTitledBorderLeak.java should be marked as headful
- JDK-8209517: com/sun/jdi/BreakpointWithFullGC.java fails with timeout
- JDK-8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
- JDK-8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
- JDK-8209608: Problem list com/sun/jdi/BreakpointWithFullGC.java
- JDK-8210131: vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java failed with ObjectFree: GetCurrentThreadCpuTimerInfo returned unexpected error code
- JDK-8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
- JDK-8210527: JShell: NullPointerException in jdk.jshell.Eval.translateExceptionStack
- JDK-8210560: [TEST] convert com/sun/jdi redefineClass-related tests
- JDK-8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
- JDK-8210748: [TESTBUG] lib.jdb.Jdb.waitForPrompt() should clarify which output is the pending reply after a timeout
- JDK-8210760: [TEST] rewrite com/sun/jdi shell tests to java version - step4
- JDK-8210977: jdk/jfr/event/oldobject/TestThreadLocalLeak.java fails to find ThreadLocalObject
- JDK-8211292: [TEST] convert com/sun/jdi/DeferredStepTest.sh test
- JDK-8211694: JShell: Redeclared variable should be reset
- JDK-8212200: assert when shared java.lang.Object is redefined by JVMTI agent
- JDK-8212629: [TEST] wrong breakpoint in test/jdk/com/sun/jdi/DeferredStepTest
- JDK-8212665: com/sun/jdi/DeferredStepTest.java: jj1 (line 57) - unexpected. lastLine=52, minLine=52, maxLine=55
- JDK-8212807: tools/jar/multiRelease/Basic.java times out
- JDK-8213182: Minimal VM build failure after JDK-8212200 (assert when shared java.lang.Object is redefined by JVMTI agent)
- JDK-8213214: Set -Djava.io.tmpdir= when running tests
- JDK-8213275: ReplaceCriticalClasses.java fails with jdk.internal.vmn string table expansion when dumping lots of CDS classes
- JDK-8213703: LambdaConversionException: Invalid receiver type not a subtype of implementation type interface
- JDK-8214074: Ghash optimization using AVX instructions
- JDK-8214491: Upgrade sts failing intermitently with \"Problem cleaning up the following threads:\"
- JDK-8215244: jdk/jshell/ToolBasicTest.java testHistoryReference failed
- JDK-8215354: x86_32 build failures after JDK-8214074 (Ghash optimization using AVX instructions)
l to 1 on Windows
- JDK-8216974: HttpConnection not returned to the pool after 204 response
- JDK-8218948: SimpleDateFormat :: format - Zone Names are not reflected correctly during run time
- JDK-8219712: code_size2 (defined in stub_routines_x86.hpCPUs
- JDK-8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs
- JDK-8221658: aarch64: add necessary predicate for ubfx patterns
- JDK-8221759: Crash when completing \"java.io.File.path\"
- JDK-8221918: runtime/SharedArchiveFile/serviceability/ReplaceCriticalClasses.java fails: Shared archive not found
- JDK-8222074: Enhance auto vectorization for x86
- JDK-8222079: Don't use memset to initialize fields decode_env constructor in disassembler.cpp
- JDK-8222769: [TESTBUG] TestJFRNetworkEvents should not rely on hostname command
- JDK-8223688: JShell: crash on the instantiation of raw anonymous class
- JDK-8223777: In posix_spawn mode, failing to exec() jspawnhelper does not result in an error
- JDK-8223940: Private key not supported by chosen signature algorithm
- JDK-8224184: jshell got IOException at exiting with AIX
- JDK-8224234: compiler/codegen/TestCharVect2.java fails in test_mulc
- JDK-8225037: java.net.JarURLConnection::getJarEntry() throws NullPointerException
- JDK-8225625: AES Electronic Codebook (ECB) encryption and decryption optimization using AVX512 + VAES instructions
- JDK-8226536: Catch OOM from deopt that fails rematerializing objects
- JDK-8226575: OperatingSystemMXBean should be made container aware
- JDK-8226697: Several tests which need the @key headful keyword are missing it.
- JDK-8226809: Circular reference in printed stack trace is not correctly indented & ambiguous
- JDK-8227059: sun/security/tools/keytool/DefaultSignatureAlgorithm.java timed out
- JDK-8227269: Slow class loading when running with JDWP
- JDK-8227595: keytool/fakegen/DefaultSignatureAlgorithm.java fails due to "exitValue = 6"
- JDK-8228448: Jconsole can't connect to itself
- JDK-8228967: Trust/Key store and SSL context utilities for tests
- JDK-8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow
- JDK-8229815: Upgrade Jline to 3.12.1
- JDK-8230000: some httpclients testng tests run zero test
- JDK-8230002: javax/xml/jaxp/unittest/transform/SecureProcessingTest.java runs zero test
- JDK-8230010: Remove jdk8037819/BasicTest1.java
- JDK-8230094: CCE in createXMLEventWriter(Result) over an arbitrary XMLStreamWriter
- JDK-8230402: Allocation of compile task fails with assert: "Leaking compilation tasks?"
- JDK-8230767: FlightRecorderListener returns null recording
- JDK-8230870: (zipfs) Add a ZIP FS test that is similar to test/jdk/java/util/zip/EntryCount64k.java
- JDK-8231209: [REDO] ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread
- JDK-8231586: enlarge encoding space for OopMapValue offsets
- JDK-8231953: Wrong assumption in assertion in oop::register_oop
- JDK-8231968: getCurrentThreadAllocatedBytes default implementation s/b getThreadAllocatedBytes
- JDK-8232083: Minimal VM is broken after JDK-8231586
- JDK-8232161: Align some one-way conversion in MS950 charset with Windows
- JDK-8232855: jshell missing word in /help help
- JDK-8233027: OopMapSet::all_do does oms.next() twice during iteration
- JDK-8233228: Disable weak named curves by default in TLS, CertPath, and Signed JAR
- JDK-8233386: Initialize NULL fields for unused decorations
- JDK-8233452: java.math.BigDecimal.sqrt() with RoundingMode.FLOOR results in incorrect result
- JDK-8233686: XML transformer uses excessive amount of memory
- JDK-8233741: AES Countermode (AES-CTR) optimization using AVX512 + VAES instructions
- JDK-8233829: javac cannot find non-ASCII module name under non-UTF8 environment
- JDK-8233958: Memory retention due to HttpsURLConnection finalizer that serves no purpose
- JDK-8234011: (zipfs) Memory leak in ZipFileSystem.releaseDeflater()
- JDK-8234058: runtime/CompressedOops/CompressedClassPointers.java fails with 'Narrow klass base: 0x0000000000000000' missing from stdout/stderr
- JDK-8234149: Several regression tests do not dispose Frame at end
- JDK-8234347: "Turkey" meta time zone does not generate composed localized names
- JDK-8234385: [TESTBUG] java/awt/EventQueue/6980209/bug6980209.java fails in linux nightly
- JDK-8234535: Cross compilation fails due to missing CFLAGS for the BUILD_CC
- JDK-8234541: C1 emits an empty message when it inlines successfully
- JDK-8234687: change javap reporting on unknown attributes
- JDK-8236464: SO_LINGER option is ignored by SSLSocket in JDK 11
- JDK-8236548: Localized time zone name inconsistency between English and other locales
- JDK-8236617: jtreg test containers/docker/TestMemoryAwareness.java fails after 8226575
- JDK-8237182: Update copyright header for shenandoah and epsilon files
- JDK-8237888: security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java fails when checking validity interval
- JDK-8237977: Further update javax/net/ssl/compatibility/Compatibility.java
- JDK-8238270: java.net HTTP/2 client does not decrease stream count when receives 204 response
- JDK-8238284: [macos] Zero VM build fails due to an obvious typo
- JDK-8238380: java.base/unix/native/libjava/childproc.c "multiple definition" link errors with GCC10
- JDK-8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple definition" link errors with GCC10
- JDK-8238388: libj2gss/NativeFunc.o "multiple definition" link errors with GCC10
- JDK-8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
- JDK-8238710: LingeredApp doesn't log stdout/stderr if exits with non-zero code
- JDK-8239083: C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method");
- JDK-8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD
- JDK-8240169: javadoc fails to link to non-modular api docs
- JDK-8240295: hs_err elapsed time in seconds is not accurate enough
- JDK-8240360: NativeLibraryEvent has wrong library name on Linux
- JDK-8240676: Meet not symmetric failure when running lucene on jdk8
- JDK-8241007: Shenandoah: remove ShenandoahCriticalControlThreadPriority support
- JDK-8241065: Shenandoah: remove leftover code after JDK-8231086
- JDK-8241086: Test runtime/NMT/HugeArenaTracking.java is failing on 32bit Windows
- JDK-8241130: com.sun.jndi.ldap.EventSupport.removeDeadNotifier: java.lang.NullPointerException
- JDK-8241138: http.nonProxyHosts=* causes StringIndexOutOfBoundsException in DefaultProxySelector
- JDK-8241319: WB_GetCodeBlob doesn't have ResourceMark
- JDK-8241478: vmTestbase/gc/gctests/Steal/steal001/steal001.java fails with OOME
- JDK-8241574: Shenandoah: remove ShenandoahAssertToSpaceClosure
- JDK-8241750: x86_32 build failure after JDK-8227269
- JDK-8242184: CRL generation error with RSASSA-PSS
- JDK-8242283: Can't start JVM when java home path includes non-ASCII character
- JDK-8242556: Cannot load RSASSA-PSS public key with non-null params from byte array
- JDK-8243029: Rewrite javax/net/ssl/compatibility/Compatibility.java with a flexible interop test framework
- JDK-8243138: Enhance BaseLdapServer to support starttls extended request
- JDK-8243320: Add SSL root certificates to Oracle Root CA program
- JDK-8243321: Add Entrust root CA - G4 to Oracle Root CA program
- JDK-8243389: enhance os::pd_print_cpu_info on linux
- JDK-8243453: java --describe-module failed with non-ASCII module name under non-UTF8 environment
- JDK-8243470: [macos] bring back O2 opt level for unsafe.cpp
- JDK-8243489: Thread CPU Load event may contain wrong data for CPU time under certain conditions
- JDK-8243925: Toolkit#getScreenInsets() returns wrong value on HiDPI screens (Windows)
- JDK-8244087: 2020-04-24 public suffix list update
- JDK-8244151: Update MUSCLE PC/SC-Lite headers to the latest release 1.8.26
- JDK-8244164: AArch64: jaotc generates incorrect code for compressed OOPs with non-zero heap base
- JDK-8244196: adjust output in os_linux
- JDK-8244225: stringop-overflow warning on strncpy call from compile_the_world_in
- JDK-8244287: JFR: Methods samples have line number 0
- JDK-8244703: "platform encoding not initialized" exceptions with debugger, JNI
- JDK-8244719: CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it"
- JDK-8244729: Shenandoah: remove resolve paths from SBSA::generate_shenandoah_lrb
- JDK-8244763: Update --release 8 symbol information after JSR 337 MR3
- JDK-8244818: Java2D Queue Flusher crash while moving application window to external monitor
- JDK-8245151: jarsigner should not raise duplicate warnings on verification
- JDK-8245616: Bump update version for OpenJDK: jdk-11.0.9
- JDK-8245714: "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch
- JDK-8245801: StressRecompilation triggers assert "redundunt OSR recompilation detected. memory leak in CodeCache!"
- JDK-8245832: JDK build make-static-libs should build all JDK libraries
- JDK-8245880: Shenandoah: check class unloading flag early in concurrent code root scan
- JDK-8245981: Upgrade to jQuery 3.5.1
- JDK-8246027: Minimal fastdebug build broken after JDK-8245801
- JDK-8246094: [macos] Sound Recording and playback is not working
- JDK-8246153: TestEliminateArrayCopy fails with -XX:+StressReflectiveCode
- JDK-8246193: Possible NPE in ENC-PA-REP search in AS-REQ
- JDK-8246196: javax/management/MBeanServer/OldMBeanServerTest fails with AssertionError
- JDK-8246203: Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN
- JDK-8246330: Add TLS Tests for Legacy ECDSA curves
- JDK-8246453: TestClone crashes with "all collected exceptions must come from the same place"
- JDK-8247246: Add explicit ResolvedJavaType.link and expose presence of default methods
- JDK-8247350: [aarch64] assert(false) failed: wrong size of mach node
- JDK-8247502: PhaseStringOpts crashes while optimising effectively dead code
- JDK-8247615: Initialize the bytes left for the heap sampler
- JDK-8247824: CTW: C2 (Shenandoah) compilation fails with SEGV in SBC2Support::pin_and_expand
- JDK-8247874: Replacement in VersionProps.java.template not working when --with-vendor-bug-url contains '&'
- JDK-8247979: aarch64: missing side effect of killing flags for clearArray_reg_reg
- JDK-8248214: Add paddings for TaskQueueSuper to reduce false-sharing cache contention
- JDK-8248219: aarch64: missing memory barrier in fast_storefield and fast_accessfield
- JDK-8248348: Regression caused by the update to BCEL 6.0
- JDK-8248385: [testbug][11u] Adapt TestInitiExceptions to jtreg 5.1
- JDK-8248495: [macos] zerovm is broken due to libffi headers location
- JDK-8248851: CMS: Missing memory fences between free chunk check and klass read
- JDK-8248987: AOT's Linker.java seems to eagerly fail-fast on Windows
- JDK-8249159: Downport test rework for SSLSocketTemplate from 8224650
- JDK-8249215: JFrame::setVisible crashed with -Dfile.encoding=UTF-8 on Japanese Windows.
- JDK-8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel
- JDK-8249255: Build fails if source code in cygwin home dir
- JDK-8249277: TestVerifyIterativeGVN.java is failing with timeout in OpenJDK 11
- JDK-8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList
- JDK-8249560: Shenandoah: Fix racy GC request handling
- JDK-8249801: Shenandoah: Clear soft-refs on requested GC cycle
- JDK-8249953: Shenandoah: gc/shenandoah/mxbeans tests should account for corner cases
- JDK-8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS Kerberos tickets
- JDK-8250609: C2 crash in IfNode::fold_compares
- JDK-8250627: Use -XX:+/-UseContainerSupport for enabling/disabling Java container metrics
- JDK-8250755: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java
- JDK-8250787: Provider.put no longer registering aliases in FIPS env
- JDK-8250826: jhsdb does not work with coredump which comes from Substrate VM
- JDK-8250827: Shenandoah: needs to reset/finish StringTable's dead count before/after parallel walk
- JDK-8250844: Make sure {type,obj}ArrayOopDesc accessors check the bounds
- JDK-8251117: Cannot check P11Key size in P11Cipher and P11AEADCipher
- JDK-8251354: Shenandoah: Fix jdk/jfr/tool/TestPrintJSON.java test failure
- JDK-8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U
- JDK-8251469: Better cleanup for test/jdk/javax/imageio/SetOutput.java
- JDK-8251487: Shenandoah: missing detail timing tracking for final mark cleaning phase
- JDK-8252120: compiler/oracle/TestCompileCommand.java misspells "occured"
- JDK-8252157: JDK-8231209 11u backport breaks jmm binary compatibility
- JDK-8252258: [11u] JDK-8242154 changes the default vendor
- JDK-8252804: [test] Fix 'ReleaseDeflater.java' test after downport of 8234011
- JDK-8253134: JMM_VERSION should remain at 0x20020000 (JDK 10) in JDK 11
- JDK-8253283: [11u] Test build/translations/VerifyTranslations.java failing after JDK-8252258
- JDK-8253813: Backout JDK-8244287 from 11u: it causes several crashes
Changelog extracted from https://nim-lang.org/blog/2020/10/16/version-140-released.html
Standard library additions and changes
Added some enhancements to std/jsonutils module.
Added a possibility to deserialize JSON arrays directly to
HashSet and OrderedSet types and respectively to serialize
those types to JSON arrays via jsonutils.fromJson and
jsonutils.toJson procedures.
Added a possibility to deserialize JSON null objects to Nim
option objects and respectively to serialize Nim option object
to JSON object if isSome or to JSON null object if isNone via
jsonutils.fromJson and jsonutils.toJson procedures.
Added a Joptions parameter to jsonutils.fromJson currently
containing two boolean options allowExtraKeys and
allowMissingKeys.
If allowExtraKeys is true Nim’s object to which the JSON
is parsed is not required to have a field for every JSON
key.
If allowMissingKeys is true Nim’s object to which JSON is
parsed is allowed to have fields without corresponding
JSON keys.
Added bindParams, bindParam to db_sqlite for binding parameters
into a SqlPrepared statement.
Added tryInsert,insert procs to db_* libs which accept primary key
column name.
Added xmltree.newVerbatimText support create style’s,script’s
text.
uri module now implements RFC-2397.
Added DOM Parser to the dom module for the JavaScript target.
The default hash for Ordinal has changed to something more
bit-scrambling. import hashes; proc hash(x: myInt): Hash =
hashIdentity(x) recovers the old one in an instantiation context
while -d:nimIntHash1 recovers it globally.
deques.peekFirst and deques.peekLast now have var Deque[T] -> var T
overloads.
File handles created from high-level abstractions in the stdlib
will no longer be inherited by child processes. In particular,
these modules are affected: asyncdispatch, asyncnet, system,
nativesockets, net and selectors.
For asyncdispatch, asyncnet, net and nativesockets, an inheritable
flag has been added to all procs 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 transition 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.
asyncdispatch.setInheritable, system.setInheritable and nativesockets.setInheritable are also introduced for setting file handle or socket inheritance. Not all platforms have these procs 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.
Added commonPrefixLen to critbits.
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 pointers 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.
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) for 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 example of these changes:
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 (e.g. 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
net.newContext now defaults to the list of ciphers targeting “Intermediate compatibility” 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 a convenience proc for renderRstToOut and initRstGenerator.
Added os.normalizeExe.
macros.newLit now preserves named vs unnamed tuples.
Added random.gauss, that uses the ratio of uniforms method of sampling from a Gaussian distribution.
Added typetraits.elementType to get the 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: instead of os.existsDir use dirExists, instead of os.existsFile use fileExists.
Added the jsre module, Regular Expressions for the JavaScript target..
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 for JavaScript, 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, some of which were deprecated already in 0.15.
Removed sugar.distinctBase, deprecated since 0.19. Use typetraits.distinctBase.
asyncdispatch.PDispatcher.handles is exported so that an external low-level libraries can access it.
std/with, sugar.dup now support object field assignment expressions:
import std/with
type Foo = object
x, y: int
var foo = Foo()
with foo:
x = 10
y = 20
echo foo
Proc math.round is no longer deprecated. The advice to use strformat instead cannot be applied to every use case. The limitations and the (lack of) reliability of round are well documented.
Added getprotobyname to winlean. Added getProtoByname to nativesockets which returns a protocol code from the database that matches the protocol name.
Added missing attributes and methods to dom.Navigator like deviceMemory, onLine, vibrate(), etc.
Added strutils.indentation and strutils.dedent which enable indented string literals:
import strutils
echo dedent """
This
is
cool!
"""
Added initUri(isIpv6: bool) to uri module, now uri supports parsing ipv6 hostname.
Added readLines(p: Process) to osproc.
Added the below toX procs for collections. The usage is similar to procs such as sets.toHashSet and tables.toTable. Previously, it was necessary to create the respective empty collection and add items manually.
critbits.toCritBitTree, which creates a CritBitTree from an openArray of items or an openArray of pairs.
deques.toDeque, which creates a Deque from an openArray.
heapqueue.toHeapQueue, which creates a HeapQueue from an openArray.
intsets.toIntSet, which creates an IntSet from an openArray.
Added progressInterval argument to asyncftpclient.newAsyncFtpClient to control the interval at which progress callbacks are called.
Added os.copyFileToDir.
Language changes
The =destroy hook no longer has to reset its target, as the compiler now automatically inserts wasMoved calls where needed.
The = hook is now called =copy for clarity. The old name = is still available so there is no need to update your code. This change was backported to 1.2 too so you can use the more readable =copy without loss of compatibility.
In the newruntime it is now allowed to assign to the discriminator field without restrictions as long as the case object doesn’t have a custom destructor. The discriminator value doesn’t have to be a constant either. If you have a custom destructor for a case object and you do want to freely assign discriminator fields, it is recommended to refactor the object into 2 objects like this:
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)
Refactor into:
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)
getImpl on enum type symbols now returns field syms instead of idents. This helps with writing typed macros. The old behavior for backwards compatibility can be restored with --useVersion:1.0.
The typed AST for proc headers will now have the arguments be syms instead of idents. This helps with writing typed macros. The old behaviour for backwards compatibility can be restored with --useVersion:1.0.
let statements can now be used without a value if declared with importc/importcpp/importjs/importobjc.
The keyword from is now usable as an operator.
Exceptions inheriting from system.Defect are no longer tracked with the .raises: [] exception tracking mechanism. This is more consistent with the built-in operations. The following always used to compile (and still does):
proc mydiv(a, b): int {.raises: [].} =
a div b # can raise an DivByZeroDefect
Now also this compiles:
proc mydiv(a, b): int {.raises: [].} =
if b == 0: raise newException(DivByZeroDefect, "division by zero")
else: result = a div b
The reason for this is that DivByZeroDefect inherits from Defect and with --panics:on Defects become unrecoverable errors.
Added the thiscall calling convention as specified by Microsoft, mostly for hooking purposes.
Deprecated the {.unroll.} pragma, because it was always ignored by the compiler anyway.
Removed the deprecated strutils.isNilOrWhitespace.
Removed the deprecated sharedtables.initSharedTable.
Removed the deprecated asyncdispatch.newAsyncNativeSocket.
Removed the deprecated dom.releaseEvents and dom.captureEvents.
Removed sharedlists.initSharedList, was deprecated and produces undefined behaviour.
There is a new experimental feature called “strictFuncs” which makes the definition of .noSideEffect stricter. See here for more information.
“for-loop macros” (see the manual) are no longer an experimental feature. In other words, you don’t have to write pragma {.experimental: "forLoopMacros".} if you want to use them.
Added the .noalias pragma. It is mapped to C’s restrict keyword for the increased performance this keyword can enable.
items no longer compiles with enums with holes as its behavior was error prone, see #14004.
system.deepcopy has to be enabled explicitly for --gc:arc and --gc:orc via --deepcopy:on.
Added the std/effecttraits module for introspection of the inferred effects. We hope this enables async macros that are precise about the possible exceptions that can be raised.
The pragma blocks {.gcsafe.}: ... and {.noSideEffect.}: ... can now also be written as {.cast(gcsafe).}: ... and {.cast(noSideEffect).}: .... This is the new preferred way of writing these, emphasizing their unsafe nature.
Compiler changes
Specific warnings can now be turned into errors via --warningAsError[X]:on|off.
The define and undef pragmas have been de-deprecated.
New command: nim r main.nim [args...] which compiles and runs main.nim, and implies --usenimcache so that the output is saved to $nimcache/main$exeExt, using the same logic as nim c -r to avoid recompilations when sources don’t change. Example:
nim r compiler/nim.nim --help # only compiled the first time
echo 'import os; echo getCurrentCompilerExe()' | nim r - # this works too
nim r compiler/nim.nim --fullhelp # no recompilation
nim r --nimcache:/tmp main # binary saved to /tmp/main
--hint:processing is now supported and means --hint:processing:on (likewise with other hints and warnings), which is consistent with all other bool flags. (since 1.3.3).
nim doc -r main and nim rst2html -r main now call openDefaultBrowser.
Added the new hint --hint:msgOrigin will show where a compiler msg (hint|warning|error) was generated; this helps in particular when it’s non obvious where it came from either because multiple locations generate the same message, or because the message involves runtime formatting.
Added the new flag --backend:js|c|cpp|objc (or -b:js etc), to change the backend; can be used with any command (e.g. nim r, doc, check etc); safe to re-assign.
Added the new flag --doccmd:cmd to pass additional flags for runnableExamples, e.g.: --doccmd:-d:foo --threads use --doccmd:skip to skip runnableExamples and rst test snippets.
Added the new flag --usenimcache to output binary files to nimcache.
runnableExamples "-b:cpp -r:off": code is now supported, allowing to override how an example is compiled and run, for example to change the backend.
nim doc now outputs under $projectPath/htmldocs when --outdir is unspecified (with or without --project); passing --project now automatically generates an index and enables search. See docgen for details.
Removed the --oldNewlines switch.
Removed the --laxStrings switch for mutating the internal zero terminator on strings.
Removed the --oldast switch.
Removed the --oldgensym switch.
$getType(untyped) is now “untyped” instead of “expr”, $getType(typed) is now “typed” instead of “stmt”.
Sink inference is now disabled per default and has to enabled explicitly via --sinkInference:on. Note: For the standard library sink inference remains enabled. This change is most relevant for the --gc:arc, --gc:orc memory management modes.
Tool changes
nimsuggest now returns both the forward declaration and the implementation location upon a def query. Previously the behavior was to return the forward declaration only.
Bugfixes
Fixed “repr() not available for uint{,8,16,32,64} under –gc:arc” (#13872)
Fixed “Critical: 1 completed Future, multiple await: Only 1 await will be awakened (the last one)” (#13889)
Fixed “crash on openarray interator with argument in stmtListExpr” (#13739)
Fixed “Some compilers on Windows don’t work” (#13910)
Fixed “httpclient hangs if it recieves an HTTP 204 (No Content)” (#13894)
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 “C compile error with –gc:arc on version 1.2.0 “unknown type name ‘TGenericSeq’” (#13863)
Fixed “var return type for proc doesn’t work at c++ backend” (#13848)
Fixed “TimeFormat() should raise an error but craches at compilation time” (#12864)
Fixed “gc:arc cannot fully support threadpool with FlowVar” (#13781)
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 “for a in MyEnum gives incorrect results with enum with holes” (#14001)
Fixed “Trivial crash” (#12741)
Fixed “Enum with holes cannot be used as Table index” (#12834)
Fixed “spawn proc that uses typedesc crashes the compiler” (#14014)
Fixed “Docs Search Results box styling is not Dark Mode Friendly” (#13972)
Fixed “–gc:arc -d:useSysAssert undeclared identifier cstderr with newSeq” (#14038)
Fixed “issues in the manual” (#12486)
Fixed “Annoying warning: inherit from a more precise exception type like ValueError, IOError or OSError [InheritFromException]” (#14052)
Fixed “relativePath(“foo”, “/”) and relativePath(“/”, “foo”) is wrong” (#13222)
Fixed “[regression] parseEnum does not work anymore for enums with holes” (#14030)
Fixed “Exception types in the stdlib should inherit from CatchableError or Defect, not Exception” (#10288)
Fixed “Make debugSend and debugRecv procs public in smtp.nim” (#12189)
Fixed “xmltree need add raw text, when add style element” (#14064)
Fixed “raises requirement does not propagate to derived methods” (#8481)
Fixed “tests/stdlib/tgetaddrinfo.nim fails on NetBSD” (#14091)
Fixed “tests/niminaction/Chapter8/sdl/sdl_test.nim fails on NetBSD” (#14088)
Fixed “Incorrect escape sequence for example in jsffi library documentation” (#14110)
Fixed “HCR: Can not link exported const, in external library” (#13915)
Fixed “Cannot import std/unidecode” (#14112)
Fixed “macOS: dsymutil should not be called on static libraries” (#14132)
Fixed “nim jsondoc -o:doc.json filename.nim fails when sequences without a type are used” (#14066)
Fixed “algorithm.sortedByIt template corrupts tuple input under –gc:arc” (#14079)
Fixed “Invalid C code with lvalue conversion” (#14160)
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 “[Documentation] overloading using named arguments works but is not documented” (#11932)
Fixed “import os + use of existsDir/dirExists/existsFile/fileExists/findExe in config.nims causes “ambiguous call’ error” (#14142)
Fixed “import os + use of existsDir/dirExists/existsFile/fileExists/findExe in config.nims causes “ambiguous call’ error” (#14142)
Fixed “runnableExamples doc gen crashes compiler with except Exception as e syntax” (#14177)
Fixed “[ARC] Segfault with cyclic references (?)” (#14159)
Fixed “Semcheck regression when accessing a static parameter in proc” (#14136)
Fixed “iterator walkDir doesn’t work with -d:useWinAnsi” (#14201)
Fixed “cas is wrong for tcc” (#14151)
Fixed “proc execCmdEx doesn’t work with -d:useWinAnsi” (#14203)
Fixed “Use -d:nimEmulateOverflowChecks by default?” (#14209)
Fixed “Old sequences with destructor objects bug” (#14217)
Fixed “[ARC] ICE when changing the discriminant of a return value” (#14244)
Fixed “[ARC] ICE with static objects” (#14236)
Fixed “[ARC] “internal error: environment misses: a” in a finalizer” (#14243)
Fixed “[ARC] compile failure using repr with object containing ref seq[string]” (#14270)
Fixed “[ARC] implicit move on last use happening on non-last use” (#14269)
Fixed “[ARC] Compiler crash with a recursive non-ref object variant” (#14294)
Fixed “htmlparser.parseHtml behaves differently using –gc:arc or –gc:orc” (#13946)
Fixed “Invalid return value of openProcess is NULL rather than INVALID_HANDLE_VALUE(-1) in windows” (#14289)
Fixed “ARC codegen bug with inline iterators” (#14219)
Fixed “Building koch on OpenBSD fails unless the Nim directory is in $PATH” (#13758)
Fixed “[gc:arc] case object assignment SIGSEGV: destroy not called for primitive type “ (#14312)
Fixed “Crash when using thread and –gc:arc “ (#13881)
Fixed “Getting “Warning: Cannot prove that ‘result’ is initialized” for an importcpp’d proc with var T return type” (#14314)
Fixed “nim cpp -r --gc:arc segfaults on caught AssertionError” (#13071)
Fixed “tests/async/tasyncawait.nim is recently very flaky” (#14320)
Fixed “Documentation nonexistent quitprocs module” (#14331)
Fixed “SIGSEV encountered when creating threads in a loop w/ –gc:arc” (#13935)
Fixed “nim-gdb is missing from all released packages” (#13104)
Fixed “sysAssert error with gc:arc on 3 line program” (#13862)
Fixed “compiler error with inline async proc and pragma” (#13998)
Fixed “[ARC] Compiler crash when adding to a seq[ref Object]” (#14333)
Fixed “nimvm: sysFatal: unhandled exception: ‘sons’ is not accessible using discriminant ‘kind’ of type ‘TNode’ [FieldError]” (#14340)
Fixed “[Regression] karax events are not firing “ (#14350)
Fixed “odbcsql module has some wrong integer types” (#9771)
Fixed “db_sqlite needs sqlPrepared” (#13559)
Fixed “[Regression] createThread is not GC-safe” (#14370)
Fixed “Broken example on hot code reloading” (#14380)
Fixed “runnableExamples block with except on specified error fails with nim doc” (#12746)
Fixed “compiler as a library: findNimStdLibCompileTime fails to find system.nim” (#12293)
Fixed “5 bugs with importcpp exceptions” (#14369)
Fixed “Docs shouldn’t collapse pragmas inside runnableExamples/code blocks” (#14174)
Fixed “Bad codegen/emit for hashes.hiXorLo in some contexts.” (#14394)
Fixed “Boehm GC does not scan thread-local storage” (#14364)
Fixed “RVO not exception safe” (#14126)
Fixed “runnableExamples that are only compiled” (#10731)
Fixed “foldr raises IndexError when called on sequence” (#14404)
Fixed “moveFile does not overwrite destination file” (#14057)
Fixed “doc2 outputs in current work dir” (#6583)
Fixed “[docgen] proc doc comments silently omitted after 1st runnableExamples” (#9227)
Fixed “nim doc --project shows ‘@@/’ instead of ‘../’ for relative paths to submodules” (#14448)
Fixed “re, nre have wrong start semantics” (#14284)
Fixed “runnableExamples should preserve source code doc comments, strings, and (maybe) formatting” (#8871)
Fixed “nim doc .. fails when runnableExamples uses $ [devel] [regression]” (#14485)
Fixed “items is 20%~30% slower than iteration via an index” (#14421)
Fixed “ARC: unreliable setLen “ (#14495)
Fixed “lent is unsafe: after #14447 you can modify variables with “items” loop for sequences” (#14498)
Fixed “var op = fn() wrongly gives warning ObservableStores with object of RootObj type” (#14514)
Fixed “Compiler assertion” (#14562)
Fixed “Can’t get ord of a value of a Range type in the JS backend “ (#14570)
Fixed “js: can’t take addr of param (including implicitly via lent)” (#14576)
Fixed “{.noinit.} ignored in for loop -> bad codegen for non-movable types” (#14118)
Fixed “generic destructor gives: Error: unresolved generic parameter” (#14315)
Fixed “Memory leak with arc gc” (#14568)
Fixed “escape analysis broken with lent” (#14557)
Fixed “wrapWords seems to ignore linebreaks when wrapping, leaving breaks in the wrong place” (#14579)
Fixed “lent gives wrong results with -d:release” (#14578)
Fixed “Nested await expressions regression: await a(await expandValue()) doesnt compile” (#14279)
Fixed “windows CI docs fails with strange errors” (#14545)
Fixed “[CI] tests/async/tioselectors.nim flaky test for freebsd + OSX CI” (#13166)
Fixed “seq.setLen sometimes doesn’t zero memory” (#14655)
Fixed “nim dump is roughly 100x slower in 1.3 versus 1.2” (#14179)
Fixed “Regression: devel docgen cannot generate document for method” (#14691)
Fixed “recently flaky tests/async/t7758.nim” (#14685)
Fixed “Bind no longer working in generic procs.” (#11811)
Fixed “The pegs module doesn’t work with generics!” (#14718)
Fixed “Defer is not properly working for asynchronous procedures.” (#13899)
Fixed “Add an ARC test with threads in a loop” (#14690)
Fixed “[goto exceptions] {.noReturn.} pragma is not detected in a case expression” (#14458)
Fixed “[exceptions:goto] C compiler error with dynlib pragma calling a proc” (#14240)
Fixed “Cannot borrow var float64 in infix assignment” (#14440)
Fixed “lib/pure/memfiles.nim: compilation error with –taintMode:on” (#14760)
Fixed “newWideCString allocates a multiple of the memory needed” (#14750)
Fixed “Nim source archive install: ‘install.sh’ fails with error: cp: cannot stat ‘bin/nim-gdb’: No such file or directory” (#14748)
Fixed “nim cpp -r tests/exception/t9657 hangs” (#10343)
Fixed “Detect tool fails on FreeBSD” (#14715)
Fixed “compiler crash: findUnresolvedStatic “ (#14802)
Fixed “seq namespace (?) regression” (#4796)
Fixed “Possible out of bounds string access in std/colors parseColor and isColor” (#14839)
Fixed “compile error on latest devel with orc and ssl” (#14647)
Fixed “[minor] $ wrong for type tuple” (#13432)
Fixed “Documentation missing on devel asyncftpclient” (#14846)
Fixed “nimpretty is confused with a trailing comma in enum definition” (#14401)
Fixed “Output arguments get ignored when compiling with –app:staticlib” (#12745)
Fixed “[ARC] destructive move destroys the object too early” (#14396)
Fixed “highlite.getNextToken() crashes if the buffer string is “echo “"”” (#14830)
Fixed “Memory corruption with –gc:arc with a seq of objects with an empty body.” (#14472)
Fixed “Stropped identifiers don’t work as field names in tuple literals” (#14911)
Fixed “Please revert my commit” (#14930)
Fixed “[ARC] C compiler error with inline iterators and imports” (#14864)
Fixed “AsyncHttpClient segfaults with gc:orc, possibly memory corruption” (#14402)
Fixed “[ARC] Template with a block evaluating to a GC’d value results in a compiler crash” (#14899)
Fixed “[ARC] Weird issue with if expressions and templates” (#14900)
Fixed “xmlparser does not compile on devel” (#14805)
Fixed “returning lent T from a var T param gives codegen errors or SIGSEGV” (#14878)
Fixed “[ARC] Weird issue with if expressions and templates” (#14900)
Fixed “threads:on + gc:orc + unittest = C compiler errors” (#14865)
Fixed “mitems, mpairs doesn’t work at compile time anymore” (#12129)
Fixed “strange result from executing code in const expression” (#10465)
Fixed “Same warning printed 3 times” (#11009)
Fixed “type alias for generic typeclass doesn’t work” (#4668)
Fixed “exceptions:goto Bug devel codegen lvalue NIM_FALSE=NIM_FALSE” (#14925)
Fixed “the –useVersion:1.0 no longer works in devel” (#14912)
Fixed “template declaration of iterator doesn’t compile” (#4722)
Fixed “Compiler crash on type inheritance with static generic parameter and equality check” (#12571)
Fixed “Nim crashes while handling a cast in async circumstances.” (#13815)
Fixed “[ARC] Internal compiler error when calling an iterator from an inline proc “ (#14383)
Fixed ““Cannot instantiate” error when template uses generic type” (#5926)
Fixed “Different raises behaviour for newTerminal between Linux and Windows” (#12759)
Fixed “Expand on a type (that defines a proc type) in error message “ (#6608)
Fixed “unittest require quits program with an exit code of 0” (#14475)
Fixed “Range type: Generics vs concrete type, semcheck difference.” (#8426)
Fixed “[Macro] Type mismatch when parameter name is the same as a field” (#13253)
Fixed “Generic instantiation failure when converting a sequence of circular generic types to strings” (#10396)
Fixed “initOptParser ignores argument after value option with empty value.” (#13086)
Fixed “[ARC] proc with both explicit and implicit return results in a C compiler error” (#14985)
Fixed “Alias type forgets implicit generic params depending on order” (#14990)
Fixed “[ARC] sequtils.insert has different behaviour between ARC/refc” (#14994)
Fixed “The documentation for “hot code reloading” references a non-existent npm package” (#13621)
Fixed “existsDir deprecated but breaking dir undeclared” (#15006)
Fixed “uri.decodeUrl crashes on incorrectly formatted input” (#14082)
Fixed “testament incorrectly reports time for tests, leading to wrong conclusions” (#14822)
Fixed “Calling peekChar with Stream returned from osproc.outputStream generate runtime error” (#14906)
Fixed “localPassC pragma should come after other flags” (#14194)
Fixed ““Could not load” dynamic library at runtime because of hidden dependency” (#2408)
Fixed “–gc:arc generate invalid code for {.global.} («nimErr_» in NIM_UNLIKELY)” (#14480)
Fixed “Using ^ from stdlib/math along with converters gives a match for types that aren’t SomeNumber” (#15033)
Fixed “[ARC] Weird exception behaviour from doAssertRaises” (#15026)
Fixed “[ARC] Compiler crash declaring a finalizer proc directly in ‘new’” (#15044)
Fixed “[ARC] C compiler error when creating a var of a const seq” (#15036)
Fixed “code with named arguments in proc of winim/com can not been compiled” (#15056)
Fixed “javascript backend produces javascript code with syntax error in object syntax” (#14534)
Fixed “–gc:arc should be ignored in JS mode.” (#14684)
Fixed “arc: C compilation error with imported global code using a closure iterator” (#12990)
Fixed “[ARC] Crash when modifying a string with mitems iterator” (#15052)
Fixed “[ARC] SIGSEGV when calling a closure as a tuple field in a seq” (#15038)
Fixed “pass varargs[seq[T]] to iterator give empty seq “ (#12576)
Fixed “Compiler crashes when using string as object variant selector with else branch” (#14189)
Fixed “JS compiler error related to implicit return and return var type” (#11354)
Fixed “nkRecWhen causes internalAssert in semConstructFields” (#14698)
Fixed “Memory leaks with async (closure iterators?) under ORC” (#15076)
Fixed “strutil.insertSep() fails on negative numbers” (#11352)
Fixed “Constructing a uint64 range on a 32-bit machine leads to incorrect codegen” (#14616)
Fixed “heapqueue pushpop() proc doesn’t compile” (#14139)
Fixed “[ARC] SIGSEGV when trying to swap in a literal/const string” (#15112)
Fixed “Defer and –gc:arc” (#15071)
Fixed “internal error: compiler/semobjconstr.nim(324, 20) example” (#15111)
Fixed “[ARC] Sequence “disappears” with a table inside of a table with an object variant” (#15122)
Fixed “[ARC] SIGSEGV with tuple assignment caused by cursor inference” (#15130)
Fixed “Issue with –gc:arc at compile time” (#15129)
Fixed “Writing an empty string to an AsyncFile raises an IndexDefect” (#15148)
Fixed “Compiler is confused about call convention of function with nested closure” (#5688)
Fixed “Nil check on each field fails in generic function” (#15101)
Fixed “{.nimcall.} convention won’t avoid the creation of closures” (#8473)
Fixed “smtp.nim(161, 40) Error: type mismatch: got <typeof(nil)> but expected ‘SslContext = void’” (#15177)
Fixed “[strscans] scanf doesn’t match a single character with $+ if it’s the end of the string” (#15064)
Fixed “Crash and incorrect return values when using readPasswordFromStdin on Windows.” (#15207)
Fixed “Possible capture error with fieldPairs and genericParams” (#15221)
Fixed “The StmtList processing of template parameters can lead to unexpected errors” (#5691)
Fixed “[ARC] C compiler error when passing a var openArray to a sink openArray” (#15035)
Fixed “Inconsistent unsigned -> signed RangeDefect usage across integer sizes” (#15210)
Fixed “toHex results in RangeDefect exception when used with large uint64” (#15257)
Fixed “Arc sink arg crash” (#15238)
Fixed “SQL escape in db_mysql is not enough” (#15219)
Fixed “Mixing ‘return’ with expressions is allowed in 1.2” (#15280)
Fixed “os.getFileInfo() causes ICE with –gc:arc on Windows” (#15286)
Fixed “[ARC] Sequence “disappears” with a table inside of a table with an object variant” (#15122)
Fixed “Documentation regression jsre module missing” (#15183)
Fixed “CountTable.smallest/largest() on empty table either asserts or gives bogus answer” (#15021)
Fixed “[Regression] Parser regression” (#15305)
Fixed “[ARC] SIGSEGV with tuple unpacking caused by cursor inference” (#15147)
Fixed “LwIP/FreeRTOS compile error - missing SIGPIPE and more “ (#15302)
Fixed “Memory leaks with async (closure iterators?) under ORC” (#15076)
Fixed “Bug compiling with –gc:arg or –gc:orc” (#15325)
Fixed “memory corruption in tmarshall.nim” (#9754)
Fixed “typed macros break generic proc definitions” (#15326)
Fixed “nim doc2 ignores –docSeeSrcUrl parameter” (#6071)
Fixed “The decodeData Iterator from cgi module crash” (#15369)
Fixed “|| iterator generates invalid code when compiling with –debugger:native” (#9710)
Fixed “Wrong number of variables” (#15360)
Fixed “Coercions with distinct types should traverse pointer modifiers transparently.” (#7165)
Fixed “Error with distinct generic TableRef” (#6060)
Fixed “Support images in nim docgen” (#6430)
Fixed “Regression. Double sem check for procs.” (#15389)
Fixed “uri.nim url with literal ipv6 address is printed wrong, and cannot parsed again” (#15333)
Fixed “[ARC] Object variant gets corrupted with cursor inference” (#15361)
Fixed “nim doc .. compiler crash (regression 0.19.6 => 1.0)” (#14474)
Fixed “cannot borrow result; what it borrows from is potentially mutated” (#15403)
Fixed “memory corruption for seq.add(seq) with gc:arc and d:useMalloc “ (#14983)
Fixed “DocGen HTML output appears improperly when encountering text immediately after/before inline monospace; in some cases won’t compile” (#11537)
Fixed “Deepcopy in arc crashes” (#15405)
Fixed “pop pragma takes invalid input” (#15430)
Fixed “tests/stdlib/tgetprotobyname fails on NetBSD” (#15452)
Fixed “defer doesnt work with block, break and await” (#15243)
Fixed “tests/stdlib/tssl failing on NetBSD” (#15493)
Fixed “strictFuncs doesn’t seem to catch simple ref mutation” (#15508)
Fixed “Sizeof of case object is incorrect. Showstopper” (#15516)
Fixed “[ARC] Internal error when trying to use a parallel for loop” (#15512)
Fixed “[ARC] Type-bound assign op is not being generated” (#15510)
Fixed “[ARC] Crash when adding openArray proc argument to a local seq” (#15511)
Fixed “VM: const case object gets some fields zeroed out at runtime” (#13081)
Fixed “regression(1.2.6 => devel): VM: const case object field access gives: ‘sons’ is not accessible” (#15532)
Fixed “Csources: huge size increase (x2.3) in 0.20” (#12027)
Fixed “Out of date error message for GC options” (#15547)
Fixed “dbQuote additional escape regression” (#15560)
It seems to be a generally useful feature. If a package supports
optional cargo dependencies then you may now (instead of messing with
CARGO_ARGS directly) set in your Makefile for example:
CARGO_NO_DEFAULT_FEATURES= YES
CARGO_FEATURES+= dbus pulseaudio
"Over the last releases, the Elixir team has been focusing on the compiler, both in terms of catching more mistakes at compilation time and making it faster. Elixir v1.11 has made excellent progress on both fronts. This release also includes many other goodies, such as tighter Erlang integration, support for more guard expressions, built-in datetime formatting, and other calendar enhancements."
Update Ruby on Rails 6.0 related packages to 6.0.3.4.
This is security fix for ruby-actionpack60.
## Rails 6.0.3.4 (October 07, 2020) ##
* [CVE-2020-8264] Prevent XSS in Actionable Exceptions
go1.15.2 (released 2020/09/09) includes fixes to the compiler, runtime,
documentation, the go command, and the net/mail, os, sync, and testing
packages. See the Go 1.15.2 milestone on our issue tracker for details.
go1.15.3 (released 2020/10/14) includes fixes to cgo, the compiler, runtime,
the go command, and the bytes, plugin, and testing packages. See the Go 1.15.3
milestone on our issue tracker for details.
go1.14.9 (released 2020/09/09) includes fixes to the compiler, linker, runtime,
documentation, and the net/http and testing packages. See the Go 1.14.9
milestone on our issue tracker for details.
go1.14.10 (released 2020/10/14) includes fixes to the compiler, runtime, and
the plugin and testing packages. See the Go 1.14.10 milestone on our issue
tracker for details.
Install the new interchangeable BLAS system created by Thomas Orgis,
currently supporting Netlib BLAS/LAPACK, OpenBLAS, cblas, lapacke, and
Apple's Accelerate.framework. This system allows the user to select any
BLAS implementation without modifying packages or using package options, by
setting PKGSRC_BLAS_TYPES in mk.conf. See mk/blas.buildlink3.mk for details.
This commit should not alter behavior of existing packages as the system
defaults to Netlib BLAS/LAPACK, which until now has been the only supported
implementation.
Details:
Add new mk/blas.buildlink3.mk for inclusion in dependent packages
Install compatible Netlib math/blas and math/lapack packages
Update math/blas and math/lapack MAINTAINER approved by adam@
OpenBLAS, cblas, and lapacke will follow in separate commits
Update direct dependents to use mk/blas.buildlink3.mk
Perform recursive revbump
3.9.0 Release highlights
New syntax features:
PEP 584, union operators added to dict;
PEP 585, type hinting generics in standard collections;
PEP 614, relaxed grammar restrictions on decorators.
New built-in features:
PEP 616, string methods to remove prefixes and suffixes.
New features in the standard library:
PEP 593, flexible function and variable annotations;
os.pidfd_open() added that allows process management without races and signals.
Interpreter improvements:
PEP 573, fast access to module state from methods of C extension types;
PEP 617, CPython now uses a new parser based on PEG;
a number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using PEP 590 vectorcall;
garbage collection does not block on resurrected objects;
a number of Python modules (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, math, operator, resource, time, _weakref) now use multiphase initialization as defined by PEP 489;
a number of standard library modules (audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by PEP 384.
New library modules:
PEP 615, the IANA Time Zone Database is now present in the standard library in the zoneinfo module;
an implementation of a topological sort of a graph is now provided in the new graphlib module.
Release process changes:
PEP 602, CPython adopts an annual release cycle.
This release contains no new language features, though it does add one
long-awaited standard library feature. It is mostly quality of life
improvements, library stabilizations and const-ifications, and toolchain
improvements.
https://blog.rust-lang.org/2020/10/08/Rust-1.47.html
Vala 0.50.1
===========
* Various improvements and bug fixes:
- codegen:
+ Don't falsly use g_return_val_if_fail() for async creation method [#1077]
+ Don't pass CCodeFunctionCall to NULL-aware free macro
- vala:
+ Improve parsing of with-statement and allow it as embedded statement
+ Prioritize the usage of an existing with-variable instance,
Recognize previously inserted implicit access to with-variable [#1043]
- parser: Allow to begin expression with statement keyword [#1073]
- g-i: Fix a couple of C compiler warnings
- libvaladoc: Fix a couple of C compiler warnings
- testrunner: Pass --enable-checking to increase coverage, Filter external
-0X flags to preserve current default -O0
- build: Stop passing obsolete --use-header
* Bindings:
- gstreamer: Update from 1.19.0+ git master
- gtk4: Don't skip LayoutManager.create_layout_child() [#1071]
- gtk4: Update to 3.99.1+15b635d7
- vapi: Update GIR-based bindings
- webkit2gtk-4.0: Update to 2.30.1
Vala 0.50.0
===========
* Various improvements and bug fixes:
- codegen: The actual struct size is required for calloc (POSIX) [#1068]
* Bindings:
- gstreamer: Update from 1.18.0+ git master
- poppler-glib: Update to 20.09.0
- vapi: Update GIR-based bindings
Vala 0.49.92
============
* Various improvements and bug fixes:
- Don't use locale dependent string functions on syntax strings [#1067]
- girparser: Additionally fallback to "glib:type-name" to retrieve the cname
- libvaladoc/girimporter:
+ Fallback to "name" for callback
+ Fallback to "glib:type-name" for class, interface and record
+ Improve parse_symbol_doc() and don't use parse_doc()
+ Skip "attribute" elements
- libvaladoc/gtkdoc-importer:
+ Correctly retrieve "url" from "ulink" elements
+ Don't let parse_block_taglet() return null
* Bindings:
- gtk4: Update to 3.99.1
- vapi: Update GIR-based bindings
Vala 0.49.91
============
* Various improvements and bug fixes:
- codegen: Don't append unreachable clean-up section of Block [#169] [#838]
- codegen: Always include base_struct declaration if available [#464]
- vala: Additionally break on ObjectCreationExpression in "tainted" check
- vala: Add ObjectCreationExpression.to_string()
- manual: Update from wiki.gnome.org
* Bindings:
- gio-unix-2.0,glib-2.0: Updates for 2.66
- gtk4: Resolve a few conflicts of methods with virtual-methods
Vala 0.49.90
============
* Regression and bug fixes:
- Revert "girwriter: Use appropriate get_ccode_* functions" [#1059]
- tests: Don't rely on undefined use-after-free behaviour of glibc
- Add TraverseVisitor for traversing the tree with a callback
- Force usage of temporary variables for "tainted" member accesses [#1061]
- vala: Move transformation of unary increment/decrement to codegen
- vala: Set parent_node for child nodes of lambda-expression [#1062]
* Bindings:
- gstreamer: Update from 1.17.2+ git master
- gtk4: Update to 3.99.0+e6e2d6b4
- pango: Update from 1.46.0
- webkit2gtk-4.0: Update to 2.29.91
Vala 0.49.2
===========
* Highlights:
- Support non-virtual signals with default handler [#1056]
* Various improvements and bug fixes:
- codegen: Include header for base-symbols when connecting vfuncs
- vala:
+ Inherit CCode.returns_floating_reference attribute from base [#1053]
+ Mark tranformed member-access as qualified [#57]
+ Switch context if with-variable is not owned by with-statement [#1043]
- girparser: Add support for string "feature_test_macro" metadata
* Bindings:
- gio-2.0: Include "gio/gsettingsbackend.h" for GLib.SettingsBackend
members [#1054]
- goocanvas-2.0: Fix some field ownerships and types [#1057]
- gstreamer: Update from 1.17.2+ git master
- gtk4: Update to 3.99.0+358b698e
- pango: Update from 1.45.4+
- posix: Add missing "has_typedef" attribute for some delegates
- posix: Declare WRDE_APPEND constant as public
- vapi: Update GIR-based bindings
Vala 0.49.1
===========
* Highlights:
- Use defintions of public header in internal header if available
and drop --use-header compiler option and enable it by default [#713]
- gdbus: Use GDBusProxy API to set `g-interface-info` at initialization time
- Check vfunc of abstract/virtual methods and property accessors for NULL
before using it [#153]
- Check coverage of switch on enum-type and issue warnings if needed [#777]
- Map empty start/end index to 0/length for slice expressions [#238]
- Add support for "with" statement (mark them experiemental) [#327]
- Use inheritted scopes of base-types/prerequisites to resolve symbols [#54]
* Various improvements and bug fixes:
- codegen:
+ Add implicit parameter and instance checks in async method [#1005]
+ Make use of CCode.cname for label name of CatchClause
- vala:
+ Move setting of target profile and standard packages into CodeContext
+ Remove some public API from expressions and statements
+ Add Expression.is_always_true/false() helpers
+ Add InvalidExpression as replacement for erroneous nodes instead
+ Don't loose invalid_syntax when copying array type for variables [#942]
- girparser: Strip "Enum"-suffix only from enumeration
- girwriter: Internal fields/vfuncs in type-symbols are public in C [#513]
- libvaladoc: Remove unused Api.Class.get_finalize_function_name() API
- testrunner: Add more -Werror=* flags
* Bindings:
- gio-unix-2.0: Fix "g_unix_mount_for" binding [#1052]
- glib-2.0,gio-2.0,gobject-2.0: Updates for 2.66
- glib-2.0: data of GLib.Bytes is allowed to be null
- glib-2.0: Add more explicit type_id attributes for various symbols
- gstreamer: Update from 1.17.2+ git master
- gtk4: Update to 3.99.0+d743e757
- pango: Update from 1.45.2
- vapi: Update GIR-based bindings
6.14.8
BUG FIXES
npm install --dev deprecation message
remove unused broken require
Do not send user secret in the referer header
DOCUMENTATION
docs: add missing metadata in semver page
Node-gyp supports both Python and legacy Python
DEPENDENCIES
update-notifier@2.5.0
npm-registry-fetch@4.0.7
meant@1.0.2
Update Archive_Tar pear package to 1.4.10.
Bump PKGREVISION.
Archive_Tar 1.4.10 (2020-09-15 10:16 UTC)
Changelog:
* Fix block padding when the file buffer length is a multiple of 512 and
smaller than Archive_Tar buffer length
* Don't try to copy username/groupname in chroot jail
Update ruby27 to 2.7.2.
Ruby 2.7.2 Released
Posted by nagachika on 2 Oct 2020
Ruby 2.7.2 has been released.
This release contains intentional incompatibility. The deprecated warnings
are off by default on 2.7.2 and later. You can turn on the deprecated
warnings by specifing command line option -w or -W:deprecated. Please check
the topics below for details.
* Feature #17000 2.7.2 turns off deprecation warnings by default
* Feature #16345 Don¡Çt emit deprecation warnings by default.
This release contains the new version of webrick with a security fix
described in the article.
* CVE-2020-25613: Potential HTTP Request Smuggling Vulnerability in WEBrick
## 1.12.2 - 2020-09-20
- Add janet\_try and janet\_restore to C API.
- Fix `os/execute` regression on windows.
- Add :pipe option to `os/spawn`.
- Fix docstring typos.
## 1.12.1 - 2020-09-07
- Make `zero?`, `one?`, `pos?`, and `neg?` polymorphic.
- Add C++ support to jpm and improve C++ interop in janet.h.
- Add `%t` formatter to `printf`, `string/format`, and other formatter functions.
- Expose `janet_cfuns_prefix` in C API.
- Add `os/proc-wait` and `os/proc-kill` for interacting with processes.
- Add `janet_getjfile` to C API.
- Allow redirection of stdin, stdout, and stderr by passing keywords in the env table in `os/spawn` and `os/execute`.
- Add `os/spawn` to get a core/process back instead of an exit code as in `os/execute`.
When called like this, `os/execute` returns immediately.
- Add `:x` flag to os/execute to raise error when exit code is non-zero.
- Don't run `main` when flychecking.
- Add `:n` flag to `file/open` to raise an error if file cannot be opened.
- Fix import macro to not try and coerce everything to a string.
- Allow passing a second argument to `disasm`.
- Add `cancel`. Resumes a fiber but makes it immediately error at the yield point.
- Allow multi-line paste into built in repl.
- Add `(curenv)`.
- Change `net/read`, `net/chunk`, and `net/write` to raise errors in the case of failures.
- Add `janet_continue_signal` to C API. This indirectly enables C functions that yield to the event loop
to raise errors or other signals.
- Update meson build script to fix bug on Debian's version of meson
- Add `xprint`, `xprin`, `xprintf`, and `xprinf`.
- `net/write` now raises an error message if write fails.
- Fix issue with SIGPIPE on macOS and BSDs.
One of the two patches fixing the build on NetBSD was wrong; I had modified it
to build again but it turns out it was not necessary at all in the first place.
I just confirmed it on netbsd-9/amd64.
Bumps PKGREVISION for safety, since it built again after modifying the original
patch.
Coordinated with kamil@ (who upstreams for us)
Version 14.13.0 (Current)
Notable Changes
(SEMVER-MINOR) deps: upgrade to libuv 1.40.0
(SEMVER-MINOR) module: named exports for CJS via static analysis
(SEMVER-MINOR) module: exports pattern support
(SEMVER-MINOR) src: allow N-API addon in AddLinkedBinding()
Version 14.12.0 (Current)
Notable changes
deps:
* update to uvwasi 0.0.11
n-api:
* create N-API version 7
* add more property defaults
Version 14.11.0 (Current)
Notable Changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8251: Denial of Service by resource exhaustion CWE-400 due to unfinished HTTP/1.1 requests (Critical).
CVE-2020-8201: HTTP Request Smuggling due to CR-to-Hyphen conversion (High).
Version 12.18.4 'Erbium' (LTS)
Notable Changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8201: HTTP Request Smuggling due to CR-to-Hyphen conversion (High).
CVE-2020-8252: fs.realpath.native on may cause buffer overflow (Medium).
Version 10.22.1 'Dubnium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8252: fs.realpath.native on may cause buffer overflow (Medium).
Version 10.22.0 'Dubnium' (LTS)
Notable changes
deps:
* upgrade npm to 6.14.6
* upgrade openssl sources to 1.1.1g
n-api:
* add napi_detach_arraybuffer
Changelog:
Mono 6.10.0 Release Notes
Release date: 19 May 2020
Highlights
Various bugfixes
In Depth
Runtime
WebAssembly
We continue to work on making our WebAssembly support better. Various sets of issues have been resolved in this release and general performance and feature work is happening as well.
Community improvements for AIX/PASE and Haiku
The ports for these systems received a bunch of improvements from community contributor Calvin Buckley (@NattyNarwhal).
Class Libraries
CoreFX integration
We continued to replace some of our classes with the implementation from CoreFX to improve performance and compatibility with .NET.
Tools
Resolved Issues
15808 - dladdr shim for gmodule; try to enable crash reporter on AIX
15894 - Move MonoError from managed wrappers to native wrappers.
16461 - [interp] Non-recursive interpreter
16746 - Clean up map.c /map.h
16785 - Modify run-jenkins.sh to adapt wasm build for the OSX CI lane
16816 - [wasm][tests] WASM Safari browser tests
16832 - Replace embedded libgc with Unity fork of recent Boehm (bdwgc)
16855 - [runtime] Add portable cached array creation functions and replace gcc-specific impl.
16949 - [netcore] Propagate ALCs through reflection functions
16954 - [llvm] Use explicit null checks with LLVM.
16982 - Replace mono_assembly_name_free use with mono_assembly_name_free_internal.
16992 - [Coop] Unconvert Microsoft.Win32.NativeMethods.
17116 - [llvm] Use -place-safepoints in JIT mode too
17119 - Inline TLS access.
17131 - Update MERP event type to MonoAppCrash
17160 - Enable more hw intrinsics for AOT
17162 - Now IsExpired property for FormsAuthenticationTicket compares two dates with same kind (UTC)
17163 - [WinForms] Fix Recalculate in ScrollableControl
17173 - [sgen] Optimize LOS for better locality and parallelization.
17195 - Fixes#17190: SerializationException on ListViewItemCount
17212 - [offsets-tool] Update the README.
17214 - [master] Update dependencies from dotnet/arcade
17219 - [mini] Fix check for FastAllocateString that used old name
17222 - Fix check in fix_libc_name to trigger only for libc, not libcups or other names …
17223 - Enable GSS on Linux
17225 - [Mono.Posix] Add support for memfd_create() and file sealing
17226 - [interp] Kill more instructions
17227 - Incorrect constrained virtual call in method using gsharedvt for reference type.
17228 - Running –enable-msvc-only didn’t find jay.vcxproj.
17229 - [interp] Small cleanups
17230 - [netcore] Disable some SafeWaitHandle tests everywhere, not just Linux
17231 - [man] Update MONO_IOMAP docs as it no longer works with corefx System.IO
17233 - Revert mono_runtime_set_main_args in 44ff0597b835d0af62f526169dba3b365c9c3411.
17236 - [sgen] Fix invalid value passed to write barrier
17237 - [netcore] Implement System.IO.HasOverriddenBeginEndRead(Write) icalls
17238 - Add drawing type converters to mobile profiles
17243 - [netcore] Port CoreCLR implementation of Exception.SetCurrentStackTrace
17249 - [mini] print inserted instruction in verbose logging
17251 - [mini] trace snippet should restore return value
17252 - [System.Net.Http] Clean up HttpMessageHandler setup
17254 - Remove varargs from g_assert and g_assert_not_reachable (save 200+ bytes per frame in wasm interp).
17255 - [tests] Disable tests that crash on android sdks
17261 - [sdks] Android runner: properly shutdown runtime for Mono.Debugger.Soft test app
17262 - [eglib] Add newline for failure check prints
17263 - Fix g_assert_not_reached message regression.
17266 - [wasm] Continue loading app even when .pdb files are not found
17269 - Upgrade MSVC native runtime build to VS2019.
17270 - Add null check around sslStream when trying to dispose in MonoTlsStream
17272 - Update Linker. This fixes a Xamarin.Android breakage
17275 - Bump corefx to get Azure testhost change
17279 - Generate LLVM IR for OP_XEQUAL that is recognized by LLVM’s vector pattern recognizers.
17294 - [loader] Fix gnu/lib-names.h define
17297 - Mirror changes from mono/coreclr
17298 - [coop] Use bitfields for coop state machine state representation
17302 - Fix C++ WebAssembly build.
17305 - Fix msvc build warning, empty source main-core.c.
17307 - Bumps corefx to mono/corefx@8e3b279
17312 - Update dotnet sdk version
17313 - [ci] Use Xcode11.1 for XI/XM Mono SDK builds
17315 - [loader] Add an explicit define DISABLE_DLLMAP to control dllmap usage
17318 - [netcore] Avoid suspending threads in Environment.Exit, it can hang process
17321 - [GTK] Bump bockbuild for GtkViewport autoscrolling patch.
17322 - [bcl] Update BCL Linked Size
17326 - [interp] Add constant propagation of integers
17328 - [wasm][http] WasmHttpMessageHandler StreamingEnabled default to false
17330 - Fix SafeHandle marshalling in ref/in/out parameters
17331 - Initial telemetry for netcore builds
17336 - [bcl] add WriteLine(string) override to CStreamWriter needed due to corefx import
17338 - [jit] Fix is_reference checks for intrinsics with byref parameters.
17340 - [wasm] Bump emscripten. Remove generated python cache files.
17341 - [bcl][jit] implement Interlocked.Exchange in terms of object
17344 - [wasm] Add a –native-lib option to the packager to allow linking additional native libraries.
17345 - [cxx][x86] int/ptr casts.
17346 - [cxx][x86] ifndef DISABLE_JIT around mono_arch_emit_prolog.
17347 - [cxx][x86][amd64] Remove unused STORE_MEM_IMM.
17348 - [cxx][netcore] Goto around init.
17349 - [ci] Improve netcore build telemetry by running nupkg and tests through build.sh
17350 - Use functions instead of macros for is_in/is_out.
17351 - [wasm][xunit tests] Disable System.IO.Compression.Tests.BrotliEncoderTests
17355 - [master] Update dependencies from dotnet/core-setup dotnet/corefx
17358 - Removing execution of network tests from WatchOs.
17361 - [netcore] Fix build for Windows with cygwin
17362 - [interp] Constant folding for integers
17366 - [netcore] Remove Gader] Unmanaged library refactoring and NativeLibrary implementation
17370 - [bcl] Remove CompareExchange_T
17377 - [cxx] Int vs. enum, static for efficiency, cleanup, fix typo.
17379 - [cxx] [wasm] m2n-gen int/ptr casts.
17380 - [jit][x86ieldAwaitable struct readonly
17387 - [netcore] Managed ThreadPool implementation
17388 - [interp][wasm] Remove more varargs to conserve stack.
17391 - Remove the Legacy TLS Provider.
17393 - Cleaning up SslStream, MobileAuthenticatedStrea
17537 - [merp] Introduce a new ‘dump mode’ that allows different signal behavior when dumping
17538 - [interp] fix code length for JitInfo
17551 - [mini] Initial tiered compilation work
17553 - Mirror changes from mono/corefx,corert
17554 - [runtime] Make mono_thread_manage external only
17558 - [cxx] Compile mini-llvm.c as C++ if configure -enable-cxx.
17559 - [wasm] Propagate exit code from Main in the test runner.
17565 - Mirror changes from mono/coreclr,corert,corefx
17566 - [runtime] Unbalanced GC Unsafe transitions before shutdown
17570 - [cxx][x86] int/ptr casts
17571 - Mirror changes from mono/coreclr
17577 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
17579 - Fix#16206: Change HotkeyPrefix default value in TabControlPainter.cs
17583 - [dim][regression] Explicit interface override
17589 - [embed] Assert when call mono_runtime_object_init
17590 - Bump CoreFX to pickup corefx #367 to fix#17133.
17592 - [eglib] Handle dli.dli_sname being NULL in g_module_address ().
17595 - [interp] fix signature mismatch between jit<>interp for string constructor
17596 - [wasm] Fix build problems.
17600 - [wasm] Print a useful error message instead of a signature mismatch error on missing icalls.
17602 - Avoid caching of System.dll image and types as they may be unloaded w…
17607 - Implement GC.GetGCMemoryInfo
17608 - Fix#12337: Refact selected indexes in TabControl.Remove
17609 - Mirror changes from mono/coreclr,corefx
17611 - [runtime] Add a –enable-minimal=threads configure option to disable threading support. Use it on wasm.
17612 - Remove some unused icalls.
17615 - [mini] Fix Coverity CID 1455161 & 1455162
17616 - [netcore] Report errors on Windows CI
17623 - [interp] Optimize call path
17625 - [interp] Avoid emitting MINT_SAFEPOINT for every single call
17628 - [System.Net.Http]: Bring HttpClient from CoreFX on monotouch and xammac.
17631 - Bump mono/corefx@6e65509
17636 - [interp] Fix interp logging
17639 - [wasm] Fix xunit test ninja errors.
17641 - [interp] Handle remoting field access same as jit
17642 - [threadpool] cache processor count
17646 - Mono NetCore Windows only build/test.
17648 - [llvm] Fix a case where we treated the dreg of a store_membase instruction as a dreg, its actually the base reg.
17650 - [interp] s/MONO_API_ERROR_INIT/error_init_reuse/g
17653 - [WinForms] Returns real installed input languages on Windows
17654 - [interp] Use GetType instrinsic also on net4x
17660 - [WinForms] Fix#10559 In MaskedTextBox wrong Lines value when Mask se…
17661 - [netcore] Cleanups.
17662 - [WinForms] Fix#12249 scroll orientation was not defined in ScrollEventArgs
17664 - [iOS] Match changes done in xamarin-macios in the SDK runtime.
17666 - [netcore] Improve default constructor lookup,
17667 - [jit] Call mono_class_setup_fields () before accessing field->offset. Fixes https://github.com/mono/mono/issues/17665.
17669 - [WinForms]: Fix#16632 special values (-1 and -2) of ListView Column …
17670 - [WinForms] Fix TabPage position when enabling MultiLine
17672 - Allow runtime to be built with C++ on AIX
17673 - [netcore] Improve Array.CreateInstance
17676 - [WinForms] Fix#13777 DrawToBitmap() did not draw children controls
17680 - [mono] Fix ProcessExit handler argument.
17681 - Remove handles from ves_icall_System_Array_InternalCreate.
17683 - [interp] use mask instead of bool expression
17688 - Intrinsify Activator.CreateInstance for value types with no ctor
17690 - [master] Update dependencies from dotnet/arcade dotnet/core-setup dotnet/corefx
17691 - Explicit update/init only LLVM BTLS repro on external MSVC build.
17692 - [jit] Allow Unsafe.As<TFrom, TTo> on gsharedvt types.
17694 - Bump Corefx
17695 - Mirror changes from mono/coreclr
17698 - [wasm] Build the tests with –no-native-strip.
17701 - [loader] Skip the full pinvoke resolution process for __Internal
17706 - Fix MSVC intellisense for LLVM sources.
17708 - Remove handles from ves_icall_System_Array_CanChangePrimitive.
17711 - Handles reduction – 4 MERP functions.
17712 - error_init reduction.
17713 - Remove handles from System.Diagnostics.Debugger.
17719 - [netcore] Complete Monitor.LockContentionCount implementation
17723 - [merp] Remove extraneous waitpid invocation
17727 - [debugger] Assert when async debug a generic method
17730 - Switch away from Start-Process, Wait-Process in build.ps1.
17731 - [WinForms][UIA] Add to the PropertyGrid new internal event to track grid items expanded state update
17732 - [Wasm] Enabled –preload-files without AOT
17738 - [runtime] Fix locking in mono_get_seq_points ().
17739 - [aot] Improve the aot mangler a bit, handle bool/char as a primitive type and avoid emitting a System prefix.
17740 - [profiler] Fix log profiling of native to managed wrappers
17744 - [sdks] Add xunit to iOS test runner and add results reporting
17748 - [wasm] Bump emscripten.
17749 - [LLVM] Change llvm submodule to dotnet-org fork of official LLVM git repo
17751 - [Mono.Security] Do not decode data beyond detected length in ASN1 parser
17753 - [netcore] Run individual CoreCLR test suites
17755 - [WinForms] Fix#16557 DefaultCellStyle was not cloned deeply in DataG…
17757 - [netcore] Fix RuntimePropertyInfo.GetValue() in FullAOT scenarios
17758 - Bump corefx to pick up https://github.com/mono/corefx/pull/370
17761 - Mirror changes from mono/corefx,coreclr,corert
17772 - Delete some LLVM test cases from make dist
17773 - [wasm] Change netcore support to use a prebuilt corefx runtime.
17777 - Mirror changes from mono/corefx,coreclr
17778 - [llvm] use multiple cores to build llvm if ninja7782 - [interp] Add some missing netcore intrinsics.
17784 - [interp] Add some inline checks from the JIT.
17785 - [MacSDK] Bump xamarin-gtk-theme.py to latest revision from private bockbuild
17789 - [Wasm] Forced filesystem creation
17795ULL pointer crash in mono_decompose_vtype_opts().
17803 - Mirror changes from mono/runtime
17806 - Remove handles/MonoError from Mono.RuntimeGPtrArrayHandle.
17816 - [Wasm] Update emscripten to 1.39.3
17827 - [llvm] Add support for LLVM JInt is a generic valuetype.
18577 - [2019-12] Bump msbuild to track mono-2019-10
18591 - [2019-12] [runtime] Disable lldb backtrace display on osx, it hangs on attaching in lldb.
18595 - [2019-12] configure.ac: remove AC_SEARCH_LIBS for libintl
18611 - [2019-12] [merp] MONO_DEBUG=no-gdb-stacktrace shouldn’t disable MERP
18620 - [2019-12] [corlib] Split corlib xunit tests even more for iOS
18682 - [2019-12] [aot] Avoid inflating gparams with byreflike types during generic sharing.
18705 - Update deprecated query parameter to header
18723 - [2019-12] [merp] Add an exception type for managed exceptions
18733 - [2019-12] [NUnitLite] Bump nunitlite submodule.
18744 - [2019-12] [iOS] Replace removed dsymutil -t switch with -num-threads
18786 - [2019-12] Allow users to switch to MonoWebRequestHandler on Android via UI
18792 - [2019-12] Bump msbuild to track mono-2019-10
18830 - [2019-12] Move offsets-tool into mono/tools
18833 - [2019-12] Make MonoWebRequestHandler linker friendly
18839 - [2019-12] [merp] Increase buffer size for state dump
18862 - [2019-12] Bump msbuild to track mono-2019-10
18889 - [2019-12] Move TestEnvVarSwitchForInnerHttpHandler to nunit (from xunit)
18908 - [2019-12] [bcl] Default XmlSerializer stream serialize to UTF8 Encoding
18911 - Bump bockbuild to bring in Gtk# regression fix
18921 - [2019-12] [merp] Capture Environment.FailFast message in crash report
18946 - [2019-12] [sgen] Disable managed allocator when using nursery-canaries
18956 - [2019-12] Remove TestEnvVarSwitchForInnerHttpHandler test
18964 - [2019-12] [merp] Produce hashes for unmanaged thread stacks also
18984 - [2019-12] Added some parenthesis and a cast to control order of operations.
18986 - [2019-12] Bump msbuild to track mono-2019-10
19018 - [2019-12][runtime] Improve handling crashing signals
19050 - [2019-12] [debugger] Enable reading embedded ppdb
19078 - [2019-12] Bump msbuild to track mono-2019-12
19119 - [2019-12] [merp] Create a signal (‘source’) breadcrumb for the crash dump process
19205 - [2019-12] Bump msbuild to track mono-2019-12
19208 - [2019-12] [corlib] Capture the ExceptionDispatchInfo when rethrowing from TaskContinuation
19243 - [2019-12] [merp] Add breadcrumb for StackHash
19368 - [2019-12] [amd64] align application stack pointer in signal handler
19423 - [2019-12] Force Python 3.x from env in shebang lines
19428 - [mono-2019-12] Bump corefx to get https://github.com/mono/corefx/pull/396
19622 - [2019-12] Bump msbuild to track mono-2019-12
19641 - [2019-12] [System.Runtime.Serialization] Work around specified cast is not valid
19662 - [2019-12] Bump msbuild to track mono-2019-12
On NetBSD, further limit the DEPENDS on openssl to i386. It turns out
that the sparc64 and powerpc bootstraps are not linked against openssl
as I previously assumed.
No change to limiting this DEPENDS to 9+. No change to any other OS.
This change is believed to fix rust building on NetBSD 9 sparc64.
As discussed on tech-pkg@.
Python 3.8.6 final
Core and Builtins
bpo-41525: The output of python --help contains now only ASCII characters.
Library
bpo-41817: fix tkinter.EventType Enum so all members are strings, and none are tuples
bpo-41815: Fix SQLite3 segfault when backing up closed database. Patch contributed by Peter David McCormick.
bpo-41517: fix bug allowing Enums to be extended via multiple inheritance
bpo-39587: use the correct mix-in data type when constructing Enums
bpo-41789: Honor object overrides in Enum class creation (specifically, __str__, __repr__, __format__, and __reduce_ex__).
bpo-39651: Fix a race condition in the call_soon_threadsafe() method of asyncio.ProactorEventLoop: do nothing if the self-pipe socket has been closed.
bpo-41720: Fixed turtle.Vec2D.__rmul__() for arguments which are not int or float.
bpo-39728: fix default _missing_ so a duplicate ValueError is not set as the __context__ of the original ValueError
bpo-37479: When Enum.__str__ is overridden in a derived class, the override will be used by Enum.__format__ regardless of whether mixin classes are present.
Documentation
bpo-35293: Fix RemovedInSphinx40Warning when building the documentation. Patch by Dong-hee Na.
bpo-37149: Change Shipman tkinter doc link from archive.org to TkDocs. (The doc has been removed from the NMT server.) The new link responds much faster and includes a short explanatory note.
Tests
bpo-41731: Make test_cmd_line_script pass with option ‘-vv’.
Windows
bpo-41744: Fixes automatic import of props file when using the Nuget package.
IDLE
bpo-35764: Rewrite the Calltips doc section.
bpo-40181: In calltips, stop reminding that ‘/’ marks the end of positional-only arguments.
Python 3.8.6 release candidate 1
Core and Builtins
bpo-41654: Fix a crash that occurred when destroying subclasses of MemoryError. Patch by Pablo Galindo.
bpo-41533: Free the stack allocated in va_build_stack if do_mkstack fails and the stack is not a small_stack.
bpo-38156: Handle interrupts that come after EOF correctly in PyOS_StdioReadline.
Library
bpo-41696: Fix handling of debug mode in asyncio.run(). This allows setting PYTHONASYNCIODEBUG or -X dev to enable asyncio debug mode when using asyncio.run().
bpo-39010: Restarting a ProactorEventLoop on Windows no longer logs spurious ConnectionResetErrors.
bpo-41609: The pdb whatis command correctly reports instance methods as ‘Method’ rather than ‘Function’.
bpo-32751: When cancelling the task due to a timeout, asyncio.wait_for() will now wait until the cancellation is complete also in the case when timeout is <= 0, like it does with positive timeouts.
bpo-37658: asyncio.wait_for() now properly handles races between cancellation of itself and the completion of the wrapped awaitable.
bpo-40782: Change the method asyncio.AbstractEventLoop.run_in_executor to not be a coroutine.
bpo-41520: Fix codeop regression that prevented turning compile warnings into errors.
bpo-41503: Fixed a race between setTarget and flush in logging.handlers.MemoryHandler.
bpo-41497: Fix potential UnicodeDecodeError in dis module.
bpo-41490: Update ensurepip to install pip 20.2.1 and setuptools 49.2.1.
bpo-41467: On Windows, fix asyncio recv_into() return value when the socket/pipe is closed (BrokenPipeError): return 0 rather than an empty byte string (b'').
bpo-41425: Make tkinter doc example runnable.
bpo-41384: Raise TclError instead of TypeError when an unknown option is passed to tkinter.OptionMenu.
bpo-38731: Fix NameError in command-line interface of py_compile.
bpo-41364: Reduce import overhead of uuid.
bpo-41344: Prevent creating shared_memory.SharedMemory objects with size=0.
bpo-40726: Handle cases where the end_lineno is None on ast.increment_lineno().
bpo-31122: ssl.wrap_socket() now raises ssl.SSLEOFError rather than OSError when peer closes connection during TLS negotiation
bpo-33660: Fix pathlib.PosixPath to resolve a relative path located on the root directory properly.
Documentation
bpo-41624: Fix the signature of typing.Coroutine.
bpo-40204: Enable Sphinx 3.2 c_allow_pre_v3 option and disable c_warn_on_allowed_pre_v3 option to make the documentation compatible with Sphinx 2 and Sphinx 3.
bpo-41045: Add documentation for debug feature of f-strings.
bpo-41314: Changed the release when from __future__ import annotations becomes the default from 4.0 to 3.10 (following a change in PEP 563).
bpo-39883: Make code, examples, and recipes in the Python documentation be licensed under the more permissive BSD0 license in addition to the existing Python 2.0 license.
Windows
bpo-41492: Fixes the description that appears in UAC prompts.
bpo-40741: Update Windows release to include SQLite 3.32.3.
IDLE
bpo-41468: Improve IDLE run crash error message (which users should never see).
bpo-41373: Save files loaded with no line ending, as when blank, or different line endings, by setting its line ending to the system default. Fix regression in 3.8.4 and 3.9.0b4.
C API
bpo-41524: Fix bug in PyOS_mystrnicmp and PyOS_mystricmp that incremented pointers beyond the end of a string.
For background, the bootstrap kits need pkgsrc openssl present to run.
Then, the built cargo links against libs from pkgsrc openssl. One
would expect USE_BUILTIN.openssl=no to cause the later bl3 to depend
on pkgsrc openssl, and it does, but then there is a mysterious error
about not being able to buildlink heimdal.
This commit, relative to how 1.192, modifies comments and adds a
straight DEPENDS:
DEPENDS+= openssl>=1.1:../../security/openssl
only in the case of NetBSD, >=9, i386/sparc64/powerpc.
More or less as proposed on tech-pkg, with no responses.
On NetBSD i386 (and sparc64 and powerpc), we have bootstrap kits that
are linked against pkgsrc openssl. Previously rust BUILD_DEPENDed on
openssl so they could run but this resulted in an installed cargo that
linked against that openssl. This changes the depend method to
straight bl3, so openssl will be a runtime dependency.
This continues to be icky, but after a long period of discussion on
the lists, no other this-branch fixes to make NetBSD 9/i386 be able to
build rust have been suggested, and further there no objections.
It is expected that the bootstrap process will be rototilled after
2020Q3 is cut; this situation is obviously not a good one to continue.
On NetBSD >8, for several CPU types we depend on compat80, because
bootstrap kits are build for NetBSD 8. On those, also add a
BUILD_DEPENDS on openssl, because the bootstrap kits need pkgsrc
openssl libs.
Adjust and reorganize comments (but the only functional change is the
NetBSD >8 openssl BUILD_DEPENDS).>
Resolves failure to build on NetBSD 9.
(The entire "NetBSD>8" section is a hack that can be removed with
improved bootstrap generation.)