Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nasm: updated to 2.16.03 #147

Open
wants to merge 10,000 commits into
base: trunk
Choose a base branch
from
Open

nasm: updated to 2.16.03 #147

wants to merge 10,000 commits into from

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.
@tempcracks
Copy link
Author

yes,it's just that i was so lost, and i thought it would be more convenient to go back and now I'd do force-push,sorry

adam and others added 20 commits July 31, 2024 08:02
Changes in 8.9.1

Bugfixes:

cmake: detect `libssh` via `pkg-config`
cmake: detect `nettle` when building with GnuTLS
cmake: drop `if(PKG_CONFIG_FOUND)` guard for `pkg_check_modules()`
configure: limit `__builtin_available` test to Darwin
connect: fix connection shutdown for event based processing
contrithanks.sh: use -F with -v to match lines as strings
curl: more defensive socket code for --ip-tos
CURLOPT_SSL_CTX_FUNCTION.md: mention CA caching
CURLSHOPT_SHARE.md: mention sessions/cookies as not thread-safe
example/multi-uv: remove the use of globals
ftpserver.pl: make POP3 LIST serve content from the test file
GHA/windows: increase timeout for vcpkg build step
lib: survive some NULL input args
macos: fix Apple SDK bug workaround for non-macOS targets
misc: cleanup after removing years from copyright
os400: build cli manual.
os400: workaround an IBM ASCII run-time library bug
RELEASE-PROCEDURE.md: remove the initial build step
runtests: fold timing details with GHA, sync `-r` tflags
tests: provide FTP directory contents in the test file
tidy-up: URL updates
TODO: thread-safe sharing
transfer: speed limiting fix for 32bit systems
vtls: avoid forward declaration in MultiSSL builds
wolfSSL: allow wolfSSL's implementation of kyber to be used
wolfssl: avoid calling get_cached_x509_store if store is uncachable
wolfssl: CA store share fix
x509asn1: unittests and fixes for gtime2str
dpkg (1.22.10) unstable; urgency=medium

  [ Guillem Jover ]
  * Perl modules:
    - Dpkg::Changelog::Entry::Debian: Remove obsolete /o modifier from regex.
    - Dpkg::Changelog: Remove useless escaping for -.
  * Make fragments:
    - Revert "scripts/mk: Reduce the number of subprocesses".
  * Build system:
    - Do not define macros for C/C++ standard level.
    - Use pre-defined macros to check C/C++ conformance requirements.
    - Fix length for comment bar line after autoconf functions.
    - Fix dpkg_cv_c99 assignment in DPKG_C_C99 macro.
    - Simplify C standard check output.


dpkg (1.22.9) unstable; urgency=medium

  [ Guillem Jover ]
  * dpkg-deb: Add long options for short-only compression ones.
  * dpkg-deb: Print pathname instead of filename and directory in error output.
  * start-stop-daemon: Use a stop context to track the current state.
  * Make fragments:
    - Fix pkg-info.mk evaluation by adding new DEB_TIMESTAMP variable.
  * Code internals:
    - dpkg-deb: Track maintscript information in a new struct.
  * Test suite:
    - Fix typos in Makefile comments.
1) Turn off the use ot thread local storage on NetBSD/aarch64,
   due to NetBSD PR#58154 and our desire to support systems
   built before the fix was applied.
2) Use the fixed 1.78.0 bootstrap for NetBSD/aarch64 (which
   is now built with the workaround from NetBSD#1 applied).
3) Reinstate the patches to the openssl-sys and openssl-src
   vendor crates, and their checksum fixes, taken from pkgsrc-wip
   rust 1.78.0 and adapted.
4) Make the NetBSD/sparc64 target spec more similar to the other
   sparc64 targets.  Does not resolve the cross-build problem, sadly.
2.9 (2024-07-25)

* Add support for Django 4.2 storages (mandatory in Django 5.1).
pytest 8.3.2 (2024-07-24)
Bug fixes
Resolve regression conda environments where no longer being automatically detected.
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
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.