Skip to content

Conversation

@tempcracks
Copy link

C.1.1 Version 2.16.03

This is a source build machinery and documentation update only. There are no functionality changes.

Fix building from git in a separate directory from the source.

Remove some irrelevant files from the source distribution.

Make the documentation stronger that -O0 or -O1 are probably not what the user wants. See section 2.1.24.

Fix configure --enable-lto build option.

Update the included RPM .spec file.

C.1.2 Version 2.16.02

Fix building from the source distribution in a separate directory from the source.

Fix a number of issues when building from source, mostly involving configure or dependency generation.

In particular, more aggressively avoid cross-compilation problems on Unix/Linux systems automatically invoking WINE. We could end up invoking WINE even when we didn't want to, making configure think it was running native when in fact cross-compiling.

Hopefully fix compiling with the latest versions of MSVC/nmake.

Windows host: add embedded manifest file. Without a manifest, Windows applications force a fixed PATH_MAX limit to any pathname; this is unnecessary.

Add support VEX-encoded SM4-NI instructions.

Add support for VEX-encoded SM3-NI instructions.

Add support for VEX-encoded SHA512-NI instructions.

PTWRITE opcode corrected (F3 prefix required.)

Disassembler: the SMAP instructions are NP; notably the prefixed versions of CLAC are ERETU/ERETS.

Add support for Flexible Return and Exception Delivery (FRED): the LKGS, ERETS and ERETU instructions.

Fix external references to segments in the obj (OMF) and possibly other output formats.

Always support up to 8 characters, i.e. 64 bits, in a string-to-numeric conversion.

Preprocessor: add %map() function to expand a macro from a list of arguments, see section 4.4.7.

Preprocessor: allow the user to specify the desired radix for an evaluated parameter. It doesn't make any direct difference, but can be nice for debugging or turning into strings. See the = modifier in section 4.2.1.

Update documentation: __USE_package__ is now __?USE_package?__.

Documentation: correct a minor problem in the expression grammar for Dx statements, see section 3.2.1.

Preprocessor: correctly handle empty %rep blocks.

Preprocessor: add options for a base prefix to %num(), see section 4.4.8.

Preprocessor: add a %hex() function, equivalent to %eval() except that it producess hexadecimal values that are nevertheless valid NASM numeric constants, see section 4.4.5.

Preprocessor: fix the parameter number in error messages (should be 1-based, like %num references to multi-line macro arguments.)

Documentation: be more clear than the bin format is simply a linker built into NASM. See section 8.1.

Adjust the LOCK prefix warning for XCHG.

LOCK XCHG reg,mem would issue a warning for being unlockable, which is incorrect. In this case the reg,mem encoding is simply an alias for the mem,reg encoding. However, XCHG is always locked, so create a new warning (-w+prefix-lock-xchg) to explicitly flag a user-specified LOCK XCHG; default off. Future versions of NASM may remove the LOCK prefix when optimization is enabled.

Fix broken dependency-list generation.

Add optional warnings for specific relocation types (-w+reloc-*, see appendix A), default off.

Some target environments may have specific restrictions on what kinds of relocations are possible or allowed.

Error out on certain bad syntax in Dx statements, such as db 1 2. See section 3.2.1.

bacon and others added 30 commits July 27, 2024 12:23
According to email from upstream, 6.4.4's "stealth" off-by-default
feature fixes that problem.
1.43     2024-07-27

- Fixed the prefers_24_hour_time method. This was incorrectly returning false when the locale's
  time_format_short method contained a quote string with "h" or "K" in it. For example, the fr-CA
  locale's time_format_short is `HH 'h' mm`. The quoted 'h' caused this method to return
  false. Fixed by Jacques Deguest (@jackdeguest). PR NetBSD#39.
0.24    2024-07-23
        [BUGFIXES]
         * Workaround for Perl 5.32.1's buggy `isa` operator that breaks the
           isa cache
0.08    2024-07-24
        [CHANGES]
         * Support the new `link` Formatting tag by emitting OSC 8 sequences
v23.3.0
Features
 - pwsh: pass original last execution status to Set-PoshContext for use in pwsh alias (a43f57d)

v23.2.1
Bug Fixes
 - zsh: work around bugs when used with zsh-syntax-highlighting (b4e19ad)

v23.2.0
Features
 - kubectl: add cache to kubectl (576ec37)

v23.1.0
Features
 - git: mapped branches (7a64782), closes #4979

v23.0.2
Bug Fixes
 - git: more robust worktree identification (3fddcac), closes #5343
 - git: resolve bare repo pointer (1c908a8)
+ grafana-11.1.3, grpc-1.65.2, libheif-1.18.1, meson-1.5.1,
  py-alabaster-1.0.0, py-annotated-types-0.7.0,
  py-google-api-python-client-2.138.0, py-importlib-metadata-8.2.0,
  py-numpy-2.0.1, py-packageurl-0.15.6, py-pillow_heif-0.18.0,
  py-posting-1.9.3, py-pyperclip-1.9.0, py-ruff-0.5.5,
  py-sphinx-autoapi-3.2.1, py-textual-0.74.0,
  py-textual-autocomplete-3.0.0a9, tigervnc-1.14.0, tree-sitter-php-0.22.8.
WAT is a powerful inspection tool that allows you to delve into
and examine unknown objects at runtime.

If you find yourself deep within the Python console, feeling dazed
and confused, wondering "WAT? What's that thing?", that's where
the `wat` inspector comes in handy.
Changes:
## v4.1

- Add Python 3.12 support

## v4.0.1

- Bug fixes

## v4.0

- Drop Python 3.9 support
- Several improvements
- Bug fixes

## v3.3

- Change default config to use journal key
- Add machine readable --list output
- Bug fixes

## v3.2

- Suppress "Entry added" message if using default journal
- Add message showing the number of search results

## v3.1

- Add linewrap option 'auto'
- Bug fixes

## v3.0

- Drop support for Python 3.7 and 3.8
- Show name of journal when creating a password/encrypting
- Rework how all output and messaging works in jrnl
- Implement --change-time flag
- Bug fixes

## v2.8.4

- Add hash as a default tag symbol for new jrnl config file
- Add --config-file argument to use alternate config file at runtime
- Bug fixes

## v2.8.3

- Bug fixes

## v2.8.2

- Misc improvements

## v2.8.1

- Bug fixes

## v2.8

- Add `--config-override` feature
- Bug fixes

## v2.7.1

- Bug fixes

## v2.7

- Add new date format (`--format date`) for heatmapping
- Add new `-today-in-history`, `-month`, `-day`, and `-year` search filters
- Allow custom extensions when editing (for easier syntax highlighting)
- Bug fixes

## v2.6

- Add ability to put --edit partly through a cli entry to move it to the editor
- Allow --edit flag partway through an entry
- Bug fixes

## v2.5

- Deprecate Python 3.6
- Add support for Python 3.9
- Implement arg parsing library
- Rename `--export` to `--format` and `--export -o` to `--format --file`
- Pull functionality out of util.py
- Support -not for individual @tag in the command line
- Add punctuation more commonly used in Asian languages (ellipsis) to sentence parsing
- Clean up help screen, get rid of util.py
- Bug fixes

## v2.4.5

- Bug fixes

## v2.4.4

- Misc improvements and bug fixes

## v2.4.3

- Speed up jrnl by 10%, improve slow imports
- Bug fixes

## v2.4.2

- Bug fixes

## v2.4.1

- Bug fixes

## v2.4

- Misc improvements and bug fixes

## v2.2

- Full text search (case insensitive) with "-contains"
- Reduce startup time by 55%
- Refactor password logic to prevent accidental password leakage
- Password confirmation
- Bug fixes

## v2.1.1

- Support Python 3.6+
- Drop Python 2 support
- Bug fixes

## v2.1.post2

- Bug fixes

## v2.0.1

- Switch to hashmark Markdown headers on export (Mk II)
- Add '-not' flag for excluding tags from filter
- Handle KeyboardInterrupt when installing journal
- Bug fixes

## v2.0.0

- Change cryptographic backend from PyCrypto to cryptography.io
- Config now respects XDG conventions and may move accordingly
- Config name changed from `journals.jrnl_name.journal` to
  `journals.jrnl_name.path`
- Bug fixes
Changes:
v0.67.0
This release contains a mix of features, a new builtin function
(`strings.count`), performance improvements, and bugfixes.

### Breaking Change
#### Request Body Size Limits

OPA now automatically rejects very large requests.
Requests with a `Content-Length` larger than 128 MB uncompressed, and
gzipped requests with payloads that decompress to larger than 256 MB
will be rejected, as part of hardening OPA against denial-of-service
attacks. Previously, a large enough request could cause an OPA instance
to run out of memory in low-memory sidecar deployment scenarios, just
from attempting to read the request body into memory.

These changes allow improvements in memory usage for the OPA HTTP
server, and help OPA deployments avoid some accidental out-of-memory
situations.

For most users, no changes will be needed to continue using OPA.
However, to control this behavior, two new configuration keys are
available: `server.decoding.max_length` and
`server.decoding.gzip.max_length`. These control the max size in bytes
to allow for an incoming request payload, and the maximum size in bytes
to allow for a decompressed gzip request payload, respectively.
Incremental 24.7.1 (2024-07-27)

Bugfixes

- Incremental 24.7.0 would produce an error when parsing the ``pyproject.toml`` of a project that lacked the ``use_incremental=True`` or ``[tool.incremental]`` opt-in markers if that file lacked a ``[project]`` section containing the package name. This could cause a project that only uses ``pyproject.toml`` to configure tools to fail to build if Incremental is installed. Incremental now ignores such projects.


Incremental 24.7.0 (2024-07-25)

Features

- Incremental can now be configured using ``pyproject.toml``.
- Incremental now provides a read-only `Hatchling version source plugin <https://hatch.pypa.io/latest/plugins/version-source/reference/>`_.

Bugfixes

- Incremental no longer inserts a dot before the rc version component (i.e., ``1.2.3rc1`` instead of ``1.2.3.rc1``), resulting in version numbers in the `canonical format <https://packaging.python.org/en/latest/specifications/version-specifiers/#public-version-identifiers>`__.
- Incremental's tests are now included in the sdist release artifact.

Deprecations and Removals

- ``incremental[scripts]`` no longer depends on Twisted.
- Support for Python 2.7 has been dropped for lack of test infrastructure. We no longer provide universal wheels.
- Support for Python 3.5, 3.6, and 3.7 has been dropped for lack of test infrastructure.
0.5.5

Preview features

[fastapi] Implement fastapi-redundant-response-model (FAST001) and fastapi-non-annotated-dependency(FAST002)
[pydoclint] Implement docstring-missing-exception (DOC501) and docstring-extraneous-exception (DOC502)

Rule changes

[numpy] Fix NumPy 2.0 rule for np.alltrue and np.sometrue
[numpy] Ignore NPY201 inside except blocks for compatibility with older numpy versions
[pep8-naming] Avoid applying ignore-names to self and cls function names (N804, N805)

Formatter

Fix incorrect placement of leading function comment with type params

Server

Do not bail code action resolution when a quick fix is requested

Bug fixes

Fix Ord implementation of cmp_fix
Raise syntax error for unparenthesized generator expression in multi-argument call
[pydoclint] Fix panic in DOC501 reported
[flake8-bugbear] Allow singleton tuples with starred expressions in B013

Documentation

Add Eglot setup guide for Emacs editor
Add note about the breaking change in nvim-lspconfig
Add note to include notebook files for native server
Add setup docs for Zed editor
Changes:
v0.55.0
- Update to OPA 0.67.0
- Misc bug fixes and updates
This releases fixes the syntax of the vvcC box and a few build issues.
:git_tag:`1.0.0` -- 2024-07-26
------------------------------

- Dropped support for Python 3.9 and earlier.
- Dropped support for Sphinx 6.1 and earlier.
- Use a new SVG image for the GitHub banner.
- :feature:`217` Use the new *searchfield* component for the search box.
  Patch by Tim Hoffmann.
- :feature:`104` Allow translating strings in ``relations.html``.
- 🐛`125` Do not underline linked images.
   Patch by Joshua Bronson.
- 🐛`169` Do not ignore the Pygments background colour.
  Patch by Matthias Geier.
- 🐛`174` Fix clipping caused by incorrect CSS breakpoints.
Changes not found.
adam and others added 15 commits July 31, 2024 08:08
v0.19.1

Make Python versions in GitHub Actions consistent
24.2 (2024-07-28)

Deprecations and Removals

Deprecate pip install --editable falling back to setup.py develop when using a setuptools version that does not support PEP 660 (setuptools v63 and older).

Features

Check unsupported packages for the current platform.
Use system certificates and certifi certificates to verify HTTPS connections on Python 3.10+. Python 3.9 and earlier only use certifi.
To revert to previous behaviour, pass the flag --use-deprecated=legacy-certs.

