audio/noctavox: Add runtime dependency
- Add audio/alsa-plugins to RUN_DEPENDS, because without it noctavox
fails to start with the following error:
ALSA lib pcm.c:2722:(snd_pcm_open_noupdate) [error.pcm] Unknown PCM oss
thread 'main' (101801) panicked at noctavox/src/player/handle.rs:18:40:
Failed to initialize backend: output error: The requested device is no longer available. For example, it has been unplugged.
- Bump PORTREVISION
[X86] apply mulx optimization for two-wide mul instruction (mull, mulq) (#185127)
References: https://github.com/llvm/llvm-project/pull/184462
In the discussion for the linked PR, which removes unnecessary register
to register moves when one operand is in %rdx for mulx, the point was
brought up that this pattern also happens for mull and mulq.
The IR below:
```llvm
declare i32 @foo32()
declare i64 @foo64()
define i32 @mul32_no_implicit_copy(i32 %a0) {
%a1 = call i32 @foo32()
%a2 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %a0, i32 %a1)
%a3 = extractvalue { i32, i1 } %a2, 0
ret i32 %a3
[53 lines not shown]
[CIR] Remove cir.unary(plus, ...) and emit nothing for unary plus
Traditional codegen never emits any operation for unary plus — it just
visits the subexpression as a pure identity at the codegen level. Align
CIRGen with this behavior by removing Plus from UnaryOpKind entirely
and having VisitUnaryPlus directly visit the subexpression with the
appropriate promotion/demotion handling.
[CIR] Split CIR_UnaryOp into individual operations
Split the monolithic cir.unary operation (which dispatched on a
UnaryOpKind enum) into four separate operations: cir.inc, cir.dec,
cir.minus, and cir.not.
This follows the same pattern used when cir.binop was split into
individual binary operations (AddOp, SubOp, etc.).
Changes:
- Add CIR_UnaryOpInterface with getInput()/getResult() methods
- Add CIR_UnaryOp and CIR_UnaryOpWithOverflowFlag base classes
- Define IncOp, DecOp, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind
[6 lines not shown]
[CIR] Add cir.min op and refactor cir.max lowering
Add cir.min operation for integer minimum computation. Refactor cir.max
lowering into a shared lowerMinMaxOp template reused by both ops. Includes
lowering tests for signed, unsigned, and vector types, plus canonicalization
tests.
[CIR] Add Commutative/Idempotent traits to binary ops
Add missing MLIR traits to CIR binary operations, matching the arith
dialect conventions:
- AndOp, OrOp: Commutative, Idempotent (fixes FIXME)
- AddOp, MulOp, XorOp, MaxOp: Commutative
Add these ops to the CIRCanonicalize pass op list so trait-based
folding is exercised by applyOpPatternsGreedily.
Update testFloatingPointBinOps in binop.cpp to use computed values,
preventing DCE of the now-canonicalized ops.
gtk-gnutella: updated to 1.3.1
1.3.1
Bug Fixes
[GTK2] Removed "clock" icon in status bar, a left-over of the 1.3.0 edits.
Was sometimes crashing at startup due to a bug in logfilter.
Forgot an include of "mempcpy.h", causing compilation error on MacOs.
Fixed compilation error on arm64.
1.3.0
Improvements
Removed expiration date: this version will now run forever.
Under the Hood
[2 lines not shown]
[x86][GlobalISel] Select MOV32ri64 for unsigned 32-bit i64 constants (#185182)
x86 GlobalISel currently selects `MOV64ri32` for signed 32-bit `i64`
constants and falls back to `MOV64ri` otherwise.
That misses the unsigned 32-bit case, where `MOV32ri64` is a better
match.
FastISel already handles this case by using `MOV32ri64` for
zero-extended
32-bit values.
Update `X86InstructionSelector::selectConstant()` to select `MOV32ri64`
for `i64` constants that fit in `uint32_t`, while keeping `MOV64ri32`
for signed 32-bit values and `MOV64ri` for larger constants.
This reduces the encoding size for these constants and fixes the
`0xffffffff` boundary case to use the correct zero-extending move.
www/chromium: update to 146.0.7680.75
* 146.0.7680.75
This update includes 2 security fixes. Please see the
Chrome Security Page for more information.
[N/A][491421267] High CVE-2026-3909: Out of bounds write in Skia.
Reported by Google on 2026-03-10
[N/A][491410818] High CVE-2026-3910: Inappropriate implementation
in V8. Reported by Google on 2026-03-10
Google is aware that exploits for both CVE-2026-3909 & CVE-2026-3910
exist in the wild.
* 146.0.7680.71
This update includes 29 security fixes. Please see the
Chrome Security Page for more information.
[$33000][483445078] Critical CVE-2026-3913: Heap buffer overflow
[62 lines not shown]
[CIR] Support addr-of-label in constant initializer context
Previously, using the GNU address-of-label extension (&&label) in an
array initializer like `void *labels[] = {&&a, &&b}` would hit an NYI
error in ConstantLValueEmitter::VisitAddrLabelExpr.
The scalar expression path already handles &&label correctly via
BlockAddressOp. The fix is to return null from the constant emitter,
which makes the caller fall through to the non-constant initialization
path that emits individual BlockAddressOp stores per element.
This is consistent with CIR's approach of preferring non-constant
emission to preserve source-level semantics (see CIRGenDecl.cpp:278).
tests/snprintb: ensure that the value has power-of-two digits
In direct calls to h_snprintb_m_len, several arguments are integers, so
provide a way to distinguish them visually by forcing the value to be
given in hexadecimal. The buffer sizes are typically given in decimal.
Prevent excess or forgotten digits by requiring the number of digits in
the value to be a power of two.