Mk/Uses/electron.mk: Secure reproducibility of node modules tarball in case of pnpm
Formerly, node_modules directories produced by "pnpm install" were
used for node modules tarball. However, .modules.yaml file contained
in the tarball is not reliably reproducible and differs in some way
depending on the environment and/or timing where/when the tarball was
produced.
Instead of relying on node_modules directories, we use pnpm
store (produced by "pnpm fetch") for node modules tarball. We can use
the tarball later to install node modules into appropriate directories
using "pnpm install". Note that the timestamp "checkedAt" in each JSON
file in the pnpm store is reset to 0 to ensure reproducibility.
Reported by: feld (via private email)
Tested by: feld
vnet: Ensure the space allocated by vnet_data_alloc() is sufficent aligned
Some 32-bit architectures, e.g., armv7, require strict 8-byte
alignment while doing atomic 64-bit access. Hence aligning to the
pointer type (4-byte alignment) does not meet the requirement on
those architectures.
Make the space allocated by vnet_data_alloc() sufficent aligned to
avoid unaligned access.
PR: 265639
Diagnosed by: markj
Reviewed by: jhb, markj
Co-authored-by: jhb
MFC after: 5 days
Differential Revision: https://reviews.freebsd.org/D55560
[AArch64][PAC] Emit `!dbg` locations in `*_vfpthunk_` functions (#179688)
The usage of pointers to member functions with Pointer Authentication
requires generation of `*_vfpthunk_` functions. These thunk functions
can be later inlined and optimized by replacing the indirect call
instruction with a direct one and then inlining that function call.
In absence of `!dbg` metadata attached to the original call instruction,
such inlining ultimately results in an assertion "!dbg attachment points
at wrong subprogram for function" in the assertions-enabled builds. By
manually executing `opt` with `-verify-each` option on the LLVM IR
produced by the frontend, an actual issue can be observed: "inlinable
function call in a function with debug info must have a !dbg location"
after the replacement of indirect call instruction with the direct one
takes place.
This commit fixes the issue by attaching artificial `!dbg` locations to
the original call instruction (as well as most other instructions in
`*_vfpthunk_` function) the same way it is done for other
compiler-generated helper functions.
Update devel/yices2 to version 2.6.5.
Yices 2.6.5:
New Features:
- Arrays support in the MCSat solver
- MCSat Thread Safety
- New logics: QF_AUFBVLIA, QF_UFBVLIA, QF_BVLRA, QF_AUFBVNIA, QF_UFBVNIA
- Set static variable order in the MCSat solver
- Set initial var order in the MCSat solver
- Parallel make check
- Plugin decision hint queue in the MCSat solver
Many fixes
Yices 2.6.4:
New features:
- solving modulo a model in the MCSAT solver
[21 lines not shown]
[mlir][affine] Fix crash in linearize_index fold when multi-index is ub.poison (#183816)
`AffineLinearizeIndexOp::fold` guarded the constant-folding path with
`llvm::is_contained(adaptor.getMultiIndex(), nullptr)`, which only
catches operands that have not been evaluated at all. When an operand
folds to `ub.PoisonAttr`, the attribute is non-null so the guard passed,
and the subsequent `cast<IntegerAttr>(indexAttr)` call crashed with an
assertion failure.
Fix by replacing the null-only check with one that requires every
multi-index attribute to be a concrete `IntegerAttr`, returning
`nullptr` for any other attribute (including null and PoisonAttr).
Fixes #178204
[mlir] Fix crash in testNoSkipErasureCallbacks on empty blocks (#183757)
The `noSkipBlockErasure` callback in `testNoSkipErasureCallbacks` called
`block->front().getParentRegion()` to get the parent region of a block.
This dereferences the ilist sentinel node when the block has no
operations, triggering an assertion failure.
Use `block->getParent()` instead, which directly returns the region
containing the block without requiring any operations to be present.
Fixes #183511