2025/12/18

Newest at the top

2025-12-18 21:24:08 +0100 <int-e> Other languages had you write dozens of lines of marshalling code by hand for the most trivial functions.
2025-12-18 21:24:07 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-18 21:23:31 +0100 <int-e> And fwiw, as FFIs go Haskell's is actually pretty nice, especially considering how old it is.
2025-12-18 21:22:55 +0100 <monochrom> (It's what gtk2hs does.)
2025-12-18 21:22:35 +0100 <monochrom> (How better? You can send a f**king IO action as a message too. It doesn't even need to be data!)
2025-12-18 21:22:00 +0100omidmash(~omidmash@user/omidmash) omidmash
2025-12-18 21:21:53 +0100 <monochrom> And is particularly sweet in Haskell because Haskell has a much better API for sending messages to worker threads and/or pools.
2025-12-18 21:21:47 +0100omidmash(~omidmash@user/omidmash) (Quit: Ping timeout (120 seconds))
2025-12-18 21:21:38 +0100Googulator72(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu) (Quit: Client closed)
2025-12-18 21:21:06 +0100 <monochrom> If you want tight control on which thread does what, the technique of "worker thread pool" has been well known for decades.
2025-12-18 21:20:41 +0100Googulator75(~Googulato@2a01-036d-0106-48e4-3c18-a4bd-1bda-7c8b.pool6.digikabel.hu)
2025-12-18 21:19:28 +0100 <int-e> C libraries don't control from which threads they're called either
2025-12-18 21:19:27 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-18 21:19:17 +0100 <monochrom> You can assume that the end user has made the correct choice between forkIO and forkOS.
2025-12-18 21:18:23 +0100qqe(~qqq@185.54.20.98)
2025-12-18 21:18:17 +0100 <haskellbridge> <Liamzee> Still, if I'm trying to build a library wrapper, I can't control whether the end user is using forkIO or forkOS
2025-12-18 21:17:42 +0100 <haskellbridge> <Liamzee> yes, I've used it.
2025-12-18 21:17:36 +0100 <haskellbridge> <Liamzee> So, now I'm thinking no-inline unsafePerformIO global locks. ???
2025-12-18 21:17:36 +0100 <monochrom> Have you heard of forkOS?
2025-12-18 21:16:47 +0100 <monochrom> I am not interested in blaming C, or blaming anything, at least for now.
2025-12-18 21:16:33 +0100 <haskellbridge> <Liamzee> I've been trying to build a wrapper around the tinyfiledialogs library, and it turns out that traverse_ forkIO, on Macos, at least, will cause the script runner to jam buffers
2025-12-18 21:16:03 +0100 <haskellbridge> <Liamzee> From experienced production devs: is it cursed?
2025-12-18 21:15:51 +0100 <haskellbridge> <Liamzee> I mean you can always blame C etc for it
2025-12-18 21:15:39 +0100 <monochrom> Is Haskell concurrency + FFI cursed?
2025-12-18 21:14:10 +0100 <haskellbridge> <Liamzee> is the real reason people don't want to use Haskell as an orchestrator that Haskell concurrency + FFI is cursed?
2025-12-18 21:12:58 +0100humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-12-18 21:08:39 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds)
2025-12-18 21:03:39 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-18 20:55:13 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-18 20:52:45 +0100lockna(~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection)
2025-12-18 20:52:12 +0100l0ckna(~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72)
2025-12-18 20:52:10 +0100lockna(~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72)
2025-12-18 20:51:55 +0100lockna(~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72) (Remote host closed the connection)
2025-12-18 20:51:21 +0100lockna(~obr@2001:4bb8:103:9f41:2b3f:110b:6da3:4d72)
2025-12-18 20:49:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-18 20:39:19 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds)
2025-12-18 20:39:08 +0100pavonia(~user@user/siracusa) siracusa
2025-12-18 20:34:11 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) merijn
2025-12-18 20:33:40 +0100Lord_of_Life_Lord_of_Life
2025-12-18 20:32:56 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
2025-12-18 20:32:20 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2025-12-18 20:29:51 +0100CiaoSen(~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) CiaoSen
2025-12-18 20:28:52 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Ping timeout: 244 seconds)
2025-12-18 20:28:19 +0100shaeto(~Shaeto@94.25.234.244) (Client Quit)
2025-12-18 20:27:37 +0100shaeto(~Shaeto@94.25.234.244)
2025-12-18 20:26:50 +0100shaeto(~Shaeto@94.25.234.244) (Quit: WeeChat 4.1.1)
2025-12-18 20:22:55 +0100merijn(~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 240 seconds)
2025-12-18 20:20:55 +0100weary-traveler(~user@user/user363627) user363627
2025-12-18 20:20:21 +0100Tuplanolla(~Tuplanoll@88-114-88-95.elisa-laajakaista.fi) Tuplanolla
2025-12-18 20:19:06 +0100talismanick(~user@2601:644:8502:d340::cd3d) talismanick