2024-10-18 00:00:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:03:45 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 260 seconds) |
2024-10-18 00:04:12 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 00:05:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 00:06:28 +0200 | troojg | (~troojg@user/troojg) troojg |
2024-10-18 00:14:42 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
2024-10-18 00:16:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:16:50 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Read error: Connection reset by peer) |
2024-10-18 00:23:31 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 00:34:08 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:38:13 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 00:38:18 +0200 | <dmj`> | tomsmeding: could catch type errors with a typechecker plugin, during unification |
2024-10-18 00:39:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 00:42:52 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
2024-10-18 00:45:42 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb921c1d480c698edc2c.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
2024-10-18 00:48:15 +0200 | mantraofpie_ | mantraofpie |
2024-10-18 00:49:54 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 00:50:18 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-18 00:54:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 00:55:03 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b57:d075:1efa:336f) (Ping timeout: 252 seconds) |
2024-10-18 00:56:09 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 252 seconds) |
2024-10-18 00:57:54 +0200 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2024-10-18 01:05:42 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:06:37 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2024-10-18 01:07:32 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-10-18 01:10:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 01:11:36 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 246 seconds) |
2024-10-18 01:14:18 +0200 | jespada | (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) jespada |
2024-10-18 01:15:43 +0200 | rmca | (~rob@188.120.84.50) (Ping timeout: 264 seconds) |
2024-10-18 01:15:48 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 245 seconds) |
2024-10-18 01:16:44 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik |
2024-10-18 01:24:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:28:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 01:31:18 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) |
2024-10-18 01:39:00 +0200 | TonyStone | (~TonyStone@user/TonyStone) TonyStone |
2024-10-18 01:39:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 01:40:23 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds) |
2024-10-18 01:43:53 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 01:53:04 +0200 | raehik | (~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds) |
2024-10-18 01:54:29 +0200 | roconnor | (~quassel@coq/roconnor) () |
2024-10-18 01:54:44 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:01:45 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) |
2024-10-18 02:01:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 02:04:34 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-10-18 02:12:47 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:15:39 +0200 | alp | (~alp@2001:861:e3d6:8f80:c611:3442:c342:856d) (Ping timeout: 246 seconds) |
2024-10-18 02:21:28 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 02:30:06 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 02:32:38 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:34:12 +0200 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) |
2024-10-18 02:34:58 +0200 | xff0x | (~xff0x@2405:6580:b080:900:ecb9:4019:640d:fffc) (Ping timeout: 245 seconds) |
2024-10-18 02:36:01 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) |
2024-10-18 02:37:34 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 02:42:16 +0200 | identity | (~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91)) |
2024-10-18 02:48:51 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 02:53:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 02:56:27 +0200 | xff0x | (~xff0x@2405:6580:b080:900:8b37:7df:94bb:aff9) (Ping timeout: 265 seconds) |
2024-10-18 02:57:49 +0200 | user363627 | (~user@user/user363627) user363627 |
2024-10-18 03:01:38 +0200 | weary-traveler | (~user@user/user363627) (Ping timeout: 252 seconds) |
2024-10-18 03:04:14 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:05:24 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
2024-10-18 03:06:17 +0200 | <Guest21> | How can I combine a list of predicates to a single predicate, using logical or? |
2024-10-18 03:09:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 03:13:58 +0200 | Square | (~Square@user/square) Square |
2024-10-18 03:14:06 +0200 | <dibblego> | Guest21: https://hackage.haskell.org/package/base-4.20.0.1/docs/Data-Monoid.html#t:Any with foldMap |
2024-10-18 03:15:29 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
2024-10-18 03:17:29 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
2024-10-18 03:17:53 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 245 seconds) |
2024-10-18 03:18:22 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) |
2024-10-18 03:20:03 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:20:18 +0200 | <Guest21> | \ x -> getAny $ foldMap (Any . ($ x)) ps |
2024-10-18 03:21:19 +0200 | <Guest21> | dibblego like this? |
2024-10-18 03:21:30 +0200 | <dibblego> | lgtm! |
2024-10-18 03:21:58 +0200 | <Guest21> | Still more complicated than what I would have hoped for |
2024-10-18 03:22:09 +0200 | <dibblego> | there are functions that make it a little tidier |
2024-10-18 03:22:39 +0200 | <Guest21> | How exactly would that work? |
2024-10-18 03:22:42 +0200 | <monochrom> | \x -> any ($ x) ps |
2024-10-18 03:23:20 +0200 | <Guest21> | This looks nice! Can we get rid of the lambda somehow? |
2024-10-18 03:23:37 +0200 | <monochrom> | No. |
2024-10-18 03:24:24 +0200 | <Guest21> | OK, thanks a lot |
2024-10-18 03:24:49 +0200 | <monochrom> | Yes. Define "myHelper = \x -> any ($ x) ps". Now you just have to say "myHelper". |
2024-10-18 03:25:05 +0200 | <Lears> | :t flip (any . (&)) |
2024-10-18 03:25:06 +0200 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 03:25:26 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 03:26:17 +0200 | <Lears> | :t (getAny .) . foldMap (Any .) |
2024-10-18 03:26:18 +0200 | <lambdabot> | Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 03:26:50 +0200 | <Lears> | (if you really like point-free) |
2024-10-18 03:30:41 +0200 | Guest21 | (~Guest21@2405:9800:b540:8751:51a9:50c7:2a73:9ce0) (Quit: Client closed) |
2024-10-18 03:35:52 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:42:41 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 03:42:53 +0200 | hgolden__ | (~hgolden@23.162.40.110) hgolden |
2024-10-18 03:45:49 +0200 | hgolden_ | (~hgolden@146.70.173.101) (Ping timeout: 260 seconds) |
2024-10-18 03:51:02 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
2024-10-18 03:53:53 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 03:56:23 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 265 seconds) |
2024-10-18 03:58:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 04:02:29 +0200 | rekahsoft | (~rekahsoft@76.69.85.220) (Ping timeout: 252 seconds) |
2024-10-18 04:03:31 +0200 | spew | (~spew@155.133.15.235) (Quit: spew) |
2024-10-18 04:06:50 +0200 | <probie> | % import Data.Functor.Contravariant |
2024-10-18 04:06:50 +0200 | <yahb2> | <no output> |
2024-10-18 04:07:23 +0200 | <probie> | % :t not . getPredicate . foldMap (Predicate . (not .)) |
2024-10-18 04:07:23 +0200 | <yahb2> | <interactive>:1:7: error: [GHC-83865] ; • Couldn't match type ‘a -> Bool’ with ‘Bool’ ; Expected: Predicate a -> Bool ; Actual: Predicate a -> a -> Bool ; • Probable cause: ‘g... |
2024-10-18 04:07:44 +0200 | <probie> | % :t (not .) . getPredicate . foldMap (Predicate . (not .)) |
2024-10-18 04:07:44 +0200 | <yahb2> | (not .) . getPredicate . foldMap (Predicate . (not .)) ; :: Foldable t => t (a -> Bool) -> a -> Bool |
2024-10-18 04:09:16 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:09:58 +0200 | <monochrom> | onoes, double negation |
2024-10-18 04:13:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 04:25:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:30:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 04:31:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 04:38:47 +0200 | <Axman6> | oh no, you can't not undo that! |
2024-10-18 04:40:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 04:45:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 04:46:13 +0200 | td_ | (~td@i53870903.versanet.de) (Ping timeout: 248 seconds) |
2024-10-18 04:47:49 +0200 | td_ | (~td@i53870913.versanet.de) td_ |
2024-10-18 04:55:49 +0200 | troojg | (~troojg@user/troojg) (Ping timeout: 260 seconds) |
2024-10-18 04:56:16 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) |
2024-10-18 04:56:38 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:00:23 +0200 | morb | (~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Ping timeout: 245 seconds) |
2024-10-18 05:01:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 05:02:23 +0200 | Square2 | (~Square4@user/square) Square |
2024-10-18 05:04:53 +0200 | Square | (~Square@user/square) (Ping timeout: 248 seconds) |
2024-10-18 05:12:25 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:18:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 245 seconds) |
2024-10-18 05:18:58 +0200 | pavonia | (~user@user/siracusa) siracusa |
2024-10-18 05:19:02 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 05:20:33 +0200 | monochrom | (trebla@216.138.220.146) (Read error: Connection reset by peer) |
2024-10-18 05:23:54 +0200 | monochrom | (trebla@216.138.220.146) |
2024-10-18 05:30:27 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:35:28 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 05:43:16 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 05:48:34 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 05:59:05 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:04:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 06:04:39 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 06:08:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:12:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 06:23:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:29:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 245 seconds) |
2024-10-18 06:40:56 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 06:46:14 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 06:47:08 +0200 | neuroevolutus | (~neuroevol@37.19.200.167) neuroevolutus |
2024-10-18 06:48:51 +0200 | neuroevolutus | (~neuroevol@37.19.200.167) (Client Quit) |
2024-10-18 06:56:44 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:03:33 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds) |
2024-10-18 07:03:56 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 07:13:38 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 07:14:46 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:18:59 +0200 | michalz | (~michalz@185.246.207.222) |
2024-10-18 07:19:08 +0200 | jinsun | (~jinsun@user/jinsun) (Ping timeout: 245 seconds) |
2024-10-18 07:19:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 07:22:08 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2024-10-18 07:27:03 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-10-18 07:28:17 +0200 | Square | (~Square@user/square) Square |
2024-10-18 07:30:59 +0200 | rvalue- | (~rvalue@user/rvalue) rvalue |
2024-10-18 07:31:09 +0200 | jero98772 | (~jero98772@2800:484:1d7c:cc00::11) |
2024-10-18 07:31:30 +0200 | rvalue | (~rvalue@user/rvalue) (Ping timeout: 252 seconds) |
2024-10-18 07:31:38 +0200 | Square2 | (~Square4@user/square) (Ping timeout: 245 seconds) |
2024-10-18 07:31:46 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-10-18 07:31:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:34:53 +0200 | rvalue- | rvalue |
2024-10-18 07:35:00 +0200 | <dmj`> | is the monomorphism restriction practical anymore |
2024-10-18 07:36:39 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 07:36:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 07:39:24 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Client Quit) |
2024-10-18 07:41:16 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 07:44:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 07:49:06 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 07:57:23 +0200 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2024-10-18 08:00:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:03:35 +0200 | jero98772 | (~jero98772@2800:484:1d7c:cc00::11) (Quit: leaving) |
2024-10-18 08:04:52 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 08:12:07 +0200 | Inst | (~Inst@user/Inst) (Remote host closed the connection) |
2024-10-18 08:12:26 +0200 | Inst | (~Inst@user/Inst) Inst |
2024-10-18 08:14:25 +0200 | <probie> | Define "practical" |
2024-10-18 08:15:48 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:19:10 +0200 | monochrom | (trebla@216.138.220.146) (Ping timeout: 252 seconds) |
2024-10-18 08:20:11 +0200 | monochrom | (trebla@216.138.220.146) |
2024-10-18 08:21:12 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 08:22:33 +0200 | briandaed | (~root@185.234.210.211.r.toneticgroup.pl) |
2024-10-18 08:27:07 +0200 | euleritian | (~euleritia@dynamic-176-000-163-135.176.0.pool.telefonica.de) (Ping timeout: 264 seconds) |
2024-10-18 08:28:04 +0200 | ft | (~ft@p4fc2a216.dip0.t-ipconnect.de) (Quit: leaving) |
2024-10-18 08:28:07 +0200 | euleritian | (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) |
2024-10-18 08:28:46 +0200 | joeyadams | (~joeyadams@syn-184-054-105-097.res.spectrum.com) (Quit: Leaving) |
2024-10-18 08:30:33 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) |
2024-10-18 08:31:35 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:36:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 08:41:29 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-10-18 08:42:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 08:45:17 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 08:48:58 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 08:52:39 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 08:56:59 +0200 | m1dnight | (~christoph@d8D861908.access.telenet.be) (Quit: WeeChat 4.4.2) |
2024-10-18 08:57:48 +0200 | m1dnight | (~christoph@d8D861908.access.telenet.be) m1dnight |
2024-10-18 09:00:02 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-10-18 09:00:38 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-10-18 09:03:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:04:38 +0200 | Square | (~Square@user/square) (Ping timeout: 252 seconds) |
2024-10-18 09:08:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 09:08:06 +0200 | danza | (~danza@user/danza) danza |
2024-10-18 09:19:07 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:23:20 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 252 seconds) |
2024-10-18 09:24:05 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 09:24:18 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 09:24:19 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Read error: Connection reset by peer) |
2024-10-18 09:25:48 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) synchromesh |
2024-10-18 09:26:31 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 264 seconds) |
2024-10-18 09:30:26 +0200 | danza | (~danza@user/danza) (Remote host closed the connection) |
2024-10-18 09:31:03 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 09:32:37 +0200 | michalz | (~michalz@185.246.207.222) (Ping timeout: 248 seconds) |
2024-10-18 09:33:13 +0200 | michalz | (~michalz@185.246.207.215) |
2024-10-18 09:33:17 +0200 | michalz | (~michalz@185.246.207.215) (Remote host closed the connection) |
2024-10-18 09:34:57 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 09:36:09 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds) |
2024-10-18 09:36:23 +0200 | <tomsmeding> | dmj`: it is fair that I left ghc plugins out of my response, but given that they were hesitant to write a wrapper around (:>), I'm sure they wouldn't want to write a plugin :p |
2024-10-18 09:36:37 +0200 | <tomsmeding> | and also I don't like plugins if the task can be done in any other way at all |
2024-10-18 09:37:08 +0200 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
2024-10-18 09:37:49 +0200 | michalz | (~michalz@185.246.207.215) |
2024-10-18 09:38:06 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2024-10-18 09:38:38 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
2024-10-18 09:39:54 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2024-10-18 09:40:06 +0200 | ghoulguy | (glguy@libera/staff/glguy) (Quit: Quit) |
2024-10-18 09:42:14 +0200 | youthlic | (~Thunderbi@user/youthlic) (Ping timeout: 260 seconds) |
2024-10-18 09:42:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 09:43:19 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
2024-10-18 09:43:31 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) kuribas |
2024-10-18 09:49:52 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 09:58:04 +0200 | chele | (~chele@user/chele) chele |
2024-10-18 09:58:22 +0200 | madjesti1 | (~madjestic@213.208.215.120) |
2024-10-18 10:03:18 +0200 | madjesti1 | (~madjestic@213.208.215.120) (Quit: leaving) |
2024-10-18 10:14:24 +0200 | madjestic | (~madjestic@213.208.215.120) madjestic |
2024-10-18 10:16:21 +0200 | alp | (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) |
2024-10-18 10:19:36 +0200 | youthlic | (~Thunderbi@user/youthlic) youthlic |
2024-10-18 10:21:33 +0200 | dcoutts_ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 10:27:09 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) Feuermagier |
2024-10-18 10:28:03 +0200 | dcoutts__ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
2024-10-18 10:30:49 +0200 | dcoutts_ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 260 seconds) |
2024-10-18 10:38:07 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 10:38:09 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-18 10:43:33 +0200 | __monty__ | (~toonn@user/toonn) toonn |
2024-10-18 10:47:31 +0200 | comonad | (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-10-18 10:49:31 +0200 | user363627 | (~user@user/user363627) (Remote host closed the connection) |
2024-10-18 10:49:35 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Read error: Connection reset by peer) |
2024-10-18 10:53:08 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 10:53:56 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-10-18 11:02:57 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Quit: WeeChat 4.2.2) |
2024-10-18 11:03:05 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 11:24:54 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
2024-10-18 11:27:01 +0200 | madjestic | (~madjestic@213.208.215.120) (Quit: Lost terminal) |
2024-10-18 11:30:23 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 11:31:41 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 11:38:38 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 11:46:11 +0200 | mari-estel | (~mari-este@user/mari-estel) (Ping timeout: 265 seconds) |
2024-10-18 11:46:55 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 11:47:04 +0200 | xff0x | (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 252 seconds) |
2024-10-18 11:49:01 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 11:53:42 +0200 | synchromesh | (~john@2406:5a00:2497:300:e0d5:e11:3d9d:e9de) (Quit: WeeChat 4.0.5) |
2024-10-18 11:59:48 +0200 | driib318 | (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat) |
2024-10-18 12:00:04 +0200 | mari-estel | still has not solved how to compile hoogle on this low-memory machine |
2024-10-18 12:00:23 +0200 | driib318 | (~driib@vmi931078.contaboserver.net) driib |
2024-10-18 12:01:51 +0200 | <briandaed> | mari-estel? is it linux? maybe zram can help |
2024-10-18 12:02:10 +0200 | <mari-estel> | cheers, gonna learn about zram |
2024-10-18 12:02:25 +0200 | <mari-estel> | huh "No manual entry" |
2024-10-18 12:02:27 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 12:02:42 +0200 | <mari-estel> | oh, zramctrl. Apropos helped |
2024-10-18 12:03:35 +0200 | <mari-estel> | "set up and control zram devices". Sorry for the slight offtopic but... what is a zram device? |
2024-10-18 12:06:01 +0200 | <mari-estel> | alright there is a link to https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/… |
2024-10-18 12:12:04 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Read error: Connection reset by peer) |
2024-10-18 12:12:21 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 252 seconds) |
2024-10-18 12:18:25 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 12:18:40 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 12:21:07 +0200 | <tomsmeding> | mari-estel: how much RAM; can you add swap? |
2024-10-18 12:21:30 +0200 | <tomsmeding> | also what architecture and linux distro, perhaps someone else can compile for you |
2024-10-18 12:22:10 +0200 | <mari-estel> | 3k MiB, i guess zramctrl is for adding swap, will read about that eventually. I guess this is ARM |
2024-10-18 12:22:27 +0200 | <tomsmeding> | "3k MiB", is that 3 GiB? |
2024-10-18 12:22:33 +0200 | <tomsmeding> | zram is for transparently compressing RAM |
2024-10-18 12:22:43 +0200 | <mari-estel> | yeah 3 GiB i think |
2024-10-18 12:22:44 +0200 | <tomsmeding> | which helps to the extent that processes store compressible stuff in RAM |
2024-10-18 12:22:54 +0200 | <tomsmeding> | I believe zram functions by adding a swap device _in RAM_ that is compressed |
2024-10-18 12:23:12 +0200 | <tomsmeding> | 3 GiB should be enough to compile most haskell things |
2024-10-18 12:23:15 +0200 | <mari-estel> | hum i see. I would rather go for uncompressed swapped then. Any pointers to linux manuals i should read? |
2024-10-18 12:23:29 +0200 | <mari-estel> | well hoogle fails and i think it could only be because of memory |
2024-10-18 12:23:30 +0200 | <tomsmeding> | mari-estel: what happens if you just `cabal install -j1 hoogle`? |
2024-10-18 12:23:47 +0200 | <mari-estel> | i will try that but... how would a single core help? |
2024-10-18 12:24:04 +0200 | <tomsmeding> | well, compiling multiple things simultaneously means you now need to fit _two_ GHCs in RAM :p |
2024-10-18 12:24:25 +0200 | <tomsmeding> | -j1 is an easy way to divide memory usage by like 4 |
2024-10-18 12:24:32 +0200 | <mari-estel> | hmm |
2024-10-18 12:24:34 +0200 | <tomsmeding> | (depending on how many cores it ran on before) |
2024-10-18 12:24:44 +0200 | <mari-estel> | cool stuff, trying that now... |
2024-10-18 12:25:13 +0200 | <tomsmeding> | if that doesn't work: keep passing -j1 to cabal, but also: sudo fallocate -l 1G /swapfile; sudo chmod 0600 /swapfile; sudo mkswap /swpafile; sudo swapon /swapfile |
2024-10-18 12:25:24 +0200 | <tomsmeding> | s/swpafile/swapfile/ |
2024-10-18 12:25:42 +0200 | <mari-estel> | plenty of hints, cheers tomsmeding! |
2024-10-18 12:25:43 +0200 | <tomsmeding> | fairly sure this does not persist after a reboot |
2024-10-18 12:25:51 +0200 | <tomsmeding> | (which is probably exactly as you want it) |
2024-10-18 12:26:13 +0200 | <tomsmeding> | mari-estel: I have some experience building e.g. the haskell playground on a cheap VPS :p |
2024-10-18 12:26:20 +0200 | euleritian | (~euleritia@dynamic-176-000-162-113.176.0.pool.telefonica.de) (Ping timeout: 260 seconds) |
2024-10-18 12:26:20 +0200 | <mari-estel> | (: |
2024-10-18 12:26:30 +0200 | <briandaed> | also there maybe processes that could be stopped, services or something that is not crucial |
2024-10-18 12:27:02 +0200 | <mari-estel> | already tried with no other services running, but i am confident in -j1 and the rest |
2024-10-18 12:27:04 +0200 | <geekosaur> | it will only persist if you add it as a swap entry in /etc/fstab |
2024-10-18 12:27:11 +0200 | <tomsmeding> | right |
2024-10-18 12:27:33 +0200 | <tomsmeding> | mari-estel: let me know what package it fails on if you compile with -j1 and it still fails |
2024-10-18 12:27:54 +0200 | <tomsmeding> | if a haskell package needs more than 3 GiB of RAM to compile on a normal linux distro without excessive stuff happening, the fault is with that package, not with you |
2024-10-18 12:28:31 +0200 | <tomsmeding> | (if it does, my bets are on vector or aeson) |
2024-10-18 12:28:39 +0200 | <mari-estel> | good point about the package... wondering whether pre-installing that with --lib could help. Let us see whether any fails with -j1 |
2024-10-18 12:29:00 +0200 | <tomsmeding> | pre-installing won't help, GHC is the big memory-eater here and GHC is restarted from scratch for every new package |
2024-10-18 12:29:42 +0200 | <mari-estel> | hm but in theory if it find the right version ready it will not rebuild? |
2024-10-18 12:29:48 +0200 | <mari-estel> | *finds |
2024-10-18 12:30:08 +0200 | <tomsmeding> | if the problem is indeed memory, then the problem is the peak memory use during the whole process |
2024-10-18 12:30:18 +0200 | <tomsmeding> | you aren't going to lower the peak by doing things in a different order |
2024-10-18 12:30:48 +0200 | <mari-estel> | well avoiding a package's compilation would not allocate that extra amount |
2024-10-18 12:31:01 +0200 | <tomsmeding> | sure, but to pre-install you still have to build it :p |
2024-10-18 12:31:39 +0200 | <tomsmeding> | and having someone else build a _haskell library_ for you is folly, those things depend on the precise compilation configuration of all the transitive dependencies |
2024-10-18 12:32:44 +0200 | <mari-estel> | i see what you mean, the compiler being restarted from scratch means peak is going to be the same, makes sense |
2024-10-18 12:32:53 +0200 | <tomsmeding> | yep |
2024-10-18 12:33:38 +0200 | <tomsmeding> | GHC does compile all the _modules_ in a single package in one process, and that theoretically could result in a higher peak than compiling all modules individually |
2024-10-18 12:34:02 +0200 | <tomsmeding> | but 1. arranging that the latter happens in a cabal project is tricky, and 2. that won't give huge gains, I think |
2024-10-18 12:34:29 +0200 | <mari-estel> | yeah and that is some delving i am not going to tackle at the moment anyways |
2024-10-18 12:35:47 +0200 | <Inst> | people say that the only possible function with a type signature of a -> a, when you're not abusing unsafe, is id |
2024-10-18 12:36:13 +0200 | <Inst> | but why isn't id' or seq foo included? |
2024-10-18 12:36:25 +0200 | <tomsmeding> | what is id'? |
2024-10-18 12:36:41 +0200 | <Inst> | \a -> seq a a |
2024-10-18 12:36:46 +0200 | <tomsmeding> | that's the same as id ;) |
2024-10-18 12:37:10 +0200 | <geekosaur> | do you understand what `seq a a` does? (or more precisely, doesn't do) |
2024-10-18 12:37:15 +0200 | <tomsmeding> | in general, seq a a is the same as a |
2024-10-18 12:37:27 +0200 | <tomsmeding> | it adds a dependency on the evaluation of a to the evaluation of its result, which is a |
2024-10-18 12:37:34 +0200 | <geekosaur> | "ensure that `a` has been evaluated when `a` is evaluated" |
2024-10-18 12:37:47 +0200 | <tomsmeding> | 'seq foo' is indeed different, I guess? |
2024-10-18 12:38:28 +0200 | <Inst> | gah, waiting on browser is stop hanging :( |
2024-10-18 12:38:34 +0200 | <geekosaur> | it's outside the type system model that we are using when discussing that, though |
2024-10-18 12:39:08 +0200 | <geekosaur> | and in particular introduces a possible bottom, but we excluded `undefined`/bottom already from the discussion |
2024-10-18 12:39:30 +0200 | <merijn> | Inst: because people generally handwave non-total inputs |
2024-10-18 12:40:17 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) (Ping timeout: 248 seconds) |
2024-10-18 12:40:41 +0200 | <Inst> | iirc bang patterns desugars to seq |
2024-10-18 12:41:01 +0200 | <Inst> | but bang patterns will trigger evaluation in where or let clauses |
2024-10-18 12:41:57 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56a84c1bc5942a5900.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
2024-10-18 12:42:02 +0200 | <geekosaur> | oh, you only excluded unsafe. so I give you `undefined :: a -> a` |
2024-10-18 12:42:12 +0200 | <Inst> | ack :( |
2024-10-18 12:42:12 +0200 | <geekosaur> | (now you see why I excluded it) |
2024-10-18 12:42:20 +0200 | <Inst> | i assume the bottom was excluded as well |
2024-10-18 12:42:44 +0200 | <geekosaur> | but if you exclude bottom then you cannot discuss `seq` |
2024-10-18 12:42:48 +0200 | <tomsmeding> | if you include bottoms, there are so many different bottoms |
2024-10-18 12:42:56 +0200 | <Inst> | here's a weird mystery, like, let foo = id where !_ = undefined |
2024-10-18 12:42:58 +0200 | <geekosaur> | because the only thing it can do is introduce a bottom |
2024-10-18 12:43:15 +0200 | <tomsmeding> | and there is this "fast and loose reasoning is morally correct" paper that people vaguely cite when handwaving bottoms away |
2024-10-18 12:45:40 +0200 | leah2 | (~leah@vuxu.org) leah2 |
2024-10-18 12:46:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 12:49:19 +0200 | <Inst> | hmmm, seems more like an issue with my understanding of bang patterns, ugh |
2024-10-18 12:49:38 +0200 | <Inst> | > foo = id where !_ = undefined |
2024-10-18 12:49:39 +0200 | <lambdabot> | <hint>:1:5: error: parse error on input ‘=’ |
2024-10-18 12:49:46 +0200 | <Inst> | > let foo = id where !_ = undefined |
2024-10-18 12:49:47 +0200 | <lambdabot> | <no location info>: error: |
2024-10-18 12:49:48 +0200 | <lambdabot> | not an expression: ‘let foo = id where !_ = undefined’ |
2024-10-18 12:49:48 +0200 | <Inst> | > foo 3 |
2024-10-18 12:49:49 +0200 | <lambdabot> | error: |
2024-10-18 12:49:49 +0200 | <lambdabot> | • No instance for (Typeable a0) |
2024-10-18 12:49:50 +0200 | <lambdabot> | arising from a use of ‘show_M71330527728707901318’ |
2024-10-18 12:49:55 +0200 | <tomsmeding> | try with % |
2024-10-18 12:49:58 +0200 | <Inst> | % let foo = id where !_ = undefined |
2024-10-18 12:49:58 +0200 | <yahb2> | <no output> |
2024-10-18 12:50:00 +0200 | <tomsmeding> | lambdabot is not full ghci |
2024-10-18 12:50:05 +0200 | <Inst> | % foo 3 |
2024-10-18 12:50:05 +0200 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:11:25 in interactive:Ghci3 |
2024-10-18 12:50:24 +0200 | <Inst> | % let foo = id where _ = undefined `seq` () |
2024-10-18 12:50:24 +0200 | <yahb2> | <no output> |
2024-10-18 12:50:27 +0200 | <Inst> | foo 3 |
2024-10-18 12:50:29 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 12:50:34 +0200 | <Inst> | % foo 3 |
2024-10-18 12:50:34 +0200 | <yahb2> | 3 |
2024-10-18 12:50:39 +0200 | leah2 | (~leah@vuxu.org) (Ping timeout: 260 seconds) |
2024-10-18 12:51:06 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2024-10-18 12:52:43 +0200 | kronicmage | (~kronicmag@neotame.csclub.uwaterloo.ca) |
2024-10-18 12:54:47 +0200 | <Inst> | https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0229-whitespace-bang-patterns… |
2024-10-18 12:54:56 +0200 | <Inst> | hmmm, maybe i misunderstood when i thought bang = seq |
2024-10-18 12:55:27 +0200 | <tomsmeding> | Inst: you forgot the bang in your last example |
2024-10-18 12:55:57 +0200 | <tomsmeding> | % let foo = x `seq` id where x = undefined |
2024-10-18 12:55:57 +0200 | <yahb2> | <no output> |
2024-10-18 12:55:59 +0200 | <tomsmeding> | foo 3 |
2024-10-18 12:56:01 +0200 | <tomsmeding> | % foo 3 |
2024-10-18 12:56:01 +0200 | <yahb2> | *** Exception: Prelude.undefined ; CallStack (from HasCallStack): ; undefined, called at <interactive>:19:32 in interactive:Ghci6 |
2024-10-18 12:56:07 +0200 | <tomsmeding> | bang does become seq |
2024-10-18 12:56:12 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 12:56:27 +0200 | <tomsmeding> | ah, except of course when it doesn't because pattern matching is more complicated |
2024-10-18 12:56:39 +0200 | <Inst> | :( |
2024-10-18 12:57:51 +0200 | <Inst> | the mystery is still, if you have in a let or where cluase, an unknown value, you can bang it and still get evaluation |
2024-10-18 12:57:58 +0200 | <Inst> | an unused value |
2024-10-18 12:58:37 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) acidjnk |
2024-10-18 12:58:47 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 12:59:04 +0200 | <Inst> | but in general, we pretend that id' = id, or for that matter, let id'' = force, then again, force has an NFData constraint |
2024-10-18 12:59:20 +0200 | <tomsmeding> | id' = id is actually true |
2024-10-18 12:59:26 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 12:59:38 +0200 | <tomsmeding> | id = force is not true, but is true in the world of "total haskell" |
2024-10-18 13:00:06 +0200 | euleritian | (~euleritia@tmo-125-85.customers.d1-online.com) |
2024-10-18 13:00:14 +0200 | <tomsmeding> | "id' = id" is true because sure, id' is strict in its argument, but that strictness only comes into play if you actually use the result of the id' call |
2024-10-18 13:00:25 +0200 | <tomsmeding> | and at that point you also evaluate the argument to id |
2024-10-18 13:03:08 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2 |
2024-10-18 13:04:12 +0200 | euleritian | (~euleritia@tmo-125-85.customers.d1-online.com) (Ping timeout: 246 seconds) |
2024-10-18 13:05:55 +0200 | leah2 | (~leah@vuxu.org) leah2 |
2024-10-18 13:09:54 +0200 | Digitteknohippie | (~user@user/digit) Digit |
2024-10-18 13:09:56 +0200 | Digit | (~user@user/digit) (Ping timeout: 252 seconds) |
2024-10-18 13:13:36 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 13:13:49 +0200 | ft | (~ft@p4fc2a216.dip0.t-ipconnect.de) ft |
2024-10-18 13:16:40 +0200 | robobub | (uid248673@id-248673.uxbridge.irccloud.com) (Quit: Connection closed for inactivity) |
2024-10-18 13:17:34 +0200 | <Inst> | i should read up on parametricity and how bang patterns actually work, i guess |
2024-10-18 13:17:44 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-10-18 13:17:50 +0200 | <Inst> | i still blame Eric Normand for not understanding what a -> a means when he should know better for having worked at Scrive on a Haskell project |
2024-10-18 13:18:10 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-10-18 13:18:43 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 13:18:52 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 272 seconds) |
2024-10-18 13:20:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 13:20:24 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 260 seconds) |
2024-10-18 13:22:45 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 246 seconds) |
2024-10-18 13:29:41 +0200 | Digitteknohippie | Digit |
2024-10-18 13:30:58 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 13:32:07 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 13:32:27 +0200 | euleritian | (~euleritia@ip-185-104-138-55.ptr.icomera.net) |
2024-10-18 13:33:08 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) Unicorn_Princess |
2024-10-18 13:33:27 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 276 seconds) |
2024-10-18 13:33:27 +0200 | ljdarj1 | ljdarj |
2024-10-18 13:33:59 +0200 | rosco | (~rosco@175.136.23.238) rosco |
2024-10-18 13:35:40 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 13:38:21 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 13:45:09 +0200 | euleritian | (~euleritia@ip-185-104-138-55.ptr.icomera.net) (Ping timeout: 276 seconds) |
2024-10-18 13:48:14 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) |
2024-10-18 13:57:42 +0200 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 14:00:12 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) (Remote host closed the connection) |
2024-10-18 14:00:31 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
2024-10-18 14:00:31 +0200 | ljdarj1 | ljdarj |
2024-10-18 14:00:53 +0200 | haskellbridge | (~hackager@syn-024-093-192-219.res.spectrum.com) hackager |
2024-10-18 14:00:53 +0200 | ChanServ | +v haskellbridge |
2024-10-18 14:07:28 +0200 | euleritian | (~euleritia@dynamic-176-004-236-188.176.4.pool.telefonica.de) (Ping timeout: 245 seconds) |
2024-10-18 14:10:15 +0200 | euleritian | (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) |
2024-10-18 14:18:18 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:18:38 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) alexherbo2 |
2024-10-18 14:19:06 +0200 | xff0x | (~xff0x@2405:6580:b080:900:b1c9:c57e:b0f1:f862) |
2024-10-18 14:27:09 +0200 | alp | (~alp@2001:861:e3d6:8f80:14e5:83ae:50e4:b9f4) (Ping timeout: 246 seconds) |
2024-10-18 14:33:54 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-78cd-36ef-c506-b3d4.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:34:57 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) alexherbo2 |
2024-10-18 14:38:20 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-95d5-aaea-ef3c-698e.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 14:44:34 +0200 | identity | (~identity@user/ZharMeny) identity |
2024-10-18 14:48:38 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 14:53:19 +0200 | Flow | (~none@gentoo/developer/flow) (Ping timeout: 260 seconds) |
2024-10-18 14:59:29 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 15:05:15 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 15:21:33 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 15:21:50 +0200 | hiecaq | (~hiecaq@user/hiecaq) hiecaq |
2024-10-18 15:26:48 +0200 | robertm | (robertm@lattice.rojoma.com) (Ping timeout: 252 seconds) |
2024-10-18 15:30:44 +0200 | Flow | (~none@gentoo/developer/flow) (Quit: WeeChat 4.2.1) |
2024-10-18 15:32:33 +0200 | Flow | (~none@gentoo/developer/flow) flow |
2024-10-18 15:34:20 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 15:36:26 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) Smiles |
2024-10-18 15:43:18 +0200 | dispater | (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-10-18 15:43:19 +0200 | orcus | (~orcus@mail.brprice.uk) (Quit: ZNC 1.8.2 - https://znc.in) |
2024-10-18 15:45:07 +0200 | dispater | (~dispater@mail.brprice.uk) |
2024-10-18 15:45:36 +0200 | orcus | (~orcus@mail.brprice.uk) |
2024-10-18 15:51:00 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 15:52:16 +0200 | <Inst> | hmmm, so seq and bang patterns are equivalent, except that bang patterns are substantially more ergonomic |
2024-10-18 15:52:34 +0200 | <Inst> | well, depends on context |
2024-10-18 15:53:33 +0200 | <Inst> | just that bangs allow you to do stuff that would require breaking down the standard function syntax to replicate with seq |
2024-10-18 15:54:40 +0200 | euleritian | (~euleritia@dynamic-176-000-004-113.176.0.pool.telefonica.de) (Ping timeout: 272 seconds) |
2024-10-18 15:55:12 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
2024-10-18 15:56:09 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) lxsameer |
2024-10-18 16:02:14 +0200 | <mari-estel> | hey tomsmeding, compiling with -j1 worked! Thanks a lot for that! |
2024-10-18 16:02:22 +0200 | <tomsmeding> | mari-estel: yay! |
2024-10-18 16:02:25 +0200 | <mari-estel> | i will try to recall the trick as it seems very useful. Unfortunately now i have "hoogle generate" failing, i will try your other hints about managing swap |
2024-10-18 16:02:26 +0200 | <tomsmeding> | sometimes it's easier than you think |
2024-10-18 16:02:46 +0200 | <tomsmeding> | oh is 'hoogle generate' so ram-hungry too? |
2024-10-18 16:02:49 +0200 | <tomsmeding> | then yes, swap |
2024-10-18 16:02:52 +0200 | <mari-estel> | it is less of a problem though because i managed to install linux on another machine |
2024-10-18 16:07:53 +0200 | Sgeo | (~Sgeo@user/sgeo) Sgeo |
2024-10-18 16:08:44 +0200 | Axman6 | (~Axman6@user/axman6) (Ping timeout: 248 seconds) |
2024-10-18 16:18:02 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 16:19:29 +0200 | comonad | (~comonad@p200300d0272bda000e01a379c24cc428.dip0.t-ipconnect.de) |
2024-10-18 16:24:38 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) (Quit: ZNC - https://znc.in) |
2024-10-18 16:24:54 +0200 | todi | (~todi@p57803331.dip0.t-ipconnect.de) todi |
2024-10-18 16:28:53 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 16:29:14 +0200 | mari-estel | (~mari-este@user/mari-estel) mari-estel |
2024-10-18 16:31:11 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 16:37:23 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 16:37:35 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
2024-10-18 16:38:19 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 16:38:32 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
2024-10-18 16:42:46 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 16:44:48 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) ubert |
2024-10-18 16:47:27 +0200 | spew | (~spew@155.133.15.104) spew |
2024-10-18 16:49:15 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 16:52:42 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) () |
2024-10-18 16:53:50 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 16:56:27 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 16:56:27 +0200 | tabemann_ | (~tabemann@2600:1700:7990:24e0:9b92:fe17:1b69:2f6b) |
2024-10-18 16:56:31 +0200 | weary-traveler | (~user@user/user363627) user363627 |
2024-10-18 16:56:49 +0200 | tabemann | (~tabemann@2600:1700:7990:24e0:14d2:2457:bd7:5741) (Ping timeout: 260 seconds) |
2024-10-18 16:57:53 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 255 seconds) |
2024-10-18 16:58:34 +0200 | glguy | (glguy@libera/staff/glguy) glguy |
2024-10-18 16:58:52 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) |
2024-10-18 17:04:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:09:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 17:13:27 +0200 | tzh | (~tzh@c-76-115-131-146.hsd1.or.comcast.net) tzh |
2024-10-18 17:20:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:23:05 +0200 | ubert | (~Thunderbi@178.165.179.94.wireless.dyn.drei.com) (Ping timeout: 255 seconds) |
2024-10-18 17:23:39 +0200 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 260 seconds) |
2024-10-18 17:23:51 +0200 | mari-estel | (~mari-este@user/mari-estel) (Remote host closed the connection) |
2024-10-18 17:24:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 17:25:14 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 17:34:46 +0200 | rosco | (~rosco@175.136.23.238) (Quit: Lost terminal) |
2024-10-18 17:35:21 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:40:00 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds) |
2024-10-18 17:45:58 +0200 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2024-10-18 17:46:45 +0200 | euphores | (~SASL_euph@user/euphores) (Quit: Leaving.) |
2024-10-18 17:48:46 +0200 | Tuplanolla | (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) Tuplanolla |
2024-10-18 17:50:45 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 17:53:25 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 17:55:20 +0200 | euphores | (~SASL_euph@user/euphores) euphores |
2024-10-18 17:55:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 17:55:32 +0200 | <glguy> | dmj`: yes, it is practical |
2024-10-18 18:03:27 +0200 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) billchenchina |
2024-10-18 18:04:44 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) alexherbo2 |
2024-10-18 18:05:36 +0200 | <haskellbridge> | <maralorn> Lens wizards, please help, I am confused. I have a multiple X in Y, and I want to do three things on all the X, 1. get, 2. map, 3. filter. I can’t write a lawful traversal because filtering reduces the number of Xs. But a Fold is not enough because it can’t be used for mutation. Is there a reasonable optic to do this? |
2024-10-18 18:06:07 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 18:07:59 +0200 | <ncf> | use an optic for step 1 and then regular haskell for steps 2 and 3? |
2024-10-18 18:09:40 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 18:10:11 +0200 | <haskellbridge> | <maralorn> Well, the problem is that Y is a really big datatype and the Xs are everywhere and I don’t want to repeat locating them 3 times. |
2024-10-18 18:11:51 +0200 | Square | (~Square@user/square) Square |
2024-10-18 18:13:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds) |
2024-10-18 18:14:23 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Client Quit) |
2024-10-18 18:15:09 +0200 | <Lears> | I don't know about lenses, but you can write a `traverseMaybe :: Applicative f => (X -> f (Maybe X)) -> Y -> f Y` to fuse these operations. |
2024-10-18 18:16:09 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 18:16:14 +0200 | <c_wraith> | You won't get prosecuted for using unlawful optics |
2024-10-18 18:16:33 +0200 | <c_wraith> | The still *work*, they just can't be blindly refactored. |
2024-10-18 18:16:45 +0200 | chele | (~chele@user/chele) (Remote host closed the connection) |
2024-10-18 18:17:23 +0200 | <c_wraith> | There's a reason filtered is not a Fold |
2024-10-18 18:18:25 +0200 | <haskellbridge> | <maralorn> c_wraith: Yeah, I know. But in the large team we have I’d rather be careful with that. |
2024-10-18 18:18:35 +0200 | EvanR | (~EvanR@user/evanr) EvanR |
2024-10-18 18:18:54 +0200 | <haskellbridge> | <maralorn> Lears: I like the traverseMaybe idea, thank you. |
2024-10-18 18:19:02 +0200 | <EvanR> | is there a version of unfoldr which keeps unfolding forever and doesn't need to deal with Maybe |
2024-10-18 18:19:44 +0200 | <ncf> | wait, so you need to put the filtered list back in? |
2024-10-18 18:20:14 +0200 | ncf | is confused about the problem |
2024-10-18 18:20:22 +0200 | <c_wraith> | I'd honestly just use lenses's filtered combinator unless it doesn't work for some reason |
2024-10-18 18:20:30 +0200 | <c_wraith> | err, lens's |
2024-10-18 18:20:59 +0200 | <c_wraith> | EvanR: is that not just... iterate? |
2024-10-18 18:21:11 +0200 | <EvanR> | :t iterate |
2024-10-18 18:21:12 +0200 | <lambdabot> | (a -> a) -> a -> [a] |
2024-10-18 18:21:24 +0200 | <c_wraith> | or do you want a separate state value that's passed along? |
2024-10-18 18:21:27 +0200 | <EvanR> | quite possible |
2024-10-18 18:21:29 +0200 | billchenchina- | (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection) |
2024-10-18 18:21:41 +0200 | <EvanR> | you could just map the sequence of states? |
2024-10-18 18:22:15 +0200 | <EvanR> | if so, haskell at its finest |
2024-10-18 18:22:38 +0200 | <c_wraith> | a common pattern with iterate is to use it on (state, value) tuples then map snd to get rid of the states |
2024-10-18 18:23:53 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 18:26:06 +0200 | <haskellbridge> | <maralorn> ncf: Yes. |
2024-10-18 18:27:10 +0200 | <ncf> | then you should have a lens or a traversal with target type [Whatever] |
2024-10-18 18:27:27 +0200 | <ncf> | so you can map/filter/whatever over that |
2024-10-18 18:28:55 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56e90e8e53bb556001.dip0.t-ipconnect.de) (Ping timeout: 264 seconds) |
2024-10-18 18:30:30 +0200 | <c_wraith> | that doesn't sound right to me, but I think we're interpreting the problem differently. the specification is really vague |
2024-10-18 18:31:13 +0200 | ncf | nods |
2024-10-18 18:31:25 +0200 | <c_wraith> | Like.. Do you want to map over every value and only keep the changes that pass the filter? Do you want to remove elements from the Y that fail the filter? |
2024-10-18 18:32:14 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 18:34:30 +0200 | glguy | ghoulguy |
2024-10-18 18:36:10 +0200 | <c_wraith> | Is the whole operation a Y -> Y? a Y -> ([X], Y)? |
2024-10-18 18:37:09 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 18:37:57 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 18:45:47 +0200 | sord937 | (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
2024-10-18 18:45:54 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 252 seconds) |
2024-10-18 18:46:30 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-10-18 18:47:32 +0200 | euleritian | (~euleritia@dynamic-176-000-151-221.176.0.pool.telefonica.de) (Read error: Connection reset by peer) |
2024-10-18 18:47:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 18:47:44 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) |
2024-10-18 18:47:51 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 18:48:40 +0200 | alp | (~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d) |
2024-10-18 18:52:03 +0200 | acidjnk_new | (~acidjnk@p200300d6e72cfb56ac585057b67fefcd.dip0.t-ipconnect.de) |
2024-10-18 18:52:37 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 18:54:19 +0200 | benjaminl | (~benjaminl@user/benjaminl) (Read error: Connection reset by peer) |
2024-10-18 18:54:34 +0200 | benjaminl | (~benjaminl@user/benjaminl) benjaminl |
2024-10-18 18:57:45 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 19:03:17 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) JuanDaugherty |
2024-10-18 19:03:45 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 19:08:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-10-18 19:10:43 +0200 | <EvanR> | I thought chess would simply be a data type for a "board state" and a datatype for "moves" which bring you from one board to another, and a game is a chain of moves, or chain of boards |
2024-10-18 19:10:59 +0200 | <EvanR> | but to get this to work the board type is growing some serious legs xD |
2024-10-18 19:11:45 +0200 | <EvanR> | can black castle? since this is usually expressed as historical, gotta keep a flag in the board state. But wait they might be able to castle on one side but not the other because a rook moved |
2024-10-18 19:12:12 +0200 | <EvanR> | en passant is possible when a pawn "bolted" 2 spaces on the previous move |
2024-10-18 19:12:25 +0200 | <EvanR> | this is turning into a history instead of a state |
2024-10-18 19:12:51 +0200 | <int-e> | https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation may be useful (it encodes all the state you need except previous positions for three-fold repetition) |
2024-10-18 19:13:52 +0200 | <int-e> | (i.e. it already has all the legs and appendices you're talking about) |
2024-10-18 19:14:35 +0200 | <EvanR> | three fold repetition :scream: |
2024-10-18 19:14:53 +0200 | <int-e> | well for that you really need the full history |
2024-10-18 19:15:02 +0200 | <int-e> | so yeah that's pretty awful |
2024-10-18 19:15:22 +0200 | <int-e> | (well, history since the last capture or promotion, but still) |
2024-10-18 19:15:30 +0200 | <int-e> | (or pawn advancement) |
2024-10-18 19:18:09 +0200 | alp | (~alp@2001:861:e3d6:8f80:1f24:b693:8d8:576d) (Ping timeout: 248 seconds) |
2024-10-18 19:20:40 +0200 | jinsun | (~jinsun@user/jinsun) jinsun |
2024-10-18 19:22:14 +0200 | BolzmannPain | (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) |
2024-10-18 19:23:02 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 272 seconds) |
2024-10-18 19:23:10 +0200 | BolzmannPain | (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Client Quit) |
2024-10-18 19:23:35 +0200 | BolzmannPain2 | (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) |
2024-10-18 19:29:13 +0200 | dcoutts__ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 265 seconds) |
2024-10-18 19:29:44 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 19:34:31 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 19:37:34 +0200 | machinedgod | (~machinedg@d50-99-47-73.abhsia.telus.net) machinedgod |
2024-10-18 19:37:52 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 252 seconds) |
2024-10-18 19:38:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 19:41:04 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 19:41:28 +0200 | <EvanR> | there is this cliff where the thing you want to model with haskell datatypes goes from "so simple" and fits on a page... to huge but unavoidable because "sorry, reality" |
2024-10-18 19:41:41 +0200 | <EvanR> | whats up with that |
2024-10-18 19:41:57 +0200 | <EvanR> | you could simplify chess to make a point, but why is this like a seismic change |
2024-10-18 19:42:29 +0200 | <EvanR> | is haskell optimized for the simplest cases |
2024-10-18 19:48:18 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 245 seconds) |
2024-10-18 19:49:17 +0200 | emmanuelux | (~emmanuelu@user/emmanuelux) emmanuelux |
2024-10-18 19:49:54 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 19:50:15 +0200 | athan | (~athan@syn-173-042-095-241.biz.spectrum.com) athan |
2024-10-18 19:52:49 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 19:53:24 +0200 | st_aldini | (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) (Read error: Connection reset by peer) |
2024-10-18 19:54:05 +0200 | st_aldini | (~Thunderbi@2605:a601:a07c:af00:edd4:453a:4c88:19a0) st_aldini |
2024-10-18 19:56:51 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 19:56:56 +0200 | <haskellbridge> | <magic_rb> Idk chess rules, but by what you described what id do is store the board state, so just the positions of pawns in a linked list |
2024-10-18 19:57:16 +0200 | <haskellbridge> | <magic_rb> Everything else is computed from that, like whether a pawn moved by 2 squares or whatever |
2024-10-18 19:57:57 +0200 | athan | (~athan@syn-173-042-095-241.biz.spectrum.com) (Ping timeout: 252 seconds) |
2024-10-18 20:01:15 +0200 | BolzmannPain13 | (~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36) |
2024-10-18 20:01:57 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 20:02:51 +0200 | alexherbo2 | (~alexherbo@2a02-8440-3207-4943-39e2-af68-9f9c-c108.rev.sfr.net) (Remote host closed the connection) |
2024-10-18 20:03:30 +0200 | <EvanR> | a diff of boards |
2024-10-18 20:04:33 +0200 | BolzmannPain2 | (~BolzmannP@2a0a-a546-bba0-1-bf7d-3159-648d-4f72.ipv6dyn.netcologne.de) (Ping timeout: 256 seconds) |
2024-10-18 20:04:45 +0200 | <haskellbridge> | <magic_rb> Well not directly, essentially "didPawnMove :: Board -> Board" |
2024-10-18 20:04:47 +0200 | <int-e> | To work with the board you do want an efficient map from positions to pieces though. |
2024-10-18 20:04:52 +0200 | <EvanR> | sure, you might be able to compute a move from two boards. Though that's not enough to know what the possible moves are for a given board |
2024-10-18 20:05:06 +0200 | <haskellbridge> | <magic_rb> Then you take N for each function |
2024-10-18 20:05:07 +0200 | <EvanR> | because reasons |
2024-10-18 20:05:18 +0200 | <haskellbridge> | <magic_rb> Or just "[Board]" |
2024-10-18 20:05:42 +0200 | <EvanR> | yeah this sounds like a simplification of chess, it could collapse a lot |
2024-10-18 20:05:45 +0200 | <haskellbridge> | <magic_rb> And for the board it could be "Map (Int, Int) ChessPiece" |
2024-10-18 20:05:50 +0200 | <EvanR> | sure |
2024-10-18 20:06:19 +0200 | <int-e> | (Using 64 bit masks for each type of pieces is a thing ("bitboards") but if you worry that much about performance then why are you using Haskell :P) |
2024-10-18 20:06:27 +0200 | <EvanR> | it's just not enough to play actual chess on |
2024-10-18 20:06:45 +0200 | <EvanR> | in the sense of stopping you from making illegal moves |
2024-10-18 20:07:00 +0200 | <EvanR> | if you wanted to e.g. generate the tree of all games |
2024-10-18 20:07:05 +0200 | <int-e> | But yes, you do need extra state on top of that. Just to reaffirm what has been said already :) |
2024-10-18 20:07:34 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 260 seconds) |
2024-10-18 20:07:48 +0200 | <haskellbridge> | <magic_rb> The datatype doesnt prevent you from making illegal moves, the checks around it do |
2024-10-18 20:07:57 +0200 | jinsun | (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
2024-10-18 20:07:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 20:07:58 +0200 | <EvanR> | there's not enough info |
2024-10-18 20:08:03 +0200 | <EvanR> | in a single board |
2024-10-18 20:08:14 +0200 | <EvanR> | that's the rub |
2024-10-18 20:08:29 +0200 | <haskellbridge> | <magic_rb> Thats why you need `someCheck :: [Board] -> Bool |
2024-10-18 20:08:37 +0200 | <EvanR> | ......... yeah |
2024-10-18 20:08:45 +0200 | <EvanR> | so much for elegance xD |
2024-10-18 20:09:02 +0200 | <haskellbridge> | <magic_rb> You can also generate the list of valid moves given a list of boards |
2024-10-18 20:09:13 +0200 | <haskellbridge> | <magic_rb> And then check if the given move is in that set |
2024-10-18 20:09:21 +0200 | <EvanR> | when you have the entire history of something, sometimes that's making the "state" redundant |
2024-10-18 20:09:34 +0200 | <haskellbridge> | <magic_rb> Which then would allow you to generate a tree of all possible states |
2024-10-18 20:09:41 +0200 | <EvanR> | the state stops becoming a good summary of what happened |
2024-10-18 20:09:48 +0200 | <EvanR> | and you don't need it anymore since you have history |
2024-10-18 20:09:50 +0200 | <haskellbridge> | <magic_rb> Wdym redundant, having the history is the state |
2024-10-18 20:09:58 +0200 | <EvanR> | well you have these board positions |
2024-10-18 20:10:04 +0200 | <EvanR> | but they're redundant |
2024-10-18 20:10:08 +0200 | <haskellbridge> | <magic_rb> You can also store "[Move]" but i feel like thats harder to get right |
2024-10-18 20:10:10 +0200 | <EvanR> | all you need is the history of moves |
2024-10-18 20:11:15 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 20:11:49 +0200 | EvanR | (~EvanR@user/evanr) (Read error: Connection reset by peer) |
2024-10-18 20:11:52 +0200 | EvanR_ | (~EvanR@user/evanr) EvanR |
2024-10-18 20:12:37 +0200 | EvanR_ | EvanR |
2024-10-18 20:12:49 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 20:13:13 +0200 | <EvanR> | the moves route is more theoretically interesting, assuming you upgrade it to allow combining moves, now you have a semigroupoid |
2024-10-18 20:14:07 +0200 | <EvanR> | but is more data |
2024-10-18 20:14:57 +0200 | CrunchyFlakes | (~CrunchyFl@ip1f13e94e.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
2024-10-18 20:17:07 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 20:17:35 +0200 | CrunchyFlakes | (~CrunchyFl@31.19.233.78) |
2024-10-18 20:20:23 +0200 | druchan | (uid567859@id-567859.lymington.irccloud.com) |
2024-10-18 20:21:23 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 244 seconds) |
2024-10-18 20:22:30 +0200 | <druchan> | hey folks, i have this small piece of code (https://pastebin.com/VpeBm0aV) but on compile and run, it keeps crashing due to running out of memory (or shows a `bus error` and crashes). any idea what i could be doing wrong? |
2024-10-18 20:26:31 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 264 seconds) |
2024-10-18 20:27:20 +0200 | <briandaed> | and how big are response bodies there? have you tried it with curl? maybe it's just 'too big' |
2024-10-18 20:28:02 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-18 20:28:18 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 245 seconds) |
2024-10-18 20:30:02 +0200 | <int-e> | Hmm listing the packages you depend on would be helpful. I assume this is http-conduit. Oh and the <...'...> really messes with the syntax highlighting for me |
2024-10-18 20:30:19 +0200 | <int-e> | druchan: ^ |
2024-10-18 20:31:12 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 20:31:39 +0200 | <int-e> | (three eternities later, http-conduit is still building) |
2024-10-18 20:32:32 +0200 | <int-e> | length (unpack dat) -- Data.ByteString.Char8 should have a `length` |
2024-10-18 20:32:36 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 20:34:26 +0200 | synchromesh | (~john@2406:5a00:2497:300:bcf8:f387:b864:86a) synchromesh |
2024-10-18 20:35:38 +0200 | <int-e> | hmm it survives a simple test for me: fetching https://paste.tomsmeding.com/ \ process 7 ...also survives fetching 10MB of data a couple of times using ~60MB of memory |
2024-10-18 20:35:42 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 246 seconds) |
2024-10-18 20:36:31 +0200 | <briandaed> | looks like it's 'url' specific, and indeed error message is right |
2024-10-18 20:36:55 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 20:38:43 +0200 | <EvanR> | fetch 10M using 60M of memory, it lifts 0.16666x its own weight! |
2024-10-18 20:39:42 +0200 | <int-e> | EvanR: it's a 24M executable (stripped), so that's a big part of the memory footprint |
2024-10-18 20:40:57 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 246 seconds) |
2024-10-18 20:41:24 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 20:43:09 +0200 | <EvanR> | living in a world of infinite memory is weird |
2024-10-18 20:43:43 +0200 | <int-e> | well it's not infinite :) |
2024-10-18 20:43:58 +0200 | <int-e> | and VMs are often very limited in that capacity (hah, capacity) |
2024-10-18 20:44:07 +0200 | <mreh> | when I trace this https://hackage.haskell.org/package/GPipe-Core-0.2.3.1/docs/src/Graphics.GPipe.Internal.Texture.ht… it looks like it's freeing the memeory before I print the result and then after printing it immediately segfaults |
2024-10-18 20:44:40 +0200 | <druchan> | thanks int-e.. sometimes, the `bus error` shows up within the first few links of the 36. and sometimes much later. so... not sure. i'll try to see if it's because of some URL(s) in my list. |
2024-10-18 20:45:02 +0200 | <EvanR> | at one point the biggest executable on my computer was vim at 7M |
2024-10-18 20:45:16 +0200 | <EvanR> | that was gratuitous |
2024-10-18 20:46:08 +0200 | <mreh> | isn't bracket meant to order the effects of the first, third then second argument? |
2024-10-18 20:46:27 +0200 | <mreh> | I chucked some `putStrLn`s in there |
2024-10-18 20:47:08 +0200 | <int-e> | druchan: can you discern whether it's running out of memory or actuall crashing in some other way? is there something else running that hogs all memory? also, what platform is this? (I'm on x86-64 Linux which is probably the platform that causes the least trouble for GHC + most Haskell libraries.) |
2024-10-18 20:47:47 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 20:48:00 +0200 | <tomsmeding> | mreh: according to the haddock mouseover, this is not `bracket` from Control.Exception. I'm afraid that's all I have to offer :) |
2024-10-18 20:48:12 +0200 | <mreh> | oh what?! |
2024-10-18 20:48:16 +0200 | <int-e> | hmm what GHC version am I using... 9.2.7 (hopefully not too critical but you never know) |
2024-10-18 20:48:26 +0200 | <druchan> | haskell noob here so not sure about that except, i did do a profiling and then saw, in the pdf from postscript, there was a 600MB+ spike in the heap |
2024-10-18 20:48:58 +0200 | <druchan> | init-e: GHC v9.2.5 |
2024-10-18 20:49:07 +0200 | <druchan> | M3 Pro, 36GB RAM and it crashes |
2024-10-18 20:49:23 +0200 | <druchan> | the `bus error` is very cryptic and unhelpful. i wasnt able to find out what that is about |
2024-10-18 20:49:48 +0200 | <tomsmeding> | druchan: if you do `lldb "$(cabal list-bin yourexecutablename)"` and then type `run`, does it crash, and if so what does it print? |
2024-10-18 20:49:52 +0200 | weary-traveler | (~user@user/user363627) (Remote host closed the connection) |
2024-10-18 20:49:59 +0200 | <tomsmeding> | (type either `quit` or `exit` to get out of lldb, I forget) |
2024-10-18 20:50:23 +0200 | <tomsmeding> | lldb is a C debugger, not a Haskell debugger, so it's bound to be not terribly helpful. But you never know |
2024-10-18 20:51:13 +0200 | <druchan> | haha okay fair enough |
2024-10-18 20:51:37 +0200 | <druchan> | it crashed |
2024-10-18 20:51:38 +0200 | <druchan> | https://paste.tomsmeding.com/FNKlqYdG |
2024-10-18 20:51:38 +0200 | <mreh> | It's from MonadAsyncException - "If an exception is raised, then bracket will re-raise the exception (after performing the release)." - I didn't realise segfault was an exception. |
2024-10-18 20:51:55 +0200 | <tomsmeding> | mreh: it likely is not |
2024-10-18 20:52:16 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 20:52:55 +0200 | <tomsmeding> | druchan: interesting. That "__gmpn_sqr_diag_addlsh1" is a function from GMP, the library underlying (arbitrary-precision) Integer arithmetic in Haskell |
2024-10-18 20:53:26 +0200 | ljdarj | (~Thunderbi@user/ljdarj) (Read error: Connection reset by peer) |
2024-10-18 20:53:26 +0200 | <tomsmeding> | and furthermore, the error is EXC_BAD_ACCESS, which sounds like it's not running out of memory, but it's accessing invalid memory instead |
2024-10-18 20:53:43 +0200 | <tomsmeding> | druchan: can you get a backtrace? Perhaps `bt` |
2024-10-18 20:53:45 +0200 | ljdarj | (~Thunderbi@user/ljdarj) ljdarj |
2024-10-18 20:54:07 +0200 | <druchan> | how do i do bt? |
2024-10-18 20:54:09 +0200 | <briandaed> | druchan try compiling it for profiling and then run with +RTS -xc -RTS, and your problem is probably caused by... too old ghc version, if possible switch to 9.4 or later to check if problem still occurs |
2024-10-18 20:54:11 +0200 | <tomsmeding> | druchan: type it in lldb |
2024-10-18 20:54:55 +0200 | <druchan> | https://www.irccloud.com/pastebin/mYDHV4zH/ |
2024-10-18 20:54:57 +0200 | <briandaed> | *too old for M3 |
2024-10-18 20:55:26 +0200 | <int-e> | hmm that URL returns 275144 bytes... so it's not a super large feed that causes it |
2024-10-18 20:55:58 +0200 | <int-e> | AH EXC_BAD_ACCESS is at least more useful than "bus error" |
2024-10-18 20:55:59 +0200 | <tomsmeding> | druchan: is that really the entire backtrace? |
2024-10-18 20:56:30 +0200 | <briandaed> | similar to https://gitlab.haskell.org/ghc/ghc/-/issues/22497 |
2024-10-18 20:56:34 +0200 | <tomsmeding> | if the call to GMP was from some non-Haskell code then I would expect some further visible stack frames; if it was from Haskell then I'm not sure how that normally looks on macOS |
2024-10-18 20:56:42 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 20:56:44 +0200 | <tomsmeding> | so that sounds like heap corruption then, which is... bad? |
2024-10-18 20:56:58 +0200 | <druchan> | tomsmeding: yeah, that was the output when i tried `bt`. should i do `bt` multiple times? |
2024-10-18 20:57:11 +0200 | <tomsmeding> | no it outputs the whole thing |
2024-10-18 20:57:32 +0200 | <tomsmeding> | oh briandaed's linked issue looks extremely relevant |
2024-10-18 20:57:42 +0200 | <tomsmeding> | in particular this reproducer https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_464384 |
2024-10-18 20:57:44 +0200 | <druchan> | yeah seems like that's what i am facing too |
2024-10-18 20:57:51 +0200 | poxel | (~lennart@user/poxel) poxel |
2024-10-18 20:58:12 +0200 | <druchan> | i think i should just upgrade ghc and try again |
2024-10-18 20:59:12 +0200 | <int-e> | Oh "The platforms reserve register x18. Don’t use this register." would indeed explain sporadic horrible errors. |
2024-10-18 20:59:17 +0200 | <int-e> | druchan: yeah |
2024-10-18 20:59:39 +0200 | <druchan> | sigh and i was almost ready to port my code to Purescript :/ |
2024-10-18 20:59:49 +0200 | <tomsmeding> | oof it's gmp that is the culprit? That's unexpeced |
2024-10-18 21:00:05 +0200 | caconym | (~caconym@user/caconym) (Quit: bye) |
2024-10-18 21:00:19 +0200 | <tomsmeding> | druchan: the fix for that bug was backported to ghc 9.2.6 lol |
2024-10-18 21:00:30 +0200 | <tomsmeding> | just one minor version too old! |
2024-10-18 21:00:44 +0200 | caconym | (~caconym@user/caconym) caconym |
2024-10-18 21:01:27 +0200 | <tomsmeding> | but yeah, upgrading to 9.4.8 if you can is probably safest |
2024-10-18 21:01:29 +0200 | <int-e> | tomsmeding: nah AIUI GHC's code generator uses the reserved register, the OS zeros it on occasion, and then that zero pointer gets passed around to other libraries like GMP |
2024-10-18 21:02:21 +0200 | BolzmannPain13 | (~BolzmannP@2a02:3035:669:c97c:b0c7:d528:345d:3a36) (Ping timeout: 256 seconds) |
2024-10-18 21:02:21 +0200 | <tomsmeding> | int-e: this https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_472557 definitely points to an issue in GMP |
2024-10-18 21:02:31 +0200 | <tomsmeding> | (it could still be that GHC also had issues; I don't know) |
2024-10-18 21:02:59 +0200 | <int-e> | tomsmeding: Ah, I didn't read far enough. Yes it does. |
2024-10-18 21:03:14 +0200 | L29Ah | (~L29Ah@wikipedia/L29Ah) L29Ah |
2024-10-18 21:05:09 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 21:07:20 +0200 | <int-e> | tomsmeding: seems to be fixed now though. https://gitlab.haskell.org/ghc/gmp-tarballs/-/merge_requests/4/diffs?commit_id=7bb13b556d81e60556d… did this by patching gmp-6.2.1; the current GHC repo carries gmp-6.3.0 without that patch |
2024-10-18 21:07:30 +0200 | <tomsmeding> | mreh: could this be a threading issue? Are you calling this function from multiple threads? |
2024-10-18 21:07:38 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 21:07:38 +0200 | <int-e> | now... which GHC versions have either of these fixes? :-/ |
2024-10-18 21:07:40 +0200 | <druchan> | and now this little maneouver is going to cost us .. whatever time it takes for cabal to recompile |
2024-10-18 21:07:44 +0200 | <tomsmeding> | int-e: 9.2.6 |
2024-10-18 21:08:04 +0200 | <tomsmeding> | int-e: https://gitlab.haskell.org/ghc/ghc/-/issues/22497#note_485068 |
2024-10-18 21:08:25 +0200 | <tomsmeding> | if you click that commit and open "Tags containing commit", you can see it's included in 9.2.6 |
2024-10-18 21:08:31 +0200 | <tomsmeding> | which is funny because druchan was using 9.2.5 |
2024-10-18 21:08:54 +0200 | <int-e> | unlucky |
2024-10-18 21:10:48 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 21:12:03 +0200 | robertm | (robertm@lattice.rojoma.com) robertm |
2024-10-18 21:12:08 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 255 seconds) |
2024-10-18 21:12:10 +0200 | BolzmannPain2 | (~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4) |
2024-10-18 21:12:17 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Ping timeout: 248 seconds) |
2024-10-18 21:14:48 +0200 | <druchan> | okay i upgraded, recompiled and run the program a few times -- no crashes now. |
2024-10-18 21:14:58 +0200 | <druchan> | thanks tomsmeding int-e |
2024-10-18 21:15:01 +0200 | <tomsmeding> | yay! |
2024-10-18 21:15:12 +0200 | <tomsmeding> | also thanks briandaed for digging up the precise issue at work |
2024-10-18 21:15:18 +0200 | <druchan> | thanks briandaed too yes! |
2024-10-18 21:15:22 +0200 | <briandaed> | :) |
2024-10-18 21:15:53 +0200 | <druchan> | is there a haskell beginner channel btw? i dont want to clog up this space if so... learning haskell now, might have lotsa questions |
2024-10-18 21:16:04 +0200 | <druchan> | FP slack was not very helpful on this one |
2024-10-18 21:16:09 +0200 | <tomsmeding> | #haskell-beginners exists, but no clue how active |
2024-10-18 21:16:15 +0200 | <tomsmeding> | this particular question was not a beginner question though ;) |
2024-10-18 21:16:31 +0200 | <tomsmeding> | beginner questions are generally welcome here in #haskell |
2024-10-18 21:16:32 +0200 | <sam113101> | I wish I knew haskell |
2024-10-18 21:16:38 +0200 | <int-e> | it's not like this channel is super busy either |
2024-10-18 21:16:55 +0200 | <druchan> | has it always been like that when it was on freenode? |
2024-10-18 21:17:01 +0200 | <haskellbridge> | <sm> In addition, there's the Haskell matrix room which is sometimes less technical |
2024-10-18 21:17:27 +0200 | <tomsmeding> | as always on IRC, it's just one channel though, so holding two conversations in parallel is impractical -- but that goes both ways, beginner questions through advanced topics and advanced topics through beginner questions |
2024-10-18 21:17:45 +0200 | <int-e> | druchan: well, numbers have gone down over the years |
2024-10-18 21:17:58 +0200 | <tomsmeding> | druchan: when it was on freenode the number of idlers was larger, but I suspect many of the ones we "lost" were not actually reading. |
2024-10-18 21:18:10 +0200 | <druchan> | ah okay |
2024-10-18 21:18:21 +0200 | <haskellbridge> | <sm> and there's lots more channels now |
2024-10-18 21:18:49 +0200 | <druchan> | i cant tell you folks how relieved i am now though. i was almost thinking haskell is probably not for me coz i thought this was something to do with the laziness |
2024-10-18 21:19:17 +0200 | <tomsmeding> | druchan: if you get "bus error" or "segmentation fault" in haskell and you're not using some C code or C libraries yourself, |
2024-10-18 21:19:23 +0200 | <tomsmeding> | then something is awfully wrong |
2024-10-18 21:19:33 +0200 | <tomsmeding> | that is _not_ supposed to happen |
2024-10-18 21:19:55 +0200 | <int-e> | https://wiki.haskell.org/IRC_channel has some historic numbers about early channel activity |
2024-10-18 21:20:31 +0200 | <sam113101> | I'd like to see some code examples of haskell |
2024-10-18 21:20:56 +0200 | <druchan> | i should've learnt some systems stuff but noooo boy didnt pay attention in C classes. |
2024-10-18 21:21:03 +0200 | <druchan> | anyway, thanks folks. |
2024-10-18 21:21:43 +0200 | <EvanR> | yeah haskell has like 20 something channels here |
2024-10-18 21:21:52 +0200 | <tomsmeding> | O.o does it? |
2024-10-18 21:21:58 +0200 | <EvanR> | lol |
2024-10-18 21:22:02 +0200 | <tomsmeding> | I know of... 5? |
2024-10-18 21:22:17 +0200 | <tomsmeding> | oh 6 |
2024-10-18 21:22:28 +0200 | <int-e> | sam113101: visit https://wiki.haskell.org/Special:Random until you see a code block ;-) |
2024-10-18 21:22:28 +0200 | <EvanR> | maybe some didn't make it off freenode |
2024-10-18 21:22:36 +0200 | <EvanR> | but there's one for each language |
2024-10-18 21:22:37 +0200 | <tomsmeding> | (#ghc, #haskell, #haskell-offtopic, #hackage, #haskell-infrastructure, #haskell-beginners) |
2024-10-18 21:22:45 +0200 | <tomsmeding> | oh I see |
2024-10-18 21:22:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 21:23:06 +0200 | <EvanR> | #haskell-game come on |
2024-10-18 21:23:10 +0200 | <int-e> | @where lyah |
2024-10-18 21:23:10 +0200 | <lambdabot> | http://www.learnyouahaskell.com/ or the slightly updated fork https://learnyouahaskell.github.io/ |
2024-10-18 21:23:22 +0200 | <EvanR> | surely #haskell-blah is still around |
2024-10-18 21:23:30 +0200 | <EvanR> | #haskell-advanced ? |
2024-10-18 21:23:31 +0200 | <int-e> | (probably not the best, but also not the worst source for example code) |
2024-10-18 21:24:11 +0200 | <int-e> | #haskell-ascended ? |
2024-10-18 21:24:20 +0200 | <tomsmeding> | hah, /msg alis list haskell |
2024-10-18 21:24:28 +0200 | <tomsmeding> | doesn't fit on my screen :) |
2024-10-18 21:24:39 +0200 | <int-e> | @seen lambdabot |
2024-10-18 21:24:39 +0200 | <lambdabot> | Yes, I'm here. I'm in ##villagegreen, #lambdacalculus, #esolangs, #scannedinavian, #bfpg, #kmonad, #xmonad, #haskell-it-offtopic, #haskell-cs, #haskell-tw, #haskell-es, #haskell-au, #haskell-it, # |
2024-10-18 21:24:39 +0200 | <lambdabot> | haskell-cn, #haskell-ghcup, #haskell-lens, #haskell-in-depth, #haskell-offtopic, #haskell-blah, #haskell-beginners, #ghc and #haskell |
2024-10-18 21:25:06 +0200 | <int-e> | (includes some odd ones) |
2024-10-18 21:28:04 +0200 | <monochrom> | There is #haskell-in-depth |
2024-10-18 21:28:27 +0200 | <int-e> | what's the #haskell-overflow status? |
2024-10-18 21:29:04 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds) |
2024-10-18 21:29:44 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 21:29:52 +0200 | <EvanR> | #haskell-overwhelming |
2024-10-18 21:30:23 +0200 | <int-e> | (#haskelllll redirects there) |
2024-10-18 21:30:26 +0200 | <EvanR> | my life for foldr |
2024-10-18 21:31:11 +0200 | <int-e> | #foldr? |
2024-10-18 21:31:50 +0200 | <monochrom> | #haskell-overflow is also part of the #haskell* family of channels. (As in, I also have ops there. :) ) |
2024-10-18 21:31:53 +0200 | <int-e> | EvanR: foldr is perfect for making progress lazile |
2024-10-18 21:31:56 +0200 | <int-e> | *lazily |
2024-10-18 21:32:09 +0200 | <monochrom> | But I guess no one ever bothered to send lambdabot there. |
2024-10-18 21:34:02 +0200 | <EvanR> | I feel like #haskell-game has been requesting a lambdabot but never got one |
2024-10-18 21:34:16 +0200 | <EvanR> | been kind of dead lately though |
2024-10-18 21:34:27 +0200 | <EvanR> | I think because of bridge problems |
2024-10-18 21:36:31 +0200 | <monochrom> | A game of Contract Bridge. >:) |
2024-10-18 21:36:33 +0200 | <int-e> | EvanR: that's news to me, but it's easy to miss a highlight |
2024-10-18 21:36:40 +0200 | <int-e> | (re: #haskell-game) |
2024-10-18 21:36:51 +0200 | <EvanR> | more like olds |
2024-10-18 21:37:02 +0200 | <EvanR> | I could be dredging up a convo from the 2010s |
2024-10-18 21:37:19 +0200 | <int-e> | uh, that would predate me running the thing |
2024-10-18 21:37:20 +0200 | <haskellbridge> | <sm> the haskell gamers are more on matrix now |
2024-10-18 21:37:44 +0200 | <EvanR> | int-e, you're the wizard of Hask? |
2024-10-18 21:37:47 +0200 | <int-e> | not discord? |
2024-10-18 21:37:56 +0200 | <int-e> | EvanR: No. I just run lambdabot. |
2024-10-18 21:38:02 +0200 | <haskellbridge> | <sm> hell no. Though I'm sure there are haskellers there too |
2024-10-18 21:38:14 +0200 | <EvanR> | there is a haskell game discord |
2024-10-18 21:38:15 +0200 | <haskellbridge> | <sm> probably a lot |
2024-10-18 21:38:15 +0200 | <int-e> | (To be clear, I don't like Discord at all. But a lot of people mention being there. :P) |
2024-10-18 21:38:37 +0200 | <haskellbridge> | <sm> poor beknighted lost souls |
2024-10-18 21:38:38 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-10-18 21:38:41 +0200 | <int-e> | (So it's kind of hard to ignore that it's a thing.) |
2024-10-18 21:40:06 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 21:41:24 +0200 | JuanDaugherty | (~juan@user/JuanDaugherty) (Quit: JuanDaugherty) |
2024-10-18 21:42:49 +0200 | neuroevolutus | (~neuroevol@2001:ac8:9a:75::e014) neuroevolutus |
2024-10-18 21:47:01 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 21:51:17 +0200 | lxsameer | (~lxsameer@Serene/lxsameer) (Ping timeout: 248 seconds) |
2024-10-18 21:52:41 +0200 | briandaed | (~root@185.234.210.211.r.toneticgroup.pl) (Remote host closed the connection) |
2024-10-18 21:53:21 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) LukeHoersten |
2024-10-18 21:55:26 +0200 | Smiles | (uid551636@id-551636.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
2024-10-18 21:55:35 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 21:58:08 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 21:59:00 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 21:59:15 +0200 | LukeHoersten | (~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2024-10-18 22:01:00 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
2024-10-18 22:02:41 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 22:03:48 +0200 | euleritian | (~euleritia@ip92340bd4.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
2024-10-18 22:04:31 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 252 seconds) |
2024-10-18 22:05:32 +0200 | alp | (~alp@2001:861:e3d6:8f80:5390:64ff:457d:f218) |
2024-10-18 22:06:02 +0200 | Unicorn_Princess | (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
2024-10-18 22:13:31 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 22:15:30 +0200 | BolzmannPain2 | (~BolzmannP@2a02:3035:668:c2f2:123c:65dd:8f14:88e4) (Quit: Client closed) |
2024-10-18 22:18:06 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 22:18:54 +0200 | rvalue | (~rvalue@user/rvalue) (Read error: Connection reset by peer) |
2024-10-18 22:19:20 +0200 | rvalue | (~rvalue@user/rvalue) rvalue |
2024-10-18 22:28:46 +0200 | michalz | (~michalz@185.246.207.215) (Remote host closed the connection) |
2024-10-18 22:29:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 22:31:39 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) |
2024-10-18 22:38:44 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 272 seconds) |
2024-10-18 22:39:20 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 244 seconds) |
2024-10-18 22:40:51 +0200 | Feuermagier | Guest844 |
2024-10-18 22:40:51 +0200 | Feuermagier_ | (~Feuermagi@user/feuermagier) Feuermagier |
2024-10-18 22:40:51 +0200 | Guest844 | (~Feuermagi@user/feuermagier) (Killed (molybdenum.libera.chat (Nickname regained by services))) |
2024-10-18 22:40:51 +0200 | Feuermagier_ | Feuermagier |
2024-10-18 22:41:11 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 22:48:07 +0200 | mima | (~mmh@user/mima) (Ping timeout: 264 seconds) |
2024-10-18 22:48:33 +0200 | vanishingideal | (~vanishing@user/vanishingideal) (Ping timeout: 276 seconds) |
2024-10-18 22:49:05 +0200 | tcard__ | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
2024-10-18 22:49:10 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 22:50:07 +0200 | vanishingideal | (~vanishing@user/vanishingideal) vanishingideal |
2024-10-18 22:51:39 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) |
2024-10-18 22:53:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds) |
2024-10-18 22:54:38 +0200 | dcoutts__ | (~duncan@2a00:23c6:1c8d:901:b94:4566:9d63:4848) (Ping timeout: 265 seconds) |
2024-10-18 22:56:36 +0200 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2024-10-18 22:57:14 +0200 | tcard | (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) tcard |
2024-10-18 22:58:59 +0200 | mima | (~mmh@user/mima) mima |
2024-10-18 23:01:48 +0200 | neuroevolutus | (~neuroevol@2001:ac8:9a:75::e014) (Quit: Client closed) |
2024-10-18 23:02:21 +0200 | kimiamania | (~924ba01d@user/kimiamania) (Quit: PegeLinux) |
2024-10-18 23:02:44 +0200 | kimiamania | (~924ba01d@user/kimiamania) kimiamania |
2024-10-18 23:04:32 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 23:07:22 +0200 | hgolden_ | (~hgolden@146.70.173.229) hgolden |
2024-10-18 23:09:09 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds) |
2024-10-18 23:10:06 +0200 | hgolden__ | (~hgolden@23.162.40.110) (Ping timeout: 265 seconds) |
2024-10-18 23:13:37 +0200 | supercode | (~supercode@user/supercode) supercode |
2024-10-18 23:14:08 +0200 | poxel | (~lennart@user/poxel) (Quit: WeeChat 4.4.2) |
2024-10-18 23:17:30 +0200 | dcoutts_ | (~duncan@host86-143-111-204.range86-143.btcentralplus.com) (Ping timeout: 252 seconds) |
2024-10-18 23:19:55 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 23:19:59 +0200 | <dmj`> | would be nice to expose type level lambda syntax in instance heads |
2024-10-18 23:20:21 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) (Ping timeout: 248 seconds) |
2024-10-18 23:20:49 +0200 | <dmj`> | instance Functor (\a -> Foo a b) where |
2024-10-18 23:21:51 +0200 | <int-e> | "expose" - does the compiler actually have that internally now? |
2024-10-18 23:21:59 +0200 | <dmj`> | supposedly it does |
2024-10-18 23:24:11 +0200 | <dmj`> | or allow type synonyms to rearrange the variables so kind inference would pass |
2024-10-18 23:26:34 +0200 | Feuermagier | (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
2024-10-18 23:26:40 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 252 seconds) |
2024-10-18 23:27:49 +0200 | <int-e> | I still expect that the compiler would fall flat on its nose if you allowed this, because suddenly you'll have to deal with constraints like Functor (\a -> Foo a b) => ... and ultimately deal at least with some of the messier complications of higher order unification. |
2024-10-18 23:35:08 +0200 | tromp | (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2024-10-18 23:41:31 +0200 | <dmj`> | yea, definitely don't want higher order unification, but would like a lightweight way around restriction, one that doesn't involve newtypes |
2024-10-18 23:42:36 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 23:47:29 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 260 seconds) |
2024-10-18 23:48:29 +0200 | <dmj`> | int-e: term level lambdas don't require higher order unification so |
2024-10-18 23:49:16 +0200 | <int-e> | dmj`: but yours are at the type level |
2024-10-18 23:49:25 +0200 | <int-e> | nobody's unifying terms |
2024-10-18 23:49:43 +0200 | <int-e> | well until things become fully dependently typed |
2024-10-18 23:50:20 +0200 | <int-e> | Which I think is something GHC is trying very hard to avoid. |
2024-10-18 23:50:34 +0200 | <dmj`> | we'd need to add a KindApp constructor |
2024-10-18 23:51:09 +0200 | mreh | (~matthew@host86-128-2-51.range86-128.btcentralplus.com) mreh |
2024-10-18 23:51:30 +0200 | <dmj`> | we just have KindFun |
2024-10-18 23:52:19 +0200 | <dmj`> | you're right it would require higher order unification |
2024-10-18 23:53:20 +0200 | <dmj`> | that's the restriction on type families, they're not higher order. |
2024-10-18 23:53:53 +0200 | <int-e> | and so are type synonyms (which can't be partially applied) |
2024-10-18 23:55:09 +0200 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) peterbecich |
2024-10-18 23:56:40 +0200 | <dmj`> | Ok we do have KindApp, we'd need TypeLam, which would be problematic |
2024-10-18 23:57:41 +0200 | <dmj`> | it could be added technically, and then its usage would be restricted, so end users couldn't express higher order functions in type families |
2024-10-18 23:57:58 +0200 | merijn | (~merijn@128-137-045-062.dynamic.caiway.nl) merijn |
2024-10-18 23:58:08 +0200 | <dmj`> | pretty sure microhs does this |