Improve discovery performance of installed packages when the importlib.metadata backend is used to load distribution metadata (used by default under Python 3.11+).
Improve performance when the same requirement string appears many times during resolution, by consistently caching the parsed requirement string.
Minor performance improvement of finding applicable package candidates by not repeatedly calculating their versions
Disable pip’s self version check when invoking a pip subprocess to install PEP 517 build requirements.
Improve dependency resolution performance by caching platform compatibility tags during wheel cache lookup.
wheel is no longer explicitly listed as a build dependency of pip. setuptools injects this dependency in the get_requires_for_build_wheel() hook and no longer needs it on newer versions.
Ignore --require-virtualenv for pip check and pip freeze
Improve package download and install performance.
Increase chunk sizes when downloading (256 kB, up from 10 kB) and reading files (1 MB, up from 8 kB). This reduces the frequency of updates to pip’s progress bar.

Improve pip install performance.
Files are now extracted in 1MB blocks, or in one block matching the file size for smaller files. A decompressor is no longer instantiated when extracting 0 bytes files, it is not necessary because there is no data to decompress.

Bug Fixes

Set no_color to global rich.Console instance.
Fix resolution to respect --python-version when checking Requires-Python.
Perform hash comparisons in a case-insensitive manner.
Avoid dlopen failure for glibc detection in musl builds
Avoid keyring logging crashes when pip is run in verbose mode.
Fix finding hardlink targets in tar files with an ignored top-level directory.
Improve pip install performance by only creating required parent directories once, instead of before extracting every file in the wheel.
Improve pip install performance by calculating installed packages printout in linear time instead of quadratic time.

Vendored Libraries

Remove vendored tenacity.
Update the preload list for the DEBUNDLED case, to replace pep517 that has been renamed to pyproject_hooks.
Use tomllib from the stdlib if available, rather than tomli
Upgrade certifi to 2024.7.4
Upgrade platformdirs to 4.2.2
Upgrade pygments to 2.18.0
Upgrade setuptools to 70.3.0
Upgrade typing_extensions to 4.12.2

Improved Documentation

Correct —-ignore-conflicts (including an em dash) to --ignore-conflicts.
v3.8.0

* Bug fix
  * Ensure cost is accounted for when testing conditional limits
1.5.2 (2024-07-24)

Bug fixes
* Include tests (and docs) and sdist correctly, and stop installing them to site-packages.

Other changes
*  Add support for Python 3.12.

1.5.1 (2024-07-23)

Other changes
* Changed pytest entrypoint to avoid error while loading plugin with `-p` argument.
* Add `tests` directory to sdist.
This library exists to allow connecting with Happy Eyeballs when you already
have a list of addrinfo and not a DNS name.
Show where your regex match assertion failed!
3.10.0 (2024-07-30)

Bug fixes

- Fixed server response headers for ``Content-Type`` and ``Content-Encoding`` for
  static compressed files

  Server will now respond with a ``Content-Type`` appropriate for the compressed
  file (e.g. ``"application/gzip"``), and omit the ``Content-Encoding`` header.
  Users should expect that most clients will no longer decompress such responses
  by default.

- Fixed duplicate cookie expiration calls in the CookieJar implementation
- Adjusted ``FileResponse`` to check file existence and access when preparing the response

  The :py:class:`~aiohttp.web.FileResponse` class was modified to respond with
   403 Forbidden or 404 Not Found as appropriate.  Previously, it would cause a
   server error if the path did not exist or could not be accessed.  Checks for
   existence, non-regular files, and permissions were expected to be done in the
   route handler.  For static routes, this now permits a compressed file to exist
   without its uncompressed variant and still be served.  In addition, this
   changes the response status for files without read permission to 403, and for
   non-regular files from 404 to 403 for consistency.

- Fixed ``AsyncResolver`` to match ``ThreadedResolver`` behavior

  On system with IPv6 support, the :py:class:`~aiohttp.resolver.AsyncResolver` would not fallback
  to providing A records when AAAA records were not available.
  Additionally, unlike the :py:class:`~aiohttp.resolver.ThreadedResolver`, the :py:class:`~aiohttp.resolver.AsyncResolver`
  did not handle link-local addresses correctly.

  This change makes the behavior consistent with the :py:class:`~aiohttp.resolver.ThreadedResolver`.

- Fixed ``ws_connect`` not respecting `receive_timeout`` on WS(S) connection.
- Removed blocking I/O in the event loop for static resources and refactored
  exception handling

  File system calls when handling requests for static routes were moved to a
  separate thread to potentially improve performance. Exception handling
  was tightened in order to only return 403 Forbidden or 404 Not Found responses
  for expected scenarios; 500 Internal Server Error would be returned for any
  unknown errors.


Features

- Added a Request.wait_for_disconnection() method, as means of allowing request handlers to be notified of premature client disconnections.
- Added 5 new exceptions: :py:exc:`~aiohttp.InvalidUrlClientError`, :py:exc:`~aiohttp.RedirectClientError`,
  :py:exc:`~aiohttp.NonHttpUrlClientError`, :py:exc:`~aiohttp.InvalidUrlRedirectClientError`,
  :py:exc:`~aiohttp.NonHttpUrlRedirectClientError`

  :py:exc:`~aiohttp.InvalidUrlRedirectClientError`, :py:exc:`~aiohttp.NonHttpUrlRedirectClientError`
  are raised instead of :py:exc:`ValueError` or :py:exc:`~aiohttp.InvalidURL` when the redirect URL is invalid. Classes
  :py:exc:`~aiohttp.InvalidUrlClientError`, :py:exc:`~aiohttp.RedirectClientError`,
  :py:exc:`~aiohttp.NonHttpUrlClientError` are base for them.

  The :py:exc:`~aiohttp.InvalidURL` now exposes a ``description`` property with the text explanation of the error details.

- Added a feature to retry closed connections automatically for idempotent methods.
- Implemented filter_cookies() with domain-matching and path-matching on the keys, instead of testing every single cookie.
  This may break existing cookies that have been saved with `CookieJar.save()`. Cookies can be migrated with this script::

      import pickle
      with file_path.open("rb") as f:
          cookies = pickle.load(f)

      morsels = [(name, m) for c in cookies.values() for name, m in c.items()]
      cookies.clear()
      for name, m in morsels:
          cookies[(m["domain"], m["path"].rstrip("/"))][name] = m

      with file_path.open("wb") as f:
          pickle.dump(cookies, f, pickle.HIGHEST_PROTOCOL)

- Separated connection and socket timeout errors, from ServerTimeoutError.
- Implemented happy eyeballs
- Added server capability to check for static files with Brotli compression via a ``.br`` extension

Removals and backward incompatible breaking changes

- The shutdown logic in 3.9 waited on all tasks, which caused issues with some libraries.
  In 3.10 we've changed this logic to only wait on request handlers. This means that it's
  important for developers to correctly handle the lifecycle of background tasks using a
  library such as ``aiojobs``. If an application is using ``handler_cancellation=True`` then
  it is also a good idea to ensure that any :func:`asyncio.shield` calls are replaced with
  :func:`aiojobs.aiohttp.shield`.

Improved documentation

- Added documentation for ``aiohttp.web.FileResponse``.
- Improved the docs for the `ssl` params.

Contributor-facing changes

- Enabled HTTP parser tests originally intended for 3.9.2 release

Miscellaneous internal changes

- Improved URL handler resolution time by indexing resources in the UrlDispatcher.
  For applications with a large number of handlers, this should increase performance significantly.
- Added `nacl_middleware <https://github.com/CosmicDNA/nacl_middleware>`_ to the list of middlewares in the third party section of the documentation.
- Minor improvements to static typing
- Added a 3.11-specific overloads to ``ClientSession``
- Simplified path checks for ``UrlDispatcher.add_static()`` method
- Avoided creating a future on every websocket receive
- Updated identity checks for all ``WSMsgType`` type compares
- When using Python 3.12 or later, the writer is no longer scheduled on the event loop if it can finish synchronously. Avoiding event loop scheduling reduces latency and improves performance.
- Restored :py:class:`~aiohttp.resolver.AsyncResolver` to be the default resolver.
0.9.0
Unknown changes
netbsd-srcmastr pushed a commit that referenced this pull request Sep 19, 2024
This is a point release intended to clear up a couple of CVEs and
apply point fixes that have been accumulating since 5.2.1

There are a few unresolved (but minor) memory leaks related to design
issues in the API that still need to be resolved. Expect those fixes
in the next release.

Code Fixes
----------

* Fixes for CVE-2023-48161, CVE-2022-28506,

* Address SF issue #138 Documentation for obsolete utilities still installed

* Address SF issue #139: Typo in "LZW image data" page ("110_2 = 4_10")

* Address SF issue #140: Typo in "LZW image data" page ("LWZ")

* Address SF issue #141: Typo in "Bits and bytes" page ("filed")

* Note as already fixed SF issue #143: cannot compile under mingw

* Address SF issue #144: giflib-5.2.1 cannot be build on windows and other platforms using c89

* Address SF issue #145: Remove manual pages installation for binaries that are not installed too

* Address SF issue #146: [PATCH] Limit installed man pages to binaries, move giflib to section 7

* Address SF issue #147 [PATCH] Fixes to doc/whatsinagif/ content

* Address SF issue #148: heap Out of Bound Read in gif2rgb.c:298 DumpScreen2RGB

* Declared no-info on SF issue #150: There is a denial of service vulnerability in GIFLIB 5.2.1

* Declared Won't-fix on SF issue 149: Out of source builds no longer possible

* Address SF issue #151: A heap-buffer-overflow in gif2rgb.c:294:45

* Address SF issue #152: Fix some typos on the html documentation and man pages

* Address SF issue #153: Fix segmentation faults due to non correct checking for args

* Address SF issue #154: Recover the giffilter manual page

* Address SF issue #155: Add gifsponge docs

* Address SF issue #157: An OutofMemory-Exception or Memory Leak in gif2rgb

* Address SF issue #158: There is a null pointer problem in gif2rgb

* Address SF issue #159 A heap-buffer-overflow in GIFLIB5.2.1 DumpScreen2RGB() in gif2rgb.c:298:45

* Address SF issue #163: detected memory leaks in openbsd_reallocarray giflib/openbsd-reallocarray.c

* Address SF issue #164: detected memory leaks in GifMakeMapObject giflib/gifalloc.c

* Address SF issue #166: a read zero page leads segment fault in getarg.c and memory leaks in gif2rgb.c and gifmalloc.c

