!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1175 Members
“There are still many issues with the Darwin platform but most of it is quite usable.” — http://yves.gnu-darwin.org191 Servers

Load older messages


SenderMessageTime
29 Dec 2025
@emilazy:matrix.orgemilybut it should only be a few lines to do the heap allocation thing01:06:45
@emilazy:matrix.orgemilysomething like…01:08:49
@emilazy:matrix.orgemily
  fd_set rset_stack, wset_stack, xset_stack;
  fd_set *rset = &rset_stack, *wset = &wset_stack, *xset = &xset_stack;

  if (nfds > FD_SETSIZE)
    {
      size_t nelems = __DARWIN_howmany(nfds, __DARWIN_NFDBITS);
      size_t size = sizeof (struct { int32_t fds_bits[nelems] });
      rset = g_malloc0 (size);
      wset = g_malloc0 (size);
      xset = g_malloc0 (size);
    }

  …

  if (nfds > FD_SETSIZE)
    {
      g_free (rset);
      g_free (wset);
      g_free (xset);
    }
01:12:50
@emilazy:matrix.orgemily (I guess can g_malloc rather than g_malloc0, since FD_ZERO and all) 01:13:41
@emilazy:matrix.orgemily thankfully guint is small enough that you don't have to worry about size overflow 🫣 01:14:42
@ihar.hrachyshka:matrix.orgIhar HrachyshkaSeems like a better way - no need to choose a value for FD_SETSIZE. will adopt and add a test case as Randy suggested.01:16:57
@emilazy:matrix.orgemilyyeah, would definitely not trust this without testing :D01:19:44
@emilazy:matrix.orgemily it does have the somewhat sad effect that every call will do heap allocation when you have lots of fds, but probably code relying on select isn't exactly hyperoptimized to begin with…? 01:20:28
@ihar.hrachyshka:matrix.orgIhar Hrachyshkaif you have more fds than what the platform supports, your alternative is getting the fault, so...01:23:08
@ihar.hrachyshka:matrix.orgIhar Hrachyshkawe are not making it worse01:23:26
@ihar.hrachyshka:matrix.orgIhar Hrachyshka* if you have more fds than what the platform supports, your alternative atm is getting the fault, so...01:24:00
@emilazy:matrix.orgemilyyeah01:25:06
@emilazy:matrix.orgemily can always do both this and raising FD_SETSIZE 01:25:17
@reckenrode:matrix.orgRandy Eckenrode I got SwiftPM working correctly in a dev shell to build my Advent of Code solutions from 2022 (which were written in Swift). The resulting binary correctly targets macOS 13 per the platforms configuration in Package.swift. 01:27:55
@reckenrode:matrix.orgRandy EckenrodeI guess next is splitting out the stdlib. I’m not sure what else is left other than maybe seeing if I can do some kind of cursed prebuilts thing.01:28:15
@ihar.hrachyshka:matrix.orgIhar Hrachyshkaif I were to go with alloc (which I will), I'd do raising only if I notice perf degradation. (atm it smells like premature optimization)01:28:17
@reckenrode:matrix.orgRandy Eckenrode(And building on Linux.)01:28:18
@emilazy:matrix.orgemilyyeah I expect the syscall overhead is much higher than allocation anyway.01:30:40
@emilazy:matrix.orgemilygiven the nature of the call01:30:51
@emilazy:matrix.orgemily I hope they require a new enough C standard for the sizeof-struct-with-runtime-array-size thing to work. (sizeof (int32_t) * nelems could have padding issues in theory I think.) 01:31:59
@ihar.hrachyshka:matrix.orgIhar Hrachyshkaok I don't know much about it. what would be "new enough C standard"?01:33:08
@ihar.hrachyshka:matrix.orgIhar Hrachyshkait's gnu99 as per meson.build01:34:03
@ihar.hrachyshka:matrix.orgIhar Hrachyshka * it's gnu99 as per meson.build 01:34:08
@emilazy:matrix.orgemilyI believe it's okay in C99+ so should be fine01:34:39
@ihar.hrachyshka:matrix.orgIhar Hrachyshkabesides this select exhaustion issue, I have two more patches related to nixpkgs VMs running on darwin. These are waiting for reviews for quite a while. https://github.com/NixOS/nixpkgs/pull/440579 - keeping VM gcroots alive while VM is running (on Lix for now) fix dns resolution for some vpn scenarios; enabling local dns resolver for linux builder: https://github.com/NixOS/nixpkgs/pull/434893 02:06:41
@flokli:matrix.orgflokli emilycan you bonk https://github.com/NixOS/nixpkgs/pull/474675 for now? 23:15:10
30 Dec 2025
@nadia:nhp.shNadiaso I'm not sure if this is actually a nix-related issue at all, but has anyone had problems with processes in the terminal just kinda hanging up after a while? Specifically it happens with the fish shell from nixpkgs, it simply gets stuck forever during launching it, not even lldb can pause or kill the process06:18:40
@nadia:nhp.shNadiaon macOS 26.206:19:01
@nadia:nhp.shNadiait's kinda the same symptoms as on linux when you get I/O errors that cause processes to become stuck and completely unkillable06:28:02
19 May 2021
@grahamc:nixos.org@grahamc:nixos.org set the history visibility to "world_readable".19:22:35

Show newer messages


Back to Room ListRoom Version: 6