kobj: Make the containers of pointers to base classes constant
The containers (arrays) will not be modified during runtime.
Reviewed by: kib, imp
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D61297
java/openjdk25: set wxneeded on bootstrap jdk
The upstream fix to Bug 296945 set the wxneeded flag for executables;
however, it did not do so for the bootstrap jdk.
This patch fixes that.
PR: 300566
Reported by: mondo.debater_0q at icloud.com
Reviewed by: haraldei
Approved by: haraldei
NAS-145061 / 28.0.0-BETA.1 / Document a Secret field's default as its value in the API schema (#20114)
`BaseModel` wraps a concrete default on a `Secret[...]` field in a
`Secret` (see `test_secret_default_wrap.py`). Pydantic encodes that
default in the JSON schema as the secret's redacted display: `""` for a
falsy value, `"**********"` otherwise. So the dump documents, for
example, `S3CredentialsModel.skip_region` as `{"type": "boolean",
"default": ""}` and `max_upload_parts` as `{"type": "integer",
"default": "**********"}`.
A default whose type contradicts its schema breaks generated clients.
`json-schema-to-typescript`, which `@truenas/api-client` uses, emits
`boolean & string` for these fields. That type is `never`, so no caller
can write them through the typed client.
`utils.pydantic_.model_json_schema`, the one place the dump, the docs
and `get_json_schema` build schemas from, now uses a
`GenerateJsonSchema` subclass. Its `encode_default` unwraps a `Secret`
default to its value. A default is a constant in the code, not a user's
[22 lines not shown]
[DAG] Replace getLibraryOptions helper with getSelectionDAGOptions (#240799)
Reduces compile time impact by avoiding most
DAG.getLibraryOptions().get<SelectionDAGOptions>() lookups
Log TrueSearch to its own file and keep SMB running in its tests
syslog-ng writes the messages of truesearchd and truesearch-indexer to
/var/log/truesearchd.log. The default log files no longer get them.
logrotate rotates the new file. test_475_syslog checks both programs.
The TrueSearch api2 tests created a second share with smb_share. That
asset stops the SMB service when it exits. Middleware then stopped
TrueSearch. The later tests found no daemon. A helper in the test
module now creates and deletes the second share. It does not stop SMB.
truesearch.query requires a path. test_legacy_api no longer calls it
without arguments.
[DAGCombiner][GlobalISel] Fold floor into unsigned FP-to-int conversions (#239233)
Add shared SelectionDAG/GlobalISel combines to eliminate floors before
unsigned FP-to-int conversions.
* IR conversion is equivalent (reusing an existing comment):
https://github.com/llvm/llvm-project/pull/231060#issuecomment-6120567356
* Removing the floor is a refinement for `fptoui` and preserves the
result for `fptoui.sat`.
* Shared floors are allowed, following #231060. This can enable tail
calls but can also introduce spills when the floor is a libcall.
* `InstCombine` could have this pattern as well, but AMDGPU lowering
explicitly creates a floor with two users, so these combines are still
useful.
Updated existing codegen checks for:
* `f32 -> u32`, `f64 -> u32`, and `f16 -> u16`
* 64-bit results, saturation, and vectors
* source modifiers and the normal, true16, and fake16 variants
[6 lines not shown]
py-alembic: updated to 1.20.1
1.20.1
bug
[bug] [autogenerate]
Fixed issue where a table or column comment set to an empty string would cause autogenerate to detect a comment change on every run. As most backends, including PostgreSQL, MySQL, MariaDB and Oracle, don’t store an empty string comment distinctly from no comment, autogenerate now treats an empty string comment the same as None when comparing comments. Additionally, an empty string comment is now rendered in op.create_table() and op.add_column() directives, where it was previously omitted. Pull request courtesy vineoy.
[bug] [autogenerate] [postgresql]
Fixed rendering of the PostgreSQL DOMAIN type in autogenerated migration scripts. Previously the type was rendered using repr(), which omitted the check, not_null, default, collation, constraint_name, schema and create_type arguments and did not apply a dialect prefix to the underlying data type. The full set of arguments is now rendered and the underlying data type is rendered using the standard type-rendering logic. Pull request courtesy Sebastian Cao.
[bug] [autogenerate] [postgresql]
Fixed false-positive “Computed default cannot be modified” warning emitted during autogenerate when comparing PostgreSQL Computed columns whose reflected SQL expression includes type cast specifiers such as ::regconfig or ::text, which PostgreSQL adds to the expression as stored. These cast specifiers are now stripped before comparison so that otherwise equivalent expressions no longer trigger the warning. Pull request courtesy Sebastian Cao.
[bug] [autogenerate] [postgresql]
Fixed issue where autogenerate would detect an unchanged PostgreSQL expression-based index as modified when the expression included type casts, such as a cast to a type with a length or precision, a nested cast, or a cast followed by a DESC modifier.
[bug] [postgresql]
[13 lines not shown]
[AMDGPU] Fold S_CSELECT with identical sources in SIFoldOperands (#240525)
tryFoldCndMask already folds a V_CNDMASK whose two sources are the same
register or the same immediate. Do the same for S_CSELECT_B32 and
S_CSELECT_B64.
These selects arise when two vectors with matching lanes are built in
one block and selected between in another, for example tensor
descriptors built outside a loop. Isel sees only the cross-block vector
registers, so it selects every lane, and only PeepholeOptimizer reveals
that some lanes are the same value. Folding the select lets MachineLICM
hoist the resulting move out of the loop.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
py-aioquic: updated to 1.7.2
1.7.2
* Fix data written to a stream returned by
:meth:`~aioquic.asyncio.QuicConnectionProtocol.create_stream` being
truncated when it was a :class:`memoryview` whose items are wider than one
byte.
* Improve type annotations: all functions in the library are now annotated.
* Fix the demo application with Starlette 1.0.
* Remove the SiDUCK example, as the draft it implemented expired without being
adopted.
Allow configured origins to read /api/versions for TrueNAS Connect
nginx answers CORS on /api/versions only when the system is registered
with TrueNAS Connect, and only for the TNC web app (plus `ng serve` on
dev and staging). A TNC client run against an unregistered system (an
ephemeral TNC stack, local development, CI) cannot read the versions, so
@truenas/api-client falls back to v25.10.0 on systems that serve newer
API versions.
* tn_connect gains `allowed_origins`, set with the private
tn_connect.update_environment. Each must be an origin exactly as a
browser sends it: https with a lowercase host name, or http to
localhost or 127.0.0.1, with an optional port and no path. Unlike the
endpoints it may change while TNC is enabled. update_environment now
reloads nginx after a write, since the endpoints and the origins both
reach its CORS maps.
* /api/versions answers CORS, with Vary: Origin, when the system is
registered or allowed_origins is not empty. Its map lists the allowed
origins and falls back to the existing $allow_origin. /_download keeps
[7 lines not shown]
NAS-145061 / 28.0.0-BETA.1 / Document a Secret field's default as its value in the API schema (#20114)
`BaseModel` wraps a concrete default on a `Secret[...]` field in a
`Secret` (see `test_secret_default_wrap.py`). Pydantic encodes that
default in the JSON schema as the secret's redacted display: `""` for a
falsy value, `"**********"` otherwise. So the dump documents, for
example, `S3CredentialsModel.skip_region` as `{"type": "boolean",
"default": ""}` and `max_upload_parts` as `{"type": "integer",
"default": "**********"}`.
A default whose type contradicts its schema breaks generated clients.
`json-schema-to-typescript`, which `@truenas/api-client` uses, emits
`boolean & string` for these fields. That type is `never`, so no caller
can write them through the typed client.
## Changes
`utils.pydantic_.model_json_schema`, the one place the dump, the docs
and `get_json_schema` build schemas from, now uses a
[26 lines not shown]
lz4: updated to 1.11.1
1.11.1
LZ4 v1.11.1 is a point release, whose main purpose is to fix LZ4_resetStreamHC(), an obsolete symbol, on dirty memory. While reset functions are expected to reset valid states, LZ4_resetStreamHC() has been working fine on dirty memory, which made it possible to employ it as an initializer instead. Hence, some (hopefully rare) applications may have developed a dependency on this property. v1.11.0 did not respect this undocumented behavior: on a dirty state, compression at levels >= 10 could result in a write out of bounds. Thus v1.11.1 is released to restore the previous behavior.
This is mostly of importance for distributions and package managers, as liblz4 may be paired with older binaries that are no longer updated. LZ4_resetStreamHC() was replaced by LZ4_initStreamHC() in v1.9.0 (2019). Applications still employing this symbol are invited to migrate.
This release also restores the (deprecated) unprefixed lz4frame enums, for applications that still need them. They now generate a deprecation warning: once again, actively maintained applications should move to the prefixed names. Build configurations accidentally broken in v1.11.0 work again: make with BUILD_STATIC=no or BUILD_SHARED=no, and MinGW with clang and lld.