* Address SF issue #167: Heap-Buffer Overflow during Image Saving in DumpScreen2RGB Function at Line 321 of gif2rgb.c
netbsd-srcmastr pushed a commit that referenced this pull request Nov 27, 2024
Changes in [1.11.86](https://github.com/element-hq/element-web/releases/tag/v1.11.86) (2024-11-19)
==================================================================================================
## ✨ Features

* Deduplicate icons using Compound Design Tokens ([#28419](element-hq/element-web#28419)). Contributed by @t3chguy.
* Let widget driver send error details ([#28357](element-hq/element-web#28357)). Contributed by @AndrewFerr.
* Deduplicate icons using Compound Design Tokens ([#28381](element-hq/element-web#28381)). Contributed by @t3chguy.
* Auto approvoce `io.element.call.reaction` capability for element call widgets ([#28401](element-hq/element-web#28401)). Contributed by @toger5.
* Show message type prefix in thread root \& reply previews ([#28361](element-hq/element-web#28361)). Contributed by @t3chguy.
* Support sending encrypted to device messages from widgets ([#28315](element-hq/element-web#28315)). Contributed by @hughns.

## 🐛 Bug Fixes

* Feed events to widgets as they are decrypted (even if out of order) ([#28376](element-hq/element-web#28376)). Contributed by @robintown.
* Handle authenticated media when downloading from ImageView ([#28379](element-hq/element-web#28379)). Contributed by @t3chguy.
* Ignore `m.3pid_changes` for Identity service 3PID changes ([#28375](element-hq/element-web#28375)). Contributed by @t3chguy.
* Fix markdown escaping wrongly passing html through ([#28363](element-hq/element-web#28363)). Contributed by @t3chguy.
* Remove "Upgrade your encryption" flow in `CreateSecretStorageDialog` ([#28290](element-hq/element-web#28290)). Contributed by @florianduros.


Changes in [1.11.85](https://github.com/element-hq/element-web/releases/tag/v1.11.85) (2024-11-12)
==================================================================================================
# Security
- Fixes for [CVE-2024-51750](https://www.cve.org/CVERecord?id=CVE-2024-51750) / [GHSA-w36j-v56h-q9pc](GHSA-w36j-v56h-q9pc)
- Fixes for [CVE-2024-51749](https://www.cve.org/CVERecord?id=CVE-2024-51749) / [GHSA-5486-384g-mcx2](GHSA-5486-384g-mcx2)
- Update JS SDK with the fixes for [CVE-2024-50336](https://www.cve.org/CVERecord?id=CVE-2024-50336) / [GHSA-xvg8-m4x3-w6xr](GHSA-xvg8-m4x3-w6xr)


Changes in [1.11.84](https://github.com/element-hq/element-web/releases/tag/v1.11.84) (2024-11-05)
==================================================================================================
## ✨ Features

* Remove abandoned MSC3886, MSC3903, MSC3906 implementations ([#28274](element-hq/element-web#28274)). Contributed by @t3chguy.
* Update to React 18 ([#24763](element-hq/element-web#24763)). Contributed by @t3chguy.
* Deduplicate icons using Compound ([#28239](element-hq/element-web#28239)). Contributed by @t3chguy.
* Replace legacy Tooltips with Compound tooltips ([#28231](element-hq/element-web#28231)). Contributed by @t3chguy.
* Deduplicate icons using Compound Design Tokens ([#28219](element-hq/element-web#28219)). Contributed by @t3chguy.
* Add reactions to html export ([#28210](element-hq/element-web#28210)). Contributed by @langleyd.
* Remove feature\_dehydration ([#28173](element-hq/element-web#28173)). Contributed by @florianduros.

## 🐛 Bug Fixes

* Remove upgrade encryption in `DeviceListener` and `SetupEncryptionToast` ([#28299](element-hq/element-web#28299)). Contributed by @florianduros.
* Fix 'remove alias' button in room settings ([#28269](element-hq/element-web#28269)). Contributed by @Dev-Gurjar.
* Add back unencrypted path in `StopGapWidgetDriver.sendToDevice` ([#28295](element-hq/element-web#28295)). Contributed by @florianduros.
* Fix other devices not being decorated as such ([#28279](element-hq/element-web#28279)). Contributed by @t3chguy.
* Fix pill contrast in invitation dialog ([#28250](element-hq/element-web#28250)). Contributed by @florianduros.
* Close right panel chat when minimising maximised voip widget ([#28241](element-hq/element-web#28241)). Contributed by @t3chguy.
* Fix develop changelog parsing ([#28232](element-hq/element-web#28232)). Contributed by @t3chguy.
* Fix Ctrl+F shortcut not working with minimised room summary card ([#28223](element-hq/element-web#28223)). Contributed by @t3chguy.
* Fix network dropdown missing checkbox \& aria-checked ([#28220](element-hq/element-web#28220)). Contributed by @t3chguy.


Changes in [1.11.83](https://github.com/element-hq/element-web/releases/tag/v1.11.83) (2024-10-29)
==================================================================================================
## ✨ Features

* Enable Element Call by default on release instances ([#28314](element-hq/element-web#28314)). Contributed by @t3chguy.



Changes in [1.11.82](https://github.com/element-hq/element-web/releases/tag/v1.11.82) (2024-10-22)
==================================================================================================
## ✨ Features

* Deduplicate more icons using Compound Design Tokens ([#132](element-hq/matrix-react-sdk#132)). Contributed by @t3chguy.
* Always show link new device flow even if unsupported ([#147](element-hq/matrix-react-sdk#147)). Contributed by @t3chguy.
* Update design of files list in right panel ([#144](element-hq/matrix-react-sdk#144)). Contributed by @t3chguy.
* Remove feature\_dehydration ([#138](element-hq/matrix-react-sdk#138)). Contributed by @florianduros.
* Upgrade emojibase-bindings and remove local handling of emoticon variations ([#127](element-hq/matrix-react-sdk#127)). Contributed by @langleyd.
* Add support for rendering media captions ([#43](element-hq/matrix-react-sdk#43)). Contributed by @tulir.
* Replace composer icons with Compound variants ([#123](element-hq/matrix-react-sdk#123)). Contributed by @t3chguy.
* Tweak default right panel size to be 320px except for maximised widgets at 420px ([#110](element-hq/matrix-react-sdk#110)). Contributed by @t3chguy.
* Add a pinned message badge under a pinned message ([#118](element-hq/matrix-react-sdk#118)). Contributed by @florianduros.
* Ditch right panel tabs and re-add close button ([#99](element-hq/matrix-react-sdk#99)). Contributed by @t3chguy.
* Force verification even for refreshed clients ([#44](element-hq/matrix-react-sdk#44)). Contributed by @dbkr.
* Update emoji text, border and background colour in timeline ([#119](element-hq/matrix-react-sdk#119)). Contributed by @florianduros.
* Disable ICE fallback based on well-known configuration ([#111](element-hq/matrix-react-sdk#111)). Contributed by @t3chguy.
* Remove legacy room header and promote beta room header ([#105](element-hq/matrix-react-sdk#105)). Contributed by @t3chguy.
* Respect `io.element.jitsi` `useFor1To1Calls` in well-known ([#112](element-hq/matrix-react-sdk#112)). Contributed by @t3chguy.
* Use Compound close icon in favour of mishmash of x/close icons ([#108](element-hq/matrix-react-sdk#108)). Contributed by @t3chguy.

## 🐛 Bug Fixes

* Correct typo in option documentation ([#28148](element-hq/element-web#28148)). Contributed by @AndrewKvalheim.
* Revert #124 and #135 ([#139](element-hq/matrix-react-sdk#139)). Contributed by @dbkr.
* Add aria-label to e2e icon ([#136](element-hq/matrix-react-sdk#136)). Contributed by @florianduros.
* Fix bell icons on room list hover being black squares ([#135](element-hq/matrix-react-sdk#135)). Contributed by @dbkr.
* Fix vertical overflow on the mobile register screen ([#137](element-hq/matrix-react-sdk#137)). Contributed by @langleyd.
* Allow to unpin redacted event ([#98](element-hq/matrix-react-sdk#98)). Contributed by @florianduros.
netbsd-srcmastr pushed a commit that referenced this pull request Dec 2, 2024
Using upstream patch. Remove BROKEN. Changes since 1.5.1:

1.5.4
------------------------------------------------------------------------

* A brand new settings menu that uses [Dear ImGui](https://github.com/ocornut/imgui).
  Can be opened with `F10` (unless that key is bound already) or by entering `dhewm3Settings`
  in the console. It has lots of settings that the original options menu doesn't have and
  can be easily navigated with gamepad or keyboard (or the mouse, of course).
  It can also be opened while in the game, which then is paused (if Single Player) but still visible,
  so the effect of most graphics settings can be seen immediately.
  Needs SDL2 and C++11.
* "Soft" Particles (that don't "cut" into geometry but fade smoothly), based on code from The Dark Mod
  2.04. Can be enabled/disabled with `r_useSoftParticles`, is applied automatically for all appropriate
  particles (view-aligned, using additive or alpha blending and not too small)
* `r_enableDepthCapture`: Enable capturing depth buffer to texture, needed for the soft particles.
  Can be used in custom materials by using the `"_currentDepth"` texture
* Replaced dependency on (external) zlib with integrated [miniz](https://github.com/richgel999/miniz)
* HighDPI/Retina support
* Allow inverted mouse look (horizontally, vertically or both) with `m_invertLook`
* CVar to allow always run in single player (still drains stamina though!): `in_allowAlwaysRunInSP`
* VSync can be enabled/disabled on the fly, without restarting the renderer (still with `r_swapInterval`
  or in the menu, of course; needs SDL2)
* Allow enabling/disabling [HRTF](https://en.wikipedia.org/wiki/Head-related_transfer_function)
  with `s_alHRTF`
* `s_alOutputLimiter`: Configure OpenAL's output-limiter which temporarily reduces the overall
  volume when too many too loud sounds play at once, to avoid issues like clipping
* `s_scaleDownAndClamp`: Clamp and reduce volume of all sounds to prevent clipping or temporary
  downscaling by OpenAL's output limiter
* If `r_windowResizable` is set, the dhewm3 window (when in windowed mode..) can be freely resized.
  Needs SDL2; with 2.0.5 and newer it's applied immediately, otherwise when creating the window.
* If switching between fullscreen and windowed mode or similar changes causes issues (like
  [here](dhewm/dhewm3#587 (comment))), you can set
  `r_vidRestartAlwaysFull 1`, so (again) a full `vid_restart` is done, instead of the partial one
  which *usually* suffices for just changing the resolution or fullscreen state. If you run into that
  issue (probably a driver bug), you'll probably also want to set `r_windowResizable 0`, because
  resizing the window that way also triggered the bug, and in that case no `vid_restart` is done at all
* Fixed screenshots when using native Wayland (`SDL_VIDEODRIVER=wayland`)
* If you enter the `map` command in the console, without any arguments, the current map name is printed
* Support OpenGL debug contexts and messages (`GL_ARB_debug_output`). Can be enabled with `r_glDebugContext 1`.
  Changing that CVar requires a `vid_restart` (or set it as startup argument)
* The Mods Menu's entries for the base game and d3xp/RoE are now clearer, and it can load the new
  d3xp-based mods (sikkmodd3xp, perfected_roe)

1.5.3 (2024-03-29)
------------------------------------------------------------------------

* Support for gamepads (based on code from [Quadrilateral Cowboy](https://github.com/blendogames/quadrilateralcowboy),
  but heavily expanded). See [Configuration.md](./Configuration.md#using-gamepads) for more information.
* Support different file formats for screenshots by setting the `r_screenshotFormat` CVar
  (0 = TGA, still the default, 1 = BMP, 2 = PNG, 3 = JPG). `r_screenshotJpgQuality` and
  `r_screenshotPngCompression` allow configuring how JPG/PNG are compressed.
  Thanks *eezstreet (Nick Whitlock)*!
* Fixed problems with lights after loading a savegame (#495)
* Fix volume of some weapon sounds, like chaingun being too quit (#326)
* Increase stack size on Windows to 8MB (instead default of 1MB) to make loading huge models work
* Fixed crash in Radiant Model Preview Dialog (#496)
* Fix MD3 model support
* Several new CMake options:
    - To enable Clang/GCC Address Sanitizer and Undefined Behavior Sanitizer
    - Hardlink the game code into the executable (instead of using game DLLs,
      only supports base *or* d3xp then; needed for Undefined Behavior Sanitizer)
    - Force colored diagnostic output from GCC or Clang (esp. useful when building with ninja)
* Fix several compiler warnings
* Added build instructions for Linux (and similar systems) to README.md
* Updated stb_image and stb_vorbis
* Updated minizip (from zlib/contrib) to latest upstream code
* Added `in_namePressed` CVar to print currently pressed key/button (useful for binding keys
  in the console or configs). Thanks *Biel Bestué de Luna*!


1.5.2 (2022-06-13)
------------------------------------------------------------------------

* Gamma and Brightness are now applied in the shaders instead of by setting hardware gamma.
  Can be disabled (so hardware gamma is used again) with `r_gammaInShaders 0`
* Improvements for (Windows-only) MFC-based tools:
    - Added the script debugger! (thanks *HarrievG*!)
      Original Doom3 didn't have it (Quake4 did), but the Doom3 GPL source contained
      most of it. *HarrievG* implemented the missing parts and we added some new
      features. It can even be used over the network and while the client part
      (the debugger GUI) is Windows-only, the server can run on all supported
      platforms, so you can debug a game running on Linux or macOS, for example.
      Relevant CVars for network debugging are:
      `com_enableDebuggerServer` and `com_dbgClientAdr` and `com_dbgServerAdr`.
      To debug the running game on the same PC, just enter `debugger` in the console.
    - All tools can now be built in 64bit (thanks *raynorpat*!)
    - HighDPI support (thanks *HarrievG*!)
    - PDAEditor works now
    - Additional bugfixes
* Cycle through multiple Quicksave slots instead of immediately overwriting the last
  Quicksave. The `com_numQuicksaves` CVar allows setting the number of QuickSaves (#392)
* Make r_locksurfaces work (#357)
  It doesn't do exactly what its description and name suggests: it renders
  everything that is *currently* visible from the position/view the player had
  when setting `r_locksurfaces 1`. Originally it was supposed to render exactly
  the surfaces that *were* visible then, but I couldn't get that to work.
  This is pretty similar, but there may be differences with opened doors and such.
* Keyboard input improvements (mostly SDL2-only):
    - Support (hopefully) all keyboard keys on all kinds of keyboard layouts
      by using scancodes for otherwise unknown keys
    - Support typing in non-ASCII characters, if supported by Doom3 (it supports ISO-8859-1)
    - Support the clipboard also on non-Windows platforms
      You can paste text from the clipboard into the console or other edit fields
      with `Shift+Insert`
    - Explicit support for Right Ctrl, Alt and Shift keys
      (can be bound to different actions than their left counterparts)
    - Added `in_grabKeyboard` CVar to make sure dhewm3 gets *all* keyboard input
      Prevents the Windows-key or Alt-Tab or whatever from taking focus from the game
    - Added `in_ignoreConsoleKey` - if set to `1`, the console is only opened with
      Shift+Esc, and the "console key" (that key between Esc, 1 and Tab) can be freely
      bound to an action (and its char can be typed in the console without closing it).
    - Added (SDL2-only) "auto" option for `in_kbd`: When not disabling the console key,
      dhewm3 will try to automatically detect it if `in_kbd` is set to "auto" (now default)
* Reworked mouse-input and -grabbing code, using absolute mouse mode in fullscreen GUIs
  (except for the PDA, because it's implemented weirdly).
  This made releasing the mouse in the main menu possible, as now the ingame cursor
  is at the same position as the system cursor.
* `s_alReverbGain` CVar to reduce EFX reverb effect intensity (#365)
* Pause (looped) sounds when entering menu (#330)
* Fixes for looped sounds (#390)
* Replace libjpeg with stb_image and libogg/libvorbis(file) with stb_vorbis
    - Now the only required external dependencies should be OpenAL, SDL, zlib
      and optionally libCURL (and of course the C and C++ runtimes)
* (Optionally) use libbacktrace on non-Windows platforms for more useful
  backtraces in case of crashes (usually linked statically)
* Fixed a deadlock (freeze) on Windows when printing messages from another thread
* Fixed endless loop (game locking up at startup) if graphics settings couldn't be applied (#386)
* Fixed some warnings and uninitialized variables (thanks *turol*!)
* Work around dmap bug caused by GCC using FMA "optimizations" (#147)
* Prevent dhewm3 from being run as root on Unix-like systems to improve security
* Replaced most usages of `strncpy()` with something safer to prevent buffer overflows
  (remaining cases should be safe).
    - Just a precaution, I don't know if any of them could actually be exploited,
      but there were some compiler warnings in newer GCC versions.
* Console output is now logged to `dhewm3log.txt` (last log is renamed to `dhewm3log-old.txt`)
    - On Windows it's in `My Documents/My Games/dhewm3/`
    - On Mac it's in `$HOME/Library/Application Support/dhewm3/`
    - On other Unix-like systems like Linux it's in `$XDG_DATA_HOME/dhewm3/`
      (usually `$HOME/.local/share/dhewm3/`)
* Improved compatibility with Wayland (#426)
* Work around assertion in AlphaLabs4 due to "ride_of_death" yeeting
  the dead "monster_zsec_shotgun_12" into the void (#409)
* Support loading some mods known to need `fs_game_base d3xp` via Mods menu
  (currently, *The Lost Mission* and *LibreCoop d3xp* are supported)
* Disable assertion in idSampleDecoderLocal::DecodeOGG() that triggered
  when starting a new Classic Doom3 game (#461)
netbsd-srcmastr pushed a commit that referenced this pull request Dec 2, 2024
(NEWS.md is not updated to 1.1.7)
# s2 1.1.5

* fix compiler problem on Alpine 3.19.0 (#251)

# s2 1.1.4

* Updated more tests to pass on a forthcoming waldo package update (#237).

# s2 1.1.3

* Made a test less strict to pass tests on Alpine Linux (#218, #220).
* Updated tests to pass on forthcoming waldo package update (@hadley, #226).
* Updated vendored file modifications to suppress a multi-line comment
  warning on gcc (#214, #227).

# s2 1.1.2

- Fixed test for `as.data.frame()` for `s2_cell()` to comply with new wk
  version and the latest release of R (#207).
- Fix unary union of an empty multipolygon (#208).
- Added `#include <cstdint>` to an Abseil header to fix compilation with
  gcc13 (#209, #210).
- Update internal Abseil to 20220623.1 LTS (#213).

# s2 1.1.1

- Fix new CRAN check warnings (#202, #203).

# s2 1.1.0

- Fix for s2 build on Windows with R <= 3.6.x (#142)
- Fix for s2 build on MacOS with multiple openssl versions (#142, #145, #146)
- Fix for s2 build on 32-bit openssl (#143, #147)
- Added `s2_convex_hull()` and `s2_convex_hull_agg()` (@spiry34, #150,
  #151, #163).
- Added `max_distance` argument to `s2_closest_edges()`, making
  distance-constrained k-nearest neighbours possible (#125, #156, #162).
- Added a spherical `s2_point_on_surface()` implementation for polygons
  (@kylebutts, #152, #161)
- Added a `s2_cell_union()` vector class to represent cell coverings and
  operators to generate them from an s2 geography vector (e.g.,
  `s2_covering_cell_ids()`). Cell unions are useful as compact representations
  of spherical geometry and can be used like a bounding box to determine
  a possible intersection with one or more geographies (#85, #94, #164).
- Refactored the simple features compatability layer into a standalone
  code base for potential future use in a Python adaptation (#165).
- Migrate input and output to non-deprecated wk package handlers and writers
  (#101, #165, #168).
- Make `s2_union_agg()` more efficient using a recursive merge strategy
  (#103, #165).
- Fix package build on Raspberry Pi (#169, #171).
- Fix warning on clang14 when compiling with `-O0` (#167, #172).
- Added `s2_prepared_dwithin()` and fixed `s2_dwithin_matrix()` such that it
  efficiently uses the index (#157, #174).
- Updated `s2_lnglat()` and `s2_point()` to use `wk::xy()` (a record-style
  vctr) to represent point coordinates. This is much faster than the previous
  representation which relied on `list()` of external pointers (#181, #159).
- Added arguments `planar` and `tessellate_tol_m` to `s2_as_text()`,
  `s2_as_binary()`. Use `planar = TRUE` and set `tessellate_tol_m` to the
  maximum error for your use-case to automatically subdivide edges to
  preserve or "straight" lines in Plate carree projection on import (#182).
- Added arguments `planar` and `tessellate_tol_m` to `s2_geog_from_text()`, and
  `s2_geog_from_wkb()`. Use `planar = TRUE` and set `tessellate_tol_m` to the
  maximum error for your use-case to automatically subdivide edges to
  ensure or "straight" lines in Plate carree projection on export (#182).

# s2 1.0.7

- Update the internal copy of s2geometry to use updated Abseil,
  fixing a compiler warning on gcc-11 (#79, #134).
netbsd-srcmastr pushed a commit that referenced this pull request Dec 2, 2024
# wk 0.9.4

- Ensure package tests pass against sf 1.0-18 (#224, #225).

# wk 0.9.3

- Ensure package compiles with `STRICT_R_HEADERS=1` (#222).

# wk 0.9.2

- Add `wk_crs()` and `wk_set_crs()` methods for `bbox` (#213)
- Fix wk_trans inconsistent meta flags handling (#217)
- Ensure package builds on arm64 for Windows (#220)

# wk 0.9.1

- Fix format strings/arguments for R-devel (#209).

# wk 0.9.0

## Breaking changes

- The common well-known binary representation of POINT EMPTY (i.e.,
  POINT (nan nan)) is now handled as POINT EMPTY allowing empty points
  to roundtrip through `wkb()` vectors (#196, #204).
- `xy(NA, NA)` is now read as a null feature instead of POINT EMPTY. This
  preserves the invariant that null features can also be identified using
  `is.na()` (#205).
- `xy(NaN, NaN)` is now read as POINT EMPTY and `is.na(xy(NaN, NaN))`
  now returns `FALSE`. This means that both EMPTY and null points can roundtrip
  through `xy()` (#205).

## Bugfixes and improvements

- `wk_meta()` now contains a new column `is_empty`, which is `TRUE`
  for any feature that contains at least one non-empty coordinate. This allows
  more efficient detection of features with zero coordinates (#197, #199).
- Updated PROJ data to use the latest pull of the database packaged with
  PROJ 9.3.0 (#201).
- The wk package now compiles once again on gcc 4.8 (#203, #206).
- Fixed `sfc_writer()` to correctly attach the `classes` attribute to
  sfc output with mixed geometry types (#195).
- Function `sfc_writer()` now has an argument `promote_multi` to write any
  input as the MULTI variant. This makes it more likely that an input vector
  will be read as a single geometry type (#198).
- The `wk_collection_filter()` now correctly increments the `part_id` when
  calling the child handler (@brownag, #194).

# wk 0.8.0

* Added `wkb_to_hex()` (@anthonynorth, #183).
* Implemented `vctrs::vec_proxy_equal()` for `wkb()` vctrs
  (@anthonynorth, #183).
* Fixed `sfc_writer()`, which had returned NULL for some inputs
  (e.g., via `wk_collection()`) (@anthonynorth, #182, #186).
* Added `wk_clockwise()` and `wk_counterclockwise()` to re-wind polygon rings
  (@anthonynorth, #188).
* New replacement-function mode for `wk_coords<-()` for in-place modification
  of coordinates (@mdsumner, #187).
* New function `wk_trans_explicit()` migrated from crs2crs (@mdsumner, #187).

# wk 0.7.3

* Fix tests for updated waldo package (#178).

# wk 0.7.2

* Fix use-after-free warnings.

# wk 0.7.1

* Fix implicit reliance on error `as.data.frame.default()`,
  which no longer occurs in r-devel (#166).

# wk 0.7.0

* Remove legacy headers that are no longer used by any downstream package
  (#146).
* `validate_wk_wkt()` now errors for an object that does not inherit from
  'wk_wkt' (#123, #146).
* Added `wk_crs_projjson()` to get a JSON representation of a CRS object.
  To make lookup possible based on shortcut-style CRS objects (e.g.,
  `"EPSG:4326"` or `4326`), added data objects `wk_proj_crs_view` and
  `wk_proj_crs_json` that contain cached versions of rendered PROJJSON
  based on the latest PROJ version (#147).
* Added a `wk_crs_proj_definition()` method for `wk_crs_inherit()` (#136,
  #147).
* Conversion to sf now uses the `sfc_writer()` for all wk classes, making
  conversions faster and fixing at least one issue with conversion of NA
  geometries to sf (#135).
* `wk_plot()` now plots `NULL`/`NA` geometries and mixed geometry types
  more reliably (#142, #143, #149).
* Exported EMPTY geometries to well-known text now include dimension
  (e.g., `POINT Z EMPTY`) (#141, #150).
* Fixed bug where `wk_polygon()` doubled some points when the input contained
  closed rings (#134, #151).
* Fixed bug where `wk_count()` exposed uninitialized values for empty input
  (#139, #153).
* The `xy_writer()` now opportunistically avoids allocating vectors for Z
  or M values unless they are actually needed (#131, #154).
* Added example WKT for all geometry types and dimensions plus helper
  `wk_example()` to access them and set various properties (#155).
* Fixes warnings when compiling with `-Wstrict-prototypes` (#157, #158).
* Removed `wk_chunk_map_feature()` in favour of using chunking strategies
  directly (#132, #159).
* Optimized `wk_coords()` for `xy()` objects (#138, #160).
* Added accessor methods for record-style vectors: `rct_xmin()`, `rct_xmax()`,
  `rct_ymin()`, `rct_ymax()`, `rct_width()`, `rct_height()`, `crc_center()`,
  `crc_x()`, `crc_y()`, `crc_r()`, `xy_x()`, `xy_y()`, `xy_z()`, and `xy_m()`
  (#144, #161).
* Added rectangle operators `rct_intersects()`, `rct_contains()`,
  and `rct_intersection()` (#161).

# wk 0.6.0

* Fixed `wk_affine_rescale()` to apply the translate and scale
  operations in the correct order (#94).
* Add `wk_handle_slice()` and `wk_chunk_map_feature()` to support
  a chunk + apply workflow when working with large vectors (#101, #107).
* C and R code was rewritten to avoid materializing ALTREP vectors
  (#103, #109).
* Added a `wk_crs_proj_definition()` generic for foreign CRS objects
  (#110, #112).
* Added `wk_crs_longlat()` helper to help promote authority-compliant
  CRS choices (#112).
* Added `wk_is_geodesic()`, `wk_set_geodesic()`, and argument `geodesic`
  in `wkt()` and `wkb()` as a flag for objects whose edges must
  be interpolated along a spherical/ellipsoidal trajectory (#112).
* Added `sf::st_geometry()` and `sf::st_sfc()` methods for wk geometry
  vectors for better integration with sf (#113, #114).
* Refactored well-known text parser to be more reusable and faster
  (#115, #104).
* Minor performance enhancement for `is.na()` and `validate_wk_wkb()`
  when called on a very long `wkb()` vector (#117).
* Fixed issue with `validate_wk_wkb()` and `validate_wk_wkt()`, which failed
  for most valid objects (#119).
* Added `wk_envelope()` and `wk_envelope_handler()` to compute feature-wise
  bounding boxes (#120, #122).
* Fixed headers and tests to pass on big endian systems (#105, #122).
* Incorporated the geodesic attribute into vctrs methods, data frame
  columns, and bbox/envelope calculation (#124, #125).
* Fix `as_xy()` for nested data frames and geodesic objects (#126, #128).
* Remove deprecated `wkb_problems()`, `wkt_problems()`, `wkb_format()`,
  and `wkt_format()` (#129).
* `wk_plot()` is now an S3 generic (#130).

# wk 0.5.0

* Fixed bugs relating to the behaviour of wk classes as
  vectors (#64, #65, #67, #70).
* `crc()` objects are now correctly exported as polygons
  with a closed loop (#66, #70).
* Added `wk_vertices()` and `wk_coords()` to extract individual
  coordinate values from geometries with optional identifying
  information. For advanced users, the `wk_vertex_filter()`
  can be used as part of a pipeline to export coordinates
  as point geometries to another handler (#69, #71).
* Added `wk_flatten()` to extract geometries from collections.
  For advanced users, the `wk_flatten_filter()` can be used as
  part of a pipeline (#75, #78).
* `options("max.print")` is now respected by all vector classes
  (#72, #74).
* Moved implementation of plot methods from wkutils to wk to
  simplify the dependency structure of both packages (#80, #76).
* Added `wk_polygon()`, `wk_linestring()`, and `wk_collection()`
  to construct polygons, lines, and collections. For advanced
  users, `wk_polygon_filter()`, `wk_linestring_filter()`, and
  `wk_collection_filter()` can be used as part of a pipeline
  (#77, #84).
* Added a C-level transform struct that can be used to simplify
  the the common pattern of transforming coordinates. These
  structs can be created by other packages; however, the
  `wk_trans_affine()` and `wk_trans_set()` transforms are
  also built using this feature. These are run using the
  new `wk_transform()` function and power the new
  `wk_set_z()`, `wk_set_m()`, `wk_drop_z()`, `wk_drop_m()`,
  functions (#87, #88, #89).

# wk 0.4.1

* Fix LTO and MacOS 3.6.2 check errors (#61).

# wk 0.4.0

* Removed `wksxp()` in favour of improved `sf::st_sfc()` support
  (#21).
* Rewrite existing readers, writers, and handlers, using
  a new C API (#13).
* Use new C API in favour of header-only approach for all
  wk functions (#19, #22).
* Use cpp11 to manage safe use of callables that may longjmp
  from C++.
* Vector classes now propagate `attr(, "crs")`, and check
  that operations that involve more than one vector have
  compatable CRS objects as determined by `wk_crs_equal()`.
* Added an R-level framework for other packages to implement
  wk readers and handlers: `wk_handle()`, `wk_translate()`,
  and `wk_writer()` (#37).
* Added a native reader and writer for `sf::st_sfc()` objects
  and implemented R-level generics for sfc, sfg, sf, and bbox
  objects (#28, #29, #38, #45).
* Implement `crc()` vector class to represent circles (#40).
* Added a 2D cartesian bounding box handler (`wk_bbox()`) (#42).
* Refactored unit tests reflecting use of the new API and
  for improved test coverage (#44, #45, #46).
* Added `wk_meta()`, `wk_vector_meta()`, and `wk_count()` to
  inspect properties of vectors (#53).
* Modified all internal handlers such that they work with vectors
  of unknown length (#54).

# wk 0.3.4

* Fixed reference to `wkutils::plot.wk_wksxp()`, which
  no longer exists.

# wk 0.3.3

* Fixed WKB import of ZM geometries that do not use EWKB.
* Added `xy()`, `xyz()`, `xym()` and `xyzm()` classes
  to efficiently store point geometries.
* Added the `rct()` vector class to efficiently store
  two-dimensional rectangles.
* Fixed the CRAN check  failure caused by a circular
  dependency with  the wkutils package.
* Added S3 methods to coerce sf objects to and from
  `wkt()`, `wkb()` and `wksxp()`.

# wk 0.3.2

* Fixed EWKB output for collections and multi-geometries
  that included SRID (#3).
* Fixed CRAN check errors related to exception handling on
  MacOS/R 3.6.2.

# wk 0.3.1

* Added a `NEWS.md` file to track changes to the package.
netbsd-srcmastr pushed a commit that referenced this pull request Dec 11, 2024
1.10.16 (2024-11-24)

* PR #141: Fix bug #27796: "Array to string" conversion warnings on
  installs/other actions
* PR #145: Never reference E_STRICT on PHP 8.4+
* PR #147: Fix tests 8.1+
netbsd-srcmastr pushed a commit that referenced this pull request Mar 2, 2025
pkgsrc change: remove restriction to Ruby's version.

1.0.3 (2025-02-26)

What's Changed

* Bump step-security/harden-runner from 2.10.1 to 2.10.2 by @dependabot in
  #136
* Bump rubygems/release-gem from 612653d273a73bdae1df8453e090060bb4db5f31 to
  9e85cb11501bebc2ae661c1500176316d3987059 by @dependabot in #137
* Prevent a warning: URI::REGEXP is obsolete by @mame in #138
* Revisit deprecated test by @hsbt in #139
* Suppress deprecate warning of test class (retry) by @mame in #140
* Fix README by @hsbt in #142
* Bump rubygems/release-gem from 1.1.0 to 1.1.1 by @dependabot in #143
* Bump step-security/harden-runner from 2.10.2 to 2.10.3 by @dependabot in
  #144
* Bump step-security/harden-runner from 2.10.3 to 2.10.4 by @dependabot in
  #145
* Make documentation 100% by @nobu in #147
* Bump step-security/harden-runner from 2.10.4 to 2.11.0 by @dependabot in
  #153
* Remove userinfo by @hsbt in #154

New Contributors

* @mame made their first contribution in #138
netbsd-srcmastr pushed a commit that referenced this pull request Apr 26, 2025
Notable changes since the last release (v0.8.3):

    Revamped low-pass filter options for Genesis / Sega CD / 32X that should be significantly more accurate to actual hardware than the v0.8.3 settings
    Improved audio quality for all emulated systems via much higher-quality audio resampling
    A rather large number of bugfixes for Genesis, Sega CD, 32X, SMS, Game Gear, SNES, Game Boy [Color]
    Major bugfixes for Linux AppImage builds in Wayland
    Save state files are now internally compressed using zstd, which should reduce save state file size by 70-80% in most cases
    Basic CPU + CD-ROM drive overclocking options for Sega CD, which have fairly low compatibility but do help in some games

Full changelog below.
New Features

    (Genesis / Sega CD / 32X) Replaced the low-pass filtering settings added in v0.8.3 with a new set of options that should be more accurate to actual hardware
        New option to apply a first-order 3.39 KHz low-pass filter to Genesis audio output; this is ON by default (biggest change from previous default settings)
        New option to apply a second-order 7.97 KHz low-pass filter to Sega CD PCM audio output; this is ON by default
        New options to individually configure whether the Genesis low-pass filter is applied to Sega CD and 32X audio output; these are all OFF by default
    (Genesis / SNES) Added a new video setting to disable deinterlacing in the handful of games that use interlaced display modes (e.g. Sonic the Hedgehog 2 in 2P Vs. mode, Ys III (Genesis) with the in-game "Int Mode" option enabled, Air Strike Patrol in mission briefing screens)
        Deinterlacing enabled matches the behavior in previous versions: normal-resolution interlaced modes display the same as progressive mode, and high-res interlaced modes make the graphics processor render all 448/480 lines every frame
    (Sega CD) Added an option to overclock the sub CPU by decreasing the master clock divider (#138)
    (Sega CD) Added an option to increase the disc drive speed when reading data tracks (#138)
        This has low compatibility but can shorten loading times in some games. Compatibility is slightly higher when the sub CPU is overclocked
    (Sega CD) Added an additional PCM chip interpolation option for 6-point cubic Hermite interpolation, which in some cases produces a slightly cleaner sound than 4-point cubic Hermite (the existing setting)
    Added a new hotkey to quickly toggle whether overclocking settings are enabled, for the systems that support overclocking (this includes Sega CD's new drive speed setting)
        This is mainly useful for Sega CD, where increasing the drive speed can shorten loading times during gameplay but almost always breaks FMVs and animated cutscenes

Improvements

    Audio resampling code has been rewritten to use the windowed sinc interpolation algorithm, which is much higher quality than the previous resampling implementation at a relatively low performance cost (for most emulated systems)
        Windowed sinc interpolation can be very performance-intensive for NES and GB/GBC audio resampling, so these two systems have a new audio setting to choose between windowed sinc interpolation and the old resampling algorithm (low-pass filter followed by nearest neighbor interpolation)
    (Genesis) Slightly improved performance by optimizing VDP rendering and tile fetching code
    (Genesis) Frontends now recognize .gen and .smd as file extensions for Genesis / Mega Drive ROM images (#149)
        This includes attempting to auto-detect when a ROM image is interleaved (common for .smd files), and deinterleaving it during load
    (SMS) The "crop vertical borders" video setting now defaults to enabled instead of disabled; unlike the left border, the vertical borders will only ever show the current backdrop color
    (SMS) The SMS model setting now defaults to SMS1, which emulates a VDP hardware quirk that is required for the Japanese version of Ys to render correctly (#182)
    (SMS / Game Gear) Reduced log level of a warning message that caused excessively verbose log output in Virtua Fighter Mini (#199)
    (SNES) In games that use the SA-1 coprocessor, the SA-1 CPU now gets a wait cycle every time it accesses SA-1 BW-RAM, similar to actual hardware
        The SA-1 CPU still runs faster than actual hardware in some cases because bus conflict wait cycles are not emulated
    GUI: When opening a game that requires a BIOS ROM or firmware ROM (e.g. any Sega CD game), if the BIOS/firmware ROM path is not configured, the error window now contains a button to configure the appropriate ROM path and immediately launch the game
    CLI: If no config file exists, the CLI will now attempt to write out the default config to the config path so that it can be edited manually if desired
    Save state files are now internally compressed using zstd which should reduce save state file size by at least 50%, often by 70-80%
    Frontends should now correctly handle files with uppercase file extensions

Multi-System Fixes

    Fixed a performance bug in the audio resampling code that could have caused intermittent extremely poor performance due to performing arithmetic on subnormal floating-point numbers, which can be up to 100 times slower than normal floating-point arithmetic on some CPUs (#135)
    Linux: AppImage builds now exclude all Wayland-related system libraries during packaging; this fixes the emulator failing to launch in some distros, e.g. Solus Plasma (#143)
    Linux: AppImage builds now interpret relative paths in command-line arguments as being relative to the original working directory where the AppImage was launched from, not the AppImage internal runner directory (#147)
    Linux/BSD CLI: For these platforms only and for the CLI only, reverted the change to estimate window scale factor because SDL_GetDisplayDPI does not return reliable values on Linux/BSD
    Adjusted frame time sync's sleep implementation to fix frame time sync potentially causing slowdown on some platforms
    Save state files are now explicitly versioned, which fixes potential crashing when attempting to load an incompatible save state file from a different version

Genesis / Mega Drive Fixes

    Fixed the 68000 incorrectly being allowed to access audio RAM while the Z80 is on the bus; this fixes freezing in Joe & Mac (#144)
    Fixed Z80 RESET not clearing the Z80's HALT status
    Fixed writes to YM2612 F-num high / block registers ($A4-$A6 and $AC-$AE) taking effect immediately instead of after the next F-num low register write; this fixes some music glitches in Valis
    Implemented more accurate emulation of how the YM2612 computes operator amplitude from phase and envelope attenuation
    Fixed in-game saves not working correctly when Sonic & Knuckles is locked on to a cartridge with SRAM (e.g. Sonic 3)
    Fixed certain revisions of QuackShot not loading correctly due to having non-standard cartridge ROM address mappings (#174)
    Fixed some illegal 68000 opcodes incorrectly decoding to "valid" instructions (#184 / #185)
    Fixed an edge case related to how sprite tile/pixel overflow interacts with H=0 sprite masking (#186)

Sega CD Fixes

    Implemented a higher minimum seek time for small seek distances; this fixes Thunder Storm FX (JP) failing to boot (#178)
    Fixed a regression introduced in v0.8.3 that caused PCM chip channels to skip the first sample after being enabled (this made little-to-no audible difference in practice because the first sample is usually 0)
    Fixed slightly inaccurate emulation of PCM chip looping behavior at sample rates higher than 0x0800 / 32552 Hz
    Fixed inaccurate emulation of CD-DA fader volumes 1-3 out of 1024 (should be 50-60 dB of attenuation instead of complete silence)
    Unmapped/unknown address accesses will now log an error instead of crashing the emulator

32X Fixes

    Fixed a major bug in the PWM resampling code that caused PWM audio output to sound significantly more poppy and crackly than it's supposed to
    Fixed a bug around synchronizing SH-2 accesses to 32X communication ports that could have caused writes to be skipped in some cases; this fixes freezing in the Sonic Robo Blast 32X demo (#160)
    Significantly improved timing of 32X VDP interrupts for the SH-2s (#166)
    Significantly improved synchronization between the SH-2s and the 68000
    Fixed PWM DMA transfer rate via DREQ1 not taking the PWM timer interval into account; this fixes broken sound effects in BC Racers (#179)

Master System / Game Gear Fixes

    Fixed the Z80's RETI instruction not correctly copying IFF2 to IFF1 like RETN does; this fixes Desert Strike from freezing when you press Start/Pause (#181)
    Fixed incorrect handling of non-power-of-two ROM sizes, which fixes several homebrew games and demos (#201 / #203 / #204)
    (Game Gear) Fixed the emulator crashing if a game enables the VDP's 224-line mode, as the homebrew GG Turrican does (#202)

SNES Fixes

    Implemented more accurate clipping and truncation in Mode 7 intermediate calculations; this fixes glitched Mode 7 graphics in Tiny Toon Adventures: Wacky Sports Challenge (#161)
    Mode 7 registers are now latched about 12 pixels before line rendering begins; this fixes a glitchy line near the bottom of the play area in Battle Clash, where the screen transitions from Mode 1 to Mode 7
    Implemented an obscure behavior regarding the effects of writing to OAM during active display; this fixes incorrect sprite display in Uniracers' Vs. mode (#164)
    Made a best effort at implementing the effects on sprites of toggling forced blanking during active display; this mostly fixes some test ROMs that exercise this (#162)
    Adjusted behavior of APU communication ports when the 65816 writes to a port on the same cycle that the SPC700 cle

    ars the port; this fixes Kishin Douji Zenki: Tenchi Meidou failing...
netbsd-srcmastr pushed a commit that referenced this pull request May 11, 2025
Snowball 3.0.1 (2025-05-09)
===========================

Python
------

* The __init__.py in 3.0.0 was incorrectly generated due to a missing
  build dependency and the list of algorithms was empty.  First reported by
  laymonage.  Thanks to Dmitry Shachnev, Henry Schreiner and Adam Turner for
  diagnosing and fixing.  (#229, #230, #231)

* Add trove classifiers for Armenian and Yiddish which have now been registered
  with PyPI.  Thanks to Henry Schreiner and Dmitry Shachnev.  (#228)

* Update documented details of Python 2 support in old versions.

Snowball 3.0.0 (2025-05-08)
===========================

Ada
---

* Bug fixes:

  + Fix invalid Ada code generated for Snowball `loop` (it was partly Pascal!)
    None of the stemmers shipped in previous releases triggered this bug, but
    the Turkish stemmer now does.

  + The Ada runtime was not tracking the current length of the string
    but instead used the current limit value or some other substitute, which
    manifested as various incorrect behaviours for code inside of `setlimit`.

  + `size` was incorrectly returning the difference between the limit and the
    backwards limit.

  + `lenof` or `sizeof` on a string variable generated Ada code that didn't
    even compile.

  + Fix incorrect preconditions on some methods in the runtime.

  + Fix bug in runtime code used by `attach`, `insert`, `<-` and string
    variable assignment when a (sub)string was replaced with a larger string.
    This bug was triggered by code in the Kraaij-Pohlmann Dutch stemmer
    implementation (which was previously not enabled by default but is now the
    standard Dutch stemmer).

  + Fix invalid code generated for `insert`, `<-` and string variable
    assignment.  This bug was triggered by code in the Kraaij-Pohlmann
    Dutch stemmer implementation (which was previously not enabled by default
    but is now the standard Dutch stemmer).

  + Generate valid code for programs which don't use `among`.  This didn't
    affect code generation for any algorithms we currently ship.

  + If the end of a routine was unreachable code the Snowball compiler
    would think the start of the next routine was also unreachable and would
    not generate it.  This didn't affect code generation for any algorithms we
    currently ship.

* Code quality:

  + Only declare variables A and C when each is needed.

  + Fix indentation of generated declarations.

  + Drop extra blank line before `Result := True`.

C/C++
-----

* Bug fixes:

  + Fix potential NULL dereference in runtime code if we failed to allocate
    memory for the p or S member for a Snowball program which uses one or more
    string variables.  Problem was introduced in Snowball 2.0.0.  Fixes #206,
    reported by Maxim Korotkov.

  + Fix invalid C code generated when a failure is handled in a context with
    the opposite direction to where it happened, for example:

        externals (stem)
        define stem as ( try backwards 'x' )

    This was fixed by changing the C generator to work like all the other
    generators and pre-generate the code to handle failure.

  + Eliminate assumptions that NULL has all-zero bit pattern.  We don't know
    of any current platforms where this assumption fails, but the C standard
    doesn't require an all-zero bit pattern for NULL.  Fixes #207.

* Optimisations:

  + Store index delta for among substring_i field.  This makes trying
    substrings after a failed match slightly faster because we can just add
    the offset to the pointer we already have to the current element.

* Code quality:

  + Improve formatting of generated code.

C#
--

* Bug fixes:

  + Add missing runtime support for testing for a string var at the current
    position when working forwards.  This situation isn't exercised by any of
    the stemming algorithms we currently ship.

  + Adjust generated code to work around a code flow analysis bug in the `mcs`
    C# compiler.

* Code quality:

  + Prune unused `using System.Text;`.

  + Generate C# with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

Go
--

* Optimisations:

  + Drop some unneeded Go code generated for string `$`.  None of the shipped
    stemmers use string `$`, though the Schinke Latin stemmer algorithm on the
    website does.

* Code quality:

  + Dispatch among result with `switch` instead of an `if` ... `else if` chain
    (which looks like we did because the Go generator evolved from the Python
    generator and Python didn't used to have a switch-like construct.  This
    doesn't make a measurable speed difference so it seems the Go compiler is
    optimising both to equivalent code, but using a switch here seems clearer,
    a better match for the intent, and is a bit simpler to generate.

  + Generate Go with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

Java
----

* The Java code generated by Snowball requires now requires Java >= 7.  Java 7
  was released in 2011, and Java 6's EOL was 2013 so we don't expect this
  to be a problematic requirement.  See #195.

* Optimisations:

  + We now store the current string in a `char[]` rather than using a
    `StringBuilder` to reduce overheads.  The `getCurrent()` method continues
    to return a Java `String`, but the `char[]` can be accessed using the new
    `getCurrentBuffer()` and `getCurrentBufferLength()` methods.  Patch from
    Robert Muir (#195).

  + Use a more efficient mechanism for calling `among` functions.  Patch from
    Robert Muir (#195).

* Code quality:

  + Consistently put `[]` right after element type for array types, which seems
    the most used style.

  + Fix javac warnings in SnowballProgram.java.

  + Improve formatting of generated code.

Javascript
----------

* Bug fixes:

  + Use base class specified by `-p` in string `$` rather than hard-coding
    `BaseStemmer` (which is the default if you don't specify `-p`).  None of
    the shipped stemmers use string `$`, though the Schinke Latin stemmer
    algorithm on the website does.

* Code quality:

  + Modernise the generated code a bit.  Loosely based on changes proposed in
    #123 by Emily Marigold Klassen.

* Other changes:

  + The Javascript runner is now specified by make variable `JSRUN` instead
    of `NODE` (since node is just one JS implementation).  The default value
    is now `node` instead of `nodejs` (older Debian and Ubuntu packages used
    `/usr/bin/nodejs` because `/usr/bin/node` was already in use by a
    completely different package, but that has since changed).

Pascal
------

* Bug fixes:

  + Add missing semicolons to code generated in some cases for a function which
    always succeeds or always fails.  The new dutch.sbl was triggering this
    bug.

  + If the end of a routine was unreachable code the Snowball compiler
    would think the start of the next routine was also unreachable and would
    not generate it.  This didn't affect code generation for any algorithms we
    currently ship.

* Code quality:

  + Eliminate commented out code generated for string `$`.  None of the shipped
    stemmers use string `$`, though the Schinke Latin stemmer algorithm on the
    website does.

* Other changes:

  + Enable warnings, etc from fpc.

  + Select GNU-style diagnostic format.

Python
------

* Optimisations:

  + Use Python set for grouping checks.  This speeds up running the Python
    testsuite by about 4%.

  + Routines used in `among` are now referenced by name directly in the
    generated code, rather than using a string containing the name.  This
    avoids a `getattr()` call each time an among wants to call a routine.  This
    doesn't seem to make a measurable speed difference, but it's cleaner and
    avoids problems with name mangling.  Suggested by David Corbett in #217.

  + Simplify code generated for `loop`.  If the iteration count is constant and
    at most 4 then iterate over a tuple which microbenchmarking shows is
    faster.  The only current uses of loop in the shipped stemmers are `loop 2`
    so benefit from this.  Otherwise we now use `range(AE)` instead of
    `range (AE, 0, -1)` (the actual value of the loop variable is never
    used so only the number of iterations matter).

* Bug fixes:

  + Correctly handle stemmer names with an underscore.

* Code quality:

  + Generate Python with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

* Other changes:

  + Set python_requires to indicate to install tools that the generated code
    won't work with Python 3.0.x, 3.1.x and 3.2.x (due to use of `u"foo"`
    string literals).  Closes #192 and #191, opened by Andreas Maier.

  + Add classifiers to indicate support for Python 3.3 and for 3.8 to 3.13.
    Fixes #158, reported by Dmitry Shachnev.

  + Stop marking the wheel as universal, which had started to give a warning
    message.  Patch from Dmitry Shachnev (#210).

  + Stop calling `setup.py` directly which is deprecated and now produces a
    warning - use the `build` module instead.  Patch from Dmitry Shachnev
    (#210).

Rust
----

* Optimisations:

  + Shortcut unnecessary calls to find_among, porting an optimization from the
    C generator.  In some stemming benchmarks this improves the performance
    of the rust english stemmer by about 27%.  Patch from jedav (#202).

* Code quality:

  + Suppress unused_parens warning, for example triggered by the code generated
    for `$x = x*x` (where `x` is an integer).

  + Dispatch `among` result with `match` instead of an `if` ... `else if` chain
    (which looks like we did because the Rust generator evolved from the Python
    generator and Python didn't used to have a switch-like construct.  This
    results in a 3% speed-up for an unoptimised Rust compile but doesn't seem
    to make a measurable difference when optimising so it seems the Rust
    compiler is optimising both to equivalent code.  However using a `match`
    here seems clearer, a better match for the intent, and is a bit simpler to
    generate.

  + Generate Rust with UTF-8 source encoding.  This makes the generated code
    easier to follow, which helps during development.  It's also a bit smaller.
    For now codepoints U+0590 and above are still emitted as escape sequences
    to avoid confusing source code rendering when LTR scripts are involved.

New stemming algorithms
-----------------------

* Add Esperanto stemmer from David Corbett (#185).

* Add Estonian algorithm from Linda Freienthal (#108).

Behavioural changes to existing algorithms
------------------------------------------

* Dutch: Switch to Kraaij-Pohlmann as the default for Dutch.  In case you
  want Martin Porter's Dutch stemming algorithm for compatibility, this is now
  available as `dutch_porter`.  Fixes #1, reported by gboer.

* Dutch (Kraaij-Pohlmann): Fix differences between the Snowball implementation
  and the original C implementation.

* Dutch (Kraaij-Pohlmann): Add a small number of exceptions to the Snowball
  implementation to avoid unwanted conflations.  This addresses all cases so
  far identified which Martin's Dutch stemmer handled better.  Fixes #208.

* Dutch (Porter): The "at least 3 characters" part of the R1 definition was
  actually implemented such that when working in UTF-8 it was "at least 3
  bytes".  We stripped accents normally found in Dutch except for `è` before
  setting R1, and no Dutch words starting `è` seem to stem differently
  depending on encoding, but proper nouns and other words of foreign origin may
  contain other accented characters and it seems better for the stemmer to
  handle such words the same way regardless of the encoding in use.

* English: Replace '-ogist' with '-og' to conflate "geologist" and "geology", etc.
  Suggested by Marc Schipperheijn on snowball-discuss.

* English: Add extra condition to undoubling.  We no longer undouble if the
  double consonant is preceded by exactly "a", "e" or "o" to avoid conflating
  "add"/"ad", "egg"/"eg", "off"/"of", etc.  Fixes #182, reported by Ed Page.

* English: Avoid conflating 'emerge' and 'emergency'.  Reported by Frederick Ross
  on snowball-discuss.

* English: Avoid conflating 'evening' and 'even'.  Reported by Ann B on
  snowball-discuss.

* English: Avoid conflating 'lateral' and 'later'.  Reported by Steve Tolkin on
  snowball-discuss.

* English: Avoid conflating 'organ', 'organic' and 'organize'.

* English: Avoid conflating 'past' and 'paste'.  Reported by Sonny on
  snowball-discuss.

* English: Avoid conflating 'universe', 'universal' and 'university'.  Reported
  by Clem Wang on snowball-discuss.

* English: Handle -eed and -ing exceptions in their respective rules.
  This avoids the overhead of checking for them for the majority of
  words which don't end -eed or -ing.  It also allows us to easily handle
  vying->vie and hying->hie at basically no extra cost.  Reduces the time to
  stem all words in our English word list by nearly 2%.

* French: Remove elisions as first step.  See #187.  Originally reported by
  Paul Rudin and kelson42.

* French: Remove -aise and -aises so for example, "française" and "françaises"
  are now conflated with "français".  Fixes #209.  Originally reported by
  ririsoft and Fred Fung.

* French: Avoid incorrect conflation of `mauvais` (bad) with `mauve` (mauve,
  mallow or seagull); avoid conflating `mal` with `malais`, `pal` with
  `palais`, etc.

* French: Avoid conflating `ni` (neither/nor) with `niais`
  (inexperienced/silly) and `nie`/`nié`/`nier`/`nierais`/`nierons` (to deny).

* French: -oux -> -ou.  Fixes #91, reported by merwok.

* German: Replace with the "german2" variant.  This normalises umlauts ("ä" to
  "ae", "ö" to "oe", "ü" to "ue") which is presumably much less common in
  newly created text than it once was as modern computer systems generally
  don't have the limitations which motivated this, but there will still be
  large amounts of legacy text which it seems helpful for the stemmer to
  handle without having to know to select a variant.

  On our sample German vocabulary which contains 35033 words, 77 words give
  different stems.  A significant proportion of these are foreign words, and
  some are proper nouns.  Some cases definitely seem improved, and quite a few
  are just different but effectively just change the stem for a word or group
  of words to a stem that isn't otherwise generated.  There don't seem any
  changes that are clearly worse, though there are some changes that have both
  good and bad aspects to them.

  Fixes #92, reported by jrabensc.

* German: Don't remove -em if preceded by -syst to avoid overstemming words
  ending -system.  This change means we now conflate e.g. "system" and
  "systemen".  Partly addresses #161, reported by Olga Gusenikova.

* German: Remove -erin and -erinnen suffixes which conflates singular and
  plural female versions of nouns with the male versions.  Fixes #85 and
  partly addresses #161, reported by Olga Gusenikova.

* German: Replace -ln and -lns with -l.  This improves 82 cases in the current
  sample data without making anything worse.  Tests on a larger word list look
  good too.  Partly addresses #161, reported by Olga Gusenikova.

* German: Remove -et suffix when we safely can.  Fixes #200, reported by Robert
  Frunzke.

* Greek: Fix "faulty slice operation" for input `ισαισα`.  The fix changes
  `ισα` to stem to `ισ` instead of the empty string, which seems better (and to
  be what the second paper actually says to do if read carefully).  Fixes #204,
  reported by subnix.

* Italian: Address overstemming of "divano" (sofa) which previously stemmed to
  "div", which is the stem for 'diva' (diva).  Now it is stemmed to 'divan',
  which is what its plural form 'divani' already stemmed to.  Fixes #49,
  reported by francesco.

* Norwegian: Improve stemming of words ending -ers.  Fixes #175, reported by
  Karianne Berg.

* Norwegian: Include more accented vowels - treating "ê", "ò", "ó" and "ô"
  as vowels improves the stemming of a fairly small number of words, but
  there's basically no cost to having extra vowels in the grouping, and some
  of these words are commonly used.  Fixes #218, reported by András Jankovics.

* Romanian: Fix to work with Romanian text encoded using the correct Unicode
  characters.  Romanian uses a "comma below" diacritic on letters "s" and "t"
  ("ș" and "ț").  Before Unicode these weren't easily available so Romanian
  text was written using the visually similar "cedilla" diacritic on these
  letters instead ("ş" and "ţ").  Previously our stemmer only recognised the
  latter.  Now it maps the cedilla forms to "comma below" as a first step.
  Patch from Robert Muir.

* Spanish: Handle -acion like -ación and -ucion like -ución.  It's apparently
  common to miss off accents in Spanish, and there are examples in our test
  vocabulary that these change helps.  Proposed by Damian Janowski.

* Swedish: Replace suffix "öst" with "ös" when preceded by any of 'iklnprtuv'
  rather than just 'l'.  The new rule only requires the "öst" to be in R1
  whereas previously we required all of "löst" to be.  This second tweak
  doesn't seem to affect any words ending "löst" but it conflates a few extra
  cases when combined with the expanded list of preceding letters, and seems
  more logical linguistically (since "ös" is akin to "ous" in English).  Fixes
  #152, reported by znakeeye.

* Swedish: Remove -et/-ets in cases where it helps.  Removing -et can't be done
  unconditionally because many words end in -et where this isn't a suffix.
  However it's a very common suffix so it seems worth crafting a more complex
  condition under which to remove.  Fixes #47.

* Turkish: Remove proper noun suffixes.  For example, `Türkiye'dir` ("it is
  Turkey") is now conflated with `Türkiye` ("Turkey").  Fixes #188.

* Yiddish: Avoid generating empty stem for input "גע" (not a valid word, but
  it's better to avoid an empty stem for any non-empty input).

Optimisations to existing algorithms
------------------------------------

* General change: Use `gopast` everywhere to establish R1 and R2 as it is a
  little more efficient to do so.

* Basque: Use an empty action rather than replacing the suffix with itself
  which seems clearer and is a little more efficient.

* Dutch (Porter): Optimise prelude routine.

* English: Remove unnecessary exception for `skis` as the algorithm stems
  `skis` to `ski` by itself (`skies` and `sky` do still need a special case to
  avoid conflation with `ski` though).

* Hungarian: We no longer take digraphs into account when determining where R1
  starts.  This can only make a difference to the stemming if we removed a
  suffix that started with the last character of the digraph (or with "zs" in
  the case of "dzs"), and that doesn't happen for any of the suffixes we remove
  for any valid Hungarian words.  This simplification speeds up stemming by
  ~2% on the current sample vocabulary list.  See #216.  Thanks to András
  Jankovics for confirming no Hungarian words are affected by this change.

* Lithuanian: Remove redundant R1 check.

* Nepali: Eliminate redundant check_category_2 routine.

* Tamil: Optimise by using `among` instead of long `or` chains.  The generated
  C version now takes 43% less time to processes the test vocabulary.

* Tamil: Remove many cases which can't be triggered due to being handled by
  another case.

* Tamil: Clean up some uses of `test`.

* Tamil: Make `fix_va_start` simpler and faster.

* Tamil: Localise use of `found_a_match` flag.

* Tamil: Eliminate pointless flag changes.

* Turkish: Minor optimisations.

Code clarity improvements to existing algorithms
------------------------------------------------

* Stop noting dates changes were made in comments in the code - we now maintain
  a changelog in each algorithm's description page on the website (and the
  version control history provides a finer grained view).

* Always use `insert` instead of `<+` as the named command seems clearer.

* English: Add comments documenting motivating examples for all exceptional
  cases.

* Lithuanian: Change to recommended latin stringdef codes.  Using common codes
  makes it easier to work across algorithms, but they are more mnemonic so also
  seem clearer when just considering this one algorithm.

* Serbian: Change to recommended latin stringdef codes.  Using common codes
  makes it easier to work across algorithms, but they are more mnemonic so also
  seem clearer when just considering this one algorithm.

* Turkish: Use `{sc}` for s-cedilla and `{i}` for dotless-i to match other
  uses.

Compiler
--------

* Generic code generation improvements:

  + Show Snowball source leafname in "generated" comment at start of files.

  + Add generic reachability tracking machinery.  This facilitates various new
    optimisations, so far the following have been implemented:

    - Tail-calling
    - Simpler code for calling routines which always give the same signal
    - Simpler code when a routine ends in a integer test (this also allows
      eliminating an Ada-specific codegen optimisation which did something
      similar but only for routines which consisted *entirely* of a single
      integer test.
    - Dead code reporting and removal (only in simple cases currently)

    Currently this overlaps in functionality with the existing reachability
    tracking which is implemented on a per-language basis, and only for some
    languages.  This reachability tracking was originally added for Java
    where some unreachable code is invalid and result in a compile time error,
    but then seems to have been copied for some other newer languages which
    may or may not actually need it.  The approach it uses unfortunately
    relies on correctly updating the reachability flag anywhere in the
    generator code where reachability can change which has proved to be a
    source of bugs, some unfixed.  This new approach seems better and with some
    more work should allow us to eliminate the older code.  Fixes #83.

  + Omit check for `among` failing in generated code when we can tell at
    compile time that it can't fail.

  + Optimise `goto`/`gopast` applied to a grouping or inverted grouping (which
    is by far the most common way to use `goto`/`gopast`) for all target
    languages (new for Go, Java, Javascript, Pascal and Rust).

  + We never need to restore the cursor after `not`.  If `not` turns signal `f`
    into `t` then it sets `c` back to its old position; otherwise, `not`
    signals `f` and `c` will get reset by whatever ultimately handles this `f`
    (or the program exits and the position of `c` no longer matters).  This
    slightly improves the generated code for the `english` and `porter`
    stemmers.

  + Don't generate code for undefined or unused routines.

  + Avoid generating variable names and then not actually using them.  This
    eliminates mysterious gaps in the numbering of variables in the generated
    code.

  + Eliminate `!`/`not` from integer test code by generating the inverse
    comparison operator instead for all languages, e.g. for Python we now
    generate

      if self.I_p1 >= self.I_x:

    instead of

      if not self.I_p1 < self.I_x:

    This isn't going to be faster in compiled languages with an optimiser but
    for scripting languages it may be faster, and even if not, it makes for a
    little less work when loading the script.

  + Canonicalise `hop 1` to `next` as the generated code for `next` can be
    slightly more efficient.  This will also apply to `hop` followed by a
    constant expression which Snowball can reduce to `1`.

  + Avoid trailing whitespace in generated files.

  + Fix problems with --comments option:

    - When generating C code we would segfault for code containing `atleast`,
      `hop` or integer tests.
    - Fix missing comments for some commands in some target languages.
    - Fix inconsistent formatting of comments in some target languages.
    - Comments in C are now always on their own line - previously some were
      after at the end of the line and some on their own line which made them
      harder to follow.
    - Emit comments before `among` and before routine/external definitions.

  + Simplify more cases of numeric expressions (e.g. `x * 1` to `x`).

* Improve --help output.

* Division by zero during constant folding now gives an error.

* For `hop` followed by an unexpected token (e.g. `hop hop`) we were
  already emitting a suitable error but would then segfault.

* Emit error for redefinition of a grouping.

* Improve errors for `define` of an undeclared name.  We already peek at the
  next token to decide whether to try to parse as a routine or grouping.
  Previously we parsed as a routine if it was `as`, and a grouping otherwise,
  but routine definitions are more common and a grouping can only start with
  a literal string or a name, so now we assume a routine definition with a
  missing `as` if the next token isn't valid for either.

* Suppress duplicate (or even triplicate) "unexpected" errors for the same
  token when the compiler tried to recover from the error by adjusting the
  parse stare and marking the token to be reparsed, but the same token then
  failed to parse in the new state.

* Fix NULL pointer dereference if an undefined grouping is used in the
  definition of another grouping.

* Fix mangled error for `set` or `unset` on a non-boolean:

  test.sbl:2: nameInvalid type 98 in name_of_type()

* Emit warning if `=>` is used.  The documentation of how it works doesn't
  match the implementation, and it seems it has only ever been used in the
  Schinke stemmer implementation (which assumes the implemented behaviour).
  We've updated the Schinke implementation to avoid it.  If you're using it
  in your own Snowball code please let us know.

* Improve errors for unterminated string literals.

* Fix NULL pointer dereference on invalid code such as `$x = $y`.

* If malloc fails while compiling the compiler will now report the failure
  and exit.  Previously the NULL return from malloc wasn't checked for so
  we'd typically segfault.

* `lenof` and `sizeof` applied to a string variable now mark the variable
  as used, which avoids a bogus error followed by a confusing additional
  message if this is the only use of that variable:

  lenofsizeofbug.sbl:3: warning: string 's' is set but never used
  Unhandled type of dead assignment via sizeof

  This is situation is unlikely to occur in real world code.

* The reported line number for "string not terminated" error was one too high
  in the case where we were in a stringdef (but correct if we weren't).

* Eliminate special handling for among starter.  We now convert the starter
  to be a command before the among, adding an explict substring if there
  isn't one.

* We now warn if the body of a `repeat` or `atleast` loop always signals
  `t` (meaning it will loop forever which is very undesirable for a stemming
  algorithm) or always signals `f` (meaning it will never loop, which seems
  unlikely to be what was intended).

* Release memory in compiler before exit.  The OS will free all allocated
  memory when a process exits, so this memory isn't actually leaked, but it can
  be annoying with when using snowball as part of a larger build process with
  some leak-finding tools.  Patch from jsteemann in #166.

* Store textual data more efficiently in memory during Snowball compilation.
  Previously almost all textual data was stored as 16 bit values, but most
  such data only uses 8 bit character values.  Doubling the memory usage
  isn't really an issue as Snowball programs are tiny, but this also
  complicated code handling such data.  Now only literal strings use the
  16 bit values.

* Fix clang -Wunused-but-set-variable warning in compiler code.

* Fix a few -Wshadow warnings in compiler and enable this warning by default.

* Tighten parsing of `writef()` format strings.  We now error out on
  unrecognised escape codes or if a numbered escape is used with too high a
  number or a non-digit.  This change reveals that the Go and Rust generators
  were using invalid escape ~A - the old writef() code was substituting this
  with just A which is what is wanted so this case was harmless but being
  lenient here could hide bugs, especially when copying code between
  generators as they don't all support the same set of format codes.

Build system
------------

* Turn on Java warnings and make them errors.

* Compile C code with -g by default.  This makes debugging easier, and
  matches the default for at least some other build systems (e.g. autotools).

* Fix "make clean" to remove all built Ada files.

* Clean `stemtest` too.  Patch from Stefano Rivera.

* Add missing `COMMON_FILES` dependency to dist targets.

* GNUmakefile: Tidy up and make more consistent

* GNUmakefile: Make use of $* to improve speed and readability.

* Use $(patsubst ...) instead of sed in .java.class rule which gives cleaner
  make output and is a bit more efficient.

* Add `WERROR` make variable to provide a way to add `-Werror` to existing
  CFLAGS.

libstemmer
----------

Testsuite
---------

* Give a clear error if snowball-data isn't found.  Fixes #196, reported by
  Andrea Maccis.

* Handle not thinning testdata better.  If THIN_FACTOR is set to 1 we no longer
  run gzipped test data through awk.  We also now handle THIN_FACTOR being set
  empty as equivalent to 1 for convenience.

* csharp_stemwords: Correctly handle a stemmer name containing an underscore.

* csharp_stemwords: Make `-i` option optional and read from stdin if omitted,
  like the C version does.

* csharp_stemwords: Process the input line by line which is more helpful for
  interactive testing, and also a little faster.

* Fix Java TestApp to allow a single argument.  The documented command line
  syntax is that you only need to specify the language and there was already
  code to read from stdin if no input file was specified, but at least two
  command line options were required.

* Fix deprecation warning in TestApp.java.

* Optimise TestApp.java by creating fewer objects.  Patch from Robert Muir.

* stemwords.py: We no longer create an empty output file if we fail to open the
  input file.

* stemwords: Improve error message to say "Out of memory or internal error"
  rather than just "Out of memory".

Documentation
-------------

* Include "what is stemming" section in each README.

* Include section on threads in each README.  Based on patch for Python from
  dbcerigo.

* Document that input should be lowercase with composed accents.  See #186,
  reported by 1993fpale.

* Add README section on building, including notes on cross-compiling.  Fixes
  #205, reported by sin-ack.

* CONTRIBUTING.rst: Clarify which charsets to list

* CONTRIBUTING.rst: Add general advice section.  In particular, note to use
  spaces-only for indentation in most cases.  Thanks to Dmitry Shachnev for
  raising this point.

* CONTRIBUTING.rst: Note that UTF-8 is OK in comments.  Thanks to Dmitry
  Shachnev for asking.

* Fix some typos.  Patch from Josh Soref.

* Document that our CI now uses github actions.

* Update link to Greek stemmer PDF.  Patch from Michael Bissett (#33).

Snowball 2.2.0 (2021-11-10)
===========================

New Code Generators
-------------------

* Add Ada generator from Stephane Carrez (#135).

Javascript
----------

* Fix generated code to use integer division rather than floating point
  division.

  Noted by David Corbett.

Pascal
------

* Fix code generated for division.  Previously real division was used and the
  generated code would fail to compile with an "Incompatible types" error.

  Noted by David Corbett.

* Fix code generated for Snowball's `minint` and `maxint` constant.

Python
------

* Python 2 is no longer actively supported, as proposed on the mailing list:
  https://lists.tartarus.org/pipermail/snowball-discuss/2021-August/001721.html

* Fix code generated for division.  Previously the Python code we generated
  used integer division but rounded negative fractions towards negative
  infinity rather than zero under Python 2, and under Python 3 used floating
  point division.

  Noted by David Corbett.

Code quality Improvements
-------------------------

* C/C++: Generate INT_MIN and INT_MAX directly, including <limits.h> from
  the generated C file if necessary, and remove the MAXINT and MININT macros
  from runtime/header.h.

* C#: An `among` without functions is now generated as `static` and groupings
  are now generated as constant.  Patches from James Turner in #146 and #147.

Code generation improvements
----------------------------

* General:

  + Constant numeric subexpressions and constant numeric tests are now
    evaluated at Snowball compile time.

  + Simplify the following degnerate `loop` and `atleast` constructs where
    N is a compile-time constant:

    - loop N C where N <= 0 is a no-op.

    - loop N C where N == 1 is just C.

    - atleast N C where N <= 0 is just repeat C.

    If the value of N doesn't depend on the current target language, platform
    or Unicode settings then we also issue a warning.

Behavioural changes to existing algorithms
------------------------------------------

* german2: Fix handling of `qu` to match algorithm description.  Previously
  the implementation erroneously did `skip 2` after `qu`.  We suspect this was
  intended to skip the `qu` but that's already been done by the substring/among
  matching, so it actually skips an extra two characters.

  The implementation has always differed in this way, but there's no good
  reason to skip two extra characters here so overall it seems best to change
  the code to match the description.  This change only affects the stemming of
  a single word in the sample vocabulary - `quae` which seems to actually be
  Latin rather than German.

Optimisations to existing algorithms
------------------------------------

* arabic: Handle exception cases in the among they're exceptions to.

* greek: Remove unused slice setting, handle exception cases in the among
  they're exceptions to, and turn `substring ... among ...  or substring ...
  among ...` into a single `substring ... among ...` in cases where it is
  trivial to do so.

* hindi: Eliminate the need for variable `p`.

* irish: Minor optimisation in setting `pV` and `p1`.

* yiddish: Make use of `among` more.

Compiler
--------

* Fix handling of `len` and `lenof` being declared as names.

  For compatibility with programs written for older Snowball versions
  len and lenof stop being tokens if declared as names.  However this
  code didn't work correctly if the tokeniser's name buffer needed to
  be enlarged to hold the token name (i.e. 3 or 5 elements respectively).

* Report a clearer error if `=` is used instead of `==` in an integer test.

* Replace a single entry command list with its contents in the internal syntax
  tree.  This puts things in a more canonical form, which helps subsequent
  optimisations.

Build system
------------

* Support building on Microsoft Windows (using mingw+msys or a similar
  Unix-like environment).  Patch from Jannick in #129.

* Split out INCLUDES from CPPFLAGS so that CPPFLAGS can now be overridden by
  the user if required.  Fixes #148, reported by Dominique Leuenberger.

* Regenerate algorithms.mk only when needed rather than on every `make` run.

libstemmer
----------

* The libstemmer static library now has a `.a` extension, rather than `.o`.
  Patch from Michal Vasilek in #150.

Testsuite
---------

* stemtest: Test that numbers and numeric codes aren't damaged by any of the
  algorithms.  Regression test for #66.  Fixes #81.

* ada: Fix ada tests to fail if output differs.  There was an extra `| head
  -300` compared to other languages, which meant that the exit code of `diff`
  was ignored.  It seems more helpful (and is more consistent) not to limit how
  many differences are shown so just drop this addition.

* go: Stop thinning testdata.  It looks like we only are because the test
  harness code was based on that for rust, which was based on that for
  javascript, which was only thinning because it was reading everything into
  memory and the larger vocabulary lists were resulting in out of memory
  issues.

* javascript: Speed up stemwords.js.  Process input line-by-line rather than
  reading the whole file into memory, splitting, iterating, and creating an
  array with all the output, joining and writing out a single huge string.
  This also means we can stop thinning the test data for javascript, which we
  were only doing because the huge arabic test data file was causing out of
  memory errors.  Also drop the -p option, which isn't useful here and
  complicates the code.

* rust: Turn on optimisation in the makefile rather than the CI config.  This
  makes the tests run in about 1/5 of the time and there's really no reason to
  be thinning the testdata for rust.

Documentation
-------------

* CONTRIBUTING.rst: Improve documentation for adding a new stemming algorithm.

* Improve wording of Python docs.
netbsd-srcmastr pushed a commit that referenced this pull request May 18, 2025
1.6.1 (2025-03-25)

* Performed further work on Diff::LCS::Ldiff improvements (#46) and resolve
  several thread safety issues cleanly by making it a class. #129

* Restructure the project to be more consistent with the rest of the
  projects that I manage.

* Increased GitHub action security.

* Added trusted publishing for fully automated releases.


1.6.2 (2025-05-12)

* Handle upcoming changes to the cgi gem in Ruby 3.5 (#147)

* Fix issues found with htmldiff in Ruby 1.8 (which is used approximately
  never, since the code change which broke Ruby 1.8 was made 6 years
  ago). #148

* Fixed some standardrb formatting and configuration issues.
netbsd-srcmastr pushed a commit that referenced this pull request May 18, 2025
3.0.0 (2025-04-25)

What's Changed

* Feat/updates sept 24 by @whomwah in #146
* Update FUNDING.yml by @whomwah in #147
* chore: Updating dependencies and drop Ruby < 3 by @whomwah in #148

3.1.0 (2025-04-28)

What's Changed

* Correct link and version of rqrcode_core in CHANGELOG.md by @prognostikos
  in #154
* feat: Enhance SVG export with offset_x and offset_y options by @whomwah in
  #153
* docs: Update README.md by @whomwah in #155

New Contributors

* @prognostikos made their first contribution in #154
netbsd-srcmastr pushed a commit that referenced this pull request May 23, 2025
# changes

* trap: Implement POSIX.1-2024 requirements by @magicant in #115
* read: Avoid crash in interactive shell by @magicant in #116
* history: Work around glibc's fsetpos bug by @magicant in #117
* add completion for make variant commands by @unrealapex in #110
* Update Git completion by @magicant in #120
* wait: Don't return when the target process is suspended by @magicant in #121
* Support POSIX.1-2024 read built-in behavior (except byte-wise field splitting) by @magicant in #123
* Change false, pwd, and true to substitutive built-ins by @c0d3-br3ak9r in #124
* Reject empty operand in cd built-in by @c0d3-br3ak9r in #126
* Ignore remaining commands after a foreground job stops by @magicant in #143
* Treat a job as suspended when any child process suspends by @magicant in #144
* Noglob when splitting $CDPATH at colons in cd and pushd completion by @magicant in #147
* add completion for fnf by @unrealapex in #140
* add completion for 'cmus' and 'cmus-remote' by @unrealapex in #141
* add completion for 'catgirl' by @unrealapex in #142
* Ignore SIGTSTP in process redirection subshells by @magicant in #148
* Add macOS workaround for test of suspended job by @magicant in #150
* Job control without a control terminal by @magicant in #149
* Discard remaining commands on shell errors if interactive by @magicant in #151
* Filter '.' and '..' from wglob results by @eilefsen in #152
* Report job number and PID for async commands in interactive shell by @magicant in #155
* Propagate signal exit status to parent process by @magicant in #156
* printf: Reject redundant character in numeric operand by @magicant in #157
* Reject multiple pathname expansion results in redirection operands by @magicant in #158
* Set interactive automatically even with positional parameters by @magicant in #160
* test: Reject -a, -o, and parentheses in POSIXly-correct mode by @magicant in #161
* Fix default exit status of exit built-in in trap action by @magicant in #162
* Keep empty tilde expansion from empty field removal by @magicant in #164
* Remove redundant trailing slash in tilde expansion by @magicant in #166
* Reject {n} redirection prefix by @magicant in #167
* Document hashondef and nolog options for POSIX.1-2024 by @magicant in #168
* Treatment of variables that should not be made readonly by @magicant in #169
* Reject making LINENO, OLDPWD, OPTARG, OPTIND, and PWD readonly by @magicant in #170
netbsd-srcmastr pushed a commit that referenced this pull request Jun 12, 2025
v1.12.1
What's Changed

 - Fixed misuse of entry_point parameter in localization by @Etto48 in #147
 - Added Turkish translation by @orhun, @arda-guler in #139
 - Reviewed Spanish translation by @chocolatemilq in #146
 - Reviewed French translation by @Pallandos in #148

v1.12.0
What's Changed

 - Add zh-CN translation and generate zh-HK and zh-TW translations via O… by @Meow0x7E in #136
 - Feature/i18n by @Etto48 in #137
netbsd-srcmastr pushed a commit that referenced this pull request Nov 1, 2025
    add: example projects for testing and debugging by @anistark in #146
    build(deps): bump requests from 2.31.0 to 2.32.4 in /examples/python-example in the pip group across 1 directory by @dependabot[bot] in #147
    refactor: improve error handling by @anistark in #148
    Create FUNDING.yml by @anistark in #149
    feat: R projects support. only direct dependency check by @anistark in #150
    refactor: strict to restrictive flag change. [breaking change] by @anistark in #152
    feat: add configurable strictness mode with --strict flag for license parser by @anistark in #153
    refactor: remove v1.8.5 backward compatibility re-exports by @anistark in #154
    feat: improve Python environment marker parsing with PEP 508 support by @anistark in #155
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.