@trofi@fosstodon.org avatar

trofi

@trofi@fosstodon.org

This profile is from a federated server and may be incomplete. Browse more on the original instance.

trofi, to random
@trofi@fosstodon.org avatar

Sometimes it takes more time to refute a gcc bug than confirm it. This week I spent most time on https://gcc.gnu.org/PR114872 where sagemath SIGSEGVed on some simple inputs.

Bug updates are a bit hard to read and are missing a bit of compiler-unrelated context. I wrote something more coherent in https://trofi.github.io/posts/312-the-sagemath-saga.html

trofi, to random
@trofi@fosstodon.org avatar

Today's duperemove bug is a minor accounting bug: https://github.com/markfasheh/duperemove/pull/323

$ ls -lh /nix/var/nix/db/db.sqlite
1.4G /nix/var/nix/db/db.sqlite

Before the change:

$ ./show-shared-extents /nix/var/nix/db/db.sqlite
/nix/var/nix/db/db.sqlite: 27065321263104 shared bytes

After the change:

$ ./show-shared-extents /nix/var/nix/db/db.sqlite
/nix/var/nix/db/db.sqlite: 1169276928 shared bytes

The size reduction is not as impressive as initially reported :)

trofi,
@trofi@fosstodon.org avatar

@sandro Yeah, VACUUM usually helps a lot. I intentionally kept the file fragmented as it's the most fragmented file on my system :)

Generally I'm slightly worried to run direct sqlite commands against databases that are actively used by nix-daemon. Would be nice if nix-daemon provided a direct call for it: https://github.com/NixOS/nix/issues/5319

trofi, to random
@trofi@fosstodon.org avatar

Today's gcc bug is a gcc compilation performance problem:
https://gcc.gnu.org/PR111619

Final gcc is compiled with -O2 by default (intended) and booter gcc is compiled with -O0 (also intended).

But unoptimized gcc is very inefficient at handling huge generated files like insn-recog.cc.

trofi,
@trofi@fosstodon.org avatar

@sandro I think in nixpkgs gcc wrapper already sneakily passes -O2 to all users including initial stage of gcc build: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/cc-wrapper/add-hardening.sh#L52

hardeningCFlagsBefore+=('-O2' '-U_FORTIFY_SOURCE')

Not exactly a hardening flag, but oh well :)

trofi, to random
@trofi@fosstodon.org avatar

Today's gcc bug https://gcc.gnu.org/PR111051 is a case where gcc stopped recognizing some avx2 primitives on avx512 code (all on highway-1.0.6 code again):

<immintrin.h>

GCC target("avx512vl,avx512dq")

void bug(__m256i i) {
volatile auto v1 = _mm256_cvtepi64_pd(i);
}

and failed as error: inlining failed in call to 'always_inline' '__m256d _mm256_setzero_pd()': target specific option mismatch

trofi, to random
@trofi@fosstodon.org avatar

Today's gcc bug is https://gcc.gnu.org/PR111048 where gcc generated wrong code for highway-1.0.6 library in -mavx2 mode.

When handling the following loop:

u8 in_lanes[32];
for (unsigned i = 0; i < 32; i += 2) {
in_lanes[i + 0] = 0;
in_lanes[i + 1] = ((u8)0xff) >> (i & 7);
}

gcc broke i =12 iteration and instead of i[13] = 0xf; (0xff &gt;&gt; 4) stored something like i[13] = 0xef; there.

trofi, to random
@trofi@fosstodon.org avatar

Today's gcc bug is https://gcc.gnu.org/PR110271 where gcc itself crashed with ICE on pycryptodome package.

While the crash is not very interesting the change that caused the regression is very cool: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=43a3252c42af12

gcc is now able to detect add-with-carry patterns and generate branchless code for them. On x86 these are sub -> sbb.

Bug tracker says it's 100th bug I reported to gcc!

trofi, to random
@trofi@fosstodon.org avatar

Another year, another ::nix-guix Gentoo overlay status update: https://trofi.github.io/posts/287-nix-and-guix-for-gentoo-in-2023.html

Tl;DR:

  • the overlay installation procedure changed slightly
  • the overlay still packages latest sys-apps/nix and sys-apps/guix packages ready for use
  • a few workarounds are added to make nix and guix installable/usable on clang-based profiles.
trofi, to random
@trofi@fosstodon.org avatar

Every 6 months nixpkgs enters "Zero Hydra Failures" development phase when the main focus is to fix most known build or test failures.

It's a good opportunity to get your first contribution as fixing the package is usually straightforward: it used to work and your goal is to make it build again (or schedule it for deletion).

I usually try to fix at least one package during ZHF.

Here is an example for this cycle: https://trofi.github.io/posts/285-Zero-Hydra-Failures-towards-23.05-NixOS-release.html

trofi, to random
@trofi@fosstodon.org avatar

gcc-14 development has started. A few cleanup were already merged in. This week's bugs are:

I'm also struggling to extract runtime failures on nlohmann_json and aws-sdk-cpp test suites that seem to be gcc-14 regressions.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • tacticalgear
  • Youngstown
  • ngwrru68w68
  • slotface
  • everett
  • rosin
  • khanakhh
  • kavyap
  • Durango
  • JUstTest
  • GTA5RPClips
  • Leos
  • tester
  • cisconetworking
  • mdbf
  • osvaldo12
  • cubers
  • ethstaker
  • provamag3
  • anitta
  • normalnudes
  • modclub
  • lostlight
  • All magazines