2024/01/01

2024-01-01 00:02:23 +0100Pixi`(~Pixi@user/pixi) (Ping timeout: 264 seconds)
2024-01-01 00:02:47 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-01 00:18:34 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-01 00:19:40 +0100phma(~phma@host-67-44-208-123.hnremote.net) (Read error: Connection reset by peer)
2024-01-01 00:20:03 +0100phma(phma@2001:5b0:211f:2df8:fe50:c9dd:d398:6ba)
2024-01-01 00:20:08 +0100johnw(~johnw@69.62.242.138)
2024-01-01 00:33:27 +0100chomwitt(~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1)
2024-01-01 00:38:20 +0100 <cheater> happy ny
2024-01-01 00:38:45 +0100eggplantade(~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2024-01-01 00:39:37 +0100 <haskellbridge> 15<J​ade> happy new year
2024-01-01 00:45:23 +0100misterfish(~misterfis@84.53.85.146)
2024-01-01 00:46:22 +0100Lycurgus(~georg@li1192-118.members.linode.com)
2024-01-01 00:46:22 +0100Lycurgus(~georg@li1192-118.members.linode.com) (Changing host)
2024-01-01 00:46:22 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-01 00:51:46 +0100not_reserved(~not_reser@154.16.157.92) (Quit: Client closed)
2024-01-01 00:54:52 +0100not_reserved(~not_reser@45.88.220.41)
2024-01-01 00:57:17 +0100acidjnk(~acidjnk@p200300d6e72b9364c05d2cef6a824841.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2024-01-01 00:57:54 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:450d:70a8:4372:1e73)
2024-01-01 01:00:46 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 01:02:54 +0100notzmv(~zmv@user/notzmv)
2024-01-01 01:06:31 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
2024-01-01 01:08:23 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-01-01 01:12:07 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-01 01:17:59 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 264 seconds)
2024-01-01 01:26:16 +0100rvalue(~rvalue@user/rvalue) (Quit: ZNC - https://znc.in)
2024-01-01 01:26:30 +0100rvalue(~rvalue@user/rvalue)
2024-01-01 01:38:04 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2024-01-01 01:38:04 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2024-01-01 01:38:04 +0100wroathe(~wroathe@user/wroathe)
2024-01-01 01:38:26 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
2024-01-01 01:46:34 +0100regret(~regret@176.254.244.83) (Ping timeout: 268 seconds)
2024-01-01 01:47:10 +0100mjs2600(~mjs2600@c-174-169-225-239.hsd1.vt.comcast.net)
2024-01-01 01:51:18 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-01 02:01:59 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 02:07:13 +0100vulpine(xfnw@tilde.team) (Ping timeout: 268 seconds)
2024-01-01 02:08:46 +0100happynewyear_(~newyear@176.254.244.83)
2024-01-01 02:13:59 +0100erina(~erina@2409:8a31:4a3:c0a1::1000)
2024-01-01 02:17:08 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Remote host closed the connection)
2024-01-01 02:17:23 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 264 seconds)
2024-01-01 02:17:28 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-01 02:18:52 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds)
2024-01-01 02:19:59 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-01-01 02:26:49 +0100erina(~erina@2409:8a31:4a3:c0a1::1000) (Remote host closed the connection)
2024-01-01 02:27:09 +0100erina(~erina@178.157.56.217.16clouds.com)
2024-01-01 02:29:24 +0100erina(~erina@178.157.56.217.16clouds.com) (Remote host closed the connection)
2024-01-01 02:29:42 +0100erina(~erina@178.157.56.217.16clouds.com)
2024-01-01 02:33:49 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 276 seconds)
2024-01-01 02:35:08 +0100L29Ah(~L29Ah@wikipedia/L29Ah)
2024-01-01 02:37:19 +0100Moyst_(~moyst@user/moyst) (Ping timeout: 256 seconds)
2024-01-01 02:39:30 +0100vulpine(xfnw@tilde.team)
2024-01-01 02:39:58 +0100Pixi`(~Pixi@user/pixi)
2024-01-01 02:43:34 +0100Pixi__(~Pixi@user/pixi) (Ping timeout: 276 seconds)
2024-01-01 02:45:57 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:450d:70a8:4372:1e73) (Remote host closed the connection)
2024-01-01 03:00:13 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176) (Remote host closed the connection)
2024-01-01 03:01:33 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176)
2024-01-01 03:04:16 +0100_myclm(~myclm_@2a02:810d:8200:1628::8920)
2024-01-01 03:05:06 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176) (Remote host closed the connection)
2024-01-01 03:06:18 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176)
2024-01-01 03:07:41 +0100erina(~erina@178.157.56.217.16clouds.com) (Remote host closed the connection)
2024-01-01 03:08:05 +0100erina(~erina@2409:8a31:4a3:c0a1::1000)
2024-01-01 03:15:17 +0100chomwitt(~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds)
2024-01-01 03:17:56 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-01 03:19:31 +0100_myclm(~myclm_@2a02:810d:8200:1628::8920) (Ping timeout: 246 seconds)
2024-01-01 03:19:34 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140)
2024-01-01 03:44:11 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 260 seconds)
2024-01-01 03:46:43 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176) (Remote host closed the connection)
2024-01-01 03:47:13 +0100zeka_(~zeka@2600:1700:2121:180:a498:f6ae:d429:176)
2024-01-01 03:55:06 +0100Feuermagier_(~Feuermagi@user/feuermagier)
2024-01-01 03:55:06 +0100Feuermagier(~Feuermagi@user/feuermagier) (Killed (molybdenum.libera.chat (Nickname regained by services)))
2024-01-01 03:55:06 +0100Feuermagier_Feuermagier
2024-01-01 03:56:19 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2024-01-01 03:56:19 +0100wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2024-01-01 03:56:19 +0100wroathe(~wroathe@user/wroathe)
2024-01-01 04:07:04 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140) (Remote host closed the connection)
2024-01-01 04:07:23 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140)
2024-01-01 04:22:44 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2024-01-01 04:23:31 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2024-01-01 04:23:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-01 04:26:07 +0100td_(~td@i53870924.versanet.de) (Ping timeout: 255 seconds)
2024-01-01 04:28:03 +0100td_(~td@i53870938.versanet.de)
2024-01-01 05:00:48 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2024-01-01 05:07:15 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-01 05:07:51 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-01 05:12:04 +0100Axman6(~Axman6@user/axman6)
2024-01-01 05:15:42 +0100aforemny_(~aforemny@2001:9e8:6cee:cc00:fb16:26f0:239b:a8b8)
2024-01-01 05:16:36 +0100aforemny(~aforemny@i59F516E4.versanet.de) (Ping timeout: 245 seconds)
2024-01-01 05:16:38 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com) (Remote host closed the connection)
2024-01-01 05:33:52 +0100paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Ping timeout: 276 seconds)
2024-01-01 05:40:49 +0100causal(~eric@50.35.85.7)
2024-01-01 05:54:35 +0100arahael(~arahael@119-18-1-187.771201.syd.nbn.aussiebb.net)
2024-01-01 05:55:05 +0100 <arahael> I'm attempting to list all the files in my directory, using glob: globDir [compile "*"] root
2024-01-01 05:55:08 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 252 seconds)
2024-01-01 05:55:24 +0100 <arahael> However, it results in [[]], so I don't think I'm running that correctly - any suggestions?
2024-01-01 05:56:39 +0100 <arahael> Oh, d'oh. Rubber-chicken effect. Found the issue, the 'root' had a newline at the end.
2024-01-01 06:04:11 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-01 06:06:50 +0100johnw(~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
2024-01-01 06:15:28 +0100KaitoDaumoto(~asdf@user/kaitodaumoto)
2024-01-01 06:26:22 +0100acidjnk(~acidjnk@p200300d6e72b93922011a544610dfbb3.dip0.t-ipconnect.de)
2024-01-01 06:33:01 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com) (Remote host closed the connection)
2024-01-01 07:23:04 +0100Square(~Square@user/square) (Ping timeout: 276 seconds)
2024-01-01 07:31:24 +0100 <albet70> is there a function that just print Either value? if it's Left then print the exception, Right then do nothing?
2024-01-01 07:37:08 +0100 <albet70> do { v <- doSomthing; f v } is there a way to write like do { f v <- doSomething }?
2024-01-01 07:51:35 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-01 07:51:47 +0100paddymahoney(~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com)
2024-01-01 08:04:18 +0100sroso(~sroso@user/SrOso)
2024-01-01 08:21:49 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b)
2024-01-01 08:22:36 +0100 <haskellbridge> 05<i​rregularsphere> albet70: pretty sure the either function is `either error id`
2024-01-01 08:28:47 +0100 <haskellbridge> 05<i​rregularsphere> it returns a Either though so maybe with `fromRight` too?
2024-01-01 08:29:46 +0100 <haskellbridge> 05<i​rregularsphere> yeah i can't find a shorter one
2024-01-01 08:41:57 +0100Lycurgus(~georg@user/Lycurgus) (Quit: leaving)
2024-01-01 08:50:13 +0100 <EvanR> lol rubber chicken, is that like rubber duck
2024-01-01 08:51:14 +0100EvanR(~EvanR@user/evanr) (Quit: Leaving)
2024-01-01 08:52:57 +0100EvanR(~EvanR@user/evanr)
2024-01-01 08:56:45 +0100harveypwca(~harveypwc@2601:246:c280:7940:585a:99af:3e4c:209b) (Quit: Leaving)
2024-01-01 09:05:18 +0100famubu(~julinuser@user/famubu)
2024-01-01 09:06:19 +0100 <famubu> Hi. Is it possible to have a variable capable of store types as values? Like a variable `x` whose possible values are `Int`, `Bool`, etc? With the use of a extensions, perhaps?
2024-01-01 09:07:21 +0100misterfish(~misterfis@84.53.85.146)
2024-01-01 09:11:54 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-01 09:22:07 +0100igemnace(~ian@user/igemnace)
2024-01-01 09:25:03 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 268 seconds)
2024-01-01 09:36:08 +0100igemnace(~ian@user/igemnace) (Remote host closed the connection)
2024-01-01 09:56:22 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 10:17:03 +0100 <famubu> And I've heard that we can sort of fake/simulate dependent types in ghc via some extensions to a certain extent. Does anyone know any resources where we can read upon that?
2024-01-01 10:17:28 +0100igemnace(~ian@user/igemnace)
2024-01-01 10:20:27 +0100igemnace(~ian@user/igemnace) (Remote host closed the connection)
2024-01-01 10:21:57 +0100not_reserved(~not_reser@45.88.220.41) (Quit: Client closed)
2024-01-01 10:28:52 +0100 <jackdk> the search term you want is `singletons`, I think
2024-01-01 10:31:28 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-01 10:35:40 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2024-01-01 10:44:21 +0100xff0x(~xff0x@2405:6580:b080:900:791e:7086:95e5:b75e) (Ping timeout: 260 seconds)
2024-01-01 10:45:14 +0100famubu_(~famubu@14.139.174.50)
2024-01-01 10:45:48 +0100LispTyro(~pepsi@129.159.85.69)
2024-01-01 10:45:58 +0100xff0x(~xff0x@178.255.149.135)
2024-01-01 10:47:56 +0100random-jellyfish(~tiber@user/random-jellyfish)
2024-01-01 10:49:23 +0100LispTyro(~pepsi@129.159.85.69) (Client Quit)
2024-01-01 10:53:38 +0100xff0x(~xff0x@178.255.149.135) (Ping timeout: 260 seconds)
2024-01-01 10:55:11 +0100xff0x(~xff0x@2405:6580:b080:900:f76a:b63b:2b38:6d46)
2024-01-01 10:55:42 +0100random-jellyfish(~tiber@user/random-jellyfish) (Quit: Leaving)
2024-01-01 11:06:02 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
2024-01-01 11:13:31 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-01 11:22:15 +0100__monty__(~toonn@user/toonn)
2024-01-01 11:25:34 +0100sawilagar(~sawilagar@user/sawilagar)
2024-01-01 11:25:46 +0100sroso(~sroso@user/SrOso) (Quit: Leaving)
2024-01-01 11:31:58 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140) (Read error: Connection reset by peer)
2024-01-01 11:32:44 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 11:33:22 +0100mima(~mmh@95.90.245.6)
2024-01-01 11:33:49 +0100notzmv(~zmv@user/notzmv)
2024-01-01 11:41:04 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
2024-01-01 11:45:25 +0100erina(~erina@2409:8a31:4a3:c0a1::1000) (Ping timeout: 256 seconds)
2024-01-01 11:46:15 +0100lisbeths(~user@c-174-164-24-226.hsd1.wa.comcast.net)
2024-01-01 11:48:38 +0100 <lisbeths> Okay so I want to take my entire environment including all loaded libraries and turn it into a lambda expression
2024-01-01 11:48:47 +0100random-jellyfish(~developer@user/random-jellyfish)
2024-01-01 11:49:16 +0100 <lisbeths> Dump the state of the machine into a lambda
2024-01-01 11:49:25 +0100 <Rembane> That sounds like nix.
2024-01-01 11:49:30 +0100 <lisbeths> ah
2024-01-01 11:49:33 +0100 <lisbeths> I will ask
2024-01-01 11:49:37 +0100 <lisbeths> /join #nix
2024-01-01 11:49:57 +0100 <lisbeths> what is the nix channel
2024-01-01 11:50:18 +0100 <Rembane> They seem to be using Matrix: https://nixos.org/community/
2024-01-01 11:50:32 +0100 <lisbeths> interesting
2024-01-01 11:51:18 +0100 <nullie> #nixos is moderately active
2024-01-01 11:54:11 +0100tertek(~tertek@user/tertek) (Quit: %quit%)
2024-01-01 11:55:24 +0100tertek(~tertek@user/tertek)
2024-01-01 12:08:36 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140)
2024-01-01 12:16:21 +0100econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-01-01 12:16:35 +0100mima(~mmh@95.90.245.6) (Quit: leaving)
2024-01-01 12:17:58 +0100 <lisbeths> The nix guys told me that dumping the nix system and its libraries into a lambda expression is officially unsupported by nix project
2024-01-01 12:36:36 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-01 12:37:02 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-01 12:46:31 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 12:51:07 +0100gentauro(~gentauro@user/gentauro)
2024-01-01 12:55:18 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-01 12:55:37 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-01 12:59:44 +0100erina(~erina@2001:da8:d800:e1b5:1830:ab2:6ff8:a9ac)
2024-01-01 13:01:18 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-01 13:01:21 +0100Sgeo_(~Sgeo@user/sgeo)
2024-01-01 13:04:54 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-01-01 13:05:13 +0100fendor(~fendor@2a02:8388:1605:d100:267b:1353:13d7:4f0c)
2024-01-01 13:05:26 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-01-01 13:06:25 +0100jmdaemon(~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-01 13:06:44 +0100jmdaemon(~jmdaemon@user/jmdaemon)
2024-01-01 13:07:09 +0100lisbeths(~user@c-174-164-24-226.hsd1.wa.comcast.net) (Read error: Connection reset by peer)
2024-01-01 13:14:30 +0100drdo1(~drdo@bl14-14-49.dsl.telepac.pt)
2024-01-01 13:14:56 +0100drdo(~drdo@bl14-14-49.dsl.telepac.pt) (Ping timeout: 245 seconds)
2024-01-01 13:14:56 +0100drdo1drdo
2024-01-01 13:18:37 +0100malte(~malte@mal.tc) (Remote host closed the connection)
2024-01-01 13:19:51 +0100malte(~malte@mal.tc)
2024-01-01 13:31:48 +0100ht_(~Thunderbi@194.110.115.24)
2024-01-01 13:31:58 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Ping timeout: 255 seconds)
2024-01-01 13:31:58 +0100ht__ht
2024-01-01 13:35:11 +0100phma(phma@2001:5b0:211f:2df8:fe50:c9dd:d398:6ba) (Read error: Connection reset by peer)
2024-01-01 13:36:15 +0100phma(phma@2001:5b0:210f:2f48:41e0:848:c683:cd1)
2024-01-01 13:37:02 +0100michalz(~michalz@185.246.207.222)
2024-01-01 13:45:29 +0100Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-01-01 13:52:49 +0100AlexNoo_(~AlexNoo@178.34.161.237)
2024-01-01 13:53:21 +0100Tuplanolla(~Tuplanoll@91-159-69-171.elisa-laajakaista.fi)
2024-01-01 13:56:11 +0100AlexZenon(~alzenon@178.34.163.207) (Ping timeout: 245 seconds)
2024-01-01 13:56:24 +0100AlexNoo(~AlexNoo@178.34.163.207) (Ping timeout: 252 seconds)
2024-01-01 13:56:26 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-01 13:56:51 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-01 14:05:30 +0100 <albet70> :t error
2024-01-01 14:05:31 +0100 <lambdabot> [Char] -> a
2024-01-01 14:06:00 +0100 <albet70> why this a can be return type? a is not defined
2024-01-01 14:06:58 +0100AlexZenon(~alzenon@178.34.161.237)
2024-01-01 14:07:27 +0100 <Rembane> It's any type at all. It doesn't matter in the grand scheme of things since there will be no value of the return type.
2024-01-01 14:07:44 +0100 <Rembane> It's just there to match whatever type you have around it
2024-01-01 14:07:59 +0100 <Rembane> :t (error "Look at my type!") :: Int
2024-01-01 14:08:00 +0100 <lambdabot> Int
2024-01-01 14:08:25 +0100 <Rembane> My theory is that it is how it is because of programmer ergonomics.
2024-01-01 14:09:03 +0100 <haskellbridge> 04<z​wro> an error is equivalent to non termination
2024-01-01 14:09:48 +0100 <albet70> I use 'either error id (v:: Either String ())' in IO's do natation, Couldn't match expected type `IO ()' with actual type `()'
2024-01-01 14:09:50 +0100 <haskellbridge> 04<z​wro> it "has no type"
2024-01-01 14:11:09 +0100 <albet70> return $ either error id v?
2024-01-01 14:11:39 +0100 <haskellbridge> 04<z​wro> :t let x = x in x
2024-01-01 14:12:08 +0100 <haskellbridge> 04<z​wro> :(
2024-01-01 14:13:06 +0100yin(~yin@user/zero)
2024-01-01 14:13:31 +0100 <yin> :t let x = x in x
2024-01-01 14:13:32 +0100 <lambdabot> t
2024-01-01 14:13:40 +0100 <yin> :t error mempty
2024-01-01 14:13:41 +0100 <lambdabot> a
2024-01-01 14:13:53 +0100 <haskellbridge> 04<z​wro> there we go
2024-01-01 14:15:15 +0100 <ncf> (forall a. a) ≃ Void
2024-01-01 14:15:37 +0100yinhandwaves
2024-01-01 14:15:46 +0100 <albet70> return $ either error id v is ok in do notation
2024-01-01 14:16:05 +0100 <albet70> another question , how to do { f v <- ... }?
2024-01-01 14:16:51 +0100 <yin> albet70: what do you intend that to mean?
2024-01-01 14:17:05 +0100 <albet70> do { v < ...; f v }
2024-01-01 14:17:41 +0100 <albet70> do { v <- ...; f v }
2024-01-01 14:18:04 +0100 <albet70> do { f v where v <- ...; }?
2024-01-01 14:18:16 +0100 <[Leary]> @undo do{ v <- act; f v }
2024-01-01 14:18:16 +0100 <lambdabot> act >>= \ v -> f v
2024-01-01 14:18:17 +0100 <yin> do { x <- f <$> ... }
2024-01-01 14:21:00 +0100 <yin> albet70: you should start from understanding what's going on at the functional level before learning do notation
2024-01-01 14:21:07 +0100 <yin> do notation is just sugar
2024-01-01 14:26:03 +0100 <albet70> I see, thanks
2024-01-01 14:26:15 +0100 <albet70> f <$> is good
2024-01-01 14:32:09 +0100Hobbyboy(Hobbyboy@hobbyboy.co.uk) (Quit: The BNC has broken!)
2024-01-01 14:35:36 +0100Hobbyboy(Hobbyboy@hobbyboy.co.uk)
2024-01-01 14:38:24 +0100xdminsy(~xdminsy@117.147.71.169)
2024-01-01 14:40:58 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 246 seconds)
2024-01-01 14:42:52 +0100remedan(~remedan@ip-94-112-0-18.bb.vodafone.cz)
2024-01-01 14:44:57 +0100xdej(~xdej@quatramaran.salle-s.org) (Remote host closed the connection)
2024-01-01 14:50:02 +0100random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 268 seconds)
2024-01-01 14:51:50 +0100 <albet70> why there're Data.Either and Control.Monad.Trans.Except both?
2024-01-01 14:53:40 +0100 <albet70> and Data.Functor Control.Monad?
2024-01-01 14:56:55 +0100random-jellyfish(~developer@user/random-jellyfish)
2024-01-01 14:58:48 +0100Lycurgus(~georg@li1192-118.members.linode.com)
2024-01-01 14:58:48 +0100Lycurgus(~georg@li1192-118.members.linode.com) (Changing host)
2024-01-01 14:58:48 +0100Lycurgus(~georg@user/Lycurgus)
2024-01-01 15:00:54 +0100 <c_wraith> the Data and Control prefixes don't really mean anything
2024-01-01 15:01:28 +0100 <c_wraith> *especially* in Haskell, where data structures and control flow can be the same thing
2024-01-01 15:02:09 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 15:02:28 +0100 <c_wraith> Just think of them as the legacy of historical accidents. Meaningless in themselves, but kept around because changing them would be useless churn
2024-01-01 15:03:22 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 15:03:56 +0100 <Lycurgus> https://en.wikipedia.org/wiki/Control_Data_Institute where i did first code
2024-01-01 15:04:59 +0100 <albet70> ok
2024-01-01 15:08:23 +0100coot(~coot@89-69-206-216.dynamic.chello.pl)
2024-01-01 15:10:11 +0100raym(~ray@user/raym) (Ping timeout: 264 seconds)
2024-01-01 15:11:58 +0100raym(~ray@user/raym)
2024-01-01 15:18:10 +0100AlexNoo_AlexNoo
2024-01-01 15:26:59 +0100famubu_(~famubu@14.139.174.50) (Ping timeout: 260 seconds)
2024-01-01 15:30:14 +0100 <yin> a
2024-01-01 15:32:28 +0100pavonia(~user@user/siracusa)
2024-01-01 15:33:18 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Remote host closed the connection)
2024-01-01 15:34:27 +0100yin(~yin@user/zero) (Quit: leaving)
2024-01-01 15:50:34 +0100random-jellyfish(~developer@user/random-jellyfish) (Ping timeout: 255 seconds)
2024-01-01 15:52:44 +0100ncf(~n@monade.li) (Fairfarren.)
2024-01-01 15:52:55 +0100ncf(~n@monade.li)
2024-01-01 16:01:12 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:07:00 +0100ht_(~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
2024-01-01 16:08:28 +0100_ht(~Thunderbi@194.110.115.24) (Ping timeout: 246 seconds)
2024-01-01 16:08:28 +0100ht__ht
2024-01-01 16:09:19 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-01 16:09:36 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:17:30 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-01 16:17:50 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:18:17 +0100random-jellyfish(~developer@user/random-jellyfish)
2024-01-01 16:18:43 +0100dtman34(~dtman34@2601:447:d000:93c9:e786:29de:e176:d44e) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-01-01 16:19:06 +0100dtman34(~dtman34@c-76-156-89-180.hsd1.mn.comcast.net)
2024-01-01 16:21:01 +0100nckxmas(~nckx@libera/staff/owl/nckx) (Quit: Updating my Guix System <https://guix.gnu.org>)
2024-01-01 16:21:30 +0100famubu_(~famubu@14.139.174.50)
2024-01-01 16:21:38 +0100nckx(~nckx@libera/staff/owl/nckx)
2024-01-01 16:22:17 +0100mokee(~mokee@37.228.215.150) (Client Quit)
2024-01-01 16:25:40 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:33:56 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-01 16:35:01 +0100adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2024-01-01 16:36:01 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:36:16 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-01 16:37:16 +0100Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2024-01-01 16:38:06 +0100stef204(~stef204@user/stef204)
2024-01-01 16:38:31 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
2024-01-01 16:42:11 +0100elkcl(~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
2024-01-01 16:43:41 +0100erina(~erina@2001:da8:d800:e1b5:1830:ab2:6ff8:a9ac) (Ping timeout: 245 seconds)
2024-01-01 16:46:53 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-01 16:48:23 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:51:36 +0100mokee(~mokee@37.228.215.150) (Client Quit)
2024-01-01 16:52:21 +0100mokee(~mokee@37.228.215.150)
2024-01-01 16:52:42 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2024-01-01 16:53:04 +0100trev(~trev@user/trev)
2024-01-01 16:55:34 +0100Square(~Square@user/square)
2024-01-01 16:56:00 +0100xdej(~xdej@quatramaran.salle-s.org)
2024-01-01 16:57:03 +0100mokee(~mokee@37.228.215.150) (Client Quit)
2024-01-01 16:58:25 +0100mokee(~mokee@37.228.215.150)
2024-01-01 17:02:00 +0100mokee(~mokee@37.228.215.150) (Client Quit)
2024-01-01 17:05:37 +0100mokee(~mokee@37.228.215.150)
2024-01-01 17:07:35 +0100stef204(~stef204@user/stef204) (Quit: WeeChat 4.1.2)
2024-01-01 17:30:40 +0100steew(~steew@user/steew)
2024-01-01 17:34:50 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com)
2024-01-01 17:36:50 +0100ACuriousMoose1(~ACuriousM@142.166.18.53)
2024-01-01 17:37:31 +0100ACuriousMoose(~ACuriousM@142.166.18.53) (Read error: Connection reset by peer)
2024-01-01 17:37:31 +0100ACuriousMoose1ACuriousMoose
2024-01-01 17:44:24 +0100igemnace(~ian@user/igemnace)
2024-01-01 17:46:51 +0100Moyst_(~moyst@user/moyst)
2024-01-01 17:49:24 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 18:02:19 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 18:11:11 +0100ChanServ+o litharge
2024-01-01 18:11:11 +0100litharge-bbbb *!*@64.145.79.171 *!*@2601:40:c580:8530:215e:3848:10c5:78d9 *!*@2601:40:c580:8530:9c03:7900:f37d:8622 *!*@100.11.18.203
2024-01-01 18:11:11 +0100litharge-bo $a:money litharge
2024-01-01 18:13:32 +0100hughjfch1(~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 268 seconds)
2024-01-01 18:14:03 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2024-01-01 18:21:08 +0100billchenchina(~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
2024-01-01 18:39:40 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 18:59:32 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2024-01-01 19:03:35 +0100foul_owl(~kerry@157.97.134.166) (Ping timeout: 264 seconds)
2024-01-01 19:09:33 +0100tzh(~tzh@c-71-193-181-0.hsd1.or.comcast.net)
2024-01-01 19:15:47 +0100foul_owl(~kerry@157.97.134.164)
2024-01-01 19:19:27 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-01-01 19:30:57 +0100waldo(~waldo@user/waldo)
2024-01-01 19:33:41 +0100justIrresolutejustache
2024-01-01 19:35:46 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0)
2024-01-01 19:36:11 +0100siw5ohs0(~aiw5ohs0@user/aiw5ohs0) ()
2024-01-01 19:42:22 +0100famubu_(~famubu@14.139.174.50) (Ping timeout: 260 seconds)
2024-01-01 19:43:26 +0100srazkvt(~sarah@2a01:e0a:483:6900:ffc8:6383:8b0f:31af)
2024-01-01 19:49:39 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140) (Remote host closed the connection)
2024-01-01 19:50:01 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140)
2024-01-01 19:54:20 +0100enikar(~enikar@chezlefab.net) (Quit: WeeChat 3.0)
2024-01-01 20:10:40 +0100misterfish(~misterfis@84.53.85.146) (Ping timeout: 246 seconds)
2024-01-01 20:12:00 +0100Ashkan(~Ashkan@147.161.173.72)
2024-01-01 20:14:18 +0100igemnace(~ian@user/igemnace) (Read error: Connection reset by peer)
2024-01-01 20:14:44 +0100 <Ashkan> Hello all :wave:
2024-01-01 20:14:44 +0100 <Ashkan> I need some help understanding a `dlopen()` error I'm getting :
2024-01-01 20:14:45 +0100 <Ashkan> ```
2024-01-01 20:14:45 +0100 <Ashkan> dlopen(some long local temp path to project executable, 0x0005): Library not loaded: @rpath/libvulkan.1.dylib
2024-01-01 20:14:46 +0100 <Ashkan> ```
2024-01-01 20:14:46 +0100 <Ashkan> I don't understand why it can't load the vulkan loader. I have the `- -optl-Wl,-rpath,/usr/local/lib` option set and it works if I remove the `vulkan-utils` package but keep the `vulkan` (I need both though)
2024-01-01 20:15:33 +0100 <Ashkan> I'm on a mac and lib in question (`libvulkan.1.dylib`) is on the mentioned path (`/usr/local/lib`)
2024-01-01 20:26:04 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8)
2024-01-01 20:28:11 +0100doyougnu-(~doyougnu@045-046-170-068.res.spectrum.com) (Ping timeout: 264 seconds)
2024-01-01 20:29:19 +0100 <cheater> ugh, i wish i could help you, but i don't know much about dynamic linking
2024-01-01 20:29:33 +0100 <cheater> but here's a thought, try to strace the executable, and see what it does
2024-01-01 20:29:40 +0100 <cheater> you'll see every file it tries to open
2024-01-01 20:30:02 +0100 <geekosaur> on a Mac that would be dtruss
2024-01-01 20:30:15 +0100 <cheater> would it
2024-01-01 20:30:53 +0100igemnace(~ian@user/igemnace)
2024-01-01 20:41:19 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140) (Remote host closed the connection)
2024-01-01 20:42:33 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140)
2024-01-01 20:42:37 +0100waldo(~waldo@user/waldo) (Ping timeout: 256 seconds)
2024-01-01 20:43:12 +0100waldo(~waldo@user/waldo)
2024-01-01 20:51:30 +0100mqlnv_(~tripod@47.154.25.27)
2024-01-01 20:53:26 +0100doyougnu(~doyougnu@045-046-170-068.res.spectrum.com)
2024-01-01 20:53:59 +0100mqlnv(~tripod@47.154.25.27) (Ping timeout: 264 seconds)
2024-01-01 20:54:19 +0100 <cjay> Ashkan: I remember dealing with @rpath and vulkan linking troubles a loong time ago, what I learned (and since forgot) became part of this file here https://github.com/achirkin/vulkan/blob/master/README-macOS.md
2024-01-01 20:56:33 +0100 <Ashkan> Thank you. I dug some more and now I have another question:
2024-01-01 20:56:34 +0100 <Ashkan> How do I get stack/GHC/somethingelse? to add a specific LC_RPATH to the final executable ? So far I've tried `- -optl-Wl,-rpath,/usr/local/lib` (from GHC docs) and `extra-lib-dirs: [/usr/local/lib]` in `stack.yaml` file to no avail :-/ this is very confusing to me :D
2024-01-01 20:56:39 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8) (Ping timeout: 256 seconds)
2024-01-01 20:57:25 +0100 <Ashkan> Using `otool -l $(stack exec which vulkan-exe) | grep -2 LC_RPATH` shows a few hits but none of them is the path I want to add in there.
2024-01-01 21:00:05 +0100doyougnu(~doyougnu@045-046-170-068.res.spectrum.com) (Ping timeout: 240 seconds)
2024-01-01 21:00:22 +0100 <cjay> I think using GLFW or something (which dlopens the vulkan loader for you) is the best option tbh. No need to convince ld to do what you want.
2024-01-01 21:05:26 +0100 <Ashkan> I'm using SDL2 for that but all it does (GLFW as well) is to call `dlopen()` with the right argument. This is already happening for me. Problem is I need the executable to have the correct tags on mac. This part is missed somehow.
2024-01-01 21:06:03 +0100doyougnu(~doyougnu@045-046-170-068.res.spectrum.com)
2024-01-01 21:06:29 +0100target_i(~target_i@217.175.14.39)
2024-01-01 21:06:39 +0100 <Ashkan> If I manually modify the resulting executable to have the correct tags then it runs as it should but `stack build` should do this on for me already. Perhaps I should ask stack people?
2024-01-01 21:08:48 +0100adanwan_(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-01 21:09:32 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-01 21:10:10 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
2024-01-01 21:10:33 +0100adanwan(~adanwan@gateway/tor-sasl/adanwan)
2024-01-01 21:10:34 +0100doyougnu(~doyougnu@045-046-170-068.res.spectrum.com) (Ping timeout: 260 seconds)
2024-01-01 21:12:14 +0100_myclm(~myclm_@2a02:810d:8200:1628::8920)
2024-01-01 21:14:10 +0100coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2024-01-01 21:20:37 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8)
2024-01-01 21:21:00 +0100machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 268 seconds)
2024-01-01 21:30:47 +0100_myclm(~myclm_@2a02:810d:8200:1628::8920) (Ping timeout: 256 seconds)
2024-01-01 21:31:54 +0100Sgeo(~Sgeo@user/sgeo)
2024-01-01 21:32:34 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8) (Ping timeout: 246 seconds)
2024-01-01 21:33:06 +0100mokee(~mokee@37.228.215.150) (Quit: off)
2024-01-01 21:34:31 +0100TonyStone(~TonyStone@074-076-057-186.res.spectrum.com)
2024-01-01 21:35:03 +0100Ashkan(~Ashkan@147.161.173.72) (Quit: Client closed)
2024-01-01 21:40:56 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8)
2024-01-01 21:41:43 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Ping timeout: 240 seconds)
2024-01-01 21:45:08 +0100Ashkan(~Ashkan@47-99-99-95.ftth.glasoperator.nl)
2024-01-01 21:46:14 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-01 21:46:33 +0100doyougnu(~doyougnu@045-046-170-068.res.spectrum.com)
2024-01-01 21:57:07 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8) (Ping timeout: 260 seconds)
2024-01-01 21:59:08 +0100pastly(~pastly@gateway/tor-sasl/pastly) (Remote host closed the connection)
2024-01-01 21:59:34 +0100pastly(~pastly@gateway/tor-sasl/pastly)
2024-01-01 22:02:55 +0100meinside(uid24933@id-24933.helmsley.irccloud.com)
2024-01-01 22:05:09 +0100 <trev> anyone have the correct ghc + hls combo to have a working eval plugin and fourmolu plugin?
2024-01-01 22:08:59 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 264 seconds)
2024-01-01 22:11:55 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8)
2024-01-01 22:12:28 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2024-01-01 22:13:56 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Client Quit)
2024-01-01 22:14:49 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2024-01-01 22:15:39 +0100bratwurst(~blaadsfa@2604:3d09:2083:a200:216:3eff:fe5a:a1f8) (Client Quit)
2024-01-01 22:15:47 +0100Ashkan(~Ashkan@47-99-99-95.ftth.glasoperator.nl) (Quit: Client closed)
2024-01-01 22:16:46 +0100 <[exa]> trev: not really but what error/problem did you encounter?
2024-01-01 22:18:34 +0100 <trev> eval wasn't working correction (known bug on GH), then i updated GHC and formatting stopped working so then i downgraded a bit and eval wasn't working at all :P....now i am back to the beginning, using [recommended] on ghcup
2024-01-01 22:18:45 +0100 <trev> s/correction/correctly
2024-01-01 22:20:51 +0100_ht(~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
2024-01-01 22:21:47 +0100misterfish(~misterfis@84.53.85.146)
2024-01-01 22:24:35 +0100xdminsy(~xdminsy@117.147.71.169) (Ping timeout: 264 seconds)
2024-01-01 22:26:34 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat)
2024-01-01 22:27:29 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2024-01-01 22:30:11 +0100 <[exa]> trev: no error messages or so?
2024-01-01 22:30:41 +0100 <trev> nah idk enough about HLS to start digging
2024-01-01 22:31:22 +0100 <[exa]> I never used it tbh, I expected that if there's errors it would report them
2024-01-01 22:31:59 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-01 22:33:53 +0100wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2024-01-01 22:35:37 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 268 seconds)
2024-01-01 22:36:50 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2024-01-01 22:37:58 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-01 22:38:39 +0100trev(~trev@user/trev) (Quit: trev)
2024-01-01 22:39:49 +0100Ashkan(~Ashkan@147.161.173.72)
2024-01-01 22:41:36 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
2024-01-01 22:42:01 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com) (Read error: Connection reset by peer)
2024-01-01 22:43:31 +0100xdminsy(~xdminsy@117.147.71.169)
2024-01-01 22:44:47 +0100Ashkan(~Ashkan@147.161.173.72) (Quit: Client closed)
2024-01-01 22:55:29 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-01 22:55:39 +0100andrewboltachev(~andrey@178.141.235.83)
2024-01-01 22:57:18 +0100 <andrewboltachev> Hello. When developing (small) web app, how can I manage shared in-memory data? Say, if I hit /endpoint1 it'll read the data into memory (likely once), and then use /endpoint2 with params to make a number of queries about the data
2024-01-01 22:57:30 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de) (Quit: The Lounge - https://thelounge.chat)
2024-01-01 22:58:23 +0100ralu1(~ralu@static.211.245.203.116.clients.your-server.de)
2024-01-01 22:59:00 +0100 <Rembane> andrewboltachev: Try TVars from STM, it's quite neat.
2024-01-01 22:59:06 +0100[_](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
2024-01-01 22:59:54 +0100 <andrewboltachev> Rembane: I've just learned about them. But how will I make TVar available form different endpoint handlers?
2024-01-01 23:00:42 +0100 <Rembane> andrewboltachev: What are you using to do the HTTP server stuff?
2024-01-01 23:01:59 +0100 <causal> hmm. i'm binding to a c lib where you have to call functions from the same thread a context struct was created on (it uses thread locals), is there some way to encode that in types? i've got an opaque `newtype Context = Context (Ptr ())` on the haskell side, and a bunch of `:: Context -> IO foo` foreign imports
2024-01-01 23:02:07 +0100 <andrewboltachev> Rembane: here I'm using Twain https://github.com/andrewboltachev/matcher/blob/master/app/Main.hs#L37 (and a bit of Network.WAI)
2024-01-01 23:02:33 +0100 <causal> in rust i'd just mark the context as !Send or something and that'd ensure it can't cross thread boundaries but idk an equivalent in haskell
2024-01-01 23:04:19 +0100 <andrewboltachev> Rembane: ah, I think I've got the idea. I'll create the TVar on top and got from there (wonder if it'll help to increase performance here, as compared to reading from Redis and parsing with Aeson each time)
2024-01-01 23:04:51 +0100 <Rembane> andrewboltachev: Exactly!
2024-01-01 23:04:52 +0100 <EvanR> when you spawn threads you can pass the shared TVar in as an argument
2024-01-01 23:04:55 +0100 <Rembane> andrewboltachev: Good intuition!
2024-01-01 23:05:00 +0100 <Rembane> andrewboltachev: Also what EvanR said.
2024-01-01 23:05:28 +0100 <andrewboltachev> Rembane: thanks!
2024-01-01 23:05:28 +0100 <EvanR> i.e. f :: TVar SharedStuff -> IO ()
2024-01-01 23:05:35 +0100 <EvanR> forkIO (f tv)
2024-01-01 23:05:50 +0100 <[exa]> andrewboltachev: btw if you don't need locks on the thing, plain old IORef might be sufficient
2024-01-01 23:06:31 +0100 <EvanR> atomicModifyIORef for the win
2024-01-01 23:06:40 +0100 <[exa]> true.
2024-01-01 23:07:09 +0100 <andrewboltachev> yes, read-only for now (aka read once, and then access multiple times)
2024-01-01 23:07:25 +0100 <EvanR> write once?
2024-01-01 23:07:32 +0100 <EvanR> you might be interested in IVar
2024-01-01 23:07:54 +0100 <EvanR> readIVar :: IVar a -> a, look no IO!
2024-01-01 23:08:54 +0100 <geekosaur> causal, use forkOS to create a bound thread, then the only way you can make it cross a thread boundary is to send it explicitly.
2024-01-01 23:09:20 +0100 <andrewboltachev> uhm, and which way is the best for read speed?
2024-01-01 23:09:39 +0100 <andrewboltachev> *write (load) once yes
2024-01-01 23:10:45 +0100 <juri_> ugh. ghc 9.4 has me considering a new processor. ;)
2024-01-01 23:11:41 +0100 <[exa]> andrewboltachev: all basically the same plusminus a few instructions. MVars/TVars check for emptiness/lock so there might be a tiny overhead but you won't really notice
2024-01-01 23:12:31 +0100 <[exa]> imo it's kinda more like about how much extra machinery & libraries you pull in
2024-01-01 23:13:43 +0100michalz(~michalz@185.246.207.222) (Quit: ZNC 1.8.2 - https://znc.in)
2024-01-01 23:15:36 +0100peterbecich(~Thunderbi@047-229-123-186.res.spectrum.com)
2024-01-01 23:16:38 +0100michalz(~michalz@185.246.207.203)
2024-01-01 23:17:58 +0100[_](~itchyjunk@user/itchyjunk/x-7353470)
2024-01-01 23:18:51 +0100waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-01-01 23:21:21 +0100michalz(~michalz@185.246.207.203) (Client Quit)
2024-01-01 23:21:49 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 276 seconds)
2024-01-01 23:24:30 +0100 <EvanR> IORef is "fastest" I heard
2024-01-01 23:25:32 +0100 <EvanR> but FFI mutable array primitives usually don't get considered in this contest, not sure where that stands
2024-01-01 23:35:18 +0100chomwitt(~chomwitt@2a02:587:7a0f:8900:1ac0:4dff:fedb:a3f1)
2024-01-01 23:35:27 +0100not_reserved(~not_reser@45.85.144.105)
2024-01-01 23:35:37 +0100 <exarkun> is there a right approach for dealing with SIGINT? I see I'll get an IOException thrown but I don't see a way to identify it as SIGINT.
2024-01-01 23:37:18 +0100 <exarkun> oh oops, I see it is AsyncException, not IOException, and there's a constructor for it.
2024-01-01 23:38:50 +0100srazkvt(~sarah@2a01:e0a:483:6900:ffc8:6383:8b0f:31af) (Quit: Konversation terminated!)
2024-01-01 23:40:54 +0100 <EvanR> unix package has a way to set up signal handlers
2024-01-01 23:42:03 +0100 <monochrom> I don't know what "right" means. But I know the idiomatic path-of-least-resistance is AsyncException's UserInterrupt. IIRC it is thrown (only) to the thread that runs main.
2024-01-01 23:43:42 +0100 <monochrom> To a large extent if you plan to pretend you're writing C-but-with-Haskell-syntax and you install your own SIGINT handler, you just end up reinventing what the GHC RTS already does for you anyway.
2024-01-01 23:45:10 +0100 <EvanR> that's the right C way, reinvent everything!
2024-01-01 23:45:27 +0100 <EvanR> at least, reimplement
2024-01-01 23:46:54 +0100jargon(~jargon@211.sub-174-205-225.myvzw.com)
2024-01-01 23:48:52 +0100target_i(~target_i@217.175.14.39) (Quit: leaving)
2024-01-01 23:48:58 +0100mqlnv_(~tripod@47.154.25.27) (Ping timeout: 256 seconds)
2024-01-01 23:49:00 +0100tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-01-01 23:50:34 +0100mqlnv(~tripod@47.154.25.27)
2024-01-01 23:56:26 +0100eggplantade(~Eggplanta@2600:1700:38c5:d800:c038:f2f2:8c5a:c140) (Remote host closed the connection)
2024-01-01 23:56:55 +0100sawilagar(~sawilagar@user/sawilagar) (Ping timeout: 276 seconds)
2024-01-01 23:59:05 +0100Ashkan(~Ashkan@147.161.173.72)