-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mosh-server needs libutempter #284
Comments
(pkgsrc) - Add TEST_DEPENDS+, but still fails at pdLaTeX (upstream) # fs 1.5.0 ---------- * The libuv release used by fs was updated to 1.38.1 * `dir_create()` now consults the process umask so the mode during directory creation works like `mkdir` does (#284). * `fs_path`, `fs_bytes` and `fs_perms` objects are now compatible with vctrs 0.3.0 (#266) * `fs_path` objects now sort properly when there is a mix of ASCII and unicode elements (#279) # fs 1.4.2 ---------- * `file_info(..., follow = TRUE)`, `is_dir()`, and `is_file()` follow relative symlinks in non-current directories (@heavywatal, #280) * `dir_map()` now grows its internal list safely, the 1.4.0 release introduced an unsafe regression (#268) * `file_info()` returns a tibble if the tibble package is installed, and subsets work when it is a `data.frame` (#265) * `path_real()` always fails if the file does not exist. Thus it can no longer be used to resolve symlinks further up the path hierarchy for files that do not yet exist. This reverts the feature introduced in 1.2.7 (#144, #221, #231) # fs 1.4.1 ---------- * Fix compilation on Solaris. # fs 1.4.0 ---------- * `[[.fs_path`, `[[.fs_bytes` and `[[.fs_perms` now preserve their classes after subsetting (#254). * `path_has_parent()` now recycles both the `path` and `parent` arguments (#253). * `path_ext_set()` now recycles both the `path` and `ext` arguments (#250). * Internally fs no longer depends on Rcpp # fs 1.3.2 ---------- * fs now passes along `CPPFLAGS` during compilation of libuv, fixing an issue that could prevent compilation from source on macOS Catalina. (@kevinushey, #229) * fs now compiles on alpine linux (#210) * `dir_create()` now works with absolute paths and `recurse = FALSE` (#204). * `dir_tree()` now works with paths that need tilde expansion (@dmurdoch, @jennybc, #203). * `file_info()` now returns file sizes with the proper classes ("fs_bytes" and "numeric"), rather than just "fs_bytes" (#239) * `get_dirent_type()` gains a `fail` argument (@bellma-lilly, #219) * `Is_Dir()`, `is_file()`, `is_file_empty()` and `file_info()` gain a `follow` argument, to follow links and return information about the linked file rather than the link itself (#198) * `path()` now follows "tidy" recycling rules, namely only consistent or length 1 inputs are recycled. (#238) * `path()` now errors if the path given or constructed will exceed `PATH_MAX` (#233). * `path_ext_set()` now works with multiple paths (@maurolepore, #208).
2.0.3 (2020-08-22) ~~~~~~~~~~~~~~~~~~ - Fix issues when building re2c as a CMake subproject (`#302 <https://github.com/skvadrik/re2c/pull/302>`_: - Final corrections in the SIMPA article "RE2C: A lexer generator based on lookahead-TDFA", https://doi.org/10.1016/j.simpa.2020.100027 2.0.2 (2020-08-08) ~~~~~~~~~~~~~~~~~~ - Enable re2go building by default. - Package CMake files into release tarball. 2.0.1 (2020-07-29) ~~~~~~~~~~~~~~~~~~ - Updated version for CMake build system (forgotten in release 2.0). - Added a short article about re2c for the Software Impacts journal. 2.0 (2020-07-20) ~~~~~~~~~~~~~~~~ - Added new code generation backend for Go and a new ``re2go`` program (`#272 <https://github.com/skvadrik/re2c/issues/272>`_: Go support). Added option ``--lang <c | go>``. - Added CMake build system as an alternative to Autotools (`#275 <https://github.com/skvadrik/re2c/pull/275>`_: Add a CMake build system (thanks to ligfx), `#244 <https://github.com/skvadrik/re2c/issues/244>`_: Switching to CMake). - Changes in generic API: + Removed primitives ``YYSTAGPD`` and ``YYMTAGPD``. + Added primitives ``YYSHIFT``, ``YYSHIFTSTAG``, ``YYSHIFTMTAG`` that allow to express fixed tags in terms of generic API. + Added configurations ``re2c:api:style`` and ``re2c:api:sigil``. + Added named placeholders in interpolated configuration strings. - Changes in reuse mode (``-r, --reuse`` option): + Do not reset API-related configurations in each `use:re2c` block (`#291 <https://github.com/skvadrik/re2c/issues/291>`_: Defines in rules block are not propagated to use blocks). + Use block-local options instead of last block options. + Do not accumulate options from rules/reuse blocks in whole-program options. + Generate non-overlapping YYFILL labels for reuse blocks. + Generate start label for each reuse block in storable state mode. - Changes in start-conditions mode (``-c, --start-conditions`` option): + Allow to use normal (non-conditional) blocks in `-c` mode (`#263 <https://github.com/skvadrik/re2c/issues/263>`_: allow mixing conditional and non-conditional blocks with -c, `#296 <https://github.com/skvadrik/re2c/issues/296>`_: Conditions required for all lexers when using '-c' option). + Generate condition switch in every re2c block (`#295 <https://github.com/skvadrik/re2c/issues/295>`_: Condition switch generated for only one lexer per file). - Changes in the generated labels: + Use ``yyeof`` label prefix instead of ``yyeofrule``. + Use ``yyfill`` label prefix instead of ``yyFillLabel``. + Decouple start label and initial label (affects label numbering). - Removed undocumented configuration ``re2c:flags:o``, ``re2c:flags:output``. - Changes in ``re2c:flags:t``, ``re2c:flags:type-header`` configuration: filename is now relative to the output file directory. - Added option ``--case-ranges`` and configuration ``re2c:flags:case-ranges``. - Extended fixed tags optimization for the case of fixed-counter repetition. - Fixed bugs related to EOF rule: + `#276 <https://github.com/skvadrik/re2c/issues/276>`_: Example 01_fill.re in docs is broken + `#280 <https://github.com/skvadrik/re2c/issues/280>`_: EOF rules with multiple blocks + `#284 <https://github.com/skvadrik/re2c/issues/284>`_: mismatched YYBACKUP and YYRESTORE (Add missing fallback states with EOF rule) - Fixed miscellaneous bugs: + `#286 <https://github.com/skvadrik/re2c/issues/286>`_: Incorrect submatch values with fixed-length trailing context. + `#297 <https://github.com/skvadrik/re2c/issues/297>`_: configure error on ubuntu 18.04 / cmake 3.10 - Changed bootstrap process (require explicit configuration flags and a path to re2c executable to regenerate the lexers). - Added internal options ``--posix-prectable <naive | complex>``. - Added debug option ``--dump-dfa-tree``. - Major revision of the paper "Efficient POSIX submatch extraction on NFA". ---- 1.3x ---- 1.3 (2019-12-14) ~~~~~~~~~~~~~~~~ - Added option: ``--stadfa``. - Added warning: ``-Wsentinel-in-midrule``. - Added generic API primitives: + ``YYSTAGPD`` + ``YYMTAGPD`` - Added configurations: + ``re2c:sentinel = 0;`` + ``re2c:define:YYSTAGPD = "YYSTAGPD";`` + ``re2c:define:YYMTAGPD = "YYMTAGPD";`` - Worked on reproducible builds (`#258 <https://github.com/skvadrik/re2c/pull/258>`_: Make the build reproducible). ---- 1.2x ---- 1.2.1 (2019-08-11) ~~~~~~~~~~~~~~~~~~ - Fixed bug `#253 <https://github.com/skvadrik/re2c/issues/253>`_: re2c should install unicode_categories.re somewhere. - Fixed bug `#254 <https://github.com/skvadrik/re2c/issues/254>`_: Turn off re2c:eof = 0. 1.2 (2019-08-02) ~~~~~~~~~~~~~~~~ - Added EOF rule ``$`` and configuration ``re2c:eof``. - Added ``/*!include:re2c ... */`` directive and ``-I`` option. - Added ``/*!header:re2c:on*/`` and ``/*!header:re2c:off*/`` directives. - Added ``--input-encoding <ascii | utf8>`` option. + `#237 <https://github.com/skvadrik/re2c/issues/237>`_: Handle non-ASCII encoded characters in regular expressions + `#250 <https://github.com/skvadrik/re2c/issues/250>`_ UTF8 enoding - Added include file with a list of definitions for Unicode character classes. + `#235 <https://github.com/skvadrik/re2c/issues/235>`_: Unicode character classes - Added ``--location-format <gnu | msvc>`` option. + `#195 <https://github.com/skvadrik/re2c/issues/195>`_: Please consider using Gnu format for error messages - Added ``--verbose`` option that prints "success" message if re2c exits without errors. - Added configurations for options: + ``-o --output`` (specify output file) + ``-t --type-header`` (specify header file) - Removed configurations for internal/debug options. - Extended ``-r`` option: allow to mix multiple ``/*!rules:re2c*/``, ``/*!use:re2c*/`` and ``/*!re2c*/`` blocks. + `#55 <https://github.com/skvadrik/re2c/issues/55>`_: allow standard re2c blocks in reuse mode - Fixed ``-F --flex-support`` option: parsing and operator precedence. + `#229 <https://github.com/skvadrik/re2c/issues/229>`_: re2c option -F (flex syntax) broken + `#242 <https://github.com/skvadrik/re2c/issues/242>`_: Operator precedence with --flex-syntax is broken - Changed difference operator ``/`` to apply before encoding expansion of operands. + `#236 <https://github.com/skvadrik/re2c/issues/236>`_: Support range difference with variable-length encodings - Changed output generation of output file to be atomic. + `#245 <https://github.com/skvadrik/re2c/issues/245>`_: re2c output is not atomic - Authored research paper "Efficient POSIX Submatch Extraction on NFA" together with Dr Angelo Borsotti. - Added experimental libre2c library (``--enable-libs`` configure option) with the following algorithms: + TDFA with leftmost-greedy disambiguation + TDFA with POSIX disambiguation (Okui-Suzuki algorithm) + TNFA with leftmost-greedy disambiguation + TNFA with POSIX disambiguation (Okui-Suzuki algorithm) + TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm) + TNFA with POSIX disambiguation (Kuklewicz algorithm) + TNFA with POSIX disambiguation (Cox algorithm) - Added debug subsystem (``--enable-debug`` configure option) and new debug options: + ``-dump-cfg`` (dump control flow graph of tag variables) + ``-dump-interf`` (dump interference table of tag variables) + ``-dump-closure-stats`` (dump epsilon-closure statistics) - Added internal options: + ``--posix-closure <gor1 | gtop>`` (switch between shortest-path algorithms used for the construction of POSIX closure) - Fixed a number of crashes found by American Fuzzy Lop fuzzer: + `#226 <https://github.com/skvadrik/re2c/issues/226>`_, `#227 <https://github.com/skvadrik/re2c/issues/227>`_, `#228 <https://github.com/skvadrik/re2c/issues/228>`_, `#231 <https://github.com/skvadrik/re2c/issues/231>`_, `#232 <https://github.com/skvadrik/re2c/issues/232>`_, `#233 <https://github.com/skvadrik/re2c/issues/233>`_, `#234 <https://github.com/skvadrik/re2c/issues/234>`_, `#238 <https://github.com/skvadrik/re2c/issues/238>`_ - Fixed handling of newlines: + correctly parse multi-character newlines CR LF in ``#line`` directives + consistently convert all newlines in the generated file to Unix-style LF - Changed default tarball format from .gz to .xz. + `#221 <https://github.com/skvadrik/re2c/issues/221>`_: big source tarball - Fixed a number of other bugs and resolved issues: + `#2 <https://github.com/skvadrik/re2c/issues/2>`_: abort + `#6 <https://github.com/skvadrik/re2c/issues/6>`_: segfault + `#10 <https://github.com/skvadrik/re2c/issues/10>`_: lessons/002_upn_calculator/calc_002 doesn't produce a useful example program + `#44 <https://github.com/skvadrik/re2c/issues/44>`_: Access violation when translating the attached file + `#49 <https://github.com/skvadrik/re2c/issues/49>`_: wildcard state \000 rules makes lexer behave weard + `#98 <https://github.com/skvadrik/re2c/issues/98>`_: Transparent handling of #line directives in input files + `#104 <https://github.com/skvadrik/re2c/issues/104>`_: Improve const-correctness + `#105 <https://github.com/skvadrik/re2c/issues/105>`_: Conversion of pointer parameters into references + `#114 <https://github.com/skvadrik/re2c/issues/114>`_: Possibility of fixing bug 2535084 + `#120 <https://github.com/skvadrik/re2c/issues/120>`_: condition consisting of default rule only is ignored + `#167 <https://github.com/skvadrik/re2c/issues/167>`_: Add word boundary support + `#168 <https://github.com/skvadrik/re2c/issues/168>`_: Wikipedia's article on re2c + `#180 <https://github.com/skvadrik/re2c/issues/180>`_: Comment syntax? + `#182 <https://github.com/skvadrik/re2c/issues/182>`_: yych being set by YYPEEK () and then not used + `#196 <https://github.com/skvadrik/re2c/issues/196>`_: Implicit type conversion warnings + `#198 <https://github.com/skvadrik/re2c/issues/198>`_: no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = re2c::bitmap_t, _Alloc = std::allocator<re2c::bitmap_t>]()’ + `#210 <https://github.com/skvadrik/re2c/issues/210>`_: How to build re2c in windows? + `#215 <https://github.com/skvadrik/re2c/issues/215>`_: A memory read overrun issue in s_to_n32_unsafe.cc + `#220 <https://github.com/skvadrik/re2c/issues/220>`_: src/dfa/dfa.h: simplify constructor to avoid g++-3.4 bug + `#223 <https://github.com/skvadrik/re2c/issues/223>`_: Fix typo + `#224 <https://github.com/skvadrik/re2c/issues/224>`_: src/dfa/closure_posix.cc: pack() tweaks + `#225 <https://github.com/skvadrik/re2c/issues/225>`_: Documentation link is broken in libre2c/README + `#230 <https://github.com/skvadrik/re2c/issues/230>`_: Changes for upcoming Travis' infra migration + `#239 <https://github.com/skvadrik/re2c/issues/239>`_: Push model example has wrong re2c invocation, breaks guide + `#241 <https://github.com/skvadrik/re2c/issues/241>`_: Guidance on how to use re2c for full-duplex command & response protocol + `#243 <https://github.com/skvadrik/re2c/issues/243>`_: A code generated for period (.) requires 4 bytes + `#246 <https://github.com/skvadrik/re2c/issues/246>`_: Please add a license to this repo + `#247 <https://github.com/skvadrik/re2c/issues/247>`_: Build failure on current Cygwin, probably caused by force-fed c++98 mode + `#248 <https://github.com/skvadrik/re2c/issues/248>`_: distcheck still looks for README + `#251 <https://github.com/skvadrik/re2c/issues/251>`_: Including what you use is find, but not without inclusion guards - Updated documentation and website.
This is a copy of libutempter straight from illumos-gate, with only a couple of minor modifications (remove __unused). Resolves part of TritonDataCenter/pkgsrc#284.
Everything is now in place, I'll push these changes to trunk later when the 2020Q3 builds have finished. At least in my limited testing they all built correctly against libutempter, and the packages that I was able to test in a sandbox did start creating correct utmpx entries. Will close this once the packages are available for wider testing. |
Ok these are now all available in trunk and 2020Q3, let me know if things don't work as expected. |
Pkgsrc changes: * Add option for doh (DNS-over-HTTPS), default enabled. Upstream changes: This release contains the DNS Flag Day 2020 changes. This sets the default EDNS buffer size to 1232, that should reduce fragmentation. https://dnsflagday.net/2020/ There is inclusive language in the configuration. There is caps-exempt, ipsecmod-allow and primary server options for auth-zones. The older terms are accepted to keep configuration working. DNS-over-HTTPS is supported in this release. The DoH is enabled when Unbound is compiled with the nghttp2 library, with configure --with-libnghttp2. Then have an interface on the https port, that can be configured with the https-port option. Also have a cert and key available with the tls-service-key and tls-service-pem options. Further settings can be configured for the http-endpoint, http-max-streams, http-query-buffer-size, http-response-buffer-size and http-nodelay options. The max streams sets the maximum concurrent streams, the buffer size options the number of bytes in buffers, and the nodelay option can turn on TCP_NODELAY for DNS-over-HTTPS service. In the statistics the memory used is reported in mem.http.query_buffer and mem.http.response_buffer. The number of queries is reported in num.query.https, they are also included in the tcp and tls counts because https uses TLS and TCP. The DLV options and code to handle DLV lookups have been removed from the code base. The DLV repository is empty nowadays, it has been decommissioned. There is a new feature where it is possible to use interface names to bind to the IP addresses on that interface. It pulls in the addresses at the start of the server, if the addresses change, use the existing freebind and other socket options to register for addresses before they appear, or the interface-automatic option that copies them from queries to answers with ancillary data. There is a new option for the edns-tag draft specification. It can be enabled if you need the tentative implementation to add those tags to outgoing messages. Features - DNS Flag Day 2020: change edns-buffer-size default to 1232. - Merge PR #255: DNS-over-HTTPS support. - Use inclusive language in configuration - Merge PR #284 and Fix #246: Remove DLV entirely from Unbound. The DLV has been decommisioned and in unbound 1.5.4, in 2015, there was advise to stop using it. The current code base does not contain DLV code any more. The use of dlv options displays a warning. - Similar to NSD PR#113, implement that interface names can be used, eg. something like interface: eth0 is resolved at server start and uses the IP addresses for that named interface. - Merge PR #272: Add EDNS client tag functionality. - Add edns-client-tag-opcode option Bug Fixes - Merge PR #270 from cgzones: munin plugin: always exit 0 in autoconf - Merge PR #269, Fix python module len() implementations, by Torbjörn Lönnemark - Merge PR #268, draft-ietf-dnsop-serve-stale-10 has become RFC 8767 on March 2020, by and0x000. - Fix doxygen comment for no ssl for tls session ticket key callback routine. - Fix mini_event.h on OpenBSD cannot find fd_set. - Improve error log message when inserting rpz RR. - Merge PR #280, Make tvOS & watchOS checks verify truthiness as well as definedness, by Felipe Gasper. - contrib/aaaa-filter-iterator.patch file renewed diff content to apply cleanly to the current coderepo for the current code version. - Fix #287: doc typo: "Additionaly". - Merge (modified) PR #277, use EVP_MAC_CTX_set_params if available, by Vít#zslav #í#ek. - Create and init edns tags data for libunbound. - Fix stats double count issue (#289). - Fix that dnstap reconnects do not spam the log with the repeated attempts. Attempts on the timer are only logged on high verbosity, if they produce a connection failure error. - Fix to apply chroot to dnstap-socket-path, if chroot is enabled. - Change configure to use EVP_sha256 instead of HMAC_Update for openssl-3.0.0. - Update documentation in python example code. - Review fix interface, doxygen and assign null in case of error free. - Merge PR #293: Add missing prototype. Also refactor to use the new shorthand function to clean up the code. - Refactor to use sock_strerr shorthand function. - Fix #296: systemd nss-lookup.target is reached before unbound can successfully answer queries. Changed contrib/unbound.service.in. - Fix num.expired statistics output. - Remove x file mode on ipset/ipset.c and h files. - Spelling fix. - Introduce test for statistics. - Fix that prefer-ip4 and prefer-ip6 can be get and set with unbound-control, with libunbound and the unbound-checkconf option output function. - Merge PR #311 by luismerino: Dynlibmod leak. - Error message is logged for dynlibmod malloc failures. - iana portlist updated. - Fix #304: dnstap logging not recovering after dnstap process restarts - Fix edns-client-tags get_option typo - Fix #305: dnstap logging significantly affects unbound performance (regression in 1.11). - Fix #305: only wake up thread when threshold reached. - Fix to ifdef fptr wlist item for dnstap. - Fix memory leak of edns tags at libunbound context delete. - Fix double loopexit for unbound-dnstap-socket after sigterm.
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#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/62#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/63#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/64#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/65#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/66#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/67#JavaScript https://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#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/54#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/55#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/56#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/57#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/58#JavaScript https://developer.mozilla.org/en-US/Firefox/Releases/59#JavaScript https://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]
2.7.1 / 2020-10-18 Development Fixes * refactor: mutate site payload instead of duplicating it (#419) 2.7.0 / 2020-10-18 Minor Enhancements * Change pagination message with seo_paginator_message option (#324) * Make Twitter Summary Card without having Twitter account (#284) * Prefer site.tagline to site.description for page title (#356) * Render og:locale meta only when defined explicitly (#388) Bug Fixes * Ensure a single leading @ for twitter usernames (#367) Development Fixes * chore(deps): require Ruby > 2.4.0 EOL * test: fix locale specs that use the fallback locale (#360) * refactor: Replace read-only empty hash with private constant (#418) * refactor: Mutate hash literals instead of duplicating them (#417) * refactor: Reduce allocations of instance-agnostic objects (#376) * refactor: Memoize #author_hash in SeoTag::AuthorDrop (#342) * refactor: simplify conditional in SeoTag::Drop#date_modified (#343) * chore(ci): profile seo-tag plugin on a third-party repository (#414) * chore(ci): Jekyll v4.0 (#372) * chore(ci): test against current stable Ruby 2.5 and 2.7 (#385) * style: align with latest jekyll-rubocop (#382) * fix: Travis builds for Jekyll 3.x (#415) Documentation * Structured Data Testing Tool is deprecated (#409) * Rename Google webmaster tools to Google Search Console (#403) * Improve documentation on plugin usage (#399) * remove Google+ from example snippet (#358) * HTTPS link to https://ogp.me/ (#359) * HTTPS links to schema.org (#350) * use example.com for example URL (#351)
pkgsrc changes: * Stop pretending that share/bash-completion.d is supported, it isn't. Packages that are installing files there should install them into share/bash-completion/completions instead. * Stop installing profile.d script, only really makes sense under /etc, and it wasn't correctly handled as a configuration file anyway. bash-completion (2.11) [ Alexander Meshcheryakov ] * _known_hosts_real: check that ruptime is present before calling (#390) [ Andrew Gaul ] * totem: reuse kaffeine completions (#372) [ Damien Nadé ] * __reassemble_comp_words_by_ref: avoid triggering nounset on indirect references [ Felix Lechner ] * lintian: complete paths for Ubuntu's .ddeb and Debian's buildinfo files (#397) [ Felix Yan ] * ip: complete route add table arg * ip: style fixes similar to ip-netns * ip: add more completions for ip-rule * ip: add support for netns (#391) * ip: improve completion of route subcommands (#326) [ Hans-Christoph Steiner ] * unzip, zipinfo: complete *.aar (#428) [ Jakub Jelen ] * ssh: add new -Q completions in OpenSSH 8.2p1 (#400) [ Kevin Locke ] * python: support executables with minor version (#389) [ Michal Suchánek ] * insmod, modinfo, modprobe: support xz compressed modules (#401) [ Phan Duc Nhat Minh ] * tshark: complete -r arg with all filenames (#422) [ Sebastian Jakubiak ] * openssl: update -starttls completions (#403) * _filedir*: update link to bug-bash discussion on -X (#404) * test/python: add testcase for submodule completion [ Ville Skyttä ] * Release 2.11 * extra/make-changelog: check and output usage message * pre-commit: anchor exclude patterns * pytest: rewrite in bash, support toplevel funcs, avoid nondef ones and classes * test/xfreerdp: skip --help failure cases * test/tshark: fix multiple -O completion with no http2 support * test/ant: avoid complete-ant-cmd.pl interference with ANT_ARGS * _xinetd_services: avoid nounset error on bash 4.2 * pre-commit: upgrade isort to 5.1.4 * pre-commit: upgrade pyupgrade to 2.7.2 * pre-commit: add pyupgrade, run it * test/ant: gitignore all target cache files * _known_hosts_real: exclude Host negations * pre-commit: upgrade isort to 5.0.7 * pre-commit: update shellcheck-py URL * test/inputrc: do not set print-completions-horizontally * test/inputrc: comment typo fix * pytest: complete async test class methods * __get_cword_at_cursor_by_ref: fix regression on bash 4.2 * test: upgrade markdownlint-cli to 0.23.2 * _known_hosts_real: avoid errors in nounset mode on Ubuntu 14 and 16 * _longopt: exclude too many dashes, allow underscores, require ends with alnum * _included_ssh_config_files: support globs * _known_hosts_real: prevent unwanted pathname expansion on host entries * test/shfmt: upgrade to 3.1.2, reformat with it * test/_known_hosts_real: add explicit no globbing test case * test: upgrade mypy to 0.782 * CONTRIBUTING.md: add posix and nounset mode item * test: upgrade mypy to 0.781 * test: upgrade perltidy to 20200619 * _known_hosts_real: fix completion of Host entries after a wildcard etc * _known_hosts_real: fix # handling in ssh configs * test: upgrade flake8 to 3.8.3 * test/xhost: multiple expected result handling fixes * test/slapt-src: single expected result handling fixes * test: partial hostname completion fixes * test: simplify completion parsing * test/dpkg-query: mark as xfail on non-Debian based systems * .gitignore: clean up some no longer needed ignores * test/lspci: skip -A arg test if lspci fails -A help, e.g. busybox lspci * test: regex escape our magic mark for completeness * test: upgrade mypy to 0.780 * test/_known_hosts_real: don't modify class scoped base expected list * test/_known_hosts_real: reset COMP_KNOWN_HOSTS_WITH_HOSTFILE between tests * test/_known_hosts_real: tolerate duplicates * bash_completion: trivial cleanups * gcc: avoid errors in nounset mode * pytest: fix test class method completion with BSD awk * man, mutt: avoid errors in nounset mode on Ubuntu 14 and 16 * java, make: avoid errors in nounset mode on Ubuntu 14 and 16 * README: document GNU make build requirement * pytest: add test class method completion * _known_hosts: avoid errors in nounset mode and no arguments * bash_completion: fix array set checks with empty elements in them * *: avoid more errors in nounset mode * cfrun: fix $hostfile leak * _command_offset, route: cleanups * *: avoid more errors in nounset mode * qemu: add -machine arg completion * qemu, sbopkg: avoid unintentional globbing on option arg completions * test: enable shellcheck SC2035 * *: drop support for bash 4.1 * _init_completion: fix unassigned redirect completion in nounset mode * ip: route shfmt, arithmetic evaluation * _filedir: avoid unbound variable error on Ubuntu 14 and 16 * _pids, _pgids, _pnames: improve shfmt formatting * scp, sftp, ssh: fix completion on options bundled with -4/-6 * modprobe, tshark, _included_ssh_config_files: use [[ ]] instead of [ ] * test/runLint: warn about [ ] instead of [[ ]] use * test: skip various tests if we don't get a useful usage message * *: mark nounset mode as supported, issues with it are bugs now * *: avoid more errors in nounset mode * *: avoid more errors in nounset mode * *: avoid more errors in nounset mode * test/inputrc: comment and whitespace tweaks * *: avoid more errors in nounset mode * test/unit: sort files included in dist * test/unit: include test_unit_known_hosts_real.py in dist * bash_completion: line wrapping tweaks, NFC * 7z: fix -o/-w attached arg completion * postfix: try to arrange a fake tty so we can tickle the usage message out * _bashcomp_try_faketty: new function to try running command with a fake tty * mr: avoid herestrings, simplify command parsing * test/mr: handle missing "clean" with skipif * test: mark known non-ASCII issues with test suite as xfail * dpkg-deb: add --raw-extract and -X arg completions * test: add some dpkg-query test cases * dpkg-deb: fix --show/-W completion * test: upgrade markdownlint-cli to 0.23.1 * *: use more arithmetic evaluation * test: try harder to restore environment and cwd on failures * *: use $ifs for storing/restoring $IFS * test/irb: xfail options test if --help is not available * test: upgrade flake8 to 3.8.1 * test: pre-commit config cleanups, ordering * test: upgrade pre-commit to 2.4.0+, drop shfmt kludge * test: sync shfmt and shellcheck configs * test: shfmt bashrc * test: remove unused run-shellcheck, shellcheck is in pre-commit now * test: remove old test suite code no longer used \o/ * test/_known_hosts_real: port remaining test cases to pytest+pexpect * test: remove more no longer needed old test suite code * test/_known_hosts_real: port more test cases to pytest+pexpect * test/_get_cword: port remaining test case to pytest+pexpect * test: replace some echos with printfs * test/_filedir: fix shutil.rmtree on Python < 3.6 * test/_expand: port remaining test cases to pytest+pexpect * test: drop some no longer needed old test suite code * test/_filedir: port remaining test cases to pytest+pexpect * test: run all Travis jobs on dist: bionic * test: drop not needed sudo on Travis * test/_filedir: port more test cases to pytest+pexpect * test/__expand_tilde_by_ref: port remaining test cases to pytest+pexpect * test/_get_comp_words_by_ref: convert remaining test cases to pytest+pexpect * test: run pytest --verbose in docker * lftp: use "bookmark list" command to list bookmarks * test: drop some no longer needed old test suite code * test/slapt-src: convert remaining test case to pytest+pexpect * _xfunc: simplify * apt-cache: avoid nonzero exit code from _apt_cache_packages * test/slapt-get: convert remaining test case to pytest+pexpect * test/secret-tool: add to test command list * test/scp: port remaining test case to pytest+pexpect * test/umount: convert remaining test case to pytest+pexpect * secret-tool: new completion * apt-get: complete build-dep with dirs * travis: use golang 1.14 for shfmt * *: run all shell code through shfmt -s * pre-commit etc: add shfmt * test: fix incorrect fixtures/shared/default xfails/expectations * test: upgrade markdownlint to 0.23.0 * nmap: simplify help scraping a bit, don't try to emit unnecessary newlines * test: prefix fake test commands with underscore * test: port most umount test cases to pytest+pexpect * test: add note about unescaped assert_complete single return values * editorconfig: apply yaml settings to .yaml too * pre-commit: use local perlcritic hook * *: doc and comment link updates * pre-commit, *.md: add markdownlint, address findings * README: clarify loading automatically on demand * ssh-keygen: -O arg updates and improvements * ssh-keygen: add -b arg completions according to specified -t * ssh-keygen: option and arg completion updates for new versions * _command: improve commentary * reportbug, scp, sftp, svn: use compgen -c instead of _command * find: fix -exec etc argument and its completion * extra: trigger docker builds only on test-cmd-list.txt changes * test: add script to maintain list of executables for full test coverage * test: run lint tests on Travis in a quickish separate first stage * test/make: mark more cases as requiring command * make: add bmake alias * test: run pre-commit on host instead of docker * test: add perlcritic to pre-commit, run on all perl * *: remove some unused variables, thanks to shellcheck SC2034 * *: various loop iteration improvements * crontab: fix loop over already given args * apt-cache: fix command mode handling * doc: add loop variable naming guideline * test: make at-point completion tests easier * ssh, xsltproc: address shellcheck SC2006 * scp: work around shellcheck SC1003 * mutt: address shellchec SC2236 * wget: address shellcheck SC2116 * pytest: address shellcheck SC2002 * bash_completion, java, tipc: for loop whitespace consistency tweaks * *: more arithmetic evaluation cleanups, thanks to shellcheck SC2004 * __reassemble_comp_words_by_ref, java: address and work around shellcheck SC2102 * test: enable parallel pre-commit shellcheck * test: remove shellcheck severity filter, add explicit disables instead * doc: recommend arithmetic evaluation * *: array subscript cleanups * ssh-keygen: -s and -n completion improvements * *: enable and address shellcheck SC2053 * bash_completion, invoke-rc.d, svcadm: trivial cleanups * *: replace various conditional expressions with arithmetic evaluation * carton: fix command parsing with BSD sed * nmap: fix option parsing with BSD sed * test/alias: port remaining test case to pytest+pexpect * test: generalize complete at point test * test/cd: fix test_dir_at_point for setups that repeat "trailer" * pytest: add some option arg (non-)completions * pytest: complete test classes * pgrep, pkill: add --ns and --nslist arg completions * test: run skipif and xfail commands without caring if they output or not * test: make it possible to not care whether command did output or not * test/xfreerdp: skip xfreerdp kbd test if kbd-list returns empty * test: tolerate duplicates from compgen actions * test: bump shellcheck severity to warning + some disables * *: address shellcheck SC2046 * test/lib/library.sh: address shellcheck SC2125 * java, pkgadd, sysbench: address shellchec SC2124 * scp: address shellcheck SC2089 and SC2090 * _filedir_xspec: address shellcheck SC2140 * rpm, ssh, umount.linux: address shellcheck SC2120 * cvs, modprobe, sh: address shellcheck SC2209 * mutt: address shellcheck SC2088 * _upvar, _upvars, _variables, rpm: address shellcheck SC1083 * test/run: address shellcheck SC2164 * renice: address shellcheck SC2254 * tipc: comment grammar and spelling fixes * man, perl, route, tipc: address shellcheck SC2053 * info, java: address shellcheck SC2153 * quote_readline: fix $ret leak * test: upgrade shellcheck to 0.7.1 * test/printenv: xfail if --help doesn't contain options (e.g. busybox) * test/aptitude: require command where necessary * _known_hosts_real, op: address shellcheck SC2184 * test: don't run shellcheck on completions/.gitignore * protoc: complete all --*_out without more specific handling with dirs * sysbench: add --test= deprecation TODO * pkgadd: indentation fix * chronyc, wvdial: address shellcheck SC2178 * java, pkgadd, sysbench: address shellcheck SC2124 * mplayer: address shellcheck SC1078 false positive * smartctl: hush shellcheck SC2054 false positives * *: address shellcheck SC2221 and SC2222 * bash_completion: address shellcheck SC2220 * crontab, wodim: silence shellcheck SC2191 and SC2192 * aptitude: add some option arg (non)completions * aptitude: parse options list from --help, hardcode less * test/aptitude: add some test cases * *: argument interation improvements * *: whitespace tweaks * apt-get etc: use _apt_cache_packages from apt-cache * pre-commit: run most python checks on helpers/python too * test/ldd: xfail if --help is not implemented * test/printenv: require command for arg completion test * printenv: indentation fixes * test: upgrade mypy to 0.770 * test: split dependencies requiring Python 3.6.1+ to requirements- dev.txt * git: trigger docker rebuild on pre-commit config change * test: require openssl command for option argument tests * test: move perltidy to pre-commit, run with --converge * test: move shellcheck to pre-commit * test: ignore flake8 messages that are in black's domain * _xinetd_services: look up from $BASHCOMP_XINETDDIR, add some unit tests * printenv: new completion * copyright: add 2020 * test: fix CompletionResult.__eq__ UnboundLocalError * test: run pre-commit in tools container * test: shellcheck tweaks * test: add isort to pre-commit, run it * test: add flake8-bugbear * test: install black for Python 3.6 too * pre-commit: add config with black, flake8, and mypy * test: drop redundant black args from docker runs * *: python type hint fixes and improvements * extra/make-changelog: run through black * test/totem: add basic test case * test/cd: remove unused import * openssl: complete -writerand with filenames * openssl: parse available options from $command -help * openssl: support getting digest list from more recent openssl versions * nmap: handle options split on equals sign * nmap: parse options from -h output * test/cd: make dir_at_point produce better debuggable failures * test/cd: convert remaining test case to pytest+pexpect * test: remove some no longer needed old test suite code * test/chown,sudo: parametrize special case test, improve xfail targeting * test/tsig-keygen: require command for test_options * test/upgradepkg: port remaining test case to pytest+pexpect * tsig-keygen: new completion * test: host helper lint and usage fixes * test: port some _known_hosts_real unit tests to pytest+pexpect * test: remove some no longer needed tcl/expect code * test: fix spurious hosts fixture failure without avahi-browse installed * test: port some scp test cases to pytest+pexpect * test: port remaining finger, sftp, ssh, and xhost cases to pytest+pexpect * lilo: work around shellcheck false positive * test/ipcalc: fix tests with busybox ipcalc * chromium-browser, firefox: complete on *.txt (#379) * README.md: add introduction * ipcalc: new completion * *: complete commands when prefixed with a backslash * test/wol: don't fail MAC test if test system has /etc/ethers entries * test/dnssec-keygen: allow more alternatives in algorithm completion * lilo: don't complete on commented out labels * lilo: honor -C when completing labels * lilo: add -B and -E completions [ beantaxi ] * Source user completion only if it's a file (#409) [ hugoziviani ] * jarsigner: complete on *.apk too (#386) * cryptsetup: add luksChangeKey arg completion (#380) -- Ville Skyttä <ville.skytta@iki.fi> Sat, 25 Jul 2020 11:25:09 +0300 bash-completion (2.10) [ Felix Lechner ] * perltidy: associate *.t (#338) [ Gabriel F. T. Gomes ] * perl: fix completion with space between option and argument [ Grisha Levit ] * _variables: add TERM and LC_* completion (#353) [ Iñigo Martínez ] * autotools: Replace pkgdatadir with datadir * pkg-config: Relative paths * pkg-config: generate Name from autotools PACKAGE [ Jakub Jelen ] * ssh: option and argument completion updates (#332) [ Michał Górny ] * test_arp: Skip if ARP tables are empty * test_chromium_browser: Skip test_2 if 'chromium-browser --help' fails * test_rpm2tgz: Fix expected output [ Sebastian ] * cppcheck: Add new standards to --std option. (#356) [ Tomasz N ] * apt-get: fix pkg version completion if it contains a colon (#351) [ Ville Skyttä ] * test: bump black to >=19.10b0 * ssh, scp, sftp, ssh-copy-id, curl: improve identity file completion * update-rc.d: indentation fix * update-rc.d: remove dead code * screen: add serial device basic arg (non)completion * screen: add //telnet completion * test: add some trivial perl -E/-e cases * perl: indentation fixes * curl: make @filename completion do the right thing with dirs * _filedir: avoid duplicate dirs internally, and a compgen -d call for files * _filedir: remove unused $x * bash_completion.sh: shellcheck SC2086 fixes * test: shellcheck config cleanups * shellcheck: add some option arg (non)completions * test: fix cpio users test in presence of usernames with whitespace * test: python typing fixes * test: add minimal mypy config * .gitignore: mypy cache * makepkg: fix option completion * test: mark dcop and mr testcases requiring the cmd as such * CONTRIBUTING: disable e-mail bug gateway due to spam * carton: new completion * op: direct command parsing stderr to /dev/null * test: adjust java expectations based on whether jars can be listed * valgrind: look tool names from lib/*-linux-gnu dirs too * test: xfail locale-gen option completion if --help is not available * _sysvdirs: always return 0 * java: don't assume jar is installed * travis: test with Debian 10 * wine: install for wine-development and wine-stable too * travis: generate dist tarball on alpine * dmypy: new completion * test: add require_longopt xfail helper, use it * test: mark more tests that parse command output as requiring command * sysctl: invoke completed sysctl instead of one from path to get variables * screen, smartctl, update-alternatives: _parse_help, drop hardcoded option list * lintian-info: _parse_help, add more option arg (non)completions * gprof: _parse_usage, drop hardcoded option list * test: fix retrieving command to test from request * travis: pass NETWORK as env var, so we can actually use it * test: xfail MAC address completion without networking * test: ignore _makepkg_bootstrap in makepkg test env * test: hush flake8-bugbear B010 * test: don't sort expected completion lists under the hood * test: add bunch of basic option parsing test cases * test: always run tests which don't require tested command * test: explodepkg and upgradepkg test fixes * test: mark sbcl-mt xfail due to whitespace split issues * _terms: search directly from various terminfo dirs * _terms: combine and simplify somewhat * pkg-get: fix $i leak * pkgutil: fix $i leak * test: portinstall/upgrade test case and setup fixes * lvm pv*, vg*: parse help instead of hardcoding option list * ipv6calc: parse help instead of hardcoding option list * test: avoid some sed -r/-E runLint false positives * test: use sh +* as ccache command test case * java: make jar/zip listing work with unzip * test: installpkg test fixes * test: fix acroread fixture dir * test: remove unnecessary returns after pytest.skip * test: avoid gnome-mplayer core dump on Ubuntu 14 * xvfb-run: new completion * test: skip gssdp-discover --message-type when option not available * test: expect failures for bc without --help useful with _longopt * test: don't expect a .tox dir in fixture * test: drop sourcing our no longer existing profile.d script * tox: include -- in option completions * tox: complete defaults after a -- * gssdp-discover: new completion * test: register our pytest markers to hush warnings from 4.5+ * test: fix required pytest version * ip: invoke the tool as $1 * README: drop distro badges, link to Repology instead * chromium-browser: add --proxy-server arg completion * test: source our profile.d test env script in docker * influx: new completion * README: badge title tweaks * tox: do simple parse on tox.ini if --listenvs* yields nothing * test: add basic tox fixture * man: fall back to _parse_usage for _parse_help * test_wsimport: xfail options test on unparseable -help * test: don't try to install black on Python < 3.6 * pgrep: fix fallback to _parse_usage * test: xfail unparseable mock and munin-node-configure --help cases * test_pwdx: xfail more unparseable help cases * build: make pytest executable configurable, look for pytest-3 too * test: enforce minimum pytest version * test: zopflipng flake8 fix * test: xfail getent and pwdx option completions with unparseable --help * test: add more basic _parse_help use test cases * test: add bunch of basic _parse_help use test cases * .gitignore: add configure.lineno * badblocks: fix $i leak * postfix: option completion is expected to fail at the moment * cal: try _parse_help before _parse_usage * test: add bunch of basic _parse_usage use test cases * chsh, pwck: try _parse_help before _parse_usage * test: add basic autossh test * test: convert more _filedir unit tests to pytest+pexpect * test: flake8 fix * test: convert bunch of _filedir unit tests to pytest+pexpect * test: convert finger partial test case to pytest+pexpect * README: add some badges, tweak existing * test: port _variables unit tests to pytest+pexpect * test: port compgen and quote tests to pytest+pexpect * iconv, lz4, tipc, xsltproc: replace some seds with compgen -X * test: disallow Alpine failure on Travis * _pnames: adapt for busybox ps, rewrite in pure bash * test: run our docker script in test containers by default * test: use one Dockerfile for all dists * test_ifup: accept short option completions too * timeout: fallback to _parse_usage from _parse_help * test_wget: test --s instead of --h * test_lsusb: xfail with unparseable --help * test: expect failures for various completions without useful --help * test: support xfail in our markers like skipif, use it a lot * test: add Alpine Linux container, allow failures for now * iconv: weed out ... from encoding completions * test_iconv: add basic file completion test * test_iconv: skip option completion if --help fails * test_getconf: skip if -a doesn't output any POSIX_V* * test_feh, test_makepkg: invoke grep as "command grep" * test: generalize check whether we're being run in a container * tar: simplify locating tarball from command line * pkg_delete: don't limit to FreeBSD * test: reformat test_chromium_browser.py source * test: set up BASH_COMPLETION_COMPAT_DIR in bashrc (only) * test: more thorough system location interference avoidance * test: bashrc comment and whitespace tweaks * build: makefile whitespace tweaks * build: really reset return value before completions check * build: simplify symlink setup * tar: add missing bsdtar, gtar, and star symlinks * README: use light gray badges for unknown versions * README: link to cygwin package [ Wolf ] * ri: hush some warnings [ andreabravetti ] * unrar: complete on *.exe (#337) [ ezr ] * chromium-browser: Add support for .mhtml files [ jerkey ] * screen: complete first arg with serial devices [ marxin ] * gcc: support new --completion option (#222) [ pcc ] * unzip, zipinfo: complete *.aab (#340) [ versat ] * cppcheck: Remove deprecated option 'posix' for '--std=' -- Ville Skyttä <ville.skytta@iki.fi> Thu, 05 Dec 2019 17:04:26 +0200 bash-completion (2.9) [ Antonio Terceiro ] * dpkg-source: Add --before-build --after-build --commit, and --print-format [ Gabriel F. T. Gomes ] * xm: Deprecate completion for obsolete command (#284) * _filedir_xspec: Fallback to suggesting all files if requested (#260) * tar: Support completions for zstd compression extensions (#255) * dpkg: List held packages (#250) * cvs: Add completion for the log command [ Guillaume Mella ] * unzip, zipinfo: Associate with *.xar (eXist-db application package) (#257) [ Igor Susman ] * mplayer: Associate with *.w64 [ Jaak Ristioja ] * okular: Added support for xz-compressed files. [ John Swinbank ] * _xspecs: Declare as global on bash >= 4.2 [ Kevin Locke ] * test: Increase expect pty to 160 columns * test: avoid interrupting magic mark output [ Per Lundberg ] * 7z: add .msi support [ Peter Wu ] * tshark: speed up tshark -O completion * tshark: fix completion of -Xlua_script option * tshark: Support preferences (-o) completion with memoization * test: fix misinterpretation of completion output in tests * test: fix flake8 complaints about unused imports * conftest: fix RemovedInPytest4Warning due to use of node.get_marker * chromium-browser: consider chrome and chromium as aliases * tshark: support .gz and .cap files for -r expansion * tshark: prevent a single-character file from breaking -G completion * tshark: update -T and -t completions [ Russell Davis ] * man: Fix completion when failglob option is enabled (#225) [ Timo Taipalus ] * mplayer: Add common supported module music formats [ Tomasz N ] * _longopt: pick first long option on a line, not last [ Ville Skyttä ] * *: avoid shellcheck SC1007 and SC1010 * 7z: add some TODO notes on parsing "i" output for extensions * ssh: make -o protocol completion less hardcoded * ssh: make option completion case insensitive * ssh: fix suboption completion with combined -*o * xvnc4viewer: code cleanups * doc/testing: remove lots of legacy info, add some new * CONTRIBUTING: add upstream vs bash-completion considerations * CONTRIBUTING: note runLint and run-shellcheck * __parse_options, 7z: avoid herestrings * arp, ccze, ifstat, inotifywait, makepkg: invoke sed with "command" * shellcheck: disable bunch of warnings when in "-S warning" mode * test: move default shell option from run-shellcheck to .shellcheckrc * test: make runLint search for herestrings * tar, valgrind: avoid some herestrings * travis: run shellcheck on bash_completion.sh.in too * travis: fail on shellcheck errors * make: quote eval array definitions to work around shellcheck SC1036 bug * test: add make -C test case * *: shellcheck error fixes * _included_ssh_config_files: store found included files in an array * _included_ssh_config_files: doc grammar fixes * test: add invoke-rc.d test case for not repeating already given options * ebtables: improve existing table arg parsing * test: add script to run shellcheck, run it in Travis, allowing failure for now * iptables: improve existing table arg parsing * test: shorten long gdb test core file name so tar doesn't croak on it * AUTHORS: remove unrelated project association from my entry * apt-get: protect source against regex specials * mypy, mysql, xmms: don't complete unknown split long option args * synclient: remove unused local variable "split" * test: adjust _get_comp_words_by_ref test to changed error output * apt-cache: protect showsrc against regex specials * test: improve tshark -O arg completion test * tshark: ignore stderr when parsing -G, -L, and -h output * *: error output consistency, use bash_completion prefix * _upvar: deprecate in favor of _upvars * *: add missing "ex: filetype=sh" * phing: fix getting just a tab for options on CentOS 6 * phing: don't complete -l with files * various: apply file vs dir special cases also when invoked with full path * *: whitespace tweaks * ssh: don't offer protocol v1 specific options if it's not supported * test: add some gdb non-core files * _parse_help: look for long options somewhat more eagerly * gdb: relax core filename pattern * test/tools: fix exit status incrementation * *: arithmetic expression related cleanups * test/tools: run all tools, don't stop at first failure * test: check for perltidy errors and warnings * *: format Perl code with perltidy * *: format Python code with black * .dir-locals.el: use flycheck-sh-bash-args * valgrind: look up tools from libexec dirs too * *: make _parse_usage fallbacks more concise * svn, svk, wget: use _iconv_charsets * *: spelling fixes * msynctool: code cleanups * *: remove whitespace after redirections * *: remove spaces immediately within $() * bzip2: recognize *.tbz2 as bzipped * modprobe: module parameter boolean values * ping, tracepath: parse options primarily with _parse_help * ulimit: new completion * shellcheck: new completion * dnssec-keygen: new completion * modprobe: append = to module parameter completions * test: include test_unit_longopt.py in dist * test: add some _longopt unit tests * _longopt: simplify regex, use printf instead of echo, drop unnecessary sort * nsupdate: new completion * _longopt: don't complete --no-* with file/dirname arg * copyright: add 2019 * pytest: complete --pythonwarnings/-W arg * python: make warning action list reusable * test: use pytest-xdist * extra: add git pre-push hook for triggering Docker Hub builds * post-commit: trigger on test/requirements.txt too * pytest: complete pytest-xdist --dist, --numprocesses, and --rsyncdir * test: remove no longer needed completion/*.exp * xfreerdp: reinstate support for old versions with dash option syntax * test: rewrite "generate" in Python, fix trailing backslash in EXTRA_DIST * test: sort t/Makefile.am EXTRA_DIST in C locale * ssh: support RemoteCommand and SyslogFacility options * test: Expect failure for chown all users test as non-root * test: Fix declare test case with bash 5.0 * adb: Deprecate in favor of one shipped with the Android SDK * xfreerdp: Update for more modern xfreerdp * jsonschema: New completion * test: Remove unnecessary ri xfail * test: Clean up man tmp dir * .gitignore: Add .python-version (for pyenv) * test: Remove unnecessary autouse=True from fixtures * ifstat: Make work with iproute2 version * iperf, iperf3: Add some option arg (non-)completions * test: Fix test generation wrt results checking improvements * ifstat: New completion * __parse_options: Avoid non-zero exit status * test: Refactor/improve completion results checking * test: Match Python's default locale unaware sort in bash setup * test: Rename completion.line to .output * test: Add man failglob test case * test: Add pre_cmds support for completion fixture * inotifywatch: New completion, common with inotifywait * inotifywait: Fix -e completion with BSD sed * inotifywait: Avoid some false positive event names * test: extend _ip_addresses unit tests some * _ip_addresses: Avoid completing ipv4 ones with -6 * inotifywait: New completion * test: Mark some xfails based on if in docker instead of in CI * test: Skip ifup options test if it doesn't grok --help, not in CI * test: Clean up and docker-ignore __pycache__ dirs * build: Include test/t in dist tarball * test/t: Avoid trailing backslash in Makefile.am's to appease automake * test: Remove some no longer used old test suite code * _xspecs: Simplify bash version check * chmod: Fix "-" completion * sysctl: Treat -f as alias for -p/--load * .gitignore: Add pytestdebug.log * chmod: Fix file completion after modes starting with a dash * _count_args: Add 3rd arg for treating option-like things as args * test: Fix _count_args test_7 to test intended case * pydocstyle: New completion * Travis: Remove unused PYTEST env var * doc: Note email issues gateway * tcpdump: Various option and their arg completion updates * test: Fix arp CI (non)expectations, remove redundant test case * test: Be more consistent with "CI" env var examination and xfails * arp: New completion, somewhat incomplete * test: Expect failure in gkrellm if there's no X display * doc: Update docs on generating simple tests * doc: Some test dependency doc updates * test: Add requirements.txt for installing dependencies * grpck: Parse options with _parse_help, falling back to _parse_usage * grpck: Add --root/-R arg completion * test suite: Ignore _scp_path_esc in env for ssh-copy-id * ssh-copy-id: Add -i and -o arg (non-)completions * tar: Clean up some redundant code * cancel: Split long line * cancel: Add some option arg (non-)completions * locale-gen: New completion * makepkg: Don't apply to other than Slackware makepkg * test: Allow unknowns options in makepkg option completion * makepkg: Use _parse_help instead of hardcoding option list * mypy: New completion * op: New completion * hunspell: New completion * xmllint: Improve --encode, --pretty, and --xpath arg (non-)completions * test: Remove leftover completion/ls.exp * gcc: Add g++, gcc, gccgo, and gfortran *-[568] aliases * perlcritic: New completion * gnome-screenshot: New completion * isort: New completion * freeciv: Option and arg completion updates * freeciv-gtk2: Install for freeciv and freeciv-gtk3, rename to freeciv * mplayer etc: Complete on *.crdownload partial downloads in addition to *.part * chromium-browser, google-chrome*: New non-xspec completion * firefox etc: New non-xspec completion * Merge branch 'master' into wip-pexpect * nc: Add some more option (non-)completions * test: Mark MANPATH without leading/trailing colons test an xfail on CI CentOS 6 * test: Remove kill, killall remnants * test: Make case specific env entries shell code, not escaped * Merge branch 'master' into wip-pexpect * unzip, zipinfo: Associate with *.whl * __load_completion: Avoid unnecessary lookups from nonexistent dirs * Merge branch 'master' into wip-pexpect * gcc: Add g++, gcc, gccgo, and gfortran *-7 aliases * test: Use test_unit_* prefix for unit tests, to avoid name clashes * test: Support setting cmd=None to require no command, for unit tests * test: Misc test suite fixes * test: Fix jq and scrub skipif commands * test: Don't require complete marker on test methods * test: Add support for per-test env modifications * test: Use more conventional Python file names for tests * test: Sort completion results in Python for ease of use in Python tests * test: Allow __load_completion to fail * test: chdir to fixtures dir in Python as well * test: Mark xfreerdp as expected failure for now * test: Replace + with Plus in test class names * test: Implement load_completion_for using assert_bash_exec * test: Add ability to selectively ignore diffs in environment * test: Fixture reorganization * test: Pass through $HOME and $DISPLAY to test bash * test: Log pexpect interaction to $BASHCOMP_TEST_LOGFILE if set * test: Rename BASHCOMP_* test env variables to BASHCOMP_TEST_* * test: Add python3 test case * test: Add class level skipif based on bash exec result * test: Include command name in test class name, use numbered test method names * test: Fix some regressions introduced in recent test conversions * test: Add support for running test case in a specified dir * test: Add support for skipping individual tests based on shell command status * test: Make test base work with Python 3.3+ * test: Add some iperf, iperf3 and xmodmap test cases * xmodmap: Use _parse_help instead of hardcoded option list * iperf: Improve client/server specific option parsing * iperf: Install for iperf3 too * iperf: Add g/G to --format completions * xmodmap: Use _parse_help instead of hardcoded option list * iperf: Improve client/server specific option parsing * iperf: Install for iperf3 too * iperf: Add g/G to --format completions * test: Use /root/.local/bin/pytest on ubuntu14 by default * test: Add generated test files to t/Makefile.am automatically * test: Add new test files to EXTRA_DIST * test: Use /root/.local/bin/pytest on centos6 by default * test: Use make pytest docker executable env-configurable, default pytest-3 * test: Update generate for pytest+pexpect * test: Convert majority of test cases to pytest+pexpect * tox: Fall back to --listenvs for env list if --listenvs-all fails * git-post-commit: Avoid some error trash when HEAD is not a symbolic ref * test: Add pylint-3 test case * test: Limit number of pylint option completions * pydoc, pylint: Determine python2/3 based on command basename only * pylint: Bring -f/--format arg completion up to date with pylint 1.9.2 * pylint: Implement comma separated --confidence arg completion * test: Fix buffer size option listing in run --help * test: Bump expect's match_max to 20000 by default * test: Run docker tests with --verbose * _services: Try systemctl list-unit-files if systemctl list-units fails * extra/git-post-commit.sh: Add git post-commit Docker Hub trigger hook * gpgv: New completion * pydoc, pylint: Skip module completion if current looks like a path * travis: Run ubuntu14/bsd with no network * travis: Split long lines in script * test: Limit number of wget option completions to avoid unresolved result * test: Mark flake8 untested if it seems broken * pylint: Option arg completion improvements * tshark: Get available interfaces from -D output * ngrep: Add "any" to -d arg completions * fio: New completion * test: Fix iwspy test case * uscan: Use _parse_help instead of hardcoded option list * urlsnarf: Add -p arg completion * tracepath: Add -m and -p arg non-completions * tracepath: Actually use our separate completion instead of _known_hosts * test: Skip jq option completion test if its --help doesn't list them * xdg-settings: Make help parsing work on BSD * test: Support running with local BSD binaries, do it w/ ubuntu14 in CI * jq, sqlite3: Protect against negative array subscripts * sudo: Improve long option arg handling * sysctl: Recognize --pattern/-r and --load options * test: Add sysctl option parsing test case * sudo: Parse options from help/usage output, add some long option support * strace: Use _parse_help instead of hardcoded option list * sshow: Add -p arg completion * sqlite3: Add some option arg (non-)completions * tune2fs: Update -o/-O argument lists * jq: New completion * reportbug: Run _parse_help and apt-cache more selectively * querybts: Use _parse_help, not hardcoded option list, misc improvements * pyvenv: Support versioned 3.6-3.8 executables * passwd: Try _parse_help before _parse_usage to parse options * profile.d: Avoid tested variable values being confused as [ ] operators * cryptsetup: Add some option arg (non-)completions * cryptsetup, nc, sh: Skip option args when counting arguments * modinfo: Fall back to _parse_usage if _parse_help yields no results * mysql, mysqladmin: Complete --ssl-{ca,cert,key} option arg * mysqladmin: Reuse --default-character-set completion from mysql * modinfo: Use _parse_help instead of hardcoded option list * minicom: Use _parse_help instead of hardcoded option list * mplayer: Associate with *.S[3T]M, *.med, *.MED * completions/Makefile.am: Use install-data-hook, not install-data- local * ifup etc: Add option and option argument completion * _count_args: Add support for not counting specified option args * ifquery: New ifup alias completion * ngrep, tshark: Complete on *.pcapng too * rpm: Complete --licensefiles with -q * pytest: Rename from py.test to follow upstream recommended name * README: Add instructions for overriding completions system wide * README: Note $BASH_COMPLETION_USER_DIR * test: Mark psql etc test cases untested if --help doesn't work * aclocal, automake: Support versioned 1.16 executables * __load_completion: Avoid bad array subscript on "commands" ending with slash * lzma: Use _parse_help instead of hardcoded option list * test: Run perlcritic and flake8 on perl and python helpers in Travis * build: Improve cleanup of test/log and test/tmp dirs * pkg-config: Complete on *.pc files * build: Use AC_PROG_SED to locate sed * build: Do cmake, pc, and profile variable replacements in Makefile * README: Add Q/A on overriding a completion, modernize local install answer * json_xs: New completion * chmod: New completion * iperf, nc: Include IPv6 addresses in bind address completions * links: Major rework, parse options from --help, add option arg completion * _ip_addresses: Add option to complete all/v4/v6 addresses, add unit test * wget: Remove nonexistent arg to _ip_addresses * _filedir: Drop unnecessary evals * iconv: Split charset completion to _iconv_charsets, add test case * links: Install completion for links2 too * xgamma: Comment spelling fix * lftp: handle -s * test: Skip scrub -p test when its --help doesn't list available patterns * ecryptfs-migrate-home: New completion * scrub: New completion * ether-wake: Install for etherwake as well * *: Support completing arg of last bundled short option * dselect: Parse options with _parse_help * dhclient: Add some option arg (non-)completions * dhclient: Parse options with _parse_usage * chage, chpasswd: Add -R/--root arg completion * reportbug: Add bunch of option arg (non-)completions * .dir-locals.el: Set -O extglob for flycheck bash checks * mount, umount: Deprecate on Linux in favor of util-linux >= 2.28 ones * _known_hosts_real: Reimplement known hosts file parsing in pure bash * test: Add comment line to fixtures/_known_hosts_real/known_hosts * ssh: Complete all *File option args with _filedir * README: Point Debian and openSUSE badges towards unstable and Tumbleweed * README: Link to various distro packages * apt-get: Add -h/-v/-o non-completions * apt-get: Sync option list with apt 1.5.1 * apt-get: Simplify -t and friends completion, support Ubuntu * apt-get: Add indextargets to list of suggested commands * apt-get: Complete install package=versions * ssh: Sync config option lists with OpenSSH 7.5p1, add some value completions * ssh: Sync query type list with OpenSSH 7.5p1 * ssh: Order various switch cases closer to alphabetical * completions/Makefile: Fix check-local in VPATH builds [ dmerge ] * _filedir: Refactor to remove heredoc-dependent loop [ marxin ] * gccgo: Add as a GCC completion target (#227) [ ovf ] * xrandr: match the output name exactly for --mode -- Ville Skyttä <ville.skytta@iki.fi> Sat, 27 Apr 2019 11:50:12 +0300
httpuv 1.6.1 ============ * The `timegm()` function is a non-standard GNU extension, so it has been replaced with an internal `timegm2()` function. (#300) httpuv 1.6.0 ============ * Remove BH dependency. httpuv now requires a compiler which supports C++11. (#297) httpuv 1.5.5 ============ * Fix SHA1 calculation, and thus WebSocket server handshakes, on big-endian systems. (#284) * Fixed #195: Responses required `headers` to be a named list. Now it can also be `NULL`, an empty unnamed list, or it can be unset. (#289) * Allow responses to omit `body` (or set it as `NULL`) to avoid sending a body or setting the `Content-Length` header. This is intended for use with HTTP 204/304 responses. (#288) httpuv 1.5.4 ============ * Fixed #275: Large HTTP request headers could get truncated if they spanned more than one TCP message. (#277) * Fixed build for Solaris. (#271) * Fixed a test that had incorrect logic. (#272) httpuv 1.5.3.1 ============== * Updated libuv to version 1.37.0. (#266) * Fixed #204: On UBSAN builds of R, there were warnings about unaligned memory access. (#246) * Avoid creating a new Rook error stream object for each request. This should improve performance. (#245) * Resolved #247: httpuv no longer returns a HTTP 400 code for static files when the "Content-Length" header is 0. This Content-Length header is inserted by some proxies even for messages without payloads. (#248) * Resolved #253: Setting the FRAMEWORK environment variable would break compilation. This change removes any dependency on that variable. (#254) httpuv 1.5.2 ============ * In the static file-serving code path, httpuv previously looked for a `Connection: upgrade` header; if it found this header, it would not try to serve a static file, and it would instead forward the HTTP request to the R code path. However, some proxies are configured to always set this header, even when the connection is not actually meant to be upgraded. Now, instead of looking for a `Connection: upgrade` header, httpuv looks for the presence of an `Upgrade` header (with any value), and should be more robust to incorrectly-configured proxies. (#215) * Fixed handling of messages without payloads: (#219) * Fixed #224: Static file serving on Windows did not work correctly if it was from a path that contained non-ASCII characters. (#227) * Resolved #194, #233: Added a `quiet` option to `startServer`, which suppresses startup error messages that are normally printed to console (and can't be intercepted with `capture.output()`). (#234) * Added a new function `randomPort()`, which returns a random available port for listening on. (#234) * Added a new (unexported) function `logLevel()`, for controlling debugging information that will be printed to the console. Previously, httpuv occasionally printed messages like `ERROR: [uv_write] broken pipe` and `ERROR: [uv_write] bad file descriptor` by default. This happened when the server tried to write to a pipe that was already closed, but the situation was not harmful, and was already being handled correctly. Now these messages are printed only if the log level is set to `INFO` or `DEBUG`. (#223) * If an application's `$call()` method is missing, it will now give a 404 response instead of a 500 response. (#237) * Disallowed backslash in static path, to prevent path traversal attacks. (#235) * Static file serving on Windows could fail if multiple requests accessed the same file simultaneously. (#239)
Changes since v3.18: - Fixes a variable-font interpolation bug with Roman numeral eight. #382 - Fixes spacing of the latin epsilon glyph thanks to @hcsch. #377 - Adds new glyph U+25AA "blackSmallSquare" including calt mappings for case sensitivity. #373 - Removes U+20E3 "uni20E3" COMBINING ENCLOSING KEYCAP which triggers a bug in chromium, causing certain emoji to not render properly. #371 - Improvements to Roman numerals Changes since v3.17: - Adjusts vertical metrics metadata to that of v3.15 and older. This should fix any vertical alignment issues that might have occurred with v3.17. #361 - Fixes several issues with italics introduced by Glyphs 3 upgrade: - Fixes an issue with backslash in Italic masters. #362 - Fixes issues with afii10026 and uni0376 in italic masters - Fixes issue with italic q U+0071 by inlining the shape instead of using components. #360 - Fixes issue with U+035E COMBINING DOUBLE MACRON and U+20F0 COMBINING ASTERISK ABOVE in Thin Italic. #363 - Fixes positioning issue with U+0358 COMBINING DOT ABOVE RIGHT - Improvements to U+20DC COMBINING FOUR DOTS ABOVE and U+20DB COMBINING THREE DOTS ABOVE - Improvements to U+204E LOW ASTERISK - Improved positioning via mark anchors of combining glyphs U+20F0, U+035E and U+035F. #363 - Changes glyph shape of Latin upper-case iota. #359 - Improved glyph composition via ccmp for enclosed glyphs like U+0041,U+20DD. #335 Changes since v3.15: - Fixes issues with appearance in Microsoft Word. #352 (note that #156 is still unresolved although we have made some progress in v3.16 toward developing workarounds for certain printers.) - Fixes double grave interpolation issue. #317 - Fixes design issue with glyphs acutedblnosp, dblgravecmb, uni02F6 and uni02F5. #339 - Fixes missing or incorrect mark anchors in several turn* glyphs. #336 - Adds Baht currency glyph U+0E3F. #323 - Improvement to Latin iota (lower and upper case) glyphs. #340 - Improvement to some numerical fraction glyphs - Adds a dummy DSIG table to address issues with Microsoft Office 2003 and older - Improvements when using Inter with certain older Microsoft products by decomposing any nested components which some of that software has issues with - Addresses a major regression in v3.16 where several italic glyphs got messed up due to a Glyphs 3 version upgrade of the source file. This only affected users of v3.16 which was only released for about 12 hours before being replaced with this release v3.17. #360 Changes since v3.14: - Fixes an issue with the variable font, where some software would not list the various weights correctly. #308 - Fixes an issue with rendering on Windows with ClearType where some glyphs using advanced OpenType features (component transformations) would render incorrectly, with a slight vertical offset. #251 - Improvements to Elfdalian, improving the /yogonek and /eth glyphs #285 - Improvements to /eth U+00F0 glyph f7924a2#commitcomment-41610142 Changes since v3.13: - Fixes position of ring at bottom of /Aringbelow U+1E00. #266 - Fixes interpolation issues with /omegatitlocyrillic /omega and /pisymbolgreek. #272 - Fixes an issue with /dotmacroncomb.cn used by glyphs like /Adotmacron. #298 - Adds /bitcoin glyph U+20BF. #284 - Adds /insertionsymbol U+2380. #290 - Adds specialized glyphs /Aringogonek, /aringogonek, /Yogonek and /yogonek to fully support Elfdalian script. #285 - Adds U+EE01, a vertically-centered colon used by Android on the lock screen #212 - Improves kerning of /quotedblright,/quoteright and /period,/comma. #299 - Improves design of "Theta" U+03F4, U+0398 and "Fita" U+0472, U+0473. #263, #264 - Improves design of /yhook and use /ucyrillic in /Ukcyrillic /ukcyrillic. #273 - Improves design of /dzaltone and /dzcurl. #268 - Improves design of /percent, /perthousand and /pertenthousand glyphs. #237 - Improves variable-font metadata (STAT table). #265 - Improves (tunes) calt case substitutions, e.g. "x -X". #251 - Changes codepoint mapping of /q.sups from U+146B to private-area U+E163. #275 Changes since v3.12: - Improvements to Greek and Cyrillic glyphs #240 - New stylistic set ss04 which is almost identical to ss02 with the exception of no slashed zero #252 - Fixes interpolation issues with several diacritics in the light weights #257 - Removes codepoint mappings for some math-related enclosed glyphs that would be too large when using the circle-enclosed glyphs #250 - Various improvements and adjustments to glyph shapes, spacing and kerning - Improves OpenType feature name metadata Changes since v3.11: - This release includes major improvements Thin, Light and ExtraLight styles (including italic counterparts) incorporating months of work by @KatjaSchimmel
# rvest 1.0.1 * `html_table()` correctly handles tables with cells that contain blank values for `rowspan` and/or `colspan`, so that e.g. `<td rowspan="">` is parsed as `<td rowspan=1>` (@epiben, #323). * Fix broken example # rvest 1.0.0 ## New features * New `html_text2()` provides a more natural rendering of HTML nodes into text, converting `<br>` into "\n", and removing non-significant whitespace (#175). By default, it also converts ` ` into regular spaces, which you can suppress with `preserve_nbsp = TRUE` (#284). * `html_table()` has been re-written from scratch to more closely mimic the algorithm that browsers use for parsing tables. This should mean that there are far fewer tables for which it fails to produce some output (#63, #204, #215). The `fill` argument has been deprecated since it is no longer needed. `html_table()` now returns a tibble rather than a data frame to be compatible with the rest of the tidyverse (#199). Its performance has been considerably improved (#237). It also gains a `na.strings` argument to control what values are converted to `NA` (#107), and a `convert` argument to control whether to run the conversion (#311). * New `html_form_submit()` allows you to submit a form directly, without needing to create a session (#300). * rvest is now licensed as MIT (#287). ## API changes Since this is the 1.0.0 release, I included a large number of API changes to make rvest more compatible with current tidyverse conventions. Older functions have been deprecated, so existing code will continue to work (albeit with a few new warnings). * rvest now imports xml2 rather than depending on it. This is cleaner because it avoids attaching all the xml2 functions that you're less likely to use. To reduce the change of breakages, rvest re-exports xml2 functions `read_html()` and `url_absolute()`, but your code may now need an explicit `library(xml2)`. * `html_form()` now returns an object with class `rvest_form` (instead of form). Fields within a form now have class `rvest_field`, instead of a variety of classes that were lacking the `rvest_` prefix. All functions for working with forms have a common `html_form_` prefix: `set_values()` became `html_form_set()`. `submit_form()` was renamed to `session_submit()` because it returns a session. * `html_node()` and `html_nodes()` have been superseded in favor of `html_element()` and `html_elements()` since they (almost) always return elements, not nodes (#298). * `html_session()` is now `session()` and returns an object of class `rvest_session` (instead of `session`). All functions that work with session objects now have a common `session_` prefix. * Long deprecated `html()`, `html_tag()`, `xml()` functions have been removed. * `minimal_html()` (which doesn't appear to be used by any other package) has had its arguments flipped to make it more intuitive. * `guess_encoding()` has been renamed to `html_encoding_guess()` to avoid a clash with `stringr::guess_encoding()` (#209). `repair_encoding()` has been deprecated because it doesn't appear to work. * `pluck()` is no longer exported to avoid a clash with `purrr::pluck()`; if you need it use `purrr::map_chr()` and friends instead (#209). * `xml_tag()`, `xml_node()`, and `xml_nodes()` have been formally deprecated in favor of their `html_` equivalents. ## Minor improvements and bug fixes * The "harvesting the web" vignette has been rewritten to focus more on basics rvest, eliminating the screenshots to keep the installed package as svelte as possible. It's also been renamed to `vignette("rvest")` since it's the vignette that you should read first. * The SelectorGadget vignette is now a web-only article, <https://rvest.tidyverse.org/articles/articles/selectorgadget.html>, so we can be more generous with screenshots since they're no longer bundled with every install of the package. Together with the rewrite of the other vignette, this means that rvest is now ~90 Kb instead of ~1.1 Mb. * All uses of IMDB have been eliminated since the site explicitly prohibits scraping (#195). * `session_submit()` errors if `form` doesn't have a `url` (#288). * New `session_forward()` function to complement `session_back()`. It now allows you to pick the submission button by position (#156). The `...` argument is deprecated; please use `config` instead. * `html_form_set()` can now accept character vectors allowing you to select multiple checkboxes in a set or select multiple values from a multi-`<select>` (#127, with help from @juba). It also uses dynamic dots so that you can use `!!!` if you have a list of values (#189). # rvest 0.3.6 * Remove failing example
HANGES IN VERSION 1.1-27.1: USER-VISIBLE CHANGES: * 'influence.merMod' allows user-specified starting parameters * cleaned up performance vignette BUG FIXES: * 'cooks.distance' now works with objects computed by 'influence' method * 'influence.merMod' now works with 'glmer' models using 'nAGQ=0' * 'predict' (with new data) and 'simulate' methods now work for models with >100 levels in a random effect grouping variable (GH #631) CHANGES IN VERSION 1.1-27 (2021-05-15): USER-VISIBLE CHANGES: * improvements from Lionel Henry (via lme4/lme4#587) to fix corner cases in data checking; also resolves GH #601 (allFit scoping) * 'getME(., "lower")' now has names (request of GH #609) * improved detection of 'NaN' in internal calculations (typically due to underflow/overflow or out-of-bounds linear predictors from non-constraining link functions such as identity-link Gamma models) * 'influence.merMod' allows parallel computation * the 'statmod' package is no longer required unless attempting to simulate results from a model with an inverse Gaussian response BUG FIXES: * long formulas work better in 'anova' headings (GH #611) CHANGES IN VERSION 1.1-26 (2020-11-30): BUG FIXES: * 'predict', 'model.frame(.,fixed.only=TRUE)' work with variable names containing spaces (GH #605) * 'simulate' works when original response variable was logical * 'densityplot' handles partly broken profiles more robustly NEW FEATURES: * 'thpr' method for 'densityplot()' (for plotting profiles scaled as densities) gets new arguments CHANGES IN VERSION 1.1-25 (2020-10-23): * Set more tests to run only if environment variable 'LME4_TEST_LEVEL'>1 CHANGES IN VERSION 1.1-24 (never on CRAN): USER-VISIBLE CHANGES: * 'anova()' now returns a p-value of 'NA' if the df difference between two models is 0 (implying they are equivalent models) (GH#583, @MetaEntropy) * speedup in 'coef()' for large models, by skipping conditional variance calculation (Alexander Bauer) * 'simulate.formula' machinery has changed slightly, for compatibility with the 'ergm' package (Pavel Krivitsky) * informational messages about (non-)convergence improved (GH #599) * improved error messages for 0 non-NA cases in data (GH #533) NEW FEATURES: * 'getME(.,"devfun")' now works for 'glmer' objects. Additionally, 'profile'/'confint' for GLMMs no longer depend on objects in the fitting environment remaining unchanged (GH #589). This change also affects likelihood profiling machinery; results of 'glmer' profiling/CIs may not match results from previous versions exactly. BUG FIXES: * improved handling/documentation of 'glmer.nb' controls (GH #556) * 'predict' works better for 'gamm4' objects (GH #575) * resolved some long-standing UBSAN issues (GH #561) CHANGES IN VERSION 1.1-23 (2020-03-06): This is primarily for CRAN compliance (previous submission was retracted to allow time for downstream package adjustments). * Some PROTECT/UNPROTECT fixes CHANGES IN VERSION 1.1-22 (never on CRAN): USER-VISIBLE CHANGES: * prediction now works better for factors with many levels (GH#467, solution by @sihoward) * minor changes to argument order in '[g]lmerControl'; default tolerance for convergence checks increased from 0.001 to 0.002 for 'glmerControl' (now consistent with 'lmerControl') * 'lmer(*, family="<fam>")' is no longer valid; it had been deprecated since 2013-06. * 'lmer()', 'glmer()', and 'nlmer()' no longer have a formal '...' argument. This defunctifies the use of a 'sparseX = .' argument and will reveal some user errors, where extraneous arguments were previously disregarded. * In 'isSingular(x, tol)', the default tolerance ('tol') has been increased from '1e-5' to '1e-4', the default of 'check.conv.singular' in 'g?lmerControl()'. * for clarity and consistency with base R methods, some column names of 'anova()' output are changed: "Df" becomes "npar", "Chi Df" becomes "Df" (GH #528) * 'simulate()' now works with inverse-Gaussian models (GH #284 revisited, @nahorp/Florian Hartig) * single-model mode of 'anova()' now warns about unused arguments in ... (e.g. 'type="III"') * default tolerances for 'nloptwrap'/BOBYQA optimizer tightened ('xtol_abs' and 'ftol_abs' were 1e-6, now 1e-8). (To revert to former tolerances, use 'control=lmerControl(optimizer="nloptwrap", optCtrl=list(xtol_abs=1e-6, ftol_abs=1e-6))'.) BUG FIXES: * improved checking for missing data (@lionel-) * internal 'checkZrank()' should be able to deal with ('Matrix' package) 'rankMatrix()' returning 'NA'. * 'allFit(fm)' now works for a model that had an explicit 'control = lmerControl(..)' call. * internal 'getStart()' now works when model's 'start' was specified as a list, and when called from 'drop1()' on a submodel, fixing GH #521. * internal function 'mkdevfun' now works even if there is an extraneous 'getCall' function defined in the global environment (GH #535) * 'allFit()' works even if a variable with symbol 'i' is used somewhere in the original model call (GH #538, reported by Don Cohen); generally more robust * 'glmer.nb' works even if an alternative version of 'negative.binomial' (other than the one from 'MASS') is loaded in the workspace (e.g. by the 'GLMMadaptive' package) (GH#516) * 'level' argument is now honoured by 'confint(..., type="boot", level=...)' (GH #543)
# 0.66 Asciidoc: * Support empty cells in tablecells mode (GitHub's #343) [J.N. Avila] * Disable tablecells when table is not in PSV format (GitHub's #343 too) [J.N. Avila] Yaml: * New option "paths" to select the full paths to extract. The old "key" option (that allows to select any path ending with the given key) still works as previously (thanks Oliver Rahner). Tests: * Make the SGML tests use valid input files to fix brekages on paranoid OSes (GitHub's#327 -- thanks newbluemoon for report and fix). * Add a new tests that fixes the weird permission settings of the other tests, and prevent the users from running the tests as root. (GitHub's #332 -- thanks Oliver Rahner for stepping on that trap) * Fix the testsuite so that it works even if the source is checkouted in an arbitrary directory (GitHub's #338). po4a-gettextize: * Use UTF-8 by default for localized charset. # 0.65 Asciidoc: * Ensure that comments appear in the translated contents, to preserve the document structure (Github's #307 and #308). Thanks Jean-Noël Avila for the fix! * Add an "nolinting" option to disable lint messages. po4a runner: * In split mode, allow to group several files within the same POT file. * Rename the option 'master:file' to 'pot' for clarity. The old name still works (with a warning). Tex: * Don't use the full absolute file path in #: references of PO files. (Debian's #998196, Github's #281) # 0.64 Asciidoc: * Detect sublevel description lists with ::: * Don't split in attributes include:: and ifeval:: lines (Github's #298) Pod: * Don't wrap textblocks, as it may break C<> markup (similar to Github's #242) Core: * Mitigate Perl bug #18604 (simplify a regexp into a substring index) (Github's #302) * Improve the consistency of all our module lists (related to Github's #136) Thanks Viet Than. # 0.63 A bug in v0.62 removed all binary translations :( Asciidoc: * Properly deal with the YAML Front Matter, when one is found. Texinfo: * Add support for @tindex (Github's #284) Yaml: * Follow the reference style of YAML Front Matter in Markdown module to fix the GitHub issue #289. (GitHub's #292) Portability: * Fix po4a(1) on Windows (GitHub's #293) Build scripts: * Fix Po4aBuilder to use -I instead of reseting PERL5LIB (Github's #286) * Fix Po4aBuilder to actually install the mo files (GitHub's #294)
v4.10.1 ======= * #361: Avoid potential REDoS in ``EntryPoint.pattern``. v4.10.0 ======= * #354: Removed ``Distribution._local`` factory. This functionality was created as a demonstration of the possible implementation. Now, the `pep517 <https://pypi.org/project/pep517>`_ package provides this functionality directly through `pep517.meta.load <https://github.com/pypa/pep517/blob/a942316305395f8f757f210e2b16f738af73f8b8/pep517/meta.py#L63-L73>`_. v4.9.0 ====== * Require Python 3.7 or later. v4.8.3 ====== * #357: Fixed requirement generation from egg-info when a URL requirement is given. v4.8.2 ====== v2.1.2 ====== * #353: Fixed discovery of distributions when path is empty. v4.8.1 ====== * #348: Restored support for ``EntryPoint`` access by item, deprecating support in the process. Users are advised to use direct member access instead of item-based access:: - ep[0] -> ep.name - ep[1] -> ep.value - ep[2] -> ep.group - ep[:] -> ep.name, ep.value, ep.group v4.8.0 ====== * #337: Rewrote ``EntryPoint`` as a simple class, still immutable and still with the attributes, but without any expectation for ``namedtuple`` functionality such as ``_asdict``. v4.7.1 ====== * #344: Fixed regression in ``packages_distributions`` when neither top-level.txt nor a files manifest is present. v4.7.0 ====== * #330: In ``packages_distributions``, now infer top-level names from ``.files()`` when a ``top-level.txt`` (Setuptools-specific metadata) is not present. v4.6.4 ====== * #334: Correct ``SimplePath`` protocol to match ``pathlib`` protocol for ``__truediv__``. v4.6.3 ====== * Moved workaround for #327 to ``_compat`` module. v4.6.2 ====== * bpo-44784: Avoid errors in test suite when DeprecationWarnings are treated as errors. v4.6.1 ====== * #327: Deprecation warnings now honor call stack variance on PyPy. v4.6.0 ====== * #326: Performance tests now rely on `pytest-perf <https://pypi.org/project/pytest-perf>`_. To disable these tests, which require network access and a git checkout, pass ``-p no:perf`` to pytest. v4.5.0 ====== * #319: Remove ``SelectableGroups`` deprecation exception for flake8. v4.4.0 ====== * #300: Restore compatibility in the result from ``Distribution.entry_points`` (``EntryPoints``) to honor expectations in older implementations and issuing deprecation warnings for these cases: - ``EntryPoints`` objects are once again mutable, allowing for ``sort()`` and other list-based mutation operations. Avoid deprecation warnings by casting to a mutable sequence (e.g. ``list(dist.entry_points).sort()``). - ``EntryPoints`` results once again allow for access by index. To avoid deprecation warnings, cast the result to a Sequence first (e.g. ``tuple(dist.entry_points)[0]``). v4.3.1 ====== * #320: Fix issue where normalized name for eggs was incorrectly solicited, leading to metadata being unavailable for eggs. v4.3.0 ====== * #317: De-duplication of distributions no longer requires loading the full metadata for ``PathDistribution`` objects, entry point loading performance by ~10x. v4.2.0 ====== * Prefer f-strings to ``.format`` calls. v4.1.0 ====== * #312: Add support for metadata 2.2 (``Dynamic`` field). * #315: Add ``SimplePath`` protocol for interface clarity in ``PathDistribution``. v4.0.1 ====== * #306: Clearer guidance about compatibility in readme. v4.0.0 ====== * #304: ``PackageMetadata`` as returned by ``metadata()`` and ``Distribution.metadata()`` now provides normalized metadata honoring PEP 566: - If a long description is provided in the payload of the RFC 822 value, it can be retrieved as the ``Description`` field. - Any multi-line values in the metadata will be returned as such. - For any multi-line values, line continuation characters are removed. This backward-incompatible change means that any projects relying on the RFC 822 line continuation characters being present must be tolerant to them having been removed. - Add a ``json`` property that provides the metadata converted to a JSON-compatible form per PEP 566. v3.10.1 ======= * Minor tweaks from CPython. v3.10.0 ======= * #295: Internal refactoring to unify section parsing logic. v3.9.1 ====== * #296: Exclude 'prepare' package. * #297: Fix ValueError when entry points contains comments. v3.9.0 ====== * Use of Mapping (dict) interfaces on ``SelectableGroups`` is now flagged as deprecated. Instead, users are advised to use the select interface for future compatibility. Suppress the warning with this filter: ``ignore:SelectableGroups dict interface``. Or with this invocation in the Python environment: ``warnings.filterwarnings('ignore', 'SelectableGroups dict interface')``. Preferably, switch to the ``select`` interface introduced in 3.7.0. See the `entry points documentation <https://importlib-metadata.readthedocs.io/en/latest/using.html#entry-points>`_ and changelog for the 3.6 release below for more detail. For some use-cases, especially those that rely on ``importlib.metadata`` in Python 3.8 and 3.9 or those relying on older ``importlib_metadata`` (especially on Python 3.5 and earlier), `backports.entry_points_selectable <https://pypi.org/project/backports.entry_points_selectable>`_ was created to ease the transition. Please have a look at that project if simply relying on importlib_metadata 3.6+ is not straightforward. Background in #298. * #283: Entry point parsing no longer relies on ConfigParser and instead uses a custom, one-pass parser to load the config, resulting in a ~20% performance improvement when loading entry points. v3.8.2 ====== * #293: Re-enabled lazy evaluation of path lookup through a FreezableDefaultDict. v3.8.1 ====== * #293: Workaround for error in distribution search. v3.8.0 ====== * #290: Add mtime-based caching for ``FastPath`` and its lookups, dramatically increasing performance for repeated distribution lookups. v3.7.3 ====== * Docs enhancements and cleanup following review in `GH-24782 <https://github.com/python/cpython/pull/24782>`_. v3.7.2 ====== * Cleaned up cruft in entry_points docstring. v3.7.1 ====== * Internal refactoring to facilitate ``entry_points() -> dict`` deprecation. v3.7.0 ====== * #131: Added ``packages_distributions`` to conveniently resolve a top-level package or module to its distribution(s). v3.6.0 ====== * #284: Introduces new ``EntryPoints`` object, a tuple of ``EntryPoint`` objects but with convenience properties for selecting and inspecting the results: - ``.select()`` accepts ``group`` or ``name`` keyword parameters and returns a new ``EntryPoints`` tuple with only those that match the selection. - ``.groups`` property presents all of the group names. - ``.names`` property presents the names of the entry points. - Item access (e.g. ``eps[name]``) retrieves a single entry point by name. ``entry_points`` now accepts "selection parameters", same as ``EntryPoint.select()``. ``entry_points()`` now provides a future-compatible ``SelectableGroups`` object that supplies the above interface (except item access) but remains a dict for compatibility. In the future, ``entry_points()`` will return an ``EntryPoints`` object for all entry points. If passing selection parameters to ``entry_points``, the future behavior is invoked and an ``EntryPoints`` is the result. * #284: Construction of entry points using ``dict([EntryPoint, ...])`` is now deprecated and raises an appropriate DeprecationWarning and will be removed in a future version. * #300: ``Distribution.entry_points`` now presents as an ``EntryPoints`` object and access by index is no longer allowed. If access by index is required, cast to a sequence first. v3.5.0 ====== * #280: ``entry_points`` now only returns entry points for unique distributions (by name). v3.4.0 ====== * #10: Project now declares itself as being typed. * #272: Additional performance enhancements to distribution discovery. * #111: For PyPA projects, add test ensuring that ``MetadataPathFinder._search_paths`` honors the needed interface. Method is still private. v3.3.0 ====== * #265: ``EntryPoint`` objects now expose a ``.dist`` object referencing the ``Distribution`` when constructed from a Distribution. v3.2.0 ====== * The object returned by ``metadata()`` now has a formally-defined protocol called ``PackageMetadata`` with declared support for the ``.get_all()`` method. Fixes #126. v3.1.1 ====== v2.1.1 ====== * #261: Restored compatibility for package discovery for metadata without version in the name and for legacy eggs. v3.1.0 ====== * Merge with 2.1.0. v2.1.0 ====== * #253: When querying for package metadata, the lookup now honors `package normalization rules <https://packaging.python.org/specifications/recording-installed-packages/>`_. v3.0.0 ====== * Require Python 3.6 or later.
New features: - mold now automatically falls back to ld.bfd or ld.lld if GCC-based LTO (link time optimization) or LLVM-based LTO are requested, respectively. This is a temporary hack until mold gains native LTO support. (a5029d1) - The following flags have been added: -z ibt (9ca6a9d), -z cet-report (31a43a7), -z shstk (e29bd8f), -z ibtplt (fbfa01d) - [ARM64] Range extension thunks are now supported. Previously, mold reported "relocation overflow" errors when the output file's text segment is larger than some threshold (~60 MiB). Now, it can link large programs just fine. (9287682) - [NetBSD] mold is now usable on NetBSD. (948248b) - [x86-64] mold now emits compact 8-byte PLT entries instead of the regular 16-byte PLT entries if -z now is given. (0370e7f) - RELR-type packed dynamic relocations are now supported. You can enable it by passing -z pack-dyn-relocs=relr. The good news is that it can typically reduce PIE (position-independent executable) size by a few percent. This is not a negligible saving because PIE is now default on many systems for security reasons. The bad news is that it needs a runtime support. To our knowledge, it's supported only on ChromeOS, Android, Fuchsia and SerenityOS at this moment. We need to wait for a while for other systems to catch up. (bd6afa1) Performance improvements: - Version script processor was rewritten with the Aho-Corasick string matching algorithm. If your program uses a version script that contains lots of glob patterns with the * metacharacter, you'll likely to see a significant speedup. (d0c1c4d) - Relocation processing for non-memory-allocated sections has been optimized. You'll likely to see a speedup if your binary contains large size of debug info. (d8dc8a6) Bug fixes and compatibility improvements: - mold can now link ICC-generated object files with GCC-generated ones even if the -static flag is given. (#271, be6ae07) - mold can now handle archive files (.a files) larger than 4 GiB. (bba506d) - mold no longer have "GNU gold" in its --version string. We had this identification string for some ./configure scripts that didn't work without it, but it causes other compatibility issue such as #284. Now, mold --version prints out something like mold 1.0.2 (compatible with GNU ld). We still need "GNU ld" for many ./configure scripts. (cea6a56) - Symbol resolution algorithm has been completely rewritten. The previous implementation was non-deterministic in some edge cases, meaning that outcomes from multiple runs of the linker with the same command line parameters could be different due to thread scheduling randomness or some other internal randomness. Now it is guaranteed to be deterministic. (ce5749c) - mold now try to pull out an object file from an archive if it's needed to resolve an undefined symbol with a common symbol. mold used to ignore common symbols in archives, so it could fail with an unresolved symbol error even if the undefined symbol could be resolved using a file in an archive. (27d8361) - mold no longer converts .ctors/.dtors sections into .init_array/.fini_array sections. mold used to convert them but in a wrong way. Since .ctors/.dtors have been superseded by .init_array/.fini_array long ago, it should be fine to stop doing this now. (4348417) - [i386] mold now ignores some legacy symbols in an i386 CRT files to avoid duplicate symbol errors. (#270, 0c19046)
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Resolves the rest of #284.
Users logged in with mosh don't get added to utmpx due to missing libutempter. Illumos-gate recently added it, so SmartOS would get that automatically but to take advantage of it we'd need to up the minimum PI, which is probably a bit much for an issue affecting a single package.
Bringing our own should solve this problem.
The text was updated successfully, but these errors were encountered: