2024/11/01

2024-11-01 00:01:19 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 260 seconds)
2024-11-01 00:01:30 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 00:04:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 00:05:49 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 00:05:58 +0100smtt(smt@user/smtt) (Quit: WeeChat 4.4.2)
2024-11-01 00:06:18 +0100smtt(smt@user/smtt) smtt
2024-11-01 00:15:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 00:19:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-11-01 00:25:19 +0100hgolden_(~hgolden@static-198-44-129-51.cust.tzulo.com) hgolden
2024-11-01 00:28:27 +0100hgolden__(~hgolden@23.162.40.28) (Ping timeout: 276 seconds)
2024-11-01 00:28:54 +0100xff0x(~xff0x@2405:6580:b080:900:adf3:98f8:7ac2:6549) (Ping timeout: 260 seconds)
2024-11-01 00:32:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 00:35:58 +0100xff0x(~xff0x@2405:6580:b080:900:394c:a0ff:7b90:1a8c)
2024-11-01 00:38:02 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 00:46:06 +0100Square2(~Square4@user/square) Square
2024-11-01 00:48:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 00:49:12 +0100Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-11-01 00:49:59 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 00:52:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds)
2024-11-01 00:54:42 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 01:03:56 +0100son0p(~ff@190.254.147.212) son0p
2024-11-01 01:13:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 01:14:40 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 01:14:46 +0100acidjnk_new(~acidjnk@p200300d6e7283f63e05ee1ad1cad2e54.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
2024-11-01 01:19:04 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-11-01 01:21:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 01:25:21 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-11-01 01:27:08 +0100son0p(~ff@190.254.147.212) (Remote host closed the connection)
2024-11-01 01:27:36 +0100xff0x(~xff0x@2405:6580:b080:900:394c:a0ff:7b90:1a8c) (Ping timeout: 276 seconds)
2024-11-01 01:29:07 +0100Nixkernal(~Nixkernal@90.74.198.178.dynamic.cust.swisscom.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-11-01 01:29:44 +0100son0p(~ff@190.254.147.212) son0p
2024-11-01 01:32:09 +0100acidjnk_new(~acidjnk@p200300d6e7283f63a42f1e536c595cb6.dip0.t-ipconnect.de)
2024-11-01 01:32:25 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 01:36:03 +0100Square2(~Square4@user/square) (Ping timeout: 276 seconds)
2024-11-01 01:36:09 +0100Square(~Square@user/square) Square
2024-11-01 01:36:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-11-01 01:47:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 01:47:51 +0100sprotte24_(~sprotte24@p200300d16f105500d15704183d531f13.dip0.t-ipconnect.de) (Quit: Leaving)
2024-11-01 01:54:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 01:55:33 +0100acidjnk_new(~acidjnk@p200300d6e7283f63a42f1e536c595cb6.dip0.t-ipconnect.de) (Ping timeout: 276 seconds)
2024-11-01 01:55:51 +0100euleritian(~euleritia@176.2.142.161) (Remote host closed the connection)
2024-11-01 01:56:09 +0100euleritian(~euleritia@176.2.142.161)
2024-11-01 01:59:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 02:04:15 +0100Square(~Square@user/square) (Ping timeout: 244 seconds)
2024-11-01 02:04:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 02:07:22 +0100 <haskellbridge> <zwro> is (pure@IO . ($!!)) the same as (evaluate . force) ?
2024-11-01 02:13:07 +0100 <haskellbridge> <zwro> * (pure @IO . ($!!)) equivalent to
2024-11-01 02:13:33 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-11-01 02:14:32 +0100 <dolio> No.
2024-11-01 02:15:02 +0100son0p(~ff@190.254.147.212) (Remote host closed the connection)
2024-11-01 02:15:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 02:15:11 +0100 <EvanR> :t force
2024-11-01 02:15:12 +0100 <lambdabot> NFData a => a -> a
2024-11-01 02:16:00 +0100 <EvanR> force evaluates to normal form, $! doesn't
2024-11-01 02:16:17 +0100 <dolio> ($!!) does, but they're still not equivalent.
2024-11-01 02:16:32 +0100 <EvanR> $!! wasn't a typo, dang
2024-11-01 02:16:50 +0100 <EvanR> :t ($!!)
2024-11-01 02:16:52 +0100 <lambdabot> NFData a => (a -> b) -> a -> b
2024-11-01 02:16:57 +0100 <int-e> but the type is all wrong
2024-11-01 02:17:14 +0100 <int-e> pure . <anything> won't force its argment
2024-11-01 02:18:28 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 02:19:44 +0100spew(~spew@201.141.99.170) (Quit: party time)
2024-11-01 02:20:01 +0100 <int-e> (pure $!!) is still not equivalent though.
2024-11-01 02:20:08 +0100 <dolio> Right. :)
2024-11-01 02:20:43 +0100 <int-e> compare (evaluate undefined :: IO ()) `seq` () and (pure $! undefined :: IO ()) `seq` ()
2024-11-01 02:22:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 02:32:07 +0100 <EvanR> > pure $! undefined :: IO ()
2024-11-01 02:32:08 +0100 <lambdabot> <IO ()>
2024-11-01 02:32:25 +0100califax(~califax@user/califx) (Remote host closed the connection)
2024-11-01 02:32:45 +0100 <EvanR> % pure $! undefined :: IO ()
2024-11-01 02:32:45 +0100 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:27:9 in interactive:Ghci5
2024-11-01 02:32:54 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 02:32:59 +0100 <EvanR> % (pure $! undefined :: IO ()) `seq` ()
2024-11-01 02:32:59 +0100 <yahb2> *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:29:10 in interactive:Ghci5
2024-11-01 02:33:12 +0100 <EvanR> sus
2024-11-01 02:37:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 02:39:21 +0100gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-11-01 02:41:32 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-11-01 02:43:19 +0100califax(~califax@user/califx) califx
2024-11-01 02:48:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 02:52:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 03:00:07 +0100mantraofpie(~mantraofp@user/mantraofpie) (Remote host closed the connection)
2024-11-01 03:00:07 +0100chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2024-11-01 03:00:27 +0100mantraofpie(~mantraofp@user/mantraofpie) mantraofpie
2024-11-01 03:00:48 +0100gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-11-01 03:00:55 +0100chiselfuse(~chiselfus@user/chiselfuse) chiselfuse
2024-11-01 03:01:33 +0100gmg(~user@user/gehmehgeh) gehmehgeh
2024-11-01 03:03:39 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-11-01 03:03:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 03:04:07 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2024-11-01 03:08:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 03:16:55 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:5054:ee1b:c12f:dd7d) k_hachig
2024-11-01 03:17:15 +0100k_hachig_k_hachig
2024-11-01 03:19:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 03:22:00 +0100Natch(~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 252 seconds)
2024-11-01 03:23:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 03:24:58 +0100weary-traveler(~user@user/user363627) user363627
2024-11-01 03:34:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 03:36:43 +0100Axman6(~Axman6@user/axman6) (Remote host closed the connection)
2024-11-01 03:36:58 +0100Axman6(~Axman6@user/axman6) Axman6
2024-11-01 03:40:47 +0100lol_(~lol@2603:3016:1e01:b9c0:c43d:6fb:2607:cd8b)
2024-11-01 03:41:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 03:44:43 +0100jcolanternpenter(~lol@2603:3016:1e01:b9c0:d0c3:d4d0:7258:5a99) (Ping timeout: 252 seconds)
2024-11-01 03:52:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 03:57:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 04:07:53 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 04:12:14 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 04:18:42 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-11-01 04:22:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 04:24:16 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2024-11-01 04:27:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 04:32:15 +0100Axma54801(~Axman6@user/axman6) Axman6
2024-11-01 04:33:00 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 248 seconds)
2024-11-01 04:36:27 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 04:37:14 +0100habib(~habib@185.195.232.169) (Ping timeout: 260 seconds)
2024-11-01 04:38:10 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 04:38:53 +0100Axman6(~Axman6@user/axman6) Axman6
2024-11-01 04:40:49 +0100Axma74595(~Axman6@user/axman6) Axman6
2024-11-01 04:40:51 +0100Axma54801(~Axman6@user/axman6) (Ping timeout: 250 seconds)
2024-11-01 04:41:05 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 255 seconds)
2024-11-01 04:43:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 04:43:27 +0100Axman6(~Axman6@user/axman6) (Ping timeout: 250 seconds)
2024-11-01 04:53:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 04:56:18 +0100alphabitserial(~alphabits@user/alphabitserial) alphabitserial
2024-11-01 04:58:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 04:58:21 +0100td_(~td@i53870906.versanet.de) (Ping timeout: 252 seconds)
2024-11-01 05:00:02 +0100td_(~td@i5387091D.versanet.de)
2024-11-01 05:06:14 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Remote host closed the connection)
2024-11-01 05:06:39 +0100ChaiTRex(~ChaiTRex@user/chaitrex) ChaiTRex
2024-11-01 05:08:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 05:13:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-11-01 05:22:50 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-01 05:24:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 05:29:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-11-01 05:40:20 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 05:41:58 +0100alphabitserial(~alphabits@user/alphabitserial) (Quit: goodnight!)
2024-11-01 05:45:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 05:54:08 +0100libertyprime(~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) libertyprime
2024-11-01 05:55:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 05:55:51 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 06:00:24 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 06:00:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 06:18:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 06:23:12 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 06:24:42 +0100alp(~alp@2001:861:e3d6:8f80:b811:e433:6175:d950) (Ping timeout: 252 seconds)
2024-11-01 06:26:05 +0100bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-11-01 06:28:57 +0100rvalue-(~rvalue@user/rvalue) rvalue
2024-11-01 06:29:22 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 248 seconds)
2024-11-01 06:33:36 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 06:33:41 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) (Ping timeout: 248 seconds)
2024-11-01 06:34:45 +0100rvalue-rvalue
2024-11-01 06:35:35 +0100Axma74595Axman6
2024-11-01 06:36:45 +0100ezzieyguywuf(~Unknown@user/ezzieyguywuf) ezzieyguywuf
2024-11-01 06:38:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 06:41:53 +0100bliminse(~bliminse@user/bliminse) bliminse
2024-11-01 06:44:46 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-11-01 06:48:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 06:50:00 +0100k_hachig(~k_hachig@2607:fea8:351d:ef0:5054:ee1b:c12f:dd7d) (Ping timeout: 276 seconds)
2024-11-01 06:53:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-11-01 06:56:44 +0100misterfish(~misterfis@84.53.85.146) misterfish
2024-11-01 07:01:45 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:68da:2df0:a70f:fa91) k_hachig
2024-11-01 07:05:40 +0100benkard(~mulk@pd95146e9.dip0.t-ipconnect.de) mulk
2024-11-01 07:06:32 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 07:07:33 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2024-11-01 07:07:34 +0100benkardmulk
2024-11-01 07:07:35 +0100poscat(~poscat@user/poscat) poscat
2024-11-01 07:07:45 +0100poscat0x04(~poscat@user/poscat) (Ping timeout: 246 seconds)
2024-11-01 07:08:19 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:68da:2df0:a70f:fa91) (Ping timeout: 260 seconds)
2024-11-01 07:11:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 07:16:00 +0100tcard_(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2024-11-01 07:21:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 07:32:21 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 07:35:09 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 260 seconds)
2024-11-01 07:37:06 +0100tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2024-11-01 07:41:53 +0100Natch(~natch@c-92-34-7-158.bbcust.telenor.se)
2024-11-01 07:43:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 07:47:50 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 07:58:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 08:00:00 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-11-01 08:00:42 +0100caconym(~caconym@user/caconym) caconym
2024-11-01 08:04:09 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 08:04:29 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-11-01 08:05:47 +0100JamesMowery43(~JamesMowe@ip98-167-207-182.ph.ph.cox.net) (Quit: Ping timeout (120 seconds))
2024-11-01 08:08:56 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
2024-11-01 08:09:34 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 08:16:21 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-11-01 08:20:18 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 08:21:47 +0100alp(~alp@2001:861:e3d6:8f80:ad12:d0e9:d071:fba7)
2024-11-01 08:22:52 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) mulk
2024-11-01 08:25:33 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 08:28:30 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-11-01 08:32:19 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) (Quit: Lost terminal)
2024-11-01 08:35:40 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 08:40:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 08:40:28 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 08:44:57 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 08:44:59 +0100Lord_of_Life_(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-11-01 08:46:09 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds)
2024-11-01 08:47:53 +0100Lord_of_Life_Lord_of_Life
2024-11-01 08:49:05 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
2024-11-01 08:51:04 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 08:56:06 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 08:56:56 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 09:03:16 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 09:08:27 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 09:09:33 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-11-01 09:15:02 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-11-01 09:18:14 +0100misterfish(~misterfis@84.53.85.146) misterfish
2024-11-01 09:18:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 09:20:14 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-11-01 09:23:42 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 09:25:30 +0100Leary(~Leary@user/Leary/x-0910699) (Remote host closed the connection)
2024-11-01 09:25:44 +0100Leary(~Leary@user/Leary/x-0910699) Leary
2024-11-01 09:26:52 +0100ljdarj(~Thunderbi@user/ljdarj) ljdarj
2024-11-01 09:26:56 +0100ljdarj(~Thunderbi@user/ljdarj) (Client Quit)
2024-11-01 09:29:37 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 09:33:37 +0100acidjnk_new(~acidjnk@p200300d6e7283f30213745c1d38acbc7.dip0.t-ipconnect.de) acidjnk
2024-11-01 09:34:01 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 09:39:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 09:40:57 +0100CiaoSen(~Jura@2a05:5800:487:0:ca4b:d6ff:fec1:99da) CiaoSen
2024-11-01 09:44:31 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 09:49:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 09:50:12 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 09:51:53 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 265 seconds)
2024-11-01 09:54:34 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-11-01 09:56:19 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 10:00:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 10:01:27 +0100troydm(~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
2024-11-01 10:08:33 +0100Miroboru(~myrvoll@178-164-114.82.3p.ntebredband.no) Miroboru
2024-11-01 10:16:06 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-11-01 10:22:16 +0100Square2(~Square4@user/square) Square
2024-11-01 10:27:16 +0100 <tomsmeding> my experience with this stuff is that IO seems to be strict in all your tests, but it fails if you actually want to use that for code correctness
2024-11-01 10:27:19 +0100 <tomsmeding> so use evaluate and be safe
2024-11-01 10:34:05 +0100 <c_wraith> evaluate isn't magic. the documentation explains what does and why.
2024-11-01 10:35:43 +0100 <tomsmeding> right. In practice, though, not using `evaluate` comes to bite me not in the presence of exceptions but when benchmarking
2024-11-01 10:36:10 +0100 <tomsmeding> if you want to benchmark an IO operation and are doing the timing manually for some reason, please, use `evaluate`. Using `return $! _` or something similar _will not work properly_
2024-11-01 10:36:15 +0100 <tomsmeding> it will work sometimes
2024-11-01 10:49:12 +0100xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 276 seconds)
2024-11-01 10:59:52 +0100driib318(~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
2024-11-01 11:00:32 +0100driib318(~driib@vmi931078.contaboserver.net) driib
2024-11-01 11:09:52 +0100libertyprime(~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) (Ping timeout: 252 seconds)
2024-11-01 11:12:00 +0100Natch(~natch@c-92-34-7-158.bbcust.telenor.se) (Ping timeout: 272 seconds)
2024-11-01 11:14:14 +0100zmt00(~zmt00@user/zmt00) zmt00
2024-11-01 11:15:22 +0100zmt01(~zmt00@user/zmt00) zmt00
2024-11-01 11:16:18 +0100swamp_(~zmt00@user/zmt00) (Ping timeout: 248 seconds)
2024-11-01 11:16:19 +0100lxsameer(~lxsameer@Serene/lxsameer) lxsameer
2024-11-01 11:16:45 +0100ubert(~Thunderbi@178.115.51.39.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2024-11-01 11:18:30 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 11:19:45 +0100zmt00(~zmt00@user/zmt00) (Ping timeout: 276 seconds)
2024-11-01 11:21:49 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-11-01 11:22:06 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-11-01 11:22:45 +0100absence(torgeihe@hildring.pvv.ntnu.no) absence
2024-11-01 11:25:15 +0100 <absence> Is it possible to pass an implicit parameter explicitly, without creating a binding in the calling scope?
2024-11-01 11:25:37 +0100 <mauke> why without creating a binding?
2024-11-01 11:25:38 +0100 <tomsmeding> you can create the binding locally
2024-11-01 11:25:46 +0100 <tomsmeding> `let ?param = _ in f x y z`
2024-11-01 11:26:19 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-11-01 11:26:55 +0100 <absence> mauke: Less clutter, and clearer intent.
2024-11-01 11:27:12 +0100 <tomsmeding> using a let-binding is the only way to set implicit parameters
2024-11-01 11:27:26 +0100 <absence> I see, thanks!
2024-11-01 11:32:18 +0100chele(~chele@user/chele) chele
2024-11-01 11:32:58 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 252 seconds)
2024-11-01 11:50:41 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 11:56:29 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 260 seconds)
2024-11-01 12:01:23 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-11-01 12:12:28 +0100sprotte24(~sprotte24@p200300d16f13bb00e9ebafc1049584f7.dip0.t-ipconnect.de)
2024-11-01 12:15:11 +0100 <sprotte24> Hi
2024-11-01 12:15:21 +0100 <Rembane> Hi sprotte24 !
2024-11-01 12:15:35 +0100 <sprotte24> I want to write a Haskell program
2024-11-01 12:15:47 +0100 <sprotte24> Hi, Rembane
2024-11-01 12:15:51 +0100 <mauke> what's it do?
2024-11-01 12:16:19 +0100 <Hecate> rembaaaaaaane
2024-11-01 12:16:25 +0100 <Hecate> what's uuuuup
2024-11-01 12:16:28 +0100 <sprotte24> The Haskell programm has to compute the nearest Power of two for a given n.
2024-11-01 12:16:34 +0100 <Hecate> sprotte24: nice
2024-11-01 12:16:37 +0100 <sprotte24> Example:
2024-11-01 12:16:42 +0100 <mauke> oh, is this homework?
2024-11-01 12:17:21 +0100 <sprotte24> n= 9 nearest Power is 16
2024-11-01 12:17:35 +0100 <mauke> I'd say it's 8
2024-11-01 12:17:41 +0100 <sprotte24> Yes. kome work
2024-11-01 12:18:03 +0100 <Hecate> mauke: maybe they have to round to the highest power of 2
2024-11-01 12:18:15 +0100 <mauke> yeah, that actually makes things easier
2024-11-01 12:18:22 +0100 <Rembane> Hecate: Suuuuuuuuuuuuuuuuuup! :D
2024-11-01 12:18:23 +0100 <sprotte24> The restriction: using binary is forbidden.
2024-11-01 12:18:33 +0100 <mauke> define "using binary"
2024-11-01 12:18:38 +0100 <mauke> like bit shifts?
2024-11-01 12:18:46 +0100 <Hecate> damnit I was about to suggest that hahahaha
2024-11-01 12:19:23 +0100 <Hecate> Rembane: I'm not doing too bad! Still at Chalmers?
2024-11-01 12:20:15 +0100 <sprotte24> ok. if I use binary number, the Powers of 2 have the format 1, 10 100 1000 and so on
2024-11-01 12:20:20 +0100 <mauke> :t head . dropWhile (< ?n) . iterate (2 *) $ 1
2024-11-01 12:20:21 +0100 <lambdabot> (Ord c, ?n::c, Num c) => c
2024-11-01 12:20:29 +0100 <Rembane> Hecate: Still at Chalmers! I'll be done any day now. :D
2024-11-01 12:21:21 +0100 <sprotte24> I am not allowed to use a list
2024-11-01 12:21:33 +0100 <Hecate> Rembane: lovely. :) Say hi to Andreas Abel from me if you meet him
2024-11-01 12:21:45 +0100 <Rembane> Hecate: Sure thing! :D
2024-11-01 12:22:40 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 12:22:41 +0100 <sprotte24> I have to test whether nearestPowerOfTwo n >= 2^k
2024-11-01 12:23:36 +0100misterfish(~misterfis@31-161-39-137.biz.kpn.net) misterfish
2024-11-01 12:24:01 +0100 <sprotte24> One Problem: my input parameter is n and I have to increment k until the condition is satisfied
2024-11-01 12:24:24 +0100 <mauke> ah, the slow way
2024-11-01 12:24:30 +0100weary-traveler(~user@user/user363627) user363627
2024-11-01 12:24:42 +0100 <mauke> where are you stuck?
2024-11-01 12:24:51 +0100 <sprotte24> I suppose I need a local variaable for k?
2024-11-01 12:25:44 +0100 <sprotte24> I plan to build an recursive solution?
2024-11-01 12:26:15 +0100 <mauke> yeah, if you want to emulate a loop in functional code, it's always going to be a recursive function
2024-11-01 12:26:32 +0100 <mauke> (or a data structure like a list, but you're not allowed to do that, apparently)
2024-11-01 12:26:33 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 265 seconds)
2024-11-01 12:26:55 +0100 <mauke> any "loop variable" that changes in the loop is going to become a function parameter
2024-11-01 12:27:34 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
2024-11-01 12:28:06 +0100 <sprotte24> In my recursive loop I have to Test an to increment the Power index.
2024-11-01 12:28:49 +0100 <sprotte24> I had a solution, but that solution used 2 parameters n and k.
2024-11-01 12:29:05 +0100 <sprotte24> I show it, one moment please
2024-11-01 12:30:05 +0100 <Hecate> sprotte24: don't hesitate to use play.haskell.org !
2024-11-01 12:31:08 +0100 <sprotte24> -- 3.3 next power2
2024-11-01 12:31:08 +0100 <sprotte24> roundUpToPower2 :: Int -> Int -> Int
2024-11-01 12:31:08 +0100 <sprotte24> roundUpToPower2 n k = if n == 1 then 1
2024-11-01 12:31:08 +0100 <sprotte24> else if (nthPowerTwo k) >= n then (nthPowerTwo k)
2024-11-01 12:31:08 +0100 <sprotte24> else roundUpToPower2 n (k + 1)
2024-11-01 12:31:08 +0100 <sprotte24> roundUpToPowerTwo :: Int -> Int
2024-11-01 12:31:10 +0100 <sprotte24> roundUpToPowerTwo n = roundUpToPower2 n 1
2024-11-01 12:31:43 +0100 <sprotte24> -- 3.1 nthPowerTwo
2024-11-01 12:31:43 +0100 <sprotte24> nthPowerTwo :: Int -> Int
2024-11-01 12:31:43 +0100 <sprotte24> nthPowerTwo n = if n==0 then 1 else 2*nthPowerTwo(n-1)
2024-11-01 12:31:50 +0100 <mauke> plase don't paste into IRC
2024-11-01 12:31:58 +0100 <mauke> use a paste site like https://paste.tomsmeding.com to show code
2024-11-01 12:32:24 +0100 <sprotte24> ok
2024-11-01 12:33:05 +0100 <mauke> (and give us the link)
2024-11-01 12:34:23 +0100 <mauke> anyway, that looks like it would work
2024-11-01 12:34:55 +0100 <mauke> nthPowerTwo k could be replaced by 2 ^ k
2024-11-01 12:36:43 +0100 <sprotte24> We should not use the power function directly
2024-11-01 12:37:07 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 12:37:47 +0100 <sprotte24> or I use a function double
2024-11-01 12:40:17 +0100 <sprotte24> Two ways: double the base 2 (1 2 4 8 ...) or increment the exponent of 2
2024-11-01 12:40:22 +0100rvalue-(~rvalue@user/rvalue) rvalue
2024-11-01 12:40:47 +0100rvalue(~rvalue@user/rvalue) (Ping timeout: 244 seconds)
2024-11-01 12:43:24 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 12:47:32 +0100 <sprotte24> I have to leave home in 5 minutes and could contine in the later afternoon with my problem.
2024-11-01 12:48:16 +0100rvalue-rvalue
2024-11-01 12:48:25 +0100 <mauke> did you have a question?
2024-11-01 12:49:17 +0100 <sprotte24> my problem was the nearest power of 2
2024-11-01 12:51:03 +0100Square(~Square@user/square) Square
2024-11-01 12:51:58 +0100CatGPTcatties
2024-11-01 12:52:08 +0100 <sprotte24> bye
2024-11-01 12:52:14 +0100sprotte24(~sprotte24@p200300d16f13bb00e9ebafc1049584f7.dip0.t-ipconnect.de) (Quit: Leaving)
2024-11-01 12:55:18 +0100Square2(~Square4@user/square) (Ping timeout: 276 seconds)
2024-11-01 12:56:49 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-11-01 12:57:37 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 12:58:53 +0100weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-11-01 13:02:04 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 13:02:29 +0100CiaoSen(~Jura@2a05:5800:487:0:ca4b:d6ff:fec1:99da) (Ping timeout: 244 seconds)
2024-11-01 13:02:37 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 13:05:52 +0100turlando(~turlando@user/turlando) ()
2024-11-01 13:06:03 +0100 <Square> If you want to extend your build environemnt with a local package repository, what's your choices?
2024-11-01 13:06:18 +0100 <Square> local as organization wide.
2024-11-01 13:07:13 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
2024-11-01 13:09:50 +0100 <Square> I see cabal has means to configure more repositories. But what software does it use?
2024-11-01 13:12:04 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac
2024-11-01 13:12:25 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 13:14:58 +0100xff0x(~xff0x@2405:6580:b080:900:26bf:a0f9:b4d:93d8)
2024-11-01 13:29:49 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2024-11-01 13:38:37 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-11-01 13:45:25 +0100 <haskellbridge> <zwro> i'm still having trouble understanding the difference between (evaluate . force) and (pure @IO . ($!!))
2024-11-01 13:51:19 +0100 <mauke> same, but I think the semantics of the latter depend on how IO is implemented
2024-11-01 13:51:26 +0100euleritian(~euleritia@176.2.142.161) (Ping timeout: 255 seconds)
2024-11-01 13:53:29 +0100 <mauke> > evalState (do error "bang"; pure 2) ()
2024-11-01 13:53:31 +0100 <lambdabot> 2
2024-11-01 13:54:16 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 13:55:39 +0100euleritian(~euleritia@176.2.67.66)
2024-11-01 13:57:35 +0100 <tomsmeding> Square: https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-active-repositories may be relevant, but I've never used it
2024-11-01 13:58:16 +0100 <tomsmeding> oh there is more text in the latest version https://cabal.readthedocs.io/en/stable/cabal-project-description-file.html#cfg-field-active-reposi…
2024-11-01 13:59:00 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 14:00:47 +0100 <Square> tomsmeding, yeah i found those settings too. But what software do you use to run a repo? A company hackage if you will.
2024-11-01 14:01:37 +0100 <tomsmeding> Square: you might want to steal stuff from how head.hackage is implemented https://ghc.gitlab.haskell.org/head.hackage/
2024-11-01 14:05:01 +0100 <Leary> Square: https://hackage.haskell.org/ says "Hackage-server is on github [...]. Developer documentation is on in the github README, includig a quick guide to running your own server instance, and mirroring the central server."
2024-11-01 14:05:20 +0100 <Square> Gotcha. Thanks
2024-11-01 14:06:27 +0100 <tomsmeding> (it's nice how that head.hackage page shows how to add a 'repository' stanza to cabal.project.local, but then the cabal documentation is completely silent about such a stanza existing.)
2024-11-01 14:08:00 +0100Guest77(~Guest77@2402:a00:401:f093:da9e:f3ff:fe4b:8a8b)
2024-11-01 14:12:25 +0100 <mauke> are codes like "Cabal-4345" documented anywhere?
2024-11-01 14:15:44 +0100Xe(~cadey@perl/impostor/xe) (Quit: WeeChat 4.4.2)
2024-11-01 14:15:53 +0100 <haskellbridge> <zwro> mauke: that makes sense. i suspect GHC might optimize to the same core implementation but i need to test it
2024-11-01 14:18:05 +0100Guest77(~Guest77@2402:a00:401:f093:da9e:f3ff:fe4b:8a8b) (Quit: Client closed)
2024-11-01 14:18:45 +0100 <haskellbridge> <zwro> benchmarks for trivial cases show no discernible difference
2024-11-01 14:18:48 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-11-01 14:18:50 +0100 <merijn> mauke: They should be, that's the point ;)
2024-11-01 14:19:16 +0100 <merijn> Square: It uses "hackage"
2024-11-01 14:19:46 +0100 <merijn> Square: You can set up your own internal Hackage and Hoogle and have cabal fallback to the regular public one (if desired)
2024-11-01 14:20:10 +0100slac68956(~slack1256@179.60.70.224) slack1256
2024-11-01 14:21:15 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) mulk
2024-11-01 14:21:30 +0100 <Square> merijn, yeah. Seems to be it. I was thinking there were different options. But excellent if hackage availble.
2024-11-01 14:21:40 +0100Xe(~cadey@perl/impostor/xe) Xe
2024-11-01 14:21:41 +0100 <Square> is available*
2024-11-01 14:22:03 +0100slack1256(~slack1256@2803:c600:5111:8696:d97c:cbc8:139:bdb3) (Ping timeout: 244 seconds)
2024-11-01 14:23:10 +0100 <merijn> Square: I think it can use "dumb" disk repos too so you could have a shared network filesystem or something and use that
2024-11-01 14:23:30 +0100 <merijn> but if you run hackage you get the benefits of hyperlinked browsable docs for internal libs for free
2024-11-01 14:23:57 +0100Square2(~Square4@user/square) Square
2024-11-01 14:24:02 +0100 <mauke> merijn: I'll take that as a "no"
2024-11-01 14:24:17 +0100 <mauke> nothing in the manual, nothing on the website, nothing in a google search
2024-11-01 14:24:29 +0100 <merijn> mauke: Hecate was leading something on error codes in GHC
2024-11-01 14:24:47 +0100 <merijn> I'm assuming cabal codes are extension of that
2024-11-01 14:25:01 +0100 <yushyin> the error message index website? yes, but it is incomplete
2024-11-01 14:25:04 +0100 <merijn> mauke: https://discourse.haskell.org/t/announcing-the-haskell-error-index/5195
2024-11-01 14:25:12 +0100 <yushyin> https://errors.haskell.org/cabal/
2024-11-01 14:26:11 +0100 <mauke> nothing there either
2024-11-01 14:26:27 +0100 <merijn> I see some CABAL-xxx codes there
2024-11-01 14:26:43 +0100 <mauke> hah: "So far, 1 Cabal errors and warnings are documented here."
2024-11-01 14:26:48 +0100 <mauke> 1 whole errors
2024-11-01 14:26:48 +0100 <merijn> nice :)
2024-11-01 14:27:20 +0100 <merijn> mauke: Work in progress ;)
2024-11-01 14:27:32 +0100 <merijn> Step one is *having* unique codes, step two is documenting them ;)
2024-11-01 14:30:08 +0100 <mauke> how do I tell cabal what C compiler to use?
2024-11-01 14:30:33 +0100 <merijn> mauke: You can't tell cabal, you need to tell GHC
2024-11-01 14:30:47 +0100 <merijn> mauke: Cabal just invokes GHC on C files, which determines what C compiler to call
2024-11-01 14:30:58 +0100 <merijn> I think there was either a config file or GHC flag to tell it to use something else
2024-11-01 14:31:01 +0100 <mauke> no, cabal is doing something stupid
2024-11-01 14:31:05 +0100 <mauke> and I can't figure out what
2024-11-01 14:31:13 +0100 <yushyin> 4345 is the missing deps on foreign libs error, no? this is one of the more murky errors
2024-11-01 14:31:35 +0100 <merijn> mauke: Error? And I assume you mean actual C and not secretly C++?
2024-11-01 14:31:46 +0100 <mauke> Missing (or bad) header file: wcalc.h
2024-11-01 14:32:01 +0100 <mauke> the fun part is that it only happens on 'cabal install'. 'cabal build' is fine with it
2024-11-01 14:32:09 +0100 <merijn> mauke: Ah, that sounds more like wrong include dirs than wrong compiler, no?
2024-11-01 14:32:20 +0100 <mauke> oh, the compiler is fine
2024-11-01 14:32:33 +0100 <merijn> mauke: Is the cabal file public?
2024-11-01 14:32:44 +0100 <mauke> but I can't get it to tell me wtf it's doing, so my plan is to configure a fake compiler that just dumps what's going on
2024-11-01 14:32:52 +0100 <merijn> ooh
2024-11-01 14:32:57 +0100 <merijn> I think I know :D
2024-11-01 14:33:05 +0100 <merijn> But lemme check the cabal file first
2024-11-01 14:33:24 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 14:33:48 +0100 <mauke> merijn: https://paste.tomsmeding.com/uNvsLOb0
2024-11-01 14:33:53 +0100 <merijn> mauke: First clue is: "build works, install fails". install *always* builds an sdist *first* and THEN installs from that. To protect against broken sdists
2024-11-01 14:34:05 +0100 <merijn> mauke: So most likely your sdist is fucked and not including the header
2024-11-01 14:34:29 +0100 <mauke> I wish it would stop building an sdist. all I want is an executable
2024-11-01 14:35:06 +0100 <merijn> mauke: Yeah, I think the problem is that `includes` doesn't include your headers in the sdist
2024-11-01 14:35:21 +0100 <merijn> mauke: My C shipping projects explicitly list headers under `extra-source-files`
2024-11-01 14:36:05 +0100 <merijn> mauke: https://github.com/merijn/Belewitte/blob/ed95965077ee0a55c9a206b75445ddf93723916b/benchmark-analys…
2024-11-01 14:36:28 +0100 <merijn> C-sources get included, `includes` does not (since it might contain generated/system/whatever stuff)
2024-11-01 14:39:24 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 260 seconds)
2024-11-01 14:40:26 +0100 <mauke> merijn: thank you!
2024-11-01 14:43:34 +0100 <mauke> wow, this is stupid. extra-source-files (where I specify my headers) can only be set at the global level, but it supports wildcards. c-sources (where I specify my c files) can only be set at the stanza level, but wildcards are not supported.
2024-11-01 14:43:34 +0100L29Ah(~L29Ah@wikipedia/L29Ah) ()
2024-11-01 14:44:42 +0100 <mauke> so for a simple directory with C code, I have to set 4 separate cabal fields, 3 of them in a stanza and 1 at package level
2024-11-01 14:47:41 +0100 <mauke> argh, and in the end I don't even get the executable I wanted :-(
2024-11-01 14:47:43 +0100 <mauke> it's just a symlink
2024-11-01 14:47:59 +0100ghoulpinevulpine
2024-11-01 14:48:14 +0100 <mauke> is there a way to make cabal install a real exectuable file instead of just a link?
2024-11-01 14:49:03 +0100 <mauke> ... this whole system doesn't seem to be designed for publishing applications
2024-11-01 14:51:46 +0100 <merijn> mauke: yes
2024-11-01 14:51:56 +0100 <merijn> There's a flag, forget the exact name
2024-11-01 14:53:15 +0100 <merijn> mauke: install-method
2024-11-01 14:53:28 +0100 <merijn> has a copy or symlink config
2024-11-01 14:54:10 +0100 <merijn> mauke: tbf, it is in fact, not designed for publishing applications. It's designed to be scripted/used by systems that build/publish applications :p
2024-11-01 14:55:06 +0100 <merijn> mauke: These are the config options you want: https://github.com/merijn/dotfiles/blob/0ea230e8ebf303749d547692cbb139f1399f1cd2/install/cabal/con…
2024-11-01 14:55:16 +0100 <mauke> ah, I see it. command-line only
2024-11-01 14:55:18 +0100 <mauke> merijn++
2024-11-01 14:56:17 +0100 <merijn> mauke: All the stuff you want for packaging is there, but the defaults are mostly set up for interactive development
2024-11-01 14:57:05 +0100 <merijn> Under the assumption that anyone who cares about packaging/publishing will write a script with the right config/flags once and use that
2024-11-01 14:58:10 +0100 <mauke> merijn: do you also happen to know why executable stripping doesn't work?
2024-11-01 14:58:51 +0100 <merijn> It should?
2024-11-01 14:58:59 +0100 <mauke> the documentation says executable-stripping: True is the default, but tmp/preflex: ELF 64-bit LSB executable, x86-64, [...] with debug_info, not stripped
2024-11-01 14:59:41 +0100 <merijn> hmm
2024-11-01 15:00:31 +0100 <mauke> works in cabal.project, though
2024-11-01 15:00:59 +0100 <merijn> did you just enable it?
2024-11-01 15:01:34 +0100 <merijn> mauke: I don't think it will rebuild previously installs after you change the global config (whereas changes to cabal.project *WILL* force a rebuild)
2024-11-01 15:01:39 +0100 <merijn> not sure about that, though
2024-11-01 15:02:05 +0100 <merijn> mauke: Also, if you're building executables for publishing: is `split-sections` on?
2024-11-01 15:02:39 +0100 <merijn> That will *massively* shrink your executable size (although it will mean having to rebuild the world :p)
2024-11-01 15:02:50 +0100 <mauke> if I delete tmp, comment out 'exectuable-stripping: True' in cabal.project, and rerun 'cabal install', I get a non-stripped file
2024-11-01 15:04:38 +0100 <merijn> split-sections causes GHC to put every top level export into it's own linker section, so that any moderately modern linker can include only the (transitive) symbols you actually use. Instead of linking every transitive dependency even if you don't use them
2024-11-01 15:05:03 +0100 <mauke> wasn't on before. rebuilding world now ... :-)
2024-11-01 15:05:18 +0100 <merijn> So it can (theoretically) lob off entire sections of your dependency graph if you use only a fraction of libraries with big dependency lists
2024-11-01 15:06:03 +0100 <merijn> I think I'd something like a 20x reduction in final binary size
2024-11-01 15:06:53 +0100 <mauke> ah, building 'encoding' now. that always takes forever
2024-11-01 15:07:09 +0100 <tomsmeding> mauke: "I just want an executable" `cp $(cabal list-bin yourexename) wherever`
2024-11-01 15:07:12 +0100 <merijn> anyway, gotta get back to work
2024-11-01 15:07:26 +0100 <merijn> tomsmeding: I mean, --install-method=copy --install-dir=foo does the same
2024-11-01 15:07:36 +0100 <tomsmeding> except it goes through sdist
2024-11-01 15:07:49 +0100 <merijn> tomsmeding: Which means it detects broken cabal configs ;)
2024-11-01 15:07:54 +0100 <tomsmeding> (not saying that's a bad thing)
2024-11-01 15:07:55 +0100 <merijn> Which is good TM
2024-11-01 15:07:58 +0100 <tomsmeding> right
2024-11-01 15:08:50 +0100 <mauke> "broken" is debatable
2024-11-01 15:09:24 +0100 <mauke> given that it works fine as long as you don't sdist, which I have no intention of ever doing
2024-11-01 15:11:49 +0100 <mauke> final tally:
2024-11-01 15:12:04 +0100 <mauke> cabal install with default options: 25M
2024-11-01 15:12:20 +0100 <merijn> mauke: I also have this neat lazy people trick for testing "in-development" executables https://github.com/NLeSC-AAA2/etherpacket/blob/master/EtherPacket
2024-11-01 15:12:31 +0100 <mauke> cabal install with 'executable-stripping: True' in project file: 16M
2024-11-01 15:12:42 +0100 <mauke> cabal install with split sections: 18M
2024-11-01 15:12:54 +0100 <mauke> cabal install with split sections and explicit executable-stripping: 11M
2024-11-01 15:13:10 +0100 <merijn> I dunno if adding library-stripping also work?
2024-11-01 15:13:51 +0100 <mauke> wow, that scriptpath thing looks ... overengineered
2024-11-01 15:14:44 +0100 <merijn> mauke: It's mostly "I was running on some stupidly broken machines" engineered
2024-11-01 15:14:50 +0100 <mauke> ah, it's just a realpath reimplementation
2024-11-01 15:14:54 +0100 <mauke> I see
2024-11-01 15:14:55 +0100 <merijn> basically
2024-11-01 15:15:17 +0100 <merijn> You can ignore that part on sane machine ;)
2024-11-01 15:15:40 +0100 <mauke> "running on stupid machines" is very valid
2024-11-01 15:16:23 +0100 <mauke> right now I'm using docker "backwards" in that I have a custom build container just for creating CentOS 7 binaries
2024-11-01 15:16:32 +0100 <mauke> which I then copy out to the host system
2024-11-01 15:17:12 +0100 <merijn> Using docker the "right" way is for people who don't know how to build/package their own stuff :p
2024-11-01 15:19:29 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 248 seconds)
2024-11-01 15:19:39 +0100 <merijn> Docker makes sense when you remember that lots of ecosystems (looking at you npm, typescript, python, etc.) don't have a sane boundary to distinguish "necessary at build/packaging" from "necessary at runtime". And while I share your annoyance of "I need to set 4 fields in .cabal to packabe my headers" is annoying. I find the clear distinction between "what is sdist, what is build time, and what is
2024-11-01 15:19:45 +0100 <merijn> runtime" to be one of the things preserving my sanity
2024-11-01 15:20:00 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-11-01 15:21:46 +0100 <mauke> I don't have generated files, so for me it's all "sdist" in a sense
2024-11-01 15:22:44 +0100tired(~tired@user/tired) tired
2024-11-01 15:22:46 +0100 <mauke> technically I could probably just delete the header files because I'm pretty sure ghc doesn't care anyway
2024-11-01 15:23:23 +0100 <mauke> oh hello, executable stripping works if I turn it on in ~/.cabal/config
2024-11-01 15:24:06 +0100 <merijn> \o/
2024-11-01 15:24:36 +0100 <merijn> mauke: GHC can automatically check whether your declared types match the headers
2024-11-01 15:24:45 +0100 <merijn> Which can be helpful for your sanity
2024-11-01 15:25:03 +0100 <merijn> Not to mention GHC being able to use CPP macros as values
2024-11-01 15:25:55 +0100 <mauke> define "can"
2024-11-01 15:26:44 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 15:27:29 +0100 <mauke> tomsmeding: the cp $(cabal list-bin yourexename) wherever method gives me a non-stripped executable
2024-11-01 15:27:48 +0100 <merijn> mauke: "can" for the type checking, you mean?
2024-11-01 15:28:10 +0100 <mauke> er, yes
2024-11-01 15:28:11 +0100vgtw(~vgtw@user/vgtw) vgtw
2024-11-01 15:29:07 +0100 <merijn> mauke: It's been awhile, but iirc if you mention the header file on the foreign import it will check that the Haskell type you declare for it corresponds to the C type
2024-11-01 15:29:10 +0100 <merijn> mauke: https://github.com/merijn/Belewitte/blob/ed95965077ee0a55c9a206b75445ddf93723916b/benchmark-analys…
2024-11-01 15:29:22 +0100Sgeo(~Sgeo@user/sgeo) Sgeo
2024-11-01 15:29:33 +0100 <merijn> (modulo marshalling as defined in the FFI part of the standard)
2024-11-01 15:29:50 +0100 <mauke> for ccall? are you sure?
2024-11-01 15:30:05 +0100 <mauke> I know capi does weird things
2024-11-01 15:30:37 +0100 <merijn> I thought it did
2024-11-01 15:30:54 +0100 <merijn> capi is very different, since it generates stubs instead of calling directly from Haskell
2024-11-01 15:31:16 +0100 <merijn> mauke: capi is nice for some things, though. Since it lets you foreign import CPP macros as values: https://github.com/merijn/Belewitte/blob/ed95965077ee0a55c9a206b75445ddf93723916b/benchmark-analys…
2024-11-01 15:31:19 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 260 seconds)
2024-11-01 15:31:20 +0100Square2(~Square4@user/square) (Ping timeout: 255 seconds)
2024-11-01 15:32:11 +0100 <mauke> I thought capi was what you were talking about when you mentioned CPP macros and checking against headers
2024-11-01 15:32:13 +0100 <merijn> I'd prefer ccall where possible, but capi is a huge win. I think capi also lets you reference Ptr to variables directly (as opposed to only functions)
2024-11-01 15:32:37 +0100 <mauke> importing addresses of variables is in the base FFI
2024-11-01 15:32:42 +0100 <merijn> mauke: CPP macros is capi only (but you can use both at the same time). The type checking I *thought* it also did for ccall
2024-11-01 15:33:09 +0100 <merijn> (IFF you declare the header at the import) but that might be a lie
2024-11-01 15:33:18 +0100 <merijn> can't check right now, since I have no GHC install on this machine
2024-11-01 15:34:44 +0100 <merijn> mauke: There was a case where the import of a variable was ambiguous compared to a function returning a pointer
2024-11-01 15:34:49 +0100 <merijn> or something
2024-11-01 15:34:52 +0100 <merijn> It's been a long time xD
2024-11-01 15:36:01 +0100 <mauke> huh. foreign import capi "pi.h value pi" c_pi :: CDouble
2024-11-01 15:36:18 +0100 <mauke> is documented as letting you refer to const double pi = 3.14;
2024-11-01 15:36:30 +0100 <mauke> but that's unsound, since the value of pi can change over time
2024-11-01 15:37:03 +0100 <EvanR> how does const double pi change over time
2024-11-01 15:37:10 +0100 <merijn> EvanR: Because const means nothing
2024-11-01 15:37:18 +0100 <mauke> const means read-only, not constant
2024-11-01 15:37:18 +0100 <merijn> mauke: tbf, it's actually sound
2024-11-01 15:37:31 +0100 <merijn> mauke: because modifying pi is UB
2024-11-01 15:37:33 +0100 <EvanR> in C, that's a const double, it's not changing
2024-11-01 15:37:49 +0100 <EvanR> unless you break everything, which you can do in haskell also
2024-11-01 15:38:08 +0100 <merijn> EvanR: C programmers regularly break everything :p
2024-11-01 15:38:12 +0100 <mauke> hold on, I need to check my standards
2024-11-01 15:38:14 +0100 <EvanR> sure
2024-11-01 15:38:22 +0100 <mauke> I know 'const volatile foo' is explicitly permmitted
2024-11-01 15:38:29 +0100 <EvanR> but like, I can write to any object in haskell too
2024-11-01 15:39:05 +0100 <EvanR> you can say that values in haskell change over time
2024-11-01 15:39:21 +0100 <merijn> mauke: Sure, but you're not permitted to write to that
2024-11-01 15:39:26 +0100vgtw(~vgtw@user/vgtw) (Ping timeout: 255 seconds)
2024-11-01 15:39:34 +0100 <merijn> mauke: Pretty sure const *is* "modification = UB"
2024-11-01 15:39:59 +0100 <merijn> mauke: Which of course in embedded doesn't prevent an address from changing in memory mapped IO
2024-11-01 15:40:09 +0100 <merijn> (or on non-embedded I suppose)
2024-11-01 15:40:10 +0100 <EvanR> "const means nothing" is just false
2024-11-01 15:40:26 +0100 <EvanR> unless nothing means anything, which I guess is one way to look at things
2024-11-01 15:40:31 +0100vgtw(~vgtw@user/vgtw) vgtw
2024-11-01 15:41:58 +0100 <mauke> EvanR: you're right, I misremembered
2024-11-01 15:42:29 +0100 <mauke> the presence of the initializer makes it a definition, and modifying an object whose definition includes 'const' is UB
2024-11-01 15:42:54 +0100 <EvanR> now while c_pi doesn't change over time, some people still think c changes over time (c being the speed of light)
2024-11-01 15:43:08 +0100 <EvanR> einstein forgot to put const
2024-11-01 15:43:42 +0100 <mauke> merijn: the 'const volatile' thing can't be written by the program, but it may still change (memory-mapped timer or something)
2024-11-01 15:45:08 +0100 <merijn> mauke: tbf, nothing about capi promises to obey the C standard ;)
2024-11-01 15:45:55 +0100 <merijn> It just says "I will convert this to a pure value", and it's up to you to not do stupid shit
2024-11-01 15:46:32 +0100 <EvanR> we choose when and what abstract world to live in
2024-11-01 15:46:43 +0100 <EvanR> whether it's formalized somewhere
2024-11-01 15:50:04 +0100tabemann(~tabemann@2600:1700:7990:24e0:cb63:a13b:e8da:1b84) (Remote host closed the connection)
2024-11-01 15:50:24 +0100tabemann(~tabemann@2600:1700:7990:24e0:141f:cdda:2f28:e1cc)
2024-11-01 15:53:31 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 16:00:10 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 272 seconds)
2024-11-01 16:10:15 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 16:12:17 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-11-01 16:13:42 +0100CiaoSen(~Jura@2a05:5800:487:0:ca4b:d6ff:fec1:99da) CiaoSen
2024-11-01 16:13:50 +0100misterfish(~misterfis@31-161-39-137.biz.kpn.net) (Ping timeout: 252 seconds)
2024-11-01 16:15:30 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 276 seconds)
2024-11-01 16:16:09 +0100AlexZenon(~alzenon@178.34.150.252) (Ping timeout: 276 seconds)
2024-11-01 16:19:42 +0100ShelobShe
2024-11-01 16:21:13 +0100ghoulguyglguy
2024-11-01 16:21:56 +0100AlexZenon(~alzenon@178.34.150.252)
2024-11-01 16:22:36 +0100econo_(uid147250@id-147250.tinside.irccloud.com)
2024-11-01 16:24:16 +0100rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-11-01 16:24:48 +0100rvalue(~rvalue@user/rvalue) rvalue
2024-11-01 16:25:41 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 16:29:10 +0100alp(~alp@2001:861:e3d6:8f80:ad12:d0e9:d071:fba7) (Remote host closed the connection)
2024-11-01 16:29:59 +0100alp(~alp@2001:861:e3d6:8f80:394e:fa36:1a51:e8c1)
2024-11-01 16:30:42 +0100dostoyevsky2(~sck@user/dostoyevsky2) (Ping timeout: 252 seconds)
2024-11-01 16:31:42 +0100alp(~alp@2001:861:e3d6:8f80:394e:fa36:1a51:e8c1) (Remote host closed the connection)
2024-11-01 16:32:31 +0100alp(~alp@2001:861:e3d6:8f80:d0dc:c5e7:387e:3419)
2024-11-01 16:32:39 +0100dostoyevsky2(~sck@user/dostoyevsky2) dostoyevsky2
2024-11-01 16:34:13 +0100alp(~alp@2001:861:e3d6:8f80:d0dc:c5e7:387e:3419) (Remote host closed the connection)
2024-11-01 16:42:53 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 16:56:08 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2)
2024-11-01 17:04:56 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 255 seconds)
2024-11-01 17:05:47 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 17:10:26 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 248 seconds)
2024-11-01 17:16:09 +0100euleritian(~euleritia@176.2.67.66) (Ping timeout: 260 seconds)
2024-11-01 17:20:45 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-11-01 17:23:12 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 17:28:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Read error: Connection reset by peer)
2024-11-01 17:28:15 +0100comerijn(~merijn@77.242.116.146) merijn
2024-11-01 17:31:16 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
2024-11-01 17:32:15 +0100stiell_(~stiell@gateway/tor-sasl/stiell) stiell
2024-11-01 17:32:55 +0100k_hachig_k_hachig
2024-11-01 17:33:19 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection)
2024-11-01 17:35:29 +0100CiaoSen(~Jura@2a05:5800:487:0:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds)
2024-11-01 17:46:13 +0100cptaffe(~cptaffe@user/cptaffe) (Ping timeout: 252 seconds)
2024-11-01 17:46:51 +0100cptaffe(~cptaffe@user/cptaffe) cptaffe
2024-11-01 17:47:41 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) (Ping timeout: 255 seconds)
2024-11-01 17:49:32 +0100mulk(~mulk@pd95146e9.dip0.t-ipconnect.de) mulk
2024-11-01 17:58:10 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 18:00:31 +0100haskellbridge(~hackager@syn-024-093-192-219.res.spectrum.com) hackager
2024-11-01 18:00:31 +0100ChanServ+v haskellbridge
2024-11-01 18:03:02 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 272 seconds)
2024-11-01 18:04:05 +0100alp(~alp@2001:861:e3d6:8f80:897b:546a:473c:28dc)
2024-11-01 18:08:51 +0100tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh
2024-11-01 18:10:21 +0100Natch(~natch@c-92-34-7-158.bbcust.telenor.se)
2024-11-01 18:12:30 +0100comerijn(~merijn@77.242.116.146) (Ping timeout: 276 seconds)
2024-11-01 18:13:51 +0100L29Ah(~L29Ah@wikipedia/L29Ah) L29Ah
2024-11-01 18:21:44 +0100ubert(~Thunderbi@178.115.51.39.wireless.dyn.drei.com) ubert
2024-11-01 18:24:02 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 18:29:05 +0100sprotte24(~sprotte24@134.245.44.89)
2024-11-01 18:29:14 +0100sawilagar(~sawilagar@user/sawilagar) (Remote host closed the connection)
2024-11-01 18:29:48 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-11-01 18:30:58 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-11-01 18:33:27 +0100Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-11-01 18:35:02 +0100tired(~tired@user/tired) (Remote host closed the connection)
2024-11-01 18:36:19 +0100tired(~tired@user/tired) tired
2024-11-01 18:41:37 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Ping timeout: 248 seconds)
2024-11-01 18:42:30 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 18:46:17 +0100libertyprime(~libertypr@118-92-73-199.dsl.dyn.ihug.co.nz) libertyprime
2024-11-01 18:48:12 +0100tired(~tired@user/tired) (Quit: /)
2024-11-01 18:48:29 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 18:52:41 +0100youthlic(~Thunderbi@user/youthlic) youthlic
2024-11-01 18:57:37 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 18:59:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 19:00:24 +0100nurupo(~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
2024-11-01 19:00:41 +0100nurupo(~nurupo.ga@user/nurupo) nurupo
2024-11-01 19:02:03 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 19:18:05 +0100youthlic(~Thunderbi@user/youthlic) (Remote host closed the connection)
2024-11-01 19:20:44 +0100youthlic(~Thunderbi@user/youthlic) youthlic
2024-11-01 19:24:30 +0100SlackCoder(~SlackCode@161.199.135.130) SlackCoder
2024-11-01 19:27:25 +0100gawen(~gawen@user/gawen) (Quit: cya)
2024-11-01 19:27:37 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 19:28:09 +0100wootehfoot(~wootehfoo@user/wootehfoot) wootehfoot
2024-11-01 19:32:55 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 19:35:20 +0100sawilagar(~sawilagar@user/sawilagar) (Remote host closed the connection)
2024-11-01 19:35:36 +0100gawen(~gawen@user/gawen) gawen
2024-11-01 19:35:53 +0100sawilagar(~sawilagar@user/sawilagar) sawilagar
2024-11-01 19:40:09 +0100euphores(~SASL_euph@user/euphores) (Quit: Leaving.)
2024-11-01 19:45:20 +0100euphores(~SASL_euph@user/euphores) euphores
2024-11-01 19:45:59 +0100Nachtgespenst(~user@user/siracusa) (Quit: Bye!)
2024-11-01 19:48:07 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2024-11-01 19:50:22 +0100gawen(~gawen@user/gawen) (Quit: cya)
2024-11-01 19:51:43 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) (Read error: Connection reset by peer)
2024-11-01 19:53:10 +0100sawilagar(~sawilagar@user/sawilagar) (Read error: Connection reset by peer)
2024-11-01 19:54:11 +0100stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 260 seconds)
2024-11-01 19:55:24 +0100misterfish(~misterfis@84.53.85.146) misterfish
2024-11-01 19:57:22 +0100chele(~chele@user/chele) (Remote host closed the connection)
2024-11-01 19:58:33 +0100gawen(~gawen@user/gawen) gawen
2024-11-01 20:00:02 +0100caconym(~caconym@user/caconym) (Quit: bye)
2024-11-01 20:00:39 +0100caconym(~caconym@user/caconym) caconym
2024-11-01 20:02:09 +0100michalz(~michalz@185.246.207.193)
2024-11-01 20:04:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 20:06:41 +0100stiell_(~stiell@gateway/tor-sasl/stiell) stiell
2024-11-01 20:09:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 20:10:38 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) ash3en
2024-11-01 20:12:27 +0100L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 246 seconds)
2024-11-01 20:14:46 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 20:15:17 +0100euleritian(~euleritia@dynamic-176-002-141-094.176.2.pool.telefonica.de)
2024-11-01 20:24:43 +0100Everything(~Everythin@195.138.86.118) Everything
2024-11-01 20:24:55 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 20:26:45 +0100SlackCoder(~SlackCode@161.199.135.130) (Quit: Leaving)
2024-11-01 20:29:02 +0100Digit(~user@user/digit) (Ping timeout: 252 seconds)
2024-11-01 20:34:31 +0100Everything(~Everythin@195.138.86.118) (Ping timeout: 252 seconds)
2024-11-01 20:35:18 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 20:35:21 +0100Everything(~Everythin@94.153.29.90) Everything
2024-11-01 20:35:58 +0100troydm(~troydm@user/troydm) troydm
2024-11-01 20:38:35 +0100troydm(~troydm@user/troydm) (Client Quit)
2024-11-01 20:38:51 +0100troydm(~troydm@user/troydm) troydm
2024-11-01 20:39:39 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 20:40:22 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) machinedgod
2024-11-01 20:43:14 +0100Digit(~user@user/digit) Digit
2024-11-01 20:49:09 +0100 <zzz> ok can anyone help me make sense of these results? https://paste.jrvieira.com/1730490476766
2024-11-01 20:49:24 +0100 <zzz> i'm trying to learn about seq/deepseq
2024-11-01 20:50:06 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
2024-11-01 20:50:33 +0100sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-11-01 20:51:00 +0100 <zzz> my initial doubts are 1. why is force more expensive 2. why is rnf that optimized?
2024-11-01 20:51:30 +0100 <zzz> (3. and why is force not optimized at all)
2024-11-01 20:53:01 +0100 <zzz> (...compared to the others)
2024-11-01 20:55:03 +0100 <EvanR> :t rnf
2024-11-01 20:55:04 +0100 <lambdabot> NFData a => a -> ()
2024-11-01 20:55:06 +0100 <EvanR> :force
2024-11-01 20:55:06 +0100 <Leary> zzz: At a guess: the first two can evaluate streamingly, but the version with force has to hold onto the whole thing, doing allocation and/or suffering under GC.
2024-11-01 20:55:14 +0100 <EvanR> :t force
2024-11-01 20:55:15 +0100 <lambdabot> NFData a => a -> a
2024-11-01 20:55:40 +0100 <EvanR> since you don't use the result of rnf for anything, would the optimizer just discard it entirely
2024-11-01 20:55:52 +0100 <tomsmeding> EvanR: it's passed to evaluate
2024-11-01 20:55:59 +0100 <EvanR> oh
2024-11-01 20:56:15 +0100 <zzz> yes, if i didn't use evaluate it would be discarded
2024-11-01 20:57:33 +0100tired(~tired@user/tired) tired
2024-11-01 20:59:49 +0100 <zzz> these were compiled with -O2 btw
2024-11-01 21:01:01 +0100 <tomsmeding> zzz: highly suggestive is that System timing for the 'force' variants
2024-11-01 21:01:07 +0100 <tomsmeding> that indeed points to lots of memory IO
2024-11-01 21:01:25 +0100 <tomsmeding> perhaps even swapping; did you check that it all fits in RAM?
2024-11-01 21:03:38 +0100 <tomsmeding> zzz: my cpu is clearly faster than yours, but I get different relative results too https://paste.tomsmeding.com/1fnOybw3
2024-11-01 21:04:55 +0100 <tomsmeding> `./test 3 +RTS -s` confirms that GC is the issue with the third version, look at that productivity number
2024-11-01 21:05:08 +0100 <zzz> tomsmeding: good catch
2024-11-01 21:05:21 +0100 <tomsmeding> maximum residency for `./test 1` and `./test 2` is <40kb
2024-11-01 21:05:33 +0100 <tomsmeding> so Leary: good guess
2024-11-01 21:06:16 +0100 <tomsmeding> so I can't reproduce the difference between deepseq and rnf
2024-11-01 21:06:55 +0100ash3en(~Thunderbi@2a03:7846:b6eb:101:93ac:a90a:da67:f207) (Quit: ash3en)
2024-11-01 21:07:10 +0100 <tomsmeding> zzz: if I run with ghc 9.10 instead of 9.4 then all three run fast
2024-11-01 21:07:19 +0100 <tomsmeding> on -O2
2024-11-01 21:08:11 +0100 <tomsmeding> scratch that, was testing the wrong thing, ghc version is irrelevant
2024-11-01 21:08:46 +0100 <zzz> i'm using 9.10.1
2024-11-01 21:08:53 +0100 <zzz> ah ok
2024-11-01 21:09:44 +0100 <EvanR> force x = x `deepseq` x = rnf x `seq` x. So 'evaluate'ing force something involves evaluating something to some extent twice
2024-11-01 21:09:59 +0100 <tomsmeding> 'evaluate' only does WHNF
2024-11-01 21:10:13 +0100 <EvanR> sure but it means you have to still have it when it's time to do that
2024-11-01 21:10:23 +0100 <EvanR> meanwhile it's being deepseqqed
2024-11-01 21:10:34 +0100 <tomsmeding> that's... a fair point: you have to hold on to the root of the data structure to WHNF it
2024-11-01 21:10:38 +0100 <tomsmeding> hence the memory use
2024-11-01 21:10:48 +0100 <tomsmeding> zzz: that's version 3 explained
2024-11-01 21:11:00 +0100 <tomsmeding> zzz: can you reproduce the difference between 1 and 2 with my code?
2024-11-01 21:11:12 +0100 <monochrom> Nah the extra seq is at worst just an extra check "oh this is already a value, moving on".
2024-11-01 21:11:34 +0100 <tomsmeding> monochrom: sure, but does not keep a reference to the value?
2024-11-01 21:11:44 +0100 <EvanR> yes it's cheap but you can't have discarded the entire thing prior to the simple check
2024-11-01 21:11:56 +0100 <monochrom> "foo seq bar" returns a pointer to bar but not foo.
2024-11-01 21:11:59 +0100 <tomsmeding> mind that this is evaluate, hence seq#, not seq -- not sure if that matters
2024-11-01 21:12:11 +0100 <EvanR> foo and bar are the same object in this case
2024-11-01 21:12:25 +0100 <monochrom> OK OK this one is "... seq x" so yeah you're right.
2024-11-01 21:12:56 +0100 <tomsmeding> monochrom: and if it really doesn't matter, then how do you explain 'evaluate (force x) >> pure ()' taking more than 4x as long as 'evaluate (rnf x)' and thrashing the GC meanwhile? :p
2024-11-01 21:13:27 +0100 <EvanR> it's a situation like this that I half expect ghc to pull some kind of magic and be efficient regardless of common sense
2024-11-01 21:13:34 +0100 <tomsmeding> we're talking maximum residency of 2 GB and productivity of <25%, versus maximum residency of 40KB and productivity >99%
2024-11-01 21:13:38 +0100 <EvanR> like scanl with tuples
2024-11-01 21:13:46 +0100 <dolio> evaluate returns the value it evaluates, too.
2024-11-01 21:15:30 +0100 <monochrom> GHC out-smarts common sense in some cases and defies common senses in some others. Also people hold opposite "common" senses.
2024-11-01 21:16:46 +0100 <monochrom> Stepping back a step, people even hold opposite opinions on whether you should let GHC optimize or you should distrust GHC and optimize by hand.
2024-11-01 21:17:35 +0100 <haskellbridge> <zwro> "the problem with common sense is that it's not common at all" — someone
2024-11-01 21:18:41 +0100 <zzz> tomsmeding:
2024-11-01 21:18:56 +0100 <zzz> Benchmark 1: ./hs/test 1
2024-11-01 21:18:56 +0100 <zzz> Time (mean ± σ): 4.171 s ± 0.038 s [User: 4.115 s, System: 0.051 s]
2024-11-01 21:18:59 +0100 <zzz> Range (min … max): 4.106 s … 4.249 s 10 runs
2024-11-01 21:19:04 +0100 <zzz> Benchmark 2: ./hs/test 2
2024-11-01 21:19:06 +0100 <zzz> Time (mean ± σ): 4.208 s ± 0.048 s [User: 4.195 s, System: 0.006 s]
2024-11-01 21:19:09 +0100 <zzz> Range (min … max): 4.137 s … 4.276 s 10 runs
2024-11-01 21:19:44 +0100 <tomsmeding> okay so they are at least the same but 1. why are they slower than your code, and 2. what CPU is that, I know mine is fairly fast but _this_ fast?
2024-11-01 21:20:03 +0100 <tomsmeding> my CPU is like 7x as fast as yours? That feels unlikely
2024-11-01 21:20:19 +0100 <dolio> I don't know about that.
2024-11-01 21:20:45 +0100 <tomsmeding> zzz: if it's a laptop, are you sure it's not throttling? Is the power cable attached? If it's intel, is turbo boost enabled and does the cpu reach similar frequencies for both tests?
2024-11-01 21:21:08 +0100 <zzz> tomsmeding: old hp laptop, core i5 7th gen
2024-11-01 21:21:18 +0100 <tomsmeding> what model number?
2024-11-01 21:21:24 +0100 <dolio> I was helping someone out a week or so ago, and they were doing something on their laptop, and my 10 year old desktop might have been that much faster when I tried it.
2024-11-01 21:21:36 +0100 <tomsmeding> O.o
2024-11-01 21:21:52 +0100 <monochrom> I was hoping "brand new laptop using the brand new intel lake cpus so yeah it's a well-known regression" >:)\
2024-11-01 21:22:23 +0100 <zzz> tomsmeding: not sure, it's not mine. sec
2024-11-01 21:22:54 +0100 <zzz> HP ProBook 440 G4
2024-11-01 21:23:36 +0100 <EvanR> "did you check if it's plugged in"
2024-11-01 21:23:38 +0100 <tomsmeding> that can still mean various CPUs it seems
2024-11-01 21:24:12 +0100 <zzz> plugged in, not sure if it's throttling
2024-11-01 21:24:20 +0100 <zzz> 4 cores
2024-11-01 21:24:26 +0100 <tomsmeding> but yeah with a CPU of that class I would not expect a 7x difference, but I guess it could be
2024-11-01 21:24:48 +0100 <monochrom> OK now I'm hoping "oh it only has 0.5GB RAM so yeah it's thrashing"
2024-11-01 21:24:54 +0100 <EvanR> intel celery
2024-11-01 21:25:06 +0100 <tomsmeding> monochrom: that would be for case 3 only
2024-11-01 21:25:10 +0100 <tomsmeding> case 1 and 2 run lean
2024-11-01 21:25:47 +0100 <zzz> tomsmeding: i don't understand why in your test the difference between deepseq and rnf disappears
2024-11-01 21:26:18 +0100 <monochrom> What if the web browser already eats up 0.4999GB and the OS eats up the rest :)
2024-11-01 21:26:57 +0100 <monochrom> OK I'll stop until I think up a better joke!
2024-11-01 21:27:47 +0100 <zzz> monochrom: 8GB Ram :)
2024-11-01 21:28:08 +0100 <tomsmeding> zzz: if I compile your code as-is (but do put it all in one file), I get similar timings too
2024-11-01 21:28:26 +0100 <tomsmeding> are you perhaps testing one version with it all in one file and one version split over multiple files?
2024-11-01 21:28:52 +0100 <monochrom> That is strange.
2024-11-01 21:29:12 +0100 <zzz> tomsmeding: oh, i did that so i could easily share it. i ran separate files
2024-11-01 21:29:28 +0100 <tomsmeding> zzz: https://paste.tomsmeding.com/WGmJJRuD
2024-11-01 21:29:29 +0100 <zzz> one file for each version
2024-11-01 21:29:56 +0100 <zzz> i consistently get better results for compiled rnf
2024-11-01 21:30:17 +0100 <tomsmeding> can you try my last paste?
2024-11-01 21:30:41 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-11-01 21:30:48 +0100todi(~todi@p57803331.dip0.t-ipconnect.de) todi
2024-11-01 21:31:02 +0100 <zzz> y
2024-11-01 21:32:48 +0100GdeVolpiano(~GdeVolpia@user/GdeVolpiano) GdeVolpiano
2024-11-01 21:37:36 +0100 <zzz> https://paste.jrvieira.com/1730493448663
2024-11-01 21:38:03 +0100zzzconfused
2024-11-01 21:39:22 +0100 <tomsmeding> can you reproduce your original measurements :p
2024-11-01 21:39:31 +0100 <zzz> yes
2024-11-01 21:39:41 +0100 <zzz> ok wait. trying one thing
2024-11-01 21:40:04 +0100 <tomsmeding> perhaps ghc is less eager to inline across modules, and in one stuff gets inlined and in the other it doesn't?
2024-11-01 21:40:50 +0100sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-11-01 21:41:27 +0100 <zzz> ok this is weird. let me doublecheck something
2024-11-01 21:41:51 +0100 <tomsmeding> zzz: what is also confusing is how this one takes 1.3 seconds (which is about 2x as slow as my machine, which is quite to be expected given the cpu freq + age difference), but the previous one with the \case was 7x as slow as my machine
2024-11-01 21:41:56 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 21:42:19 +0100 <tomsmeding> they are within 5% of each other on my machine
2024-11-01 21:43:52 +0100 <zzz> ok now i'm getting similar results
2024-11-01 21:44:10 +0100 <tomsmeding> (my CPU is 3 generations newer (10th gen) and runs at ~160% the frequency (it maxes at 5GHz); together that neatly explains mine being 2x as fast as yours)
2024-11-01 21:45:00 +0100 <zzz> i need to go grab something to eat. in the meantime i will leave hyperfine running
2024-11-01 21:45:46 +0100 <tomsmeding> the measurements are quite reliable here, individual executions differ maybe 5%; but the differences we're looking at are 100% or more, so hyperfine is a luxury :p
2024-11-01 21:49:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds)
2024-11-01 21:52:56 +0100euandreh(~Thunderbi@2804:d59:891b:2c00:896a:156a:7a25:3f91) euandreh
2024-11-01 21:56:06 +0100Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2024-11-01 21:58:27 +0100Feuermagier(~Feuermagi@user/feuermagier) (Remote host closed the connection)
2024-11-01 21:58:38 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 21:58:49 +0100Feuermagier(~Feuermagi@user/feuermagier) Feuermagier
2024-11-01 21:59:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 22:03:10 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 265 seconds)
2024-11-01 22:04:20 +0100hgolden__(~hgolden@static-198-44-129-83.cust.tzulo.com) hgolden
2024-11-01 22:06:43 +0100Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla
2024-11-01 22:06:56 +0100hgolden_(~hgolden@static-198-44-129-51.cust.tzulo.com) (Ping timeout: 252 seconds)
2024-11-01 22:08:00 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2024-11-01 22:10:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 22:14:37 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 22:25:31 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 22:29:47 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2024-11-01 22:29:54 +0100lxsameer(~lxsameer@Serene/lxsameer) (Ping timeout: 276 seconds)
2024-11-01 22:30:43 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 22:35:27 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 22:39:44 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-11-01 22:40:52 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 22:41:28 +0100michalz(~michalz@185.246.207.193) (Remote host closed the connection)
2024-11-01 22:41:35 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-11-01 22:45:26 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds)
2024-11-01 22:46:30 +0100k_hachig(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Ping timeout: 260 seconds)
2024-11-01 22:48:29 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) k_hachig
2024-11-01 22:49:56 +0100Everything(~Everythin@94.153.29.90) (Quit: leaving)
2024-11-01 22:56:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 23:00:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2024-11-01 23:03:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-11-01 23:04:27 +0100sprotte24_(~sprotte24@p200300d16f13bb00e504a10a2d09d14b.dip0.t-ipconnect.de)
2024-11-01 23:08:17 +0100sprotte24(~sprotte24@134.245.44.89) (Ping timeout: 248 seconds)
2024-11-01 23:08:58 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich
2024-11-01 23:09:54 +0100 <zzz> tomsmeding: i'm getting consistent results now https://paste.jrvieira.com/1730498979640
2024-11-01 23:10:40 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-11-01 23:11:08 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 23:11:53 +0100sprotte24_(~sprotte24@p200300d16f13bb00e504a10a2d09d14b.dip0.t-ipconnect.de) (Quit: Leaving)
2024-11-01 23:13:07 +0100 <tomsmeding> zzz: what was wrong before?
2024-11-01 23:15:08 +0100morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds)
2024-11-01 23:16:03 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2024-11-01 23:17:10 +0100k_hachig_(~k_hachig@2607:fea8:351d:ef0:901a:fefb:e87f:78b3) (Quit: WeeChat 4.4.2)
2024-11-01 23:18:49 +0100sadmax(~user@64.130.91.66)
2024-11-01 23:21:36 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 272 seconds)
2024-11-01 23:26:31 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2024-11-01 23:27:36 +0100JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-11-01 23:28:44 +0100Nachtgespenst(~user@user/siracusa) siracusa
2024-11-01 23:29:12 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 272 seconds)
2024-11-01 23:33:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds)
2024-11-01 23:36:24 +0100 <zzz> i was not cleaning up memory from 'runghc ss-force.hs' which ran before './ss'
2024-11-01 23:36:44 +0100 <zzz> so my compiled deepseq test times were inflated
2024-11-01 23:37:57 +0100 <zzz> thanks for your help, i have little practice with benchmarking