2022/05/12

2022-05-12 00:02:02 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 252 seconds)
2022-05-12 00:04:12 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 00:04:44 +0200n3t(n3t@s45.mydevil.net) (Read error: Connection reset by peer)
2022-05-12 00:05:02 +0200n3t(n3t@s45.mydevil.net)
2022-05-12 00:05:23 +0200maerwald(~maerwald@mail.hasufell.de) (Changing host)
2022-05-12 00:05:23 +0200maerwald(~maerwald@user/maerwald)
2022-05-12 00:07:18 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 00:08:07 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 00:09:11 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-05-12 00:10:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 00:11:10 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 00:11:30 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-12 00:11:59 +0200cyphase(~cyphase@user/cyphase) (Ping timeout: 260 seconds)
2022-05-12 00:15:29 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2022-05-12 00:18:12 +0200joo-_(~joo-_@fsf/member/joo--) (Ping timeout: 248 seconds)
2022-05-12 00:19:55 +0200joo-_(~joo-_@87-49-45-5-mobile.dk.customer.tdc.net)
2022-05-12 00:19:55 +0200joo-_(~joo-_@87-49-45-5-mobile.dk.customer.tdc.net) (Changing host)
2022-05-12 00:19:55 +0200joo-_(~joo-_@fsf/member/joo--)
2022-05-12 00:24:08 +0200 <raehik> Why does GHCi error with "couldn't match a lifted type with an unlifted type" when I write a Word# expression? Or even a literal
2022-05-12 00:24:11 +0200 <raehik> > 1##
2022-05-12 00:24:13 +0200 <lambdabot> error:
2022-05-12 00:24:13 +0200 <lambdabot> • Couldn't match a lifted type with an unlifted type
2022-05-12 00:24:14 +0200 <lambdabot> When matching types
2022-05-12 00:25:08 +0200 <raehik> I can apparently work around it by wrapping with W# :: Word# -> Word . but I'm very very fuzzy on the details here
2022-05-12 00:25:12 +0200 <raehik> > W# 1##
2022-05-12 00:25:14 +0200 <lambdabot> error:
2022-05-12 00:25:14 +0200 <lambdabot> Data constructor not in scope: W# :: GHC.Prim.Word# -> t
2022-05-12 00:27:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-05-12 00:28:47 +0200 <raehik> Also confuses me that I have to use "W# (f x y)" rather than "W# $ f x y". guess that's to do with $ and levities or sth
2022-05-12 00:30:38 +0200marquis_andras(~marquis_a@110-175-153-86.static.tpgi.com.au) (Ping timeout: 252 seconds)
2022-05-12 00:30:49 +0200 <geekosaur> yes
2022-05-12 00:30:54 +0200marquis_andras(~marquis_a@110-175-153-86.static.tpgi.com.au)
2022-05-12 00:31:08 +0200 <geekosaur> with respect to ghci, try -fno-it
2022-05-12 00:31:30 +0200 <geekosaur> (ghci by default binds expressions to `it`, but its type is lifted)
2022-05-12 00:32:51 +0200 <geekosaur> mm, that might not be enough if it goes to print it because `print` isn't levity polymorphic in its argument
2022-05-12 00:33:10 +0200 <raehik> yeah, I'm getting the same error. thx for -fno-it, I didn't know that was how ghci worked
2022-05-12 00:33:11 +0200 <geekosaur> probably also why lambdabot doesn't like it
2022-05-12 00:33:58 +0200 <geekosaur> levity polymorphism is still a work in progress, I think
2022-05-12 00:34:00 +0200 <raehik> is this just because avg Haskell programmers don't use unlifted types at the interpreter?
2022-05-12 00:34:14 +0200bahamas(~lucian@84.232.141.55)
2022-05-12 00:36:22 +0200 <sm> https://haskell-links.org has a simple UI now
2022-05-12 00:37:11 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 00:37:22 +0200 <geekosaur> @let {-# OPTIONS_GHC -fprint-explicit-runtime-reps #-}
2022-05-12 00:37:23 +0200 <lambdabot> Defined.
2022-05-12 00:37:30 +0200 <geekosaur> :t ($)
2022-05-12 00:37:31 +0200 <lambdabot> (a -> b) -> a -> b
2022-05-12 00:37:47 +0200 <geekosaur> hm
2022-05-12 00:37:55 +0200 <geekosaur> :t print
2022-05-12 00:37:57 +0200 <lambdabot> Show a => a -> IO ()
2022-05-12 00:38:31 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 246 seconds)
2022-05-12 00:38:57 +0200 <geekosaur> mm, iirc you can't have levity polymorphic Show either. but I don;t think that option "took" because ($) is partially levity polymorphic
2022-05-12 00:40:55 +0200 <geekosaur> "No variable may have a levity-polymorphic type."
2022-05-12 00:40:59 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
2022-05-12 00:41:07 +0200 <geekosaur> :t undefined
2022-05-12 00:41:08 +0200 <lambdabot> a
2022-05-12 00:41:09 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-12 00:41:22 +0200 <geekosaur> right, so lb doesn't handle levity at all
2022-05-12 00:41:46 +0200 <geekosaur> and yahb is still out to lunch apparently
2022-05-12 00:42:02 +0200 <geekosaur> % :set -fprint-explicit-runtime-reps
2022-05-12 00:42:07 +0200 <geekosaur> feh
2022-05-12 00:43:01 +0200son0p(~ff@181.136.122.143)
2022-05-12 00:45:12 +0200 <EvanR> you can't always throw $ at the problem
2022-05-12 00:46:05 +0200ojsaki(~ojsaki@84.64.137.140) (Ping timeout: 256 seconds)
2022-05-12 00:46:30 +0200dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net) (Ping timeout: 240 seconds)
2022-05-12 00:47:09 +0200jao(~mail@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
2022-05-12 00:50:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 00:50:40 +0200dextaa490(~dextaa@user/dextaa)
2022-05-12 00:50:44 +0200dextaa49(~dextaa@user/dextaa) (Ping timeout: 248 seconds)
2022-05-12 00:50:44 +0200dextaa490dextaa49
2022-05-12 00:53:03 +0200 <hpc> i just realized certain types of continuation passing style are literal technical debt
2022-05-12 00:53:09 +0200 <hpc> because it can have a value of ($100)
2022-05-12 00:53:46 +0200 <hpc> https://ux.stackexchange.com/a/1875 :P
2022-05-12 00:53:50 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!)
2022-05-12 00:54:25 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
2022-05-12 00:56:48 +0200 <EvanR> negativity shouldn't be surprising or attention grabbing. It's part of nature. You can't have shadow without light, or something
2022-05-12 00:56:53 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-05-12 00:58:04 +0200 <hpc> there's probably a joke in there about higher-ranked types and having forall in a negative position too :D
2022-05-12 00:58:17 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 00:58:33 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-12 00:58:58 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 00:59:33 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-05-12 00:59:53 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-12 01:00:05 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 01:01:10 +0200dsrt^(~dsrt@128-092-160-234.biz.spectrum.com) (Ping timeout: 240 seconds)
2022-05-12 01:01:28 +0200causal(~user@50.35.83.177)
2022-05-12 01:01:49 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 01:03:20 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Ping timeout: 248 seconds)
2022-05-12 01:04:35 +0200dsrt^(~dsrt@128-092-160-234.biz.spectrum.com)
2022-05-12 01:04:44 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-05-12 01:08:03 +0200bahamas(~lucian@84.232.141.55)
2022-05-12 01:11:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 01:12:07 +0200stackdroid18(14094@user/stackdroid) (Quit: hasta la vista... tchau!)
2022-05-12 01:12:28 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 246 seconds)
2022-05-12 01:17:14 +0200Kaiepi(~Kaiepi@156.34.47.253) (Read error: Connection reset by peer)
2022-05-12 01:18:50 +0200mmhat(~mmh@2001:4090:a243:802a:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5)
2022-05-12 01:19:44 +0200Kaiepi(~Kaiepi@156.34.47.253)
2022-05-12 01:20:27 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 01:23:06 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-12 01:25:37 +0200Guest052(~Guest0@cpe-24-165-41-186.hawaii.res.rr.com)
2022-05-12 01:25:46 +0200dsrt^(~dsrt@128-092-160-234.biz.spectrum.com) (Ping timeout: 246 seconds)
2022-05-12 01:26:15 +0200Guest052(~Guest0@cpe-24-165-41-186.hawaii.res.rr.com) (Client Quit)
2022-05-12 01:27:49 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
2022-05-12 01:31:45 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-12 01:32:26 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Quit: leaving)
2022-05-12 01:32:43 +0200bitmapper(uid464869@id-464869.lymington.irccloud.com)
2022-05-12 01:34:04 +0200ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
2022-05-12 01:34:26 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 01:34:47 +0200nate1(~nate@98.45.169.16)
2022-05-12 01:39:23 +0200zer0bitz(~zer0bitz@2001:2003:f444:8f00:64b4:113a:8a62:5026) (Ping timeout: 252 seconds)
2022-05-12 01:41:03 +0200nate1(~nate@98.45.169.16) (Ping timeout: 256 seconds)
2022-05-12 01:43:05 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 01:44:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 01:45:35 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-05-12 01:45:58 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-05-12 01:46:45 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 260 seconds)
2022-05-12 01:48:08 +0200mbuf(~Shakthi@27.58.139.1)
2022-05-12 01:48:11 +0200Kaiepi(~Kaiepi@156.34.47.253) (Ping timeout: 252 seconds)
2022-05-12 01:48:20 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-12 01:51:19 +0200kaph(~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Remote host closed the connection)
2022-05-12 01:55:04 +0200littlebo1eep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 01:56:10 +0200kaph(~kaph@net-2-42-128-205.cust.vodafonedsl.it)
2022-05-12 02:00:24 +0200kadobanana(~mud@user/kadoban) (Remote host closed the connection)
2022-05-12 02:00:49 +0200kadobanana(~mud@user/kadoban)
2022-05-12 02:01:12 +0200akurilin_(uid322841@id-322841.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-12 02:01:35 +0200califax(~califax@user/califx) (Remote host closed the connection)
2022-05-12 02:02:11 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 02:03:33 +0200nate1(~nate@98.45.169.16)
2022-05-12 02:05:20 +0200mud(~mud@user/kadoban)
2022-05-12 02:06:12 +0200kadobanana(~mud@user/kadoban) (Ping timeout: 276 seconds)
2022-05-12 02:09:06 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 02:11:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 02:14:00 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds)
2022-05-12 02:14:45 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 02:17:49 +0200cyphase(~cyphase@user/cyphase)
2022-05-12 02:20:49 +0200Sweet(~user@s19427110.onlinehome-server.info)
2022-05-12 02:21:04 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 02:23:59 +0200machinedgod(~machinedg@24.105.81.50) (Ping timeout: 240 seconds)
2022-05-12 02:24:51 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 02:31:32 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com)
2022-05-12 02:36:01 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 256 seconds)
2022-05-12 02:37:29 +0200noteness_(~noteness@user/noteness)
2022-05-12 02:37:34 +0200noteness(~noteness@user/noteness) (Ping timeout: 240 seconds)
2022-05-12 02:37:48 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 02:38:39 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be) (Ping timeout: 240 seconds)
2022-05-12 02:38:39 +0200Ash[m](~signal-wa@2001:470:69fc:105::1:2318) (Ping timeout: 240 seconds)
2022-05-12 02:38:39 +0200sm(~sm@plaintextaccounting/sm) (Ping timeout: 240 seconds)
2022-05-12 02:38:39 +0200jmcantrell(~jmcantrel@user/jmcantrell) (Ping timeout: 240 seconds)
2022-05-12 02:38:47 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 240 seconds)
2022-05-12 02:38:47 +0200yoggurt[m](~yoggurtma@2001:470:69fc:105::2:ba5) (Ping timeout: 252 seconds)
2022-05-12 02:38:59 +0200ozataman[m](~ozatamanm@2001:470:69fc:105::1:faa0) (Ping timeout: 240 seconds)
2022-05-12 02:38:59 +0200Inst[m](~instrmatr@2001:470:69fc:105::1:903e) (Ping timeout: 240 seconds)
2022-05-12 02:38:59 +0200boxscape(~boxscape@user/boxscape) (Ping timeout: 240 seconds)
2022-05-12 02:38:59 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8) (Ping timeout: 240 seconds)
2022-05-12 02:39:00 +0200geekosaur[m][m](~geekosaur@2001:470:69fc:105::2:cb7) (Ping timeout: 248 seconds)
2022-05-12 02:39:07 +0200kadoban(~kadoban@user/kadoban) (Ping timeout: 240 seconds)
2022-05-12 02:39:15 +0200fgaz(~fgaz@2001:470:69fc:105::842) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200lyiriyah[m](~lyiriyahm@2001:470:69fc:105::cc0) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200RajatVerma[m](~rajatvmat@2001:470:69fc:105::1:fb34) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200jinsun_(~jinsun@user/jinsun) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200maralorn(~maralorn@2001:470:69fc:105::251) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200juhp[m](~juhpmatri@2001:470:69fc:105::6e9) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe) (Ping timeout: 260 seconds)
2022-05-12 02:39:18 +0200hughjfchen[m](~hughjfche@2001:470:69fc:105::c29d) (Ping timeout: 252 seconds)
2022-05-12 02:39:18 +0200Andy[m](~anparrama@2001:470:69fc:105::1:6826) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200Bulby[m](~bulbyvrma@2001:470:69fc:105::1:fe0a) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200vestige[m](~vestigema@2001:470:69fc:105::1:f9dd) (Ping timeout: 252 seconds)
2022-05-12 02:39:19 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32) (Ping timeout: 240 seconds)
2022-05-12 02:39:19 +0200sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200reza[m](~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200sekun[m](~hsekmatri@2001:470:69fc:105::d18f) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200moats(~oats@user/oats) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200yosef36(~yosefweis@2001:470:69fc:105::1:e501) (Ping timeout: 256 seconds)
2022-05-12 02:39:19 +0200ericson2314(~ericson23@2001:470:69fc:105::70c) (Ping timeout: 256 seconds)
2022-05-12 02:39:20 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Ping timeout: 256 seconds)
2022-05-12 02:39:20 +0200oak-(~oakuniver@2001:470:69fc:105::fcd) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200rsify(~rsify@2001:470:69fc:105::1:fd44) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200abastro[m](~abastroma@2001:470:69fc:105::1:e119) (Ping timeout: 248 seconds)
2022-05-12 02:39:20 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f) (Ping timeout: 248 seconds)
2022-05-12 02:39:21 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284) (Ping timeout: 248 seconds)
2022-05-12 02:39:32 +0200ormaaj(~ormaaj@user/ormaaj) (Ping timeout: 248 seconds)
2022-05-12 02:39:32 +0200ArshiaAghaei[m](~arshiaagh@2001:470:69fc:105::1:c382) (Ping timeout: 248 seconds)
2022-05-12 02:39:32 +0200Frikraaa[m](~odirfjohr@2001:470:69fc:105::1:f483) (Ping timeout: 248 seconds)
2022-05-12 02:39:32 +0200AdityaAlok[m](~mradityaa@2001:470:69fc:105::1:ee36) (Ping timeout: 248 seconds)
2022-05-12 02:39:32 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72) (Ping timeout: 248 seconds)
2022-05-12 02:39:39 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416) (Ping timeout: 240 seconds)
2022-05-12 02:39:50 +0200dyniec[m](~dyniecmat@2001:470:69fc:105::2:a85) (Ping timeout: 260 seconds)
2022-05-12 02:39:50 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e) (Ping timeout: 260 seconds)
2022-05-12 02:39:50 +0200Pikachu[m](~pychaumat@2001:470:69fc:105::2:1ce) (Ping timeout: 260 seconds)
2022-05-12 02:39:50 +0200shlevy[m](~shlevymat@2001:470:69fc:105::1:d3b1) (Ping timeout: 260 seconds)
2022-05-12 02:39:50 +0200Yehoshua(~yehoshua@2001:470:69fc:105::1:593f) (Ping timeout: 260 seconds)
2022-05-12 02:39:50 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32) (Ping timeout: 260 seconds)
2022-05-12 02:39:51 +0200Tisoxin(~ikosit@user/ikosit) (Ping timeout: 252 seconds)
2022-05-12 02:39:53 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200noiobeforebed(~noiobefor@2001:470:69fc:105::1:3c2d) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200Artem[m](~artemtype@2001:470:69fc:105::75b) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200peddie(~peddie@2001:470:69fc:105::25d) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200Deide(~deide@user/deide) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200psydroid(~psydroid@user/psydroid) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200siraben(~siraben@user/siraben) (Ping timeout: 260 seconds)
2022-05-12 02:39:53 +0200schuelermine[m](~schuelerm@user/schuelermine) (Ping timeout: 248 seconds)
2022-05-12 02:39:53 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 256 seconds)
2022-05-12 02:41:22 +0200Benzi-Junior(~BenziJuni@88-149-64-179.du.xdsl.is) (Ping timeout: 246 seconds)
2022-05-12 02:42:30 +0200Benzi-Junior(~BenziJuni@dsl-149-64-179.hive.is)
2022-05-12 02:42:49 +0200comerijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 02:43:28 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-05-12 02:47:24 +0200Benzi-Junior(~BenziJuni@dsl-149-64-179.hive.is) (Ping timeout: 240 seconds)
2022-05-12 02:47:51 +0200shailangsa_(~shailangs@host86-186-127-233.range86-186.btcentralplus.com) ()
2022-05-12 02:47:57 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
2022-05-12 02:53:36 +0200sagax(~sagax_nb@user/sagax) (Remote host closed the connection)
2022-05-12 03:03:45 +0200vicfred(~vicfred@user/vicfred)
2022-05-12 03:06:46 +0200frost(~frost@user/frost)
2022-05-12 03:08:26 +0200RajatVerma[m](~rajatvmat@2001:470:69fc:105::1:fb34)
2022-05-12 03:10:33 +0200VarikValefor[m](~varikvale@2001:470:69fc:105::a5d)
2022-05-12 03:10:50 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2022-05-12 03:10:51 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-12 03:11:36 +0200amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-05-12 03:11:37 +0200lyiriyah[m](~lyiriyahm@2001:470:69fc:105::cc0)
2022-05-12 03:11:56 +0200mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2022-05-12 03:12:19 +0200sm(~sm@plaintextaccounting/sm)
2022-05-12 03:12:30 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-12 03:13:14 +0200jinsun_(~jinsun@user/jinsun)
2022-05-12 03:13:17 +0200DemiMarieObenour(~alwayscur@2001:470:69fc:105::4886)
2022-05-12 03:13:51 +0200jmcantrell(~jmcantrel@user/jmcantrell)
2022-05-12 03:14:01 +0200yoggurt[m](~yoggurtma@2001:470:69fc:105::2:ba5)
2022-05-12 03:15:02 +0200juhp[m](~juhpmatri@2001:470:69fc:105::6e9)
2022-05-12 03:15:08 +0200vaibhavsagar[m](~vaibhavsa@2001:470:69fc:105::ffe)
2022-05-12 03:15:10 +0200maralorn(~maralorn@2001:470:69fc:105::251)
2022-05-12 03:15:57 +0200fgaz(~fgaz@2001:470:69fc:105::842)
2022-05-12 03:16:47 +0200kadoban(~kadoban@user/kadoban)
2022-05-12 03:16:58 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-12 03:17:17 +0200Ash[m](~signal-wa@2001:470:69fc:105::1:2318)
2022-05-12 03:17:23 +0200vestige[m](~vestigema@2001:470:69fc:105::1:f9dd)
2022-05-12 03:17:26 +0200ManofLetters[m](~manoflett@2001:470:69fc:105::3be)
2022-05-12 03:18:58 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp)
2022-05-12 03:19:51 +0200Guillaum[m](~guiboumat@2001:470:69fc:105::1:72ac)
2022-05-12 03:20:35 +0200inversed_(~inversed@176.248.27.211)
2022-05-12 03:20:35 +0200ubert1(~Thunderbi@p200300ecdf158806117918b760ecf219.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-05-12 03:20:47 +0200inversed(~inversed@176.248.27.211) (Ping timeout: 256 seconds)
2022-05-12 03:21:42 +0200psydroid(~psydroid@user/psydroid)
2022-05-12 03:22:14 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
2022-05-12 03:22:21 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-05-12 03:22:44 +0200dextaa49(~dextaa@user/dextaa) (Remote host closed the connection)
2022-05-12 03:22:57 +0200cdsmith(~cdsmithma@2001:470:69fc:105::284)
2022-05-12 03:26:23 +0200noiobeforebed(~noiobefor@2001:470:69fc:105::1:3c2d)
2022-05-12 03:26:32 +0200yosef36(~yosefweis@2001:470:69fc:105::1:e501)
2022-05-12 03:27:55 +0200geekosaur[m][m](~geekosaur@2001:470:69fc:105::2:cb7)
2022-05-12 03:28:02 +0200reza[m](~rezaphone@2001:470:69fc:105::3eda)
2022-05-12 03:28:39 +0200son0p(~ff@181.136.122.143) (Ping timeout: 240 seconds)
2022-05-12 03:29:17 +0200shailangsa(~shailangs@host86-186-127-233.range86-186.btcentralplus.com)
2022-05-12 03:29:50 +0200sekun[m](~hsekmatri@2001:470:69fc:105::d18f)
2022-05-12 03:30:16 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72)
2022-05-12 03:31:21 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca)
2022-05-12 03:32:42 +0200ArshiaAghaei[m](~arshiaagh@2001:470:69fc:105::1:c382)
2022-05-12 03:32:42 +0200hughjfchen[m](~hughjfche@2001:470:69fc:105::c29d)
2022-05-12 03:32:59 +0200sagax(~sagax_nb@user/sagax)
2022-05-12 03:33:17 +0200boxscape(~boxscape@user/boxscape)
2022-05-12 03:33:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 03:35:01 +0200Matthew|m(~arathorn@2001:470:69fc:105::1f)
2022-05-12 03:35:12 +0200AdityaAlok[m](~mradityaa@2001:470:69fc:105::1:ee36)
2022-05-12 03:35:29 +0200Christoph[m](~hpotsirhc@2001:470:69fc:105::2ff8)
2022-05-12 03:37:35 +0200Bulby[m](~bulbyvrma@2001:470:69fc:105::1:fe0a)
2022-05-12 03:38:11 +0200nate1(~nate@98.45.169.16) (Ping timeout: 252 seconds)
2022-05-12 03:38:21 +0200codaraxis(~codaraxis@user/codaraxis) (Ping timeout: 256 seconds)
2022-05-12 03:38:21 +0200schuelermine[m](~schuelerm@user/schuelermine)
2022-05-12 03:38:56 +0200Andy[m](~anparrama@2001:470:69fc:105::1:6826)
2022-05-12 03:39:03 +0200alexfmpe[m](~alexfmpem@2001:470:69fc:105::38ba)
2022-05-12 03:39:21 +0200ericson2314(~ericson23@2001:470:69fc:105::70c)
2022-05-12 03:40:02 +0200jneira[m](~jneiramat@2001:470:69fc:105::d729)
2022-05-12 03:40:09 +0200ormaaj(~ormaaj@user/ormaaj)
2022-05-12 03:40:19 +0200sjanssen(~sjanssenm@2001:470:69fc:105::1:61d8)
2022-05-12 03:40:36 +0200ozataman[m](~ozatamanm@2001:470:69fc:105::1:faa0)
2022-05-12 03:44:21 +0200Inst[m](~instrmatr@2001:470:69fc:105::1:903e)
2022-05-12 03:44:22 +0200Artem[m](~artemtype@2001:470:69fc:105::75b)
2022-05-12 03:46:55 +0200 <monochrom> Late to the conversation, but indeed a forall in a negative position is usually inside parentheses, too. Perfect.
2022-05-12 03:47:11 +0200feliix42(~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
2022-05-12 03:47:25 +0200feliix42(~felix@gibbs.uberspace.de)
2022-05-12 03:48:07 +0200noiobeforebed(~noiobefor@2001:470:69fc:105::1:3c2d) (Ping timeout: 250 seconds)
2022-05-12 03:48:08 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56) (Ping timeout: 250 seconds)
2022-05-12 03:48:08 +0200lyiriyah[m](~lyiriyahm@2001:470:69fc:105::cc0) (Ping timeout: 250 seconds)
2022-05-12 03:48:08 +0200amesgen[m](~amesgenm]@2001:470:69fc:105::82b) (Ping timeout: 250 seconds)
2022-05-12 03:48:24 +0200reza[m](~rezaphone@2001:470:69fc:105::3eda) (Ping timeout: 250 seconds)
2022-05-12 03:48:25 +0200kadoban(~kadoban@user/kadoban) (Ping timeout: 250 seconds)
2022-05-12 03:48:37 +0200Inst[m](~instrmatr@2001:470:69fc:105::1:903e) (Ping timeout: 240 seconds)
2022-05-12 03:48:38 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72) (Ping timeout: 240 seconds)
2022-05-12 03:48:46 +0200Deide(~deide@user/deide)
2022-05-12 03:49:22 +0200fendor[m](~fendormat@2001:470:69fc:105::fcbd)
2022-05-12 03:49:46 +0200Frikraaa[m](~odirfjohr@2001:470:69fc:105::1:f483)
2022-05-12 03:49:49 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-12 03:50:53 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 03:51:19 +0200jao(~mail@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Quit: ERC 5.4.1 (IRC client for GNU Emacs 29.0.50))
2022-05-12 03:52:14 +0200ongy[m](~ongymatri@2001:470:69fc:105::5018)
2022-05-12 03:53:28 +0200slac91684(~slack1256@186.11.61.142) (Ping timeout: 246 seconds)
2022-05-12 03:53:33 +0200moats(~oats@user/oats)
2022-05-12 03:54:07 +0200Pikachu[m](~pychaumat@2001:470:69fc:105::2:1ce)
2022-05-12 03:55:30 +0200andrey__(~andrey@p200300dbcf15e00051e3a882b5958800.dip0.t-ipconnect.de)
2022-05-12 03:55:41 +0200zfnmxt(~zfnmxtzfn@2001:470:69fc:105::2b32)
2022-05-12 03:55:47 +0200peddie(~peddie@2001:470:69fc:105::25d)
2022-05-12 03:56:14 +0200siraben(~siraben@user/siraben)
2022-05-12 03:56:15 +0200smichel17[m](~smichel17@2001:470:69fc:105::2d32)
2022-05-12 03:57:48 +0200andrey_(~andrey@p200300dbcf0a9400bb18378afbd4165e.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
2022-05-12 03:57:49 +0200sibnull[m](~sibnullma@2001:470:69fc:105::1:1291)
2022-05-12 03:58:11 +0200abastro[m](~abastroma@2001:470:69fc:105::1:e119)
2022-05-12 03:58:25 +0200bahamas(~lucian@84.232.141.55)
2022-05-12 03:58:33 +0200Las[m](~lasmatrix@2001:470:69fc:105::74e)
2022-05-12 03:59:05 +0200rsify(~rsify@2001:470:69fc:105::1:fd44)
2022-05-12 03:59:46 +0200shlevy[m](~shlevymat@2001:470:69fc:105::1:d3b1)
2022-05-12 04:01:12 +0200dyniec[m](~dyniecmat@2001:470:69fc:105::2:a85)
2022-05-12 04:01:53 +0200pareto-optimal-d(~pareto-op@2001:470:69fc:105::1:b61f)
2022-05-12 04:02:39 +0200maerwald[m](~maerwaldm@2001:470:69fc:105::1ee)
2022-05-12 04:04:23 +0200 <energizer> is there a good document that says what 'composition' means?
2022-05-12 04:04:25 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-12 04:05:00 +0200SridharRatnakuma(~sridmatri@2001:470:69fc:105::1c2)
2022-05-12 04:05:12 +0200oak-(~oakuniver@2001:470:69fc:105::fcd)
2022-05-12 04:05:18 +0200 <Axman6> it means whatever you want it to mean when you use it. I composed my lunch with myself using the `eat` function
2022-05-12 04:06:14 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 252 seconds)
2022-05-12 04:06:20 +0200 <Axman6> though, I feel like one common theme when talking about pomposition is that if you have two things of the same "type", composing them results in something also of the same "type" (using type losely here, more broad than Haskell type"
2022-05-12 04:06:30 +0200july541[m](~july541ma@2001:470:69fc:105::1:e416)
2022-05-12 04:06:31 +0200 <Axman6> composition too*
2022-05-12 04:06:35 +0200 <EvanR> the cat class has a meow method, so you can compose cat with meow, to get... IO?
2022-05-12 04:07:08 +0200Tisoxin(~ikosit@user/ikosit)
2022-05-12 04:07:30 +0200 <Axman6> so, we can compose functions to get more functions
2022-05-12 04:07:49 +0200 <Axman6> we can compose monadic actions to get new monadic actions
2022-05-12 04:08:14 +0200Yehoshua(~yehoshua@2001:470:69fc:105::1:593f)
2022-05-12 04:08:18 +0200 <EvanR> lego bricks of the appropriate type combine to form a bigger lego
2022-05-12 04:08:35 +0200 <monochrom> At the basic level, it just means combining. At a more nuanced level, it also means that the meaning of the combined can be easily figured out from the individual meanings of the components.
2022-05-12 04:09:03 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2022-05-12 04:09:03 +0200finn_elija(~finn_elij@user/finn-elija/x-0085643)
2022-05-12 04:09:03 +0200finn_elijaFinnElija
2022-05-12 04:09:11 +0200 <energizer> that "more nuanced level" sounds like it means "denotational semantics"
2022-05-12 04:09:26 +0200 <EvanR> in web languages, a pile of sand combines with a pile of sand to form a bigger pile of sand. So web programming is compositional
2022-05-12 04:09:46 +0200 <monochrom> Yes that's one purpose of denotational semantics.
2022-05-12 04:10:12 +0200 <energizer> EvanR: that's the `f a a -> a` signature that Axman6 was talking about
2022-05-12 04:10:30 +0200Inst[m](~instrmatr@2001:470:69fc:105::1:903e)
2022-05-12 04:10:41 +0200EvanRscrolls up
2022-05-12 04:10:58 +0200 <energizer> <Axman6> though, I feel like one common theme when talking about pomposition is that if you have two things of the same "type", composing them results in something also of the same "type" (using type losely here, more broad than Haskell type"
2022-05-12 04:11:55 +0200 <energizer> which i'd usually use the word "closed" for
2022-05-12 04:12:11 +0200 <EvanR> has types at all really covers a lot of that ground
2022-05-12 04:12:13 +0200 <energizer> as in 'a is closed under f
2022-05-12 04:13:27 +0200 <EvanR> a binary f algebra, or something
2022-05-12 04:13:46 +0200Orbstheorem(~orbstheor@2001:470:69fc:105::a56)
2022-05-12 04:13:48 +0200 <EvanR> actually why are there two parameters
2022-05-12 04:13:57 +0200 <EvanR> f a -> a
2022-05-12 04:14:13 +0200amesgen[m](~amesgenm]@2001:470:69fc:105::82b)
2022-05-12 04:14:52 +0200 <EvanR> note this doesn't cover the form for function composition
2022-05-12 04:16:16 +0200lyiriyah[m](~lyiriyahm@2001:470:69fc:105::cc0)
2022-05-12 04:16:50 +0200noiobeforebed(~noiobefor@2001:470:69fc:105::1:3c2d)
2022-05-12 04:17:10 +0200nate1(~nate@98.45.169.16)
2022-05-12 04:19:01 +0200kadoban(~kadoban@user/kadoban)
2022-05-12 04:20:24 +0200reza[m](~rezaphone@2001:470:69fc:105::3eda)
2022-05-12 04:21:22 +0200ishaan[m](~ishaanvma@2001:470:69fc:105::1:fb72)
2022-05-12 04:28:13 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
2022-05-12 04:29:35 +0200jmcarthur(~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
2022-05-12 04:30:50 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-05-12 04:33:10 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-05-12 04:33:44 +0200EvanR(~EvanR@user/evanr)
2022-05-12 04:33:54 +0200EvanR_(~EvanR@user/evanr)
2022-05-12 04:33:56 +0200EvanR(~EvanR@user/evanr) (Remote host closed the connection)
2022-05-12 04:34:47 +0200EvanR_(~EvanR@user/evanr) (Remote host closed the connection)
2022-05-12 04:35:28 +0200EvanR(~EvanR@user/evanr)
2022-05-12 04:43:30 +0200Kaipei(~Kaiepi@156.34.47.253) (Ping timeout: 240 seconds)
2022-05-12 04:44:52 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
2022-05-12 04:45:05 +0200 <Axman6> anyone know what the state of Haskell -. WebAssembly is at the moment?
2022-05-12 04:47:47 +0200 <geekosaur> best asked in #ghc, but work is ongoing and last I heard was still targeting 9.6
2022-05-12 04:48:22 +0200steven(~steven@2600:1700:ce00:1ca0:679b:14af:bf5c:9d0d)
2022-05-12 04:48:49 +0200 <Axman6> oh interesting, and I'm glad to hear that - so many of these projects get stuck on one GHC version and just die. I wonder if the work over the last few years to make GHC more... modular? maintainable? ... has improved things on that front at all
2022-05-12 04:49:19 +0200 <Axman6> it'd be fantastic if GHC proper shipped with WASM support, would be great to see it as a first class target
2022-05-12 04:49:41 +0200jargon(~jargon@174-22-206-112.phnx.qwest.net)
2022-05-12 04:50:05 +0200 <geekosaur> milestone for 9.6 indeed shows wasm
2022-05-12 04:50:13 +0200 <Axman6> D:
2022-05-12 04:51:05 +0200 <Axman6> I didn't realise its development was that closely tied to GHC's development, that's great news
2022-05-12 04:51:19 +0200 <steven> hello, I have a package versioning question. I just became the maintainer for microlens and I'm trying to upgrade it to support mtl-2.3. I see that mtl 2.3 has removed the type classes for ListT and ErrorT. microlens-mtl defines instances for these classes, so my thinking is to remove the instances, increase the lower-bound on the mtl dependency to
2022-05-12 04:51:20 +0200 <steven> 2.3 and release a new major version with these changes. Is that the correct thing to do, or is there a better way?
2022-05-12 04:51:24 +0200 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/milestones/375 fwiw
2022-05-12 04:52:13 +0200 <Axman6> steven: my first thought is to use CPP to define those instances when mtl is in a version range where they exist
2022-05-12 04:53:47 +0200 <c_wraith> ugh. that just ruins the docs.
2022-05-12 04:54:21 +0200 <c_wraith> instances that only exist sometimes really are annoying.
2022-05-12 04:54:43 +0200 <steven> ah yes that's an option too
2022-05-12 04:55:21 +0200 <steven> but I wonder if it can result in explosion? e.g. over time the project could accumulate lots of checks for different versions
2022-05-12 04:55:22 +0200 <c_wraith> please have the existence of an instance vary based on package version rather than a build-time check of some sort.
2022-05-12 04:55:55 +0200 <steven> yeah, I prefer not to resort to CPP but I'm new to this so I want to understand what others usually do first
2022-05-12 04:56:23 +0200 <c_wraith> It's a rare situation. Instances don't usually go away after having been around for decades.
2022-05-12 04:56:25 +0200 <steven> and also if I'm using CPP, how do I decide when to stop supporting the old version? Seems that it becomes more arbitrary then
2022-05-12 04:58:17 +0200 <steven> longshot maybe but does anyone know of libraries that have done the migration to mtl 2.3? I'd want to see how they did it
2022-05-12 05:07:08 +0200azimut_(~azimut@gateway/tor-sasl/azimut)
2022-05-12 05:08:04 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-12 05:10:52 +0200bahamas(~lucian@84.232.141.55)
2022-05-12 05:12:34 +0200erenyaegerdidnot(~erenyaege@2600:1700:4010:55c0::1f)
2022-05-12 05:13:46 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 05:15:48 +0200erenyaegerdidnot(~erenyaege@2600:1700:4010:55c0::1f) (Client Quit)
2022-05-12 05:15:49 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 256 seconds)
2022-05-12 05:17:24 +0200searemind(~u0_a2219@122.161.48.197)
2022-05-12 05:18:22 +0200searemind(~u0_a2219@122.161.48.197) (Client Quit)
2022-05-12 05:20:21 +0200 <sm> this sounds like the kind of thing https://hackage.haskell.org/package/mtl-compat should help with but it probably isn't up to date
2022-05-12 05:46:10 +0200nate1(~nate@98.45.169.16) (Ping timeout: 240 seconds)
2022-05-12 05:47:40 +0200 <steven> interesting, thank you sm. I can at least see how they're doing it
2022-05-12 05:56:40 +0200akurilin_(uid322841@id-322841.ilkley.irccloud.com)
2022-05-12 05:58:21 +0200zaquest(~notzaques@5.130.79.72) (Remote host closed the connection)
2022-05-12 05:59:35 +0200zaquest(~notzaques@5.130.79.72)
2022-05-12 05:59:59 +0200dsrt^(~dsrt@128-092-160-234.biz.spectrum.com)
2022-05-12 06:05:57 +0200odnes(~odnes@5-203-212-41.pat.nym.cosmote.net)
2022-05-12 06:05:58 +0200 <steven> The CPP fix seems simple enough so I think I will do that. Now my question is: should this be considered a minor upgrade? Technically I am removing a typeclass instance but only if the class instance is not there to begin with, so I think any breakage would be attributable to someone upgrading their mtl lower bound, not the microlens one. So I
2022-05-12 06:05:59 +0200 <steven> think this is a minor upgrade but want to make sure this makes sense
2022-05-12 06:06:28 +0200Kaipei(~Kaiepi@156.34.47.253)
2022-05-12 06:06:29 +0200 <steven> correction: only if the class* is not there (not class instance)
2022-05-12 06:06:52 +0200jargon(~jargon@174-22-206-112.phnx.qwest.net) (Remote host closed the connection)
2022-05-12 06:08:10 +0200kaph(~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Ping timeout: 240 seconds)
2022-05-12 06:11:15 +0200shriekingnoise(~shrieking@201.231.16.156) (Ping timeout: 276 seconds)
2022-05-12 06:16:50 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-05-12 06:30:45 +0200rekahsoft(~rekahsoft@bras-base-wdston4533w-grc-02-142-113-160-8.dsl.bell.ca) (Ping timeout: 276 seconds)
2022-05-12 06:30:47 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2022-05-12 06:32:55 +0200benin(~benin@183.82.31.174)
2022-05-12 06:35:33 +0200 <Axman6> yeah IMO it would be a minor version, if they are using a version of mtl new enough, they couldn't possibly use the instances, and microlens is just accommodating that - definitely better to have microlens keep supporting those instance if someone is using them and limiting themselves to that older versions of mtl
2022-05-12 06:51:54 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2022-05-12 06:54:22 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-12 06:56:39 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 06:58:36 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 07:00:06 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 07:01:01 +0200coot(~coot@213.134.190.95)
2022-05-12 07:04:22 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-12 07:05:11 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-12 07:09:02 +0200 <jackdk> `ListT` and `ErrorT` specifically have been warning devs away from them for a very long time. I think you'd be within your rights to bundle up all pending nonbreaking changes, release, then raise the lower bound on `mtl`
2022-05-12 07:12:35 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 07:13:30 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 07:13:42 +0200steven(~steven@2600:1700:ce00:1ca0:679b:14af:bf5c:9d0d) (Ping timeout: 252 seconds)
2022-05-12 07:18:05 +0200raym(~raym@user/raym) (Quit: kernel update, rebooting...)
2022-05-12 07:18:10 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-05-12 07:21:40 +0200raym(~raym@user/raym)
2022-05-12 07:24:04 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 07:28:40 +0200jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2022-05-12 07:29:03 +0200jpds(~jpds@gateway/tor-sasl/jpds)
2022-05-12 07:35:16 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d)
2022-05-12 07:36:11 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Read error: Connection reset by peer)
2022-05-12 07:36:24 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d)
2022-05-12 07:49:06 +0200ryanbooker(uid4340@id-4340.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-12 07:52:39 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 07:53:36 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 07:57:53 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-12 07:59:32 +0200Guest39(~Guest39@50-204-42-240-static.hfc.comcastbusiness.net)
2022-05-12 08:04:50 +0200Guest39(~Guest39@50-204-42-240-static.hfc.comcastbusiness.net) (Quit: Client closed)
2022-05-12 08:07:13 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be) (Read error: Connection reset by peer)
2022-05-12 08:07:42 +0200m1dnight(~christoph@78-22-9-5.access.telenet.be)
2022-05-12 08:10:25 +0200echoreply(~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
2022-05-12 08:11:17 +0200echoreply(~echoreply@45.32.163.16)
2022-05-12 08:13:35 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 260 seconds)
2022-05-12 08:16:00 +0200mikoto-chan(~mikoto-ch@84.199.144.234)
2022-05-12 08:16:37 +0200EvanR(~EvanR@user/evanr)
2022-05-12 08:17:09 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 08:19:38 +0200EvanR_(~EvanR@user/evanr)
2022-05-12 08:22:27 +0200EvanR(~EvanR@user/evanr) (Ping timeout: 260 seconds)
2022-05-12 08:25:37 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 08:28:22 +0200alp_(~alp@user/alp)
2022-05-12 08:30:31 +0200xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2022-05-12 08:32:20 +0200adanwan_(~adanwan@gateway/tor-sasl/adanwan)
2022-05-12 08:32:37 +0200 <lechner> Hi, a lot of folks here work with Nix. Is anyone using Guix?
2022-05-12 08:33:00 +0200acidjnk_new(~acidjnk@p200300d0c7068b99195ba74fc017953f.dip0.t-ipconnect.de)
2022-05-12 08:33:34 +0200adanwan(~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 240 seconds)
2022-05-12 08:35:50 +0200geekosaur(~geekosaur@xmonad/geekosaur) (Ping timeout: 240 seconds)
2022-05-12 08:38:48 +0200Ram-Z(~Ram-Z@li1814-254.members.linode.com) (Ping timeout: 276 seconds)
2022-05-12 08:43:55 +0200 <tomsmeding> [exa]: I feel like the issue in your second paste is that you're not lifting the withRunInIO into m
2022-05-12 08:46:39 +0200 <dminuoso> When I look at readCreateProcess from process-extras https://hackage.haskell.org/package/process-extras-0.7.4/docs/src/System-Process-Common.html#readC… it seems the code will block on reading stderr/stdout first, and then waitForProcess
2022-05-12 08:46:47 +0200 <dminuoso> Is this the correct methodology?
2022-05-12 08:47:12 +0200 <dminuoso> Or rather, when the running process exits, is it guaranteed it will close its fds 0, 1 and 2?
2022-05-12 08:48:03 +0200 <tomsmeding> dminuoso: "it" won't, the kernel will; but they won't be closed on your side if there is some other process that is still alive that they're sharing the file descriptors with
2022-05-12 08:49:25 +0200 <[exa]> tomsmeding: yeah I found it later, lift is the new teleport :D
2022-05-12 08:49:35 +0200nschoe(~quassel@178.251.84.79)
2022-05-12 08:49:37 +0200 <[exa]> thanks for help though, it really required a bit of rubberducking :]
2022-05-12 08:49:44 +0200 <tomsmeding> boo I just wrote it too https://paste.tomsmeding.com/2isbwy2Z
2022-05-12 08:50:03 +0200 <[exa]> tomsmeding: I send back some positive energy
2022-05-12 08:50:06 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-12 08:50:09 +0200 <tomsmeding> :D
2022-05-12 08:51:54 +0200 <dminuoso> tomsmeding: Mmm, is there a connection to what `readProcess` does https://hackage.haskell.org/package/process-1.6.14.0/docs/src/System.Process.html#readCreateProcess
2022-05-12 08:52:21 +0200 <[exa]> dminuoso: unixy exit() must close all open FDs
2022-05-12 08:52:47 +0200 <[exa]> dminuoso: unless the process is terminated, at which point you might be getting sigpipes etc
2022-05-12 08:53:38 +0200slack1256(~slack1256@186.11.58.142)
2022-05-12 08:54:06 +0200 <[exa]> in your case though, the event "process dies" generates completely independent events "EOF can be read at stdout and stderr" and "status can be collected"
2022-05-12 08:54:09 +0200 <tomsmeding> dminuoso: that one seems to wait on output and on waitForProcess in parallel
2022-05-12 08:54:11 +0200 <dminuoso> Ahh hold on, the difference in `readProcess` is that it just defers the out reader to lazy hGetContents
2022-05-12 08:54:23 +0200 <dminuoso> Its still the same
2022-05-12 08:54:33 +0200 <dminuoso> Its just slightly less obvious
2022-05-12 08:54:38 +0200 <tomsmeding> no it waits on them in parallel
2022-05-12 08:54:49 +0200 <tomsmeding> it waits on the output in a forked thread, and waits on the process in the main thread
2022-05-12 08:55:09 +0200 <tomsmeding> whereas the process-extras link you sent earlier waits on the output _before_ waiting on the process
2022-05-12 08:55:12 +0200 <dminuoso> https://hackage.haskell.org/package/process-1.6.14.0/docs/src/System.Process.html#readCreateProces…
2022-05-12 08:55:35 +0200 <dminuoso> Well yeah we should be comparing it with that I suppose
2022-05-12 08:55:38 +0200 <tomsmeding> though the 'process' version does kind of implicitly assume that 'output' has been forced at the time the process exits :p
2022-05-12 08:55:50 +0200 <tomsmeding> same structure, just with stderr in
2022-05-12 08:55:52 +0200 <dminuoso> tomsmeding: Right, so Im wondering whether the order to wait in is irrelevant here
2022-05-12 08:56:10 +0200dextaa490(~dextaa@user/dextaa)
2022-05-12 08:56:22 +0200 <tomsmeding> it's not, you must allow data from stdout/stderr to flow into your program while (or before) waiting on process exit
2022-05-12 08:56:27 +0200 <tomsmeding> because otherwise buffer full
2022-05-12 08:56:45 +0200 <tomsmeding> personally I'd wait on both events in parallel, but not sure whether that's necessary
2022-05-12 08:56:50 +0200 <dminuoso> Okay that makes sense, so I must at least start reading stdout before waiting, but it shouldnt matter what to *wait* on right?
2022-05-12 08:57:16 +0200 <dminuoso> Should really look at POSIX specifications for pipes here
2022-05-12 08:57:16 +0200 <tomsmeding> I would say that's correct
2022-05-12 08:57:21 +0200 <tomsmeding> yeah :')
2022-05-12 08:57:45 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-12 08:58:12 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2022-05-12 08:58:20 +0200 <tomsmeding> I see that in my playground I consume out/err in a thread while waiting on the process, which is consistent with what I think is safest -- yay me being consistent over time
2022-05-12 08:58:36 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-12 08:59:21 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net) (Client Quit)
2022-05-12 08:59:29 +0200 <tomsmeding> for the interested readers it's here, but don't use it as example code because I know less about this than the 'process' etc. authors https://github.com/tomsmeding/pastebin-haskell/blob/play/GHCPool.hs#L106
2022-05-12 08:59:55 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2022-05-12 09:00:21 +0200 <dminuoso> tomsmeding: that somewhat suggests I should start reading from stdout even before the process is created.
2022-05-12 09:00:32 +0200 <tomsmeding> what's "that"?
2022-05-12 09:01:12 +0200 <dminuoso> │08:56:22 tomsmeding | it's not, you must allow data from stdout/stderr to flow into your program while (or before) waiting on process exit │ barrucadu
2022-05-12 09:01:23 +0200 <tomsmeding> nice irc window copy
2022-05-12 09:01:29 +0200 <dminuoso> Otherwise I might have a race that in the time when the process is already created but before I read the buffers are filled up already
2022-05-12 09:01:33 +0200 <dminuoso> Heh.
2022-05-12 09:01:40 +0200 <tomsmeding> nobody cares about that, right?
2022-05-12 09:01:40 +0200 <dminuoso> New weechat layout, still sorting things out
2022-05-12 09:01:55 +0200 <dminuoso> What do you mean by nobody cares about that?
2022-05-12 09:01:59 +0200 <tomsmeding> if buffers are full, then the process won't make progress, but do you care about that if you start emptying the buffers soon afterwards anyway
2022-05-12 09:02:13 +0200 <tomsmeding> is it relevant that the process stalled for a very short time
2022-05-12 09:02:27 +0200 <dminuoso> That would depend on whether the writing process handles this correctly
2022-05-12 09:02:54 +0200gehmehgeh(~user@user/gehmehgeh)
2022-05-12 09:02:59 +0200 <dminuoso> If say non-blocking write on stdout was used, without the assumption that it could fail
2022-05-12 09:03:12 +0200 <tomsmeding> then the program is ill-written lol
2022-05-12 09:03:16 +0200 <tomsmeding> non-blocking write _can_ fail
2022-05-12 09:03:21 +0200 <dminuoso> I guess
2022-05-12 09:03:36 +0200 <tomsmeding> you should assume it to fail, that's the whole point of the non-blocking API
2022-05-12 09:03:41 +0200 <tomsmeding> if you wanted non-failure, use the blocking API
2022-05-12 09:04:14 +0200 <tomsmeding> what if you redirect the process to a file on spinning rust, and the process spams stdout as fast as it can using non-blocking writes that it doesn't check failure on
2022-05-12 09:04:21 +0200 <tomsmeding> then the writes _will_ fill up the buffer and _will_ fail
2022-05-12 09:04:29 +0200chele(~chele@user/chele)
2022-05-12 09:05:34 +0200 <tomsmeding> dminuoso: re weechat, try alt-L
2022-05-12 09:06:28 +0200 <dminuoso> Ah nice, I did not know this key combination
2022-05-12 09:06:29 +0200 <tomsmeding> also, you should assume that as consuming process you're not fast enough for the writing process; this might also happen on a single-core CPU where the other process gets more time slots than you
2022-05-12 09:06:38 +0200 <dminuoso> That's very useful
2022-05-12 09:06:47 +0200 <tomsmeding> so the situation you were worrying about can happen anyway, even if you read as soon as possible
2022-05-12 09:07:03 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2022-05-12 09:07:20 +0200 <tomsmeding> dminuoso: in alt-L mode weechat exits the alternate-screen I think, so it's actual wrapping text that copies nicely
2022-05-12 09:07:23 +0200dminuosojust wants to do image manipulation with imagemagick
2022-05-12 09:07:41 +0200 <[exa]> y u no juicypixels
2022-05-12 09:07:46 +0200 <tomsmeding> your client program is imagemagick? That handles writes correctly, it's too famous a program
2022-05-12 09:07:49 +0200 <dminuoso> but we dont have any up-to-date bindings, so Im trying to figure out how to correctly invoke the binary with binary in/output
2022-05-12 09:07:59 +0200 <[exa]> also, tmpfiles rock
2022-05-12 09:08:05 +0200 <dminuoso> [exa]: it doesnt do all the operations I want it to do
2022-05-12 09:08:12 +0200cawfee(~root@2406:3003:2077:2758::babe) (Ping timeout: 260 seconds)
2022-05-12 09:08:34 +0200 <[exa]> dminuoso: btw what about using it as a library? https://hackage.haskell.org/package/imagemagick
2022-05-12 09:08:56 +0200 <tomsmeding> dminuoso: given your paranoia about correct reading order I was almost assuming this was some mission-critical client process that must be treated with care at all times lol
2022-05-12 09:08:59 +0200 <dminuoso> [exa]: Not been maintained for 7 years, will only build against old versions of it
2022-05-12 09:09:17 +0200 <dminuoso> tomsmeding: No, its actually just me writing elgato streamdeck drivers and tools!
2022-05-12 09:09:23 +0200cawfee(~root@2406:3003:2077:2758::babe)
2022-05-12 09:09:26 +0200 <dminuoso> It's for a jukebox for my kid. :>
2022-05-12 09:09:31 +0200 <[exa]> dminuoso: ah so ,_,
2022-05-12 09:09:35 +0200 <tomsmeding> I guess that _is_ mission critical
2022-05-12 09:10:00 +0200 <dminuoso> tomsmeding: I strike to not take shortcuts even for hobby projects. I see them as practice for writing correct and stable software.
2022-05-12 09:10:12 +0200 <dminuoso> *strive even
2022-05-12 09:10:52 +0200 <dminuoso> Besides, Im considering upstreaming ByteString readCreateProcess versions. There were proposals, but they were all stopped because process-extras existed. But that hasnt been maintained for a long time, so...
2022-05-12 09:11:00 +0200 <tomsmeding> as long as it's fun, sounds like a worthy goal; I try to do the same for things that are not completely one-off
2022-05-12 09:11:26 +0200 <[exa]> dminuoso: honestly just go for tmpfiles, images require some seeking to be loaded correctly and I assume that imagemagick is just tmpfiling the buffer anyway
2022-05-12 09:11:39 +0200 <dminuoso> [exa]: No no! Performance!
2022-05-12 09:11:50 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-12 09:12:04 +0200 <[exa]> dminuoso: mmap() >>> malloc()
2022-05-12 09:12:07 +0200 <dminuoso> heh
2022-05-12 09:12:21 +0200 <[exa]> anyway I'll need this too
2022-05-12 09:12:29 +0200 <[exa]> let's try some c2hs
2022-05-12 09:12:44 +0200 <dminuoso> [exa]: Im not willing to maintain this for years to come.
2022-05-12 09:13:02 +0200 <dminuoso> Throwing binary bindings on hackage you know will be outdated a year from now is irresponsible.
2022-05-12 09:13:25 +0200 <[exa]> I'd then assume throwing any binary bindings there is irresponsible? :D
2022-05-12 09:13:59 +0200 <dminuoso> Well some are maintained, or work with very stable APIs that dont need much changing
2022-05-12 09:14:21 +0200 <dminuoso> Besides, imagemagick is a very dangerous proposition to use for production software
2022-05-12 09:14:35 +0200 <dminuoso> The kind of attack vectors this enables is crazy
2022-05-12 09:15:13 +0200 <[exa]> yap
2022-05-12 09:15:26 +0200 <[exa]> what's the extra transform you need that juicypixels don't do?
2022-05-12 09:15:57 +0200 <[exa]> s/juicypixels/friday/
2022-05-12 09:16:43 +0200 <dminuoso> extending canvas with transparent background
2022-05-12 09:16:55 +0200 <dminuoso> I want to generate key icons for the pressed state that become smaller
2022-05-12 09:17:13 +0200mikoto-chan(~mikoto-ch@84.199.144.234) (Ping timeout: 246 seconds)
2022-05-12 09:17:22 +0200 <dminuoso> So I would resize (which I could do with JuicyPixels-extras), and extend canvas - I havent found a way to do the latter.
2022-05-12 09:17:51 +0200 <dminuoso> Also the bitmap portions dont let me pick arbitrary headers
2022-05-12 09:17:52 +0200 <[exa]> you make a bigger image and blit the original in the middle?
2022-05-12 09:17:55 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Read error: Connection reset by peer)
2022-05-12 09:18:01 +0200 <dminuoso> The streamdecks require a particular BMP header format that juicy pixels can only parse, but not generate
2022-05-12 09:18:18 +0200 <dminuoso> (well the older models)
2022-05-12 09:18:51 +0200 <dminuoso> I could probably work around *that* one by poking around in the header myself, but the extend canvas onto transparent background I cant
2022-05-12 09:19:14 +0200Ram-Z(Ram-Z@2a01:7e01::f03c:91ff:fe57:d2df)
2022-05-12 09:21:14 +0200 <tomsmeding> does BMP even support transparency
2022-05-12 09:21:18 +0200 <[exa]> re borders, what about `generateImage (\x y -> if inbounds x y then takefromthepicture else transparent) ?
2022-05-12 09:21:23 +0200 <[exa]> tomsmeding: yeah they support RGBA
2022-05-12 09:21:36 +0200 <tomsmeding> TIL
2022-05-12 09:21:39 +0200 <[exa]> with similar level of standardization as other formats there :D
2022-05-12 09:21:44 +0200 <tomsmeding> lol
2022-05-12 09:21:59 +0200 <[exa]> s/formats/bmp formats/
2022-05-12 09:22:05 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:91c0:4831:d96e:28ee)
2022-05-12 09:22:26 +0200 <[exa]> I still get triggered when remembering the bmp palettes
2022-05-12 09:22:37 +0200 <dminuoso> [exa]: Mmmm, maybe I really should look at JuicyPixels.
2022-05-12 09:23:30 +0200Midjak(~Midjak@82.66.147.146) (Ping timeout: 260 seconds)
2022-05-12 09:23:38 +0200 <[exa]> dminuoso: honestly you're better off having a patched version of juicypixels that can write the rgba bmp than trying to invoke magick in weird ways
2022-05-12 09:23:44 +0200 <[exa]> ^ opinionated truth
2022-05-12 09:24:03 +0200 <tomsmeding> what is an opinionated truth
2022-05-12 09:24:14 +0200 <dminuoso> All truth is opinionated.
2022-05-12 09:24:26 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2022-05-12 09:24:29 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-12 09:24:44 +0200 <[exa]> tomsmeding: that's specified in IRC RFC no? :D
2022-05-12 09:25:32 +0200 <tomsmeding> [exa]: /me confused
2022-05-12 09:26:36 +0200 <[exa]> btw RGBA BMP is even exampled by wiki it seems https://en.wikipedia.org/wiki/BMP_file_format#Example_2
2022-05-12 09:27:01 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-05-12 09:27:03 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-12 09:27:07 +0200 <dminuoso> [exa]: I mean the performance doing this in JuicyPixels will likely be much worse. :(
2022-05-12 09:27:41 +0200 <dminuoso> With imagemagick I get opencl with SIMD and all that sorcery
2022-05-12 09:27:48 +0200 <[exa]> juicypixels-repa?
2022-05-12 09:27:49 +0200 <dminuoso> But honestly, performance is not a constraint.
2022-05-12 09:27:58 +0200 <tomsmeding> "I want to generate key icons"
2022-05-12 09:28:04 +0200 <[exa]> (or maybe the package name is the other way around)
2022-05-12 09:28:05 +0200 <dminuoso> :>
2022-05-12 09:28:16 +0200 <dminuoso> tomsmeding: Not just a few, 32 of them!
2022-05-12 09:28:32 +0200 <tomsmeding> I bet IM doesn't parallelise across images
2022-05-12 09:28:45 +0200 <dminuoso> No, but you can simply invoke multiple IM processes on parallel!
2022-05-12 09:28:57 +0200 <tomsmeding> how large are these images
2022-05-12 09:29:11 +0200 <dminuoso> I gotta scale them down from 150x150ish to 96x96 or 72x72!
2022-05-12 09:29:15 +0200 <tomsmeding> [exa]: ah
2022-05-12 09:29:30 +0200 <tomsmeding> dminuoso: invoking the process will be more expensive than resizing the f*n image lol
2022-05-12 09:29:44 +0200 <dminuoso> heh
2022-05-12 09:29:59 +0200 <tomsmeding> [exa]: that 'little-endian "Win "' though
2022-05-12 09:30:06 +0200 <dminuoso> I hope you do realize Im being a bit humorous about performance
2022-05-12 09:30:11 +0200[exa]remembers the negligible negligibility of opencl initialization time
2022-05-12 09:30:14 +0200 <tomsmeding> :)
2022-05-12 09:30:28 +0200 <tomsmeding> I do
2022-05-12 09:30:38 +0200 <[exa]> tomsmeding: yeah all the easter eggs from M$ are cursed af
2022-05-12 09:31:31 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 09:31:55 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es) (Quit: No Ping reply in 180 seconds.)
2022-05-12 09:32:11 +0200 <dminuoso> [exa]: mmm now if JuicyPixels-repa could give me an unboxed vector of pixel data.
2022-05-12 09:32:31 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
2022-05-12 09:32:32 +0200 <dminuoso> If Im using generateImage, I want maximum localicy of reference to scan the source image
2022-05-12 09:32:49 +0200 <[exa]> dminuoso: repa is good
2022-05-12 09:33:11 +0200 <dminuoso> Ah but wait, is Array D DIM3 Word8
2022-05-12 09:33:15 +0200mrmonday(~robert@what.i.hope.is.not.a.tabernaevagant.es)
2022-05-12 09:33:18 +0200 <dminuoso> Whatever that means
2022-05-12 09:33:22 +0200 <[exa]> that's okay
2022-05-12 09:33:34 +0200 <tomsmeding> delayed array of dimension 3 containing Word8 values
2022-05-12 09:33:36 +0200 <[exa]> delayed 3D array of bytes, precisely what you want
2022-05-12 09:33:44 +0200tomsmedinghigh-5's [exa]
2022-05-12 09:33:52 +0200 <dminuoso> delayed-what-now?
2022-05-12 09:33:55 +0200 <[exa]> then you undelay it and it computes itself very efficiently
2022-05-12 09:34:06 +0200 <tomsmeding> delayed being it's ((Int,Int,Int) -> Word8)
2022-05-12 09:34:19 +0200 <tomsmeding> manifest would be (Vector Word8)
2022-05-12 09:34:20 +0200 <[exa]> it accumulates the highlevel operations you're doing with it so that it doesn't rewrite the memory everytime you do a pixel change
2022-05-12 09:34:25 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-12 09:35:18 +0200 <dminuoso> Does that mean operations on it occur in a special monad?
2022-05-12 09:35:29 +0200 <[exa]> no
2022-05-12 09:35:52 +0200 <dminuoso> Okay repa is completely news to me :)
2022-05-12 09:36:37 +0200 <[exa]> I'd say it's a bit more efficient than having mutable vectors, unless you attempt to replicate a yuge thunk chain on that, as with foldl
2022-05-12 09:37:01 +0200 <dminuoso> Though Im wondering, if I have to first convert a Image/DynamicImage to a rep based Img, I still pay for the non-locality of reference
2022-05-12 09:37:05 +0200 <dminuoso> I dont think much is won
2022-05-12 09:37:16 +0200 <[exa]> and if you compile with LLVM you should actually get a bit of SIMD
2022-05-12 09:37:32 +0200 <dminuoso> I might get some cache benefit depending if the Image allocations on the heap are packed together though
2022-05-12 09:38:02 +0200 <[exa]> (...if you find a CPU with SIMD vectors smaller than the 32 key icons)
2022-05-12 09:38:46 +0200 <[exa]> nah the delayed arrays are basically a few thunks pointing to unboxed arrays, and unboxed arrays are basically Vector, 1 single chunk of memory
2022-05-12 09:39:46 +0200 <tomsmeding> dminuoso: https://hackage.haskell.org/package/repa-3.4.1.5/docs/src/Data.Array.Repa.Repr.Delayed.html#line-25 'Array D sh a' is isomorphic to '(sh, sh -> a)'
2022-05-12 09:39:51 +0200 <[exa]> *unboxed Vector
2022-05-12 09:40:24 +0200 <dminuoso> Well, I see that repa has this fairly cool shape polymorphic indexing.
2022-05-12 09:40:27 +0200dextaa490(~dextaa@user/dextaa) (Remote host closed the connection)
2022-05-12 09:40:54 +0200 <dminuoso> Brilliant, so I dont even notice Im working with an unboxed, row-major array of rgba data
2022-05-12 09:41:25 +0200 <[exa]> yap repa is good
2022-05-12 09:42:01 +0200odnes(~odnes@5-203-212-41.pat.nym.cosmote.net) (Quit: Leaving)
2022-05-12 09:42:35 +0200 <dminuoso> Okay so it is determined. The streamdeck missions critically depends on having unboxed delayed repa array to implement "scaling down really small icons to even-slightly-smaller icons".
2022-05-12 09:42:56 +0200 <dminuoso> Thanks [exa], came here for unix process advice and went out with repa.
2022-05-12 09:43:09 +0200 <[exa]> \o/
2022-05-12 09:45:49 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 09:46:21 +0200xaotuk(~sasha@2a06:5b00:15fe:9b00::2)
2022-05-12 09:47:44 +0200machinedgod(~machinedg@24.105.81.50)
2022-05-12 09:50:45 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-12 09:50:46 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2022-05-12 09:52:35 +0200vpan(~0@212.117.1.172)
2022-05-12 09:52:56 +0200bahamas(~lucian@84.232.141.55)
2022-05-12 09:56:43 +0200slack1256(~slack1256@186.11.58.142) (Ping timeout: 260 seconds)
2022-05-12 09:59:29 +0200cfricke(~cfricke@user/cfricke)
2022-05-12 10:01:21 +0200shriekingnoise(~shrieking@201.231.16.156) (Quit: Quit)
2022-05-12 10:03:47 +0200mattil(~mattil@helsinki.portalify.com)
2022-05-12 10:06:15 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2022-05-12 10:13:41 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-05-12 10:13:42 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Quit: christiansen)
2022-05-12 10:13:54 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-12 10:15:26 +0200comerijnmerijn
2022-05-12 10:15:59 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Read error: Connection reset by peer)
2022-05-12 10:16:15 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net)
2022-05-12 10:16:39 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 10:20:12 +0200mattil(~mattil@helsinki.portalify.com) (Read error: Connection reset by peer)
2022-05-12 10:20:29 +0200xstill-(xstill@fimu/xstill) (Quit: Ping timeout (120 seconds))
2022-05-12 10:21:31 +0200xstill-(xstill@fimu/xstill)
2022-05-12 10:26:54 +0200ccntrq(~Thunderbi@exit-1.rz.nue.de.mhd.medondo.com)
2022-05-12 10:30:19 +0200bahamas(~lucian@84.232.141.55) (Ping timeout: 260 seconds)
2022-05-12 10:37:36 +0200 <tomsmeding> yay
2022-05-12 10:38:03 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-12 10:39:29 +0200phma(~phma@2001:5b0:211b:9668:1b71:5de:d62c:3d45) (Read error: Connection reset by peer)
2022-05-12 10:40:11 +0200phma(~phma@host-67-44-208-35.hnremote.net)
2022-05-12 10:41:51 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2022-05-12 10:50:13 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-12 10:50:27 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 10:51:33 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 10:55:59 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 252 seconds)
2022-05-12 10:57:04 +0200azimut_(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-12 10:57:08 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-12 11:03:10 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 11:06:46 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 11:07:10 +0200king_gs(~Thunderbi@187.201.105.54)
2022-05-12 11:08:20 +0200dhil(~dhil@cpc103052-sgyl39-2-0-cust260.18-2.cable.virginm.net)
2022-05-12 11:10:58 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 246 seconds)
2022-05-12 11:11:07 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-12 11:11:45 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-05-12 11:11:49 +0200mc47(~mc47@xmonad/TheMC47)
2022-05-12 11:13:01 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-12 11:13:22 +0200geekosaur(~geekosaur@xmonad/geekosaur)
2022-05-12 11:13:55 +0200odnes(~odnes@2a02:587:440e:0:e8c:b484:c50b:a76)
2022-05-12 11:14:16 +0200tubogram4(~tubogram@user/tubogram) (Quit: See ya later!)
2022-05-12 11:14:30 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-12 11:15:47 +0200king_gs(~Thunderbi@187.201.105.54) (Quit: king_gs)
2022-05-12 11:17:39 +0200Benzi-Junior(~BenziJuni@88-149-64-179.du.xdsl.is)
2022-05-12 11:22:17 +0200tubogram4(~tubogram@user/tubogram)
2022-05-12 11:30:00 +0200ccntrq(~Thunderbi@exit-1.rz.nue.de.mhd.medondo.com) (Quit: ccntrq)
2022-05-12 11:34:54 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 11:35:33 +0200ccntrq(~Thunderbi@exit-1.rz.nue.de.mhd.medondo.com)
2022-05-12 11:38:26 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:91c0:4831:d96e:28ee) (Quit: WeeChat 2.8)
2022-05-12 11:38:40 +0200ccntrq(~Thunderbi@exit-1.rz.nue.de.mhd.medondo.com) (Client Quit)
2022-05-12 11:45:38 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Read error: Connection reset by peer)
2022-05-12 11:45:52 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 11:47:27 +0200mmhat(~mmh@2001:4090:a243:801d:ee08:6bff:fe09:5315)
2022-05-12 11:53:03 +0200MoC(~moc@user/moc)
2022-05-12 11:54:11 +0200ubert(~Thunderbi@p548c8d44.dip0.t-ipconnect.de) (Quit: ubert)
2022-05-12 11:55:47 +0200ubert(~Thunderbi@p200300ecdf15880b196df7e3ef276b09.dip0.t-ipconnect.de)
2022-05-12 11:56:52 +0200michalz(~michalz@185.246.204.126) (Ping timeout: 248 seconds)
2022-05-12 12:00:26 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2022-05-12 12:00:52 +0200michalz(~michalz@185.246.204.125)
2022-05-12 12:04:34 +0200azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
2022-05-12 12:09:16 +0200acidjnk_new(~acidjnk@p200300d0c7068b99195ba74fc017953f.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-12 12:09:41 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-05-12 12:14:21 +0200kjak(~kjak@pool-108-45-56-21.washdc.fios.verizon.net)
2022-05-12 12:14:58 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
2022-05-12 12:16:23 +0200nishant(~Nishant@2405:201:f005:c02f:1e85:5bce:e8d6:bf31)
2022-05-12 12:17:17 +0200nishant(~Nishant@2405:201:f005:c02f:1e85:5bce:e8d6:bf31) (Leaving)
2022-05-12 12:17:22 +0200nishant(~Nishant@2405:201:f005:c02f:1e85:5bce:e8d6:bf31)
2022-05-12 12:17:30 +0200nishant(~Nishant@2405:201:f005:c02f:1e85:5bce:e8d6:bf31) (Leaving)
2022-05-12 12:18:08 +0200xaotuk(~sasha@2a06:5b00:15fe:9b00::2) (Ping timeout: 260 seconds)
2022-05-12 12:19:55 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs)
2022-05-12 12:24:22 +0200kaph(~kaph@net-2-42-128-205.cust.vodafonedsl.it)
2022-05-12 12:26:39 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-12 12:28:33 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 12:30:35 +0200haskl(~haskl@user/haskl) (Read error: Connection reset by peer)
2022-05-12 12:33:03 +0200haskl(~haskl@user/haskl)
2022-05-12 12:39:10 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-12 12:44:12 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
2022-05-12 12:44:19 +0200w1gz(~weechat@2a03:b0c0:1:d0::1123:1)
2022-05-12 12:46:18 +0200MoC(~moc@user/moc) (Quit: Konversation terminated!)
2022-05-12 12:46:18 +0200dsrt^(~dsrt@128-092-160-234.biz.spectrum.com) (Remote host closed the connection)
2022-05-12 12:47:56 +0200odnes(~odnes@2a02:587:440e:0:e8c:b484:c50b:a76) (Remote host closed the connection)
2022-05-12 12:52:53 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2022-05-12 12:53:41 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
2022-05-12 12:54:10 +0200Lord_of_Life_Lord_of_Life
2022-05-12 12:57:30 +0200jmdaemon(~jmdaemon@user/jmdaemon) (Ping timeout: 276 seconds)
2022-05-12 13:00:43 +0200acidjnk_new(~acidjnk@p200300d0c7068b9978922ec24d0737b7.dip0.t-ipconnect.de)
2022-05-12 13:02:03 +0200xff0x(~xff0x@125x102x200x106.ap125.ftth.ucom.ne.jp) (Ping timeout: 276 seconds)
2022-05-12 13:07:39 +0200MajorBiscuit(~MajorBisc@c-001-013-046.client.tudelft.eduvpn.nl)
2022-05-12 13:08:20 +0200coot(~coot@213.134.190.95)
2022-05-12 13:08:32 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-12 13:08:56 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 13:09:27 +0200w1gz(~weechat@2a03:b0c0:1:d0::1123:1) (Quit: w1gz)
2022-05-12 13:09:42 +0200w1gz(~weechat@2a03:b0c0:1:d0::1123:1)
2022-05-12 13:10:48 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 13:13:31 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds)
2022-05-12 13:19:12 +0200tired(~tired@user/tired) (Read error: Connection reset by peer)
2022-05-12 13:19:35 +0200tired(~tired@user/tired)
2022-05-12 13:22:32 +0200kawzeg(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34) (Ping timeout: 250 seconds)
2022-05-12 13:22:43 +0200ddb(~ddb@2607:5300:203:9993::196) (Ping timeout: 260 seconds)
2022-05-12 13:22:50 +0200kawzeg(kawzeg@2a01:7e01::f03c:92ff:fee2:ec34)
2022-05-12 13:23:39 +0200ddb(~ddb@2607:5300:203:9993::196)
2022-05-12 13:24:45 +0200bahamas(~lucian@86.120.77.115)
2022-05-12 13:27:01 +0200mmhat(~mmh@2001:4090:a243:801d:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5)
2022-05-12 13:30:32 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs) (Ping timeout: 252 seconds)
2022-05-12 13:30:41 +0200odnes(~odnes@2a02:587:e901:3110::ec9)
2022-05-12 13:33:10 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-12 13:33:15 +0200MajorBiscuit(~MajorBisc@c-001-013-046.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.4)
2022-05-12 13:34:36 +0200mattil(~mattil@helsinki.portalify.com)
2022-05-12 13:36:55 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 246 seconds)
2022-05-12 13:44:19 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:91c0:4831:d96e:28ee)
2022-05-12 13:47:18 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-12 13:50:00 +0200bliminse(~bliminse@host86-164-128-238.range86-164.btcentralplus.com) (Quit: leaving)
2022-05-12 13:53:38 +0200bliminse(~bliminse@host86-164-128-238.range86-164.btcentralplus.com)
2022-05-12 13:57:39 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com)
2022-05-12 14:09:39 +0200odnes(~odnes@2a02:587:e901:3110::ec9) (Ping timeout: 260 seconds)
2022-05-12 14:09:57 +0200odnes(~odnes@2a02:587:e901:3110::ec9)
2022-05-12 14:15:15 +0200odnes(~odnes@2a02:587:e901:3110::ec9) (Ping timeout: 260 seconds)
2022-05-12 14:15:29 +0200Alex_test_(~al_test@178.34.163.35)
2022-05-12 14:17:27 +0200Alex_test(~al_test@178.34.163.35) (Ping timeout: 276 seconds)
2022-05-12 14:30:33 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 14:30:46 +0200Pickchea(~private@user/pickchea)
2022-05-12 14:34:39 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 14:35:33 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
2022-05-12 14:35:42 +0200 <apache2> I'm writing a function that operates on/in a State monad and I take an argument which is a Map. I want to fold over the map (k,v) elements with each element updating my State
2022-05-12 14:36:34 +0200 <apache2> I currently have a foldM which mostly does what I want except it folds over the (v) in the Map rather than (key,v)
2022-05-12 14:36:58 +0200gurkenglas(~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Remote host closed the connection)
2022-05-12 14:37:14 +0200 <apache2> Data.Map seems to have a `fold` (over the values) and `foldWithKeys` over both key,value. Is there a way to get foldM to use the latter?
2022-05-12 14:37:46 +0200 <geekosaur> isn't foldM just some variant of sequence . fold?
2022-05-12 14:37:52 +0200 <geekosaur> @src foldM
2022-05-12 14:37:52 +0200 <lambdabot> foldM _ a [] = return a
2022-05-12 14:37:52 +0200 <lambdabot> foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs
2022-05-12 14:37:59 +0200 <geekosaur> mm, maybe not
2022-05-12 14:38:08 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 14:40:04 +0200 <apache2> I can use Map.foldWithKeys and manually make sure to pass in the State and 'return' from in there, I was just wondering if there was a more idiomatic way to achieve this
2022-05-12 14:42:34 +0200 <tomsmeding> apache2: foldM over Map.assocs?
2022-05-12 14:43:10 +0200 <apache2> tomsmeding: that works, thanks
2022-05-12 14:44:04 +0200kaph(~kaph@net-2-42-128-205.cust.vodafonedsl.it) (Read error: Connection reset by peer)
2022-05-12 14:44:07 +0200kaph_(~kaph@net-2-42-128-205.cust.vodafonedsl.it)
2022-05-12 14:45:27 +0200odnes(~odnes@2a02:587:e901:3110::273)
2022-05-12 14:48:30 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net) (Ping timeout: 265 seconds)
2022-05-12 14:48:40 +0200bahamas(~lucian@86.120.77.115) (Ping timeout: 246 seconds)
2022-05-12 14:48:56 +0200superbil(~superbil@1-34-176-171.hinet-ip.hinet.net)
2022-05-12 14:49:50 +0200bahamas(~lucian@86.120.77.115)
2022-05-12 14:52:45 +0200szkl(uid110435@id-110435.uxbridge.irccloud.com)
2022-05-12 14:59:03 +0200mattil(~mattil@helsinki.portalify.com) (Remote host closed the connection)
2022-05-12 15:00:14 +0200ehllie(~ehllie@217-67-208-66.itsa.net.pl)
2022-05-12 15:09:51 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-12 15:10:55 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 15:12:48 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 252 seconds)
2022-05-12 15:13:07 +0200bahamas(~lucian@86.120.77.115) (Quit: Lost terminal)
2022-05-12 15:14:25 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs)
2022-05-12 15:14:50 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds)
2022-05-12 15:15:15 +0200ub(~Thunderbi@p200300ecdf15880b09d618bc8a498343.dip0.t-ipconnect.de)
2022-05-12 15:17:22 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2022-05-12 15:19:26 +0200acidjnk_new(~acidjnk@p200300d0c7068b9978922ec24d0737b7.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-05-12 15:26:02 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 15:26:57 +0200slack1256(~slack1256@186.11.61.206)
2022-05-12 15:30:37 +0200slac79575(~slack1256@191.125.227.220)
2022-05-12 15:33:30 +0200slack1256(~slack1256@186.11.61.206) (Ping timeout: 276 seconds)
2022-05-12 15:35:42 +0200Alex_test_Alex_test
2022-05-12 15:40:27 +0200__monty__(~toonn@user/toonn)
2022-05-12 15:41:08 +0200shriekingnoise(~shrieking@201.231.16.156)
2022-05-12 15:52:38 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2022-05-12 15:53:14 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2022-05-12 15:54:30 +0200 <Henson> I'm trying to do some CPU profiling on a program. I've run "stack build --profile" and run the executable with "+RTS -p -RTS" to generate a .prof output file. In one run of the program it uses 250% of the CPU power for 2 minutes, then in another uses 250% for about 15 seconds, then 60% for the rest of the time up to 2 minutes. I'm trying to figure out what's different between the two runs....
2022-05-12 15:54:50 +0200ehllie(~ehllie@217-67-208-66.itsa.net.pl) (Quit: Connection closed)
2022-05-12 15:55:24 +0200 <Henson> because the CPU usage is VERY different. However from the profile run, there seems to be pretty much no difference. The main summary at the top indicates pretty much no difference between the various usage centres. I would expect a glaring difference based on the very different CPU loads in the two runs. Does anybody have any suggestions?
2022-05-12 15:56:41 +0200 <merijn> Henson: Some intuition based wild-ass guessing: Is your code using the threaded runtime? How many capabilities are you running? And have you ran with "+RTS -sstderr" yet?
2022-05-12 15:56:51 +0200 <Henson> it's also very difficult to compare different runs. Everything is output as text, the first three columns contain duplicate values, and the unique SRC column isn't consistent across multiple runs, making inter-run comparison very kludgy and difficult.
2022-05-12 15:57:07 +0200 <Henson> merijn: yes, it's threaded, with 4 capabilities
2022-05-12 15:57:18 +0200 <Henson> merijn: I haven't run with sstderr yet
2022-05-12 15:57:32 +0200 <merijn> Henson: Also: https://mpickering.github.io/posts/2019-11-07-hs-speedscope.html :)
2022-05-12 15:57:38 +0200 <merijn> (for making profiles more readable)
2022-05-12 15:57:42 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 15:59:24 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net)
2022-05-12 16:01:56 +0200 <Henson> merijn: I see "-sstderr" produces the same thing as "-s". I have run with "-s" before, but didn't run it as a comparison between the two very different runs. I'll give that a try and see if it's helpful. I'll also look into the speedscope tool.
2022-05-12 16:02:46 +0200 <Henson> merijn: will running threaded with multiple capabilities cause any problems or difficulties in time profiling?
2022-05-12 16:05:23 +0200 <merijn> Henson: But what does -s report? What's your productivity
2022-05-12 16:05:54 +0200 <merijn> Henson: Not so much difficulties profiling, but it can get you some nasty regressions in GC performance
2022-05-12 16:07:39 +0200 <Henson> merijn: good question about the productivity, I'm not sure. I'll have to run it again with "-s" to find out the difference between the two.
2022-05-12 16:08:15 +0200 <merijn> Henson: What was productivity on the last run?
2022-05-12 16:08:34 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 16:09:19 +0200 <Henson> merijn: I'm not sure, I wasn't looking for that statistic, so I didn't even read the number when it was on the screen. I'll rerun the program and get back to you on it.
2022-05-12 16:10:05 +0200odnes(~odnes@2a02:587:e901:3110::273) (Quit: Leaving)
2022-05-12 16:10:45 +0200 <merijn> Henson: When you have performance issues, productivity is one of the first numbers you should look at :)
2022-05-12 16:11:12 +0200 <merijn> To see if it's in a sane ballpark or not
2022-05-12 16:13:24 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 16:16:09 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 3.5)
2022-05-12 16:20:43 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2022-05-12 16:24:45 +0200[Leary](~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
2022-05-12 16:27:01 +0200frost(~frost@user/frost) (Quit: Client closed)
2022-05-12 16:29:29 +0200Sgeo(~Sgeo@user/sgeo)
2022-05-12 16:30:08 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs) (Ping timeout: 260 seconds)
2022-05-12 16:31:01 +0200vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2022-05-12 16:32:31 +0200 <Henson> merijn: well, the productivity in both cases is pretty high. 95.4% for the case with the high CPU load, and 89.2% for the case with the low CPU load.
2022-05-12 16:32:45 +0200 <Henson> merijn: I'll try using the speedscope tool to see if that sheds any light on things
2022-05-12 16:32:50 +0200Pickchea(~private@user/pickchea) (Ping timeout: 240 seconds)
2022-05-12 16:33:54 +0200 <Henson> merijn: GC seconds for both cases are pretty much the same, but the MUT time is quite different. The high CPU case is higher, and the low CPU case is lower. I don't think that's too surprising. The question is why is the low CPU case so much lower.
2022-05-12 16:34:54 +0200 <Henson> merijn: I suspect it's because something is crashing when I overwhelm the system, but the thing that is crashing is not the thing that SHOULD be using up the most CPU power, as that continues to function. But the thing that should be using up no CPU power all in the fully loaded case is what I suspect is crashing.
2022-05-12 16:35:11 +0200 <tomsmeding> Henson: you say you're running with 4 capabilities; are you also running 4 jobs, and do those jobs allocate memory as they go?
2022-05-12 16:35:17 +0200vysn(~vysn@user/vysn)
2022-05-12 16:36:06 +0200 <tomsmeding> try also running with one capability more than you're actually using, the scheduler needs a thread to do its stuff once in a while and if you busy-loop all the threads, it never gets a chance
2022-05-12 16:36:37 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-12 16:36:51 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs)
2022-05-12 16:36:59 +0200 <Henson> tomsmeding: the "-s" output reports that there are about 13 tasks (I'm assuming those are parallel tasks, right)? There is a LOT of memory allocation going on in both cases, as the program is consuming and processing 750 MB/s of data from two high-speed cameras.
2022-05-12 16:37:25 +0200 <tomsmeding> right, that makes it less likely that it's this
2022-05-12 16:37:54 +0200 <tomsmeding> I've had a similar situation before, where I ran with -N8 and started 8 computations with forkIO, and then 7 ran and the 8th only started when the others were finished
2022-05-12 16:38:09 +0200 <Henson> I'll try running with more tasks just to see what happens
2022-05-12 16:41:20 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer)
2022-05-12 16:41:44 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-12 16:42:47 +0200 <Henson> tomsmeding: hmm, well that seems to be it! Running with -N4 (the number of CPUs) causes the high CPU to manifest. Running with -N5 or higher the CPU load is WAY lower (250% versus 60%)
2022-05-12 16:43:08 +0200 <tomsmeding> Henson: so with -N5 you're always in the slow case?
2022-05-12 16:43:28 +0200 <Henson> tomsmeding: with -N8 or -N16 is reports ridiculous numbers for the MUT and GC times
2022-05-12 16:43:54 +0200 <Henson> tomsmeding: the low CPU case. The software still functions, it's just the CPU load is much lower.
2022-05-12 16:44:12 +0200 <tomsmeding> setting -N much higher than the number of cores shouldn't be useful, but I've seen people recommending ncores+1
2022-05-12 16:44:30 +0200 <davean> Henson: I've not read up, but have you avoided parallel GC?
2022-05-12 16:44:46 +0200 <tomsmeding> (i.e. +RTS -qg)
2022-05-12 16:44:55 +0200 <tomsmeding> or +RTS --nonmoving-gc
2022-05-12 16:45:26 +0200 <Henson> is there an issue with parallel GC? I read a year or so ago that parallel GC had issues in the past but that they had mostly been fixed
2022-05-12 16:45:39 +0200slac79575slack1256
2022-05-12 16:46:02 +0200 <tomsmeding> it has different behaviour and somewhat different use cases where it works well, so it's usually worth trying both
2022-05-12 16:46:04 +0200 <davean> Henson: Its not an "issue" its that when you have small garbage theres more cordination than progress - inherently.
2022-05-12 16:47:23 +0200 <Henson> I wasn't saying that the GC numbers were ridiculous because they were believable, they were like negative 17 trillion seconds for a program that ran for 10 seconds
2022-05-12 16:47:39 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2022-05-12 16:47:50 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2022-05-12 16:47:51 +0200 <Henson> GC time -5447168.964s ( 0.063s elapsed)
2022-05-12 16:47:59 +0200 <tomsmeding> lol
2022-05-12 16:48:11 +0200 <tomsmeding> I wonder whether that's an overflow
2022-05-12 16:48:16 +0200 <Henson> it was balanced out by the MUT, though: MUT time 5447174.517s ( 3.255s elapsed)
2022-05-12 16:48:18 +0200 <Henson> :-)
2022-05-12 16:48:22 +0200 <tomsmeding> :')
2022-05-12 16:48:26 +0200 <davean> Thats not sane.
2022-05-12 16:48:34 +0200 <Henson> haha
2022-05-12 16:48:35 +0200 <tomsmeding> merijn: ^
2022-05-12 16:48:50 +0200 <davean> I've never seen anything like that - I . . . that shouldn't be an overflow either. Do you have clock issues?
2022-05-12 16:48:51 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 256 seconds)
2022-05-12 16:49:03 +0200 <davean> like that makes no sense
2022-05-12 16:49:17 +0200 <davean> I mean it shouldn't be a clock issue either to be clear
2022-05-12 16:49:19 +0200 <tomsmeding> that's more than 2 months worth of negative seconds
2022-05-12 16:49:25 +0200xaotuk(~sasha@net108-32-245-109.mbb.telenor.rs) (Ping timeout: 256 seconds)
2022-05-12 16:49:50 +0200 <tomsmeding> I like how the report clarifies the amount of elapsed time, which _is_ sane
2022-05-12 16:50:21 +0200 <Henson> with -N16 it's even worse: GC time 6018330949.191s ( 0.130s elapsed) MUT time 0.000s ( 9.963s elapsed)
2022-05-12 16:50:38 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-12 16:50:42 +0200 <Henson> davean: I don't think I have system clock issues
2022-05-12 16:50:53 +0200 <tomsmeding> Henson: ghc version? if this is reproducible that sounds like an RTS bug lol
2022-05-12 16:51:14 +0200 <Henson> tomsmeding: 8.10.7
2022-05-12 16:51:36 +0200 <davean> Hum, well I certainly never saw that on that version but I don't remember much about 8.10 anymore its so old.
2022-05-12 16:51:57 +0200 <tomsmeding> davean: most of haskell users are still on 8.10.7
2022-05-12 16:52:03 +0200 <davean> tomsmeding: They're weird then
2022-05-12 16:52:14 +0200 <tomsmeding> each of the subsequent versions has _some_ issue on some platform
2022-05-12 16:52:27 +0200 <tomsmeding> 8.10.7 is the latest that's universally okay
2022-05-12 16:52:39 +0200geekosaurwonders if the rec for ncores+1 is just cargo-culting the old make "use -jcores+1" thing, which shouldn't apply to ghc anyway
2022-05-12 16:52:47 +0200 <tomsmeding> if not, argue with maerwald to move the 'recommended' tag to a later version
2022-05-12 16:54:09 +0200 <davean> tomsmeding: I mean I'd say 8.10 has issues on systems too - its just they're not the issues I guess you care about.
2022-05-12 16:55:01 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
2022-05-12 16:55:16 +0200 <Henson> disabling parallel garbage collection with the "-gq" option does make a small difference. 0.2 GC seconds instead of 2.0 GC seconds, and and 98% productivity instead of 91%
2022-05-12 16:55:25 +0200 <tomsmeding> -qg I hope
2022-05-12 16:55:38 +0200 <davean> Henson: yah, it should in your case
2022-05-12 16:55:53 +0200 <davean> Henson: you mostly want parallel GC with large amounts of live data, with a deeply connected structure
2022-05-12 16:56:30 +0200 <Henson> davean: ok, I'll add that to my cabal file
2022-05-12 16:56:47 +0200christiansen(~christian@83-95-137-75-dynamic.dk.customer.tdc.net) (Ping timeout: 256 seconds)
2022-05-12 16:57:02 +0200 <davean> his is also part of what makes basic lists bad - esp if they're super long
2022-05-12 16:58:12 +0200 <Henson> does anybody know why using N+1 instead of N in the RTS options gets rid of the high CPU problem? I'm not using any forkIO in my program, these are all Haskell threads. But Haskell is interacting with C++ which is spawning a couple OS threads in the camera library, but nowhere else.
2022-05-12 16:58:17 +0200 <telser> FWIW I know of projects in industry that are still on 8.6
2022-05-12 16:58:50 +0200 <Henson> would this also explain why the difference between the high and low CPU cases were not showing up in the time profiling?
2022-05-12 16:59:26 +0200 <Henson> this being some thing in GHC outside of the actual program that is causing the high CPU usage due to not enough cores to run on
2022-05-12 17:00:27 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 17:03:50 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 17:04:13 +0200 <slack1256> davean: That advice you give for "when you want parallel GC", how did you get it. Did you read it somewhere? It sparked my interest.
2022-05-12 17:07:00 +0200 <Henson> ok, it turns out that the problem was the parallel garbage collector. Using "+RTS -N" causes the high CPU load problem, but "+RTS -N -qg" does not.
2022-05-12 17:08:13 +0200 <Henson> running with parallel garbage collection and more threads than CPU cores also helps the problem
2022-05-12 17:09:46 +0200 <Henson> thank you very much for your help, everyone, another mystery solved!
2022-05-12 17:11:15 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-05-12 17:11:36 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-05-12 17:14:00 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-12 17:16:02 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 252 seconds)
2022-05-12 17:17:21 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2022-05-12 17:19:51 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi)
2022-05-12 17:20:21 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:91c0:4831:d96e:28ee) (Quit: WeeChat 2.8)
2022-05-12 17:21:24 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2022-05-12 17:25:11 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2022-05-12 17:25:18 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2022-05-12 17:29:47 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-12 17:30:23 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 17:31:41 +0200benin(~benin@183.82.31.174) (Quit: The Lounge - https://thelounge.chat)
2022-05-12 17:32:32 +0200cheater(~Username@user/cheater) (Read error: Connection reset by peer)
2022-05-12 17:32:54 +0200 <davean> slack1256: Its inherent to the desing of GC
2022-05-12 17:33:05 +0200 <davean> slack1256: Implimenting a GC was part of college?
2022-05-12 17:33:29 +0200cheater(~Username@user/cheater)
2022-05-12 17:33:41 +0200 <davean> slack1256: Think about exactly how a GC works. It follows references from a root set
2022-05-12 17:34:06 +0200 <davean> GHC's GC is a workstealing implimentation mind you which means when there isn't enough work to go around you'll start bouncing cache like crazy
2022-05-12 17:37:01 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 246 seconds)
2022-05-12 17:38:02 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 252 seconds)
2022-05-12 17:39:59 +0200mikoto-chan(~mikoto-ch@213.177.151.239)
2022-05-12 17:40:54 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 17:41:34 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl)
2022-05-12 17:44:01 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 246 seconds)
2022-05-12 17:46:00 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-12 17:50:34 +0200eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2022-05-12 17:51:40 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 17:51:55 +0200dextaa490(~dextaa@user/dextaa)
2022-05-12 17:54:58 +0200 <sm> top starred haskell github repos: https://github.com/search?o=desc&q=language%3AHaskell+stars%3A%3E=100&ref=searchresults&s=stars&ty…
2022-05-12 17:55:19 +0200 <Franciman> nice ty sm
2022-05-12 17:55:35 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-05-12 17:55:57 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 17:56:06 +0200 <sm> my question: how does graphql-engine, with presumably fewer direct users, get so many ?
2022-05-12 17:57:27 +0200 <sm> and related: this and more search tools can be found at https://haskell-links.org
2022-05-12 17:58:01 +0200xff0x(~xff0x@b133147.ppp.asahi-net.or.jp)
2022-05-12 18:02:51 +0200 <geekosaur> something's wrong there, xmonad has 2.5k but doesn't seem to show up at all
2022-05-12 18:03:03 +0200 <geekosaur> (but kmonad and xmobar do)
2022-05-12 18:04:16 +0200EvanR_(~EvanR@user/evanr) (Quit: Leaving)
2022-05-12 18:04:58 +0200 <slack1256> davean: Gotcha on the workstealing part. But to me "having large amounts of live data, with a /deeply connected structure/" would mean the parallel GC would have *more* problems with trashing the other cores' cache than with a /disconnected/ structure.
2022-05-12 18:05:05 +0200EvanR(~EvanR@user/evanr)
2022-05-12 18:05:20 +0200 <slack1256> That is why I wanted a reference. Probably my intuitions are wrong and that was acquired knowledge >.> .
2022-05-12 18:05:58 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
2022-05-12 18:09:50 +0200 <davean> slack1256: its the opposite becase it needs to follow links - thats what the processing is doing - all of what it is doing really.
2022-05-12 18:10:05 +0200 <davean> slack1256: If you have a linked list you can't theoretically use more than a single core on it.
2022-05-12 18:10:15 +0200 <davean> Theres only one spine to follow
2022-05-12 18:10:58 +0200 <davean> What GC does is *copy* (or mark, depending on type) live data
2022-05-12 18:11:05 +0200 <davean> it SPECIFICLY does not touch dead data.
2022-05-12 18:11:27 +0200 <davean> The resident size has NOTHING to do with available work
2022-05-12 18:11:33 +0200 <davean> slack1256: have you never implimented a GC?
2022-05-12 18:11:53 +0200 <slack1256> Yes, I got that we follow live data and resisident size does matter, only live data size.
2022-05-12 18:12:14 +0200 <slack1256> Nope. I know the theory from afar, mostly mark-and-sweep.
2022-05-12 18:12:20 +0200 <slack1256> And I have read some RTS code on it.
2022-05-12 18:13:50 +0200 <geekosaur> mm, this is even weirder. xmonad-contrib (459 stars) *does* show up
2022-05-12 18:13:55 +0200 <davean> Yes but *how* you follow live data
2022-05-12 18:14:02 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2022-05-12 18:14:25 +0200 <slack1256> Root set as you say. We follow the links from there moving to the other half of the generation.
2022-05-12 18:14:36 +0200 <davean> Right, we *follow the links*
2022-05-12 18:14:46 +0200 <davean> for that we need *parallel* links to enable multiple workers
2022-05-12 18:15:29 +0200 <davean> Following a link is predicated on having followed all preceding links
2022-05-12 18:15:31 +0200 <sm> geekosaur: hmm, github's search seems unreliable, perhaps when there's many results. I limited this one to >100 stars to get it properly sorted, maybe limiting to >1000 helps ?
2022-05-12 18:15:37 +0200 <davean> otherwise we don't know what we're following from is live.
2022-05-12 18:17:30 +0200 <slack1256> So you are saying that nodes in the rootset are the only real "parallelizable nodes" that we can have?
2022-05-12 18:18:06 +0200 <davean> No, they're the initial parallelism - you can always get more parallism out of having more connected data
2022-05-12 18:18:31 +0200 <davean> If a worker runs dry, it can steal from the queue of other workers, to get new links to follow
2022-05-12 18:18:39 +0200 <davean> but that predicates on having a branch factor in your data
2022-05-12 18:19:32 +0200 <sm> geekosaur: >1000 didn't help, pretty sure I remember seeing it show up in the past. That *is* weird
2022-05-12 18:19:56 +0200 <geekosaur> I limited it to 2000. xmonad didn't show up… but yesod did
2022-05-12 18:20:03 +0200shiraeeshi(~shiraeesh@77.94.25.209)
2022-05-12 18:20:40 +0200Everything(~Everythin@37.115.210.35)
2022-05-12 18:21:04 +0200 <slack1256> There is a problem with the connected data that you get downstream (not from the root set) if you want to parallelize though. Aren't they "physically" closer in memory given the moving GC that we use? That could trigger cache invalidation if they are closely packed and they fit on the cache line.
2022-05-12 18:21:30 +0200 <sm> https://github.com/search?q=xmonad%2Fxmonad&type=Repositories doesn't find it either
2022-05-12 18:21:30 +0200 <geekosaur> so something's definitely screwy with github search
2022-05-12 18:21:40 +0200 <davean> slack1256: no
2022-05-12 18:21:52 +0200 <slack1256> That certainly is not problem for the nursery, given that not many moving (if any) are done, but Gen1 probably is.
2022-05-12 18:22:01 +0200 <davean> slack1256: thats a missunderstanding of how HW works, also it doesn't matter
2022-05-12 18:22:21 +0200 <davean> Its irrelivent to parallelism
2022-05-12 18:22:27 +0200 <davean> and its not how cache behaves
2022-05-12 18:22:35 +0200 <sm> any github employees here who could rescue xmonad ?
2022-05-12 18:22:59 +0200 <davean> sm: rescue?
2022-05-12 18:23:02 +0200 <davean> what happened?
2022-05-12 18:23:32 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 18:23:32 +0200 <sm> we have just been chatting about it
2022-05-12 18:23:48 +0200 <sm> not showing in gihub search
2022-05-12 18:23:59 +0200alp_(~alp@user/alp)
2022-05-12 18:24:08 +0200 <Bulby[m]> it shows up for me
2022-05-12 18:24:19 +0200 <Bulby[m]> https://github.com/xmonad/xmonad
2022-05-12 18:24:26 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 18:24:27 +0200 <geekosaur> search, not directly going to it
2022-05-12 18:24:34 +0200 <geekosaur> https://github.com/search?q=xmonad%2Fxmonad&type=Repositories
2022-05-12 18:24:38 +0200 <Bulby[m]> i did search
2022-05-12 18:24:42 +0200 <geekosaur> it's even pinned in our org
2022-05-12 18:25:01 +0200 <lechner> sm: i only see -contrib in the search
2022-05-12 18:25:04 +0200 <Bulby[m]> does irc support images?
2022-05-12 18:25:05 +0200 <geekosaur> oh wait, I wonder if that search is valid
2022-05-12 18:25:13 +0200 <geekosaur> Bulby[m], no
2022-05-12 18:25:24 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2022-05-12 18:25:36 +0200 <Bulby[m]> ok, won't try then 🙂
2022-05-12 18:25:45 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56)
2022-05-12 18:26:18 +0200 <Bulby[m]> wtf ur right
2022-05-12 18:26:19 +0200 <Bulby[m]> no xmonad core
2022-05-12 18:27:01 +0200 <geekosaur> yeh, nor with https://github.com/search?o=desc&q=xmonad&s=stars&type=Repositories (omitting the org)
2022-05-12 18:27:24 +0200 <Bulby[m]> `xmonad user:xmonad` doesn't show core
2022-05-12 18:27:25 +0200 <geekosaur> somebody's indexing is busted
2022-05-12 18:27:31 +0200 <lechner> maybe 98.1% Haskell isn't pure enough?
2022-05-12 18:28:13 +0200 <EvanR> haskell 200 proof
2022-05-12 18:28:30 +0200 <geekosaur> these searches aren't even considering language
2022-05-12 18:28:48 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 18:29:16 +0200 <lechner> yeah, it does not show in regular search either, with "best match"
2022-05-12 18:29:17 +0200romesrf(~romes@185.5.8.134)
2022-05-12 18:29:18 +0200 <geekosaur> o.O but this search did just introduce me to https://github.com/wouter-swierstra/xmonad (xmonad in Coq?!)
2022-05-12 18:29:51 +0200 <sm> that's the danger of these search tools.. you find all kinds of stuff
2022-05-12 18:30:01 +0200 <lechner> or not
2022-05-12 18:30:19 +0200Guest|52(~Guest|52@c-76-23-5-70.hsd1.ut.comcast.net)
2022-05-12 18:30:32 +0200 <Bulby[m]> I really like haskell in general... it makes work fast
2022-05-12 18:31:27 +0200 <shiraeeshi> hey
2022-05-12 18:31:44 +0200 <shiraeeshi> how is it going
2022-05-12 18:31:56 +0200vysn(~vysn@user/vysn) (Ping timeout: 260 seconds)
2022-05-12 18:31:59 +0200 <shiraeeshi> I'm trying to follow "Advanced Track: Understanding Memory Usage with eventlog2html and ghc-debug @ZuriHac21"
2022-05-12 18:32:10 +0200 <shiraeeshi> https://youtu.be/6Ljv5FHGXDM
2022-05-12 18:32:19 +0200 <shiraeeshi> https://github.com/well-typed/memory-usage-zurihac-2021
2022-05-12 18:32:47 +0200catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2022-05-12 18:33:23 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 18:33:35 +0200 <shiraeeshi> the problem is that Cabal can't resolve dependencies when I run "cabal build tui simple debugger realworld-exe"
2022-05-12 18:34:17 +0200 <sm> weird.. didn't there used to be a "global" gitlab instance ? I can't find it
2022-05-12 18:35:18 +0200 <shiraeeshi> here is the error message https://paste.tomsmeding.com/cYesMoSt
2022-05-12 18:36:09 +0200cheater(~Username@user/cheater) (Ping timeout: 265 seconds)
2022-05-12 18:36:59 +0200 <shiraeeshi> it's saying that it's trying base-4.13 as a dependency of aeson-lens, I checked its .cabal file and it says "base >=4.5 && <5"
2022-05-12 18:37:04 +0200 <sm> ah, you have to sign in
2022-05-12 18:37:09 +0200 <sm> weird
2022-05-12 18:38:00 +0200 <shiraeeshi> the conflict is with the debugger's dependency which is "base>=4.14"
2022-05-12 18:38:06 +0200 <sm> shiraeeshi: often it's fixed on a certain base version because of your GHC version, and the fix is to use a GHC version / stackage resolver of the same age as the project
2022-05-12 18:38:25 +0200vicfred(~vicfred@user/vicfred)
2022-05-12 18:38:47 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-12 18:38:56 +0200 <catern> this is more of a Nix question, but how would I set up a nix-shell with all my haskell dependencies and then build a project? this inspired by me (knowing nothing about building Haskell) wanting to make a small contribution to https://github.com/agda/agda and seeing that it has https://github.com/agda/agda/blob/master/flake.nix#L17 which isn't actually properly set up
2022-05-12 18:38:59 +0200 <shiraeeshi> oh, ok, let's see
2022-05-12 18:40:09 +0200troydm1(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-05-12 18:40:39 +0200 <slack1256> catern: The new an modern way is to use "nix flakes", which ship with templates for you haskell projects.
2022-05-12 18:40:42 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 276 seconds)
2022-05-12 18:41:06 +0200 <slack1256> `nix flake new -t templates#haskell-hello .` is the starting point.
2022-05-12 18:42:54 +0200coot(~coot@213.134.190.95)
2022-05-12 18:45:35 +0200troydm1(~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 256 seconds)
2022-05-12 18:47:17 +0200epolanski(uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
2022-05-12 18:47:42 +0200Guest|52(~Guest|52@c-76-23-5-70.hsd1.ut.comcast.net) (Quit: Connection closed)
2022-05-12 18:51:06 +0200 <catern> slack1256: ah, I see! that suggests some interesting changes, but I'm not sure how that would mesh with https://github.com/agda/agda which has a Makefile which starts by installing dependencies with cabal: https://github.com/agda/agda/blob/master/Makefile#L153-L154
2022-05-12 18:56:25 +0200 <[Leary]> catern: Does `nix develop` using the flake you linked not produce an environment where you can build the package? I'm not sure why it's written like that, but if you need to modify the devShell implementation, perhaps have a look at the xmonad and xmonad-contrib devShells.
2022-05-12 18:59:33 +0200 <catern> [Leary]: the devShell definitely needs to be modified
2022-05-12 19:00:12 +0200waleee(~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
2022-05-12 19:00:22 +0200 <catern> is a simple "cabal install" the thing that I should expect to work to build the package?
2022-05-12 19:02:57 +0200Vajb(~Vajb@2001:999:400:9bc1:d5dd:7e53:33b:56) (Read error: Connection reset by peer)
2022-05-12 19:03:04 +0200 <[Leary]> catern: I think that depends on the complexity of the build. It should work with most haskell packages, but maybe not in this case. Have a look at `nix develop --help`. It shows how you can run parts of the build process that nix uses.
2022-05-12 19:04:05 +0200Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2022-05-12 19:06:50 +0200werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2022-05-12 19:09:42 +0200moonsheep(~user@user/moonsheep)
2022-05-12 19:12:28 +0200fef(~thedawn@user/thedawn)
2022-05-12 19:15:11 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 19:15:49 +0200Everything(~Everythin@37.115.210.35) ()
2022-05-12 19:17:16 +0200vpan(~0@212.117.1.172) (Quit: Leaving.)
2022-05-12 19:18:11 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
2022-05-12 19:19:32 +0200 <shiraeeshi> this is unusual
2022-05-12 19:20:30 +0200 <shiraeeshi> downloaded dependencies won't compile: https://paste.tomsmeding.com/Zl504Nqj and https://paste.tomsmeding.com/BFlPCCaF
2022-05-12 19:21:00 +0200 <sm> unusual, you say..
2022-05-12 19:21:26 +0200 <sm> this can happen when published packages have bounds that are too loose, allowing such build errors
2022-05-12 19:21:39 +0200 <sm> there might be discussion in the packages' issue trackers
2022-05-12 19:21:57 +0200 <sm> using stackage avoids this
2022-05-12 19:23:07 +0200acidjnk_new(~acidjnk@p200300d0c7068b99c0183a275a5d2a59.dip0.t-ipconnect.de)
2022-05-12 19:23:13 +0200 <shiraeeshi> version mismatch again?
2022-05-12 19:23:28 +0200 <shiraeeshi> here we go
2022-05-12 19:24:50 +0200 <shiraeeshi> the project readme says:
2022-05-12 19:24:52 +0200 <shiraeeshi> Or, alternatively, use this nix invocation to set-up the environment.
2022-05-12 19:25:01 +0200 <shiraeeshi> nix-shell
2022-05-12 19:25:43 +0200 <texasmynsted> I encounter this kind of problem often. I have a small snip of text like a markdown image tag and want to convert it to an HTML img tag. That is the only change, but needed _often_.
2022-05-12 19:25:48 +0200 <sm> there's a newer https://hackage.haskell.org/package/base16-bytestring-1.0.2.0/changelog , sometimes a cabal update helps
2022-05-12 19:26:13 +0200chele(~chele@user/chele) (Remote host closed the connection)
2022-05-12 19:26:14 +0200 <sm> pipe it through pandoc, texasmynsted
2022-05-12 19:26:18 +0200 <catern> (lol okay I'm just going to give up on building agda and just file https://github.com/agda/agda/issues/5901 )
2022-05-12 19:26:34 +0200 <texasmynsted> I kind of feel like I should be using parsec to parse the markdown to an AST, then write it back out in the new format.
2022-05-12 19:27:12 +0200moonsheep(~user@user/moonsheep) (Quit: ERC 5.4 (IRC client for GNU Emacs 28.1))
2022-05-12 19:27:28 +0200 <texasmynsted> I only want to change the "selected" markdown image tag.
2022-05-12 19:28:21 +0200 <texasmynsted> sm: hmm. Interesting. I have never thought to pipe a single tag through pandoc.
2022-05-12 19:29:03 +0200mbuf(~Shakthi@27.58.139.1) (Quit: Leaving)
2022-05-12 19:29:06 +0200 <texasmynsted> It seems like that _should_ work
2022-05-12 19:29:14 +0200 <sm> just "pandoc" works (md -> html is the default). It adds some extra tags, but options might stop those
2022-05-12 19:29:38 +0200z812(~zyg@user/z812)
2022-05-12 19:29:59 +0200 <texasmynsted> and it literally parses the text, converts it to an AST then transforms it out again. :-)
2022-05-12 19:30:06 +0200 <sm> yup
2022-05-12 19:30:29 +0200 <sm> but if you mean within a haskell program, then maybe one of the markdown libs is the way to go (not the pandoc lib, it is huge)
2022-05-12 19:30:51 +0200 <texasmynsted> Mostly when editing markdown documents.
2022-05-12 19:31:08 +0200 <texasmynsted> I can hook the solution into neovim, and other places I am sure
2022-05-12 19:31:27 +0200 <sm> I'm in emacs, so it'd be select, C-u S-M-| pandoc
2022-05-12 19:33:04 +0200z812(~zyg@user/z812) (Bye-bye!)
2022-05-12 19:34:09 +0200econo(uid147250@user/econo)
2022-05-12 19:34:32 +0200 <texasmynsted> Hmm. nice
2022-05-12 19:35:05 +0200 <texasmynsted> It _works_. Now to see how I can modify it. Maybe a filter or something?
2022-05-12 19:35:43 +0200 <texasmynsted> It adds a figure, and I might want to have the image stand alone, and have a default width.
2022-05-12 19:36:45 +0200 <texasmynsted> This is great. Thank you.
2022-05-12 19:38:54 +0200 <sm> `pandoc -rmarkdown-implicit_figures` stops it adding figure tags
2022-05-12 19:39:17 +0200 <texasmynsted> :-)
2022-05-12 19:39:35 +0200CiaoSen(~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2022-05-12 19:39:37 +0200 <texasmynsted> One key is default width
2022-05-12 19:41:21 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net)
2022-05-12 19:42:54 +0200ec(~ec@gateway/tor-sasl/ec) (Quit: ec)
2022-05-12 19:43:13 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-12 19:43:27 +0200ec(~ec@gateway/tor-sasl/ec) (Client Quit)
2022-05-12 19:43:38 +0200ec(~ec@gateway/tor-sasl/ec)
2022-05-12 19:45:00 +0200dschrempf(~dominik@mobiledyn-62-240-134-183.mrsn.at)
2022-05-12 19:45:40 +0200tusko(~yeurt@user/tusko)
2022-05-12 19:45:45 +0200 <tusko> I have question
2022-05-12 19:45:51 +0200 <tusko> not smart
2022-05-12 19:46:00 +0200 <tusko> What's the deal with let
2022-05-12 19:46:23 +0200cheater(~Username@user/cheater)
2022-05-12 19:48:44 +0200 <geekosaur[m][m]> I don't understand the question
2022-05-12 19:49:06 +0200 <tusko> I give examples
2022-05-12 19:49:21 +0200 <tusko> let (_,x) = (10, "turtlebutt") in x
2022-05-12 19:49:23 +0200 <tusko> wow
2022-05-12 19:49:32 +0200 <tusko> , what a verbose way to index into the tuple
2022-05-12 19:49:33 +0200alp_(~alp@user/alp) (Remote host closed the connection)
2022-05-12 19:49:58 +0200alp_(~alp@user/alp)
2022-05-12 19:51:08 +0200 <sm> because I can't leave well enough alone.. and wanted to get rid of the <p></p> tags (and pandoc is haskell-related)..
2022-05-12 19:51:09 +0200 <sm> echo '![license](https://img.shields.io/badge/license-GPLv3+-brightgreen.svg)' | pandoc -rgfm -tnative | cut -c7- | sed -e 's/]$//' | pandoc -rnative
2022-05-12 19:51:23 +0200 <geekosaur[m][m]> Tuples aren't very good, we recommend against using them
2022-05-12 19:51:51 +0200whatsupdoc(uid509081@id-509081.hampstead.irccloud.com)
2022-05-12 19:51:57 +0200 <tusko> Ok, I can get behind this. I do not use Tuples except when elements are immutable (usually).
2022-05-12 19:51:59 +0200 <romesrf> tusko: `snd (10, "tt")`
2022-05-12 19:52:13 +0200 <romesrf> snd :: (a,b) -> b
2022-05-12 19:52:18 +0200 <geekosaur[m][m]> Pretty much the only thing you can do is pattern match them
2022-05-12 19:52:50 +0200Nux32(~Nux@92.139.200.146.dyn.plus.net)
2022-05-12 19:53:07 +0200 <tusko> I guess the Haskell tutorial on the website, and my general experience with functional PLs, is lead me to think "wow, this is so verbose to do such simple things"
2022-05-12 19:53:13 +0200 <geekosaur[m][m]> Or use the canned ones, with 2-tuples only
2022-05-12 19:53:15 +0200 <dminuoso> [exa]: Mmm, is there a way to create a generic `transparent :: Pixel a => a`?
2022-05-12 19:53:35 +0200 <dminuoso> Or well, that wont quite work
2022-05-12 19:54:15 +0200 <dminuoso> It'd be some kind of `transparent :: HasAlpha (PixelBaseComponent a) => Pixel a => a`
2022-05-12 19:54:20 +0200mshiraeeshi(~shiraeesh@109.166.56.211)
2022-05-12 19:54:26 +0200 <telser> Usually better to have a more expressive type than a tuple.
2022-05-12 19:54:50 +0200dextaa490(~dextaa@user/dextaa) (Quit: The Lounge - https://thelounge.chat)
2022-05-12 19:54:59 +0200alp_(~alp@user/alp) (Ping timeout: 260 seconds)
2022-05-12 19:55:07 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 19:55:08 +0200 <tusko> Let me I will get you a better example
2022-05-12 19:55:24 +0200 <dminuoso> tusko: Indexing into tuples is not a common operation.
2022-05-12 19:55:59 +0200 <sm> tusko, some things are verbose, some are terse. Overall it's pretty good
2022-05-12 19:56:02 +0200 <tusko> let square x = x * x in square 3
2022-05-12 19:56:08 +0200 <tusko> pointless
2022-05-12 19:56:24 +0200zincy(~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3)
2022-05-12 19:56:34 +0200 <geekosaur[m][m]> Most simple examples are
2022-05-12 19:56:39 +0200 <tusko> let (a,b) = (10,12) in a * 2 ...but why
2022-05-12 19:56:45 +0200 <sm> sometimes people name things for clarity
2022-05-12 19:56:57 +0200 <dminuoso> tusko: Where do you have these examples from?
2022-05-12 19:56:59 +0200shiraeeshi(~shiraeesh@77.94.25.209) (Ping timeout: 256 seconds)
2022-05-12 19:57:00 +0200 <dminuoso> They are all poor examples.
2022-05-12 19:57:30 +0200 <tusko> This is what I really had in mind, but couldn't think how to reproduce it. (I'm very new to Haskell). let _:_:c:_ = "abcd" in c
2022-05-12 19:57:37 +0200 <dminuoso> My most frequent use of tuples arises from working with maps from the `containers` package.
2022-05-12 19:57:43 +0200 <geekosaur[m][m]> Because we actually use them for more complicated expressions
2022-05-12 19:57:48 +0200 <dminuoso> @let import qualified Data.Map as M
2022-05-12 19:57:49 +0200 <lambdabot> Defined.
2022-05-12 19:57:50 +0200 <dminuoso> :t M.assocs
2022-05-12 19:57:52 +0200 <lambdabot> M.Map k a -> [(k, a)]
2022-05-12 19:57:52 +0200 <dminuoso> Things like this
2022-05-12 19:58:20 +0200 <dminuoso> Though its often more elegant to use
2022-05-12 19:58:34 +0200 <dminuoso> % :t M.foldrWithKey
2022-05-12 19:58:38 +0200 <dminuoso> :t M.foldrWithKey
2022-05-12 19:58:39 +0200 <lambdabot> (k -> a -> b -> b) -> b -> M.Map k a -> b
2022-05-12 19:58:47 +0200 <geekosaur[m][m]> But that leads beginners to focus on the complicated expressions instead of the patterns
2022-05-12 19:58:48 +0200 <dminuoso> Which I guess is equivalent to assocs
2022-05-12 19:59:08 +0200slack1256(~slack1256@191.125.227.220) (Remote host closed the connection)
2022-05-12 19:59:17 +0200 <dminuoso> :t M.fromList
2022-05-12 19:59:18 +0200 <lambdabot> Ord k => [(k, a)] -> M.Map k a
2022-05-12 19:59:31 +0200slack1256(~slack1256@191.125.227.220)
2022-05-12 19:59:50 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 240 seconds)
2022-05-12 20:03:00 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2022-05-12 20:03:58 +0200smplans to take over `@where links`, since it refers to the dead http://groups.inf.ed.ac.uk/links
2022-05-12 20:05:07 +0200alp_(~alp@user/alp)
2022-05-12 20:06:23 +0200xkuru(~xkuru@user/xkuru)
2022-05-12 20:08:01 +0200jakalx(~jakalx@base.jakalx.net)
2022-05-12 20:08:49 +0200pie_(~pie_bnc@user/pie/x-2818909) ()
2022-05-12 20:08:50 +0200kenran(~kenran@200116b82b161c00019eb3ff6945071f.dip.versatel-1u1.de)
2022-05-12 20:09:13 +0200pie_(~pie_bnc@user/pie/x-2818909)
2022-05-12 20:10:30 +0200dschrempf(~dominik@mobiledyn-62-240-134-183.mrsn.at) (Ping timeout: 240 seconds)
2022-05-12 20:11:41 +0200troydm(~troydm@host-176-37-124-197.b025.la.net.ua)
2022-05-12 20:11:46 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2022-05-12 20:12:36 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2022-05-12 20:15:57 +0200zincy(~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3) (Remote host closed the connection)
2022-05-12 20:16:28 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2022-05-12 20:17:50 +0200dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds)
2022-05-12 20:21:40 +0200zincy(~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3)
2022-05-12 20:23:57 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 20:24:41 +0200 <tusko> I want to love Haskell but its hard to get a feel for the language with this weak tutorial.
2022-05-12 20:25:04 +0200azimut(~azimut@gateway/tor-sasl/azimut)
2022-05-12 20:25:16 +0200 <Bulby[m]> ah haskell, a good language with a lack of documentation
2022-05-12 20:25:20 +0200 <tusko> I know a place that had a whole product worked out in Haskell, but then the people who made it left and the new people don't know any Haskell.
2022-05-12 20:25:25 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
2022-05-12 20:25:39 +0200 <tusko> So, of course, they scrapped the Haskell and remade the entire project in Rust.
2022-05-12 20:25:45 +0200HotblackDesiato(~HotblackD@gateway/tor-sasl/hotblackdesiato)
2022-05-12 20:25:47 +0200 <Bulby[m]> HAHAH
2022-05-12 20:25:48 +0200 <tusko> Something about that just always seemed wrong to me.
2022-05-12 20:26:26 +0200 <Bulby[m]> haskell is one of my favorite langs now - it's very powerful
2022-05-12 20:26:33 +0200 <Bulby[m]> blub paradox strikes again
2022-05-12 20:27:03 +0200 <dmj`> tusko: I've heard of Haskell projects getting scrapped for rust too ... sad.
2022-05-12 20:28:12 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 20:28:44 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 20:33:04 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 246 seconds)
2022-05-12 20:34:44 +0200 <sm> I'd say "lack of documentation" is not one of the problems we have at this point
2022-05-12 20:35:45 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 276 seconds)
2022-05-12 20:36:41 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-12 20:36:53 +0200 <sm> and, sometimes rust is a better fit ?
2022-05-12 20:37:20 +0200 <sm> scrapping work wastefully for the bad reasons is sad I agree
2022-05-12 20:38:01 +0200 <lechner> "everything is a monad" is the desperate cry before they switch
2022-05-12 20:39:12 +0200zeenk(~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) (Quit: Konversation terminated!)
2022-05-12 20:42:29 +0200 <lechner> i know such a place too
2022-05-12 20:43:32 +0200 <dmj`> "everything is a monad" ... famous last words
2022-05-12 20:44:14 +0200 <lechner> it was voice processing, went to Java
2022-05-12 20:44:21 +0200 <davean> Some things are only functors, some things are groups, everything is something though.
2022-05-12 20:45:12 +0200 <lechner> it's from their prespective. only monads do something
2022-05-12 20:46:30 +0200 <Henson> why not hire more Haskell people instead of scrapping the whole project and starting over?
2022-05-12 20:47:04 +0200 <darkling> Haskell people are much harder to find, and if you've got nobody who already knows Haskell, you've got less knowledge of whether they're any good, too.
2022-05-12 20:47:30 +0200 <Henson> ahh
2022-05-12 20:47:48 +0200 <darkling> s/knowledge/certainty/
2022-05-12 20:47:52 +0200 <telser> Particularly if you restrict yourself geographically, which some companies do.
2022-05-12 20:47:56 +0200 <davean> I mean Haskell people also are generally high enough skilled to have competing decent paying jobs available.
2022-05-12 20:48:43 +0200 <davean> I litterly see places like "Oh surely we can hire a programmer for $60k", I don't know where they get *any* programmer worth hiring for that, never mind one with a given skill.
2022-05-12 20:49:31 +0200 <Henson> Are Haskell devs difficult to come by, if you don't restrict yourself geographically and pay decently?
2022-05-12 20:49:39 +0200 <davean> Not really
2022-05-12 20:50:18 +0200 <carbolymer> davean: I'm not doing recruitment, but my current and past workplace struggled hard to find a good haskell dev
2022-05-12 20:50:29 +0200 <carbolymer> idk what they did wrong, but it was hard
2022-05-12 20:50:35 +0200 <davean> carbolymer: what did they do?
2022-05-12 20:50:46 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 20:51:10 +0200 <darkling> Offerd $60k pa?
2022-05-12 20:51:56 +0200 <carbolymer> pay is not bad in both places, I was satisfied
2022-05-12 20:52:14 +0200 <maerwald> Henson: compared to?
2022-05-12 20:53:00 +0200 <davean> Yah I just mentioned the $60k because recently I saw one of those and the "straight out of college, not even graduated yet" people I know take jobs above twice that with zero experience and no particular skill past classes.
2022-05-12 20:53:10 +0200 <davean> So it was a particularly clear case of "uh, what?"
2022-05-12 20:53:13 +0200slac14257(~slack1256@191.126.227.91)
2022-05-12 20:53:18 +0200Tuplanolla(~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) (Quit: Leaving.)
2022-05-12 20:53:31 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 20:53:33 +0200 <Henson> maerwald: well, compared to "we've been searching for 6 months and don't have any competent Haskell developer applications"
2022-05-12 20:53:41 +0200 <Henson> applications -> applicants
2022-05-12 20:53:56 +0200 <maerwald> I mean, if you're trying to outsource to some 3rd world country and pay below minimum wages, I'd guess it's hard
2022-05-12 20:54:41 +0200 <davean> yah you won't find many undereducated 3rd world Haskell devs.
2022-05-12 20:55:09 +0200 <davean> But honestly if you're looking in the general vein of standard, compitent programmers, I think they're easier to hire?
2022-05-12 20:55:13 +0200 <maerwald> Although there's a fair amount of Haskellers in India and living cost there is low, but they usually know what they're worth
2022-05-12 20:55:28 +0200 <telser> davean: I'd imagine that is highly variable based on location. I'd be surprised to find entry level positions in my area for >120k
2022-05-12 20:55:54 +0200slack1256(~slack1256@191.125.227.220) (Ping timeout: 276 seconds)
2022-05-12 20:55:59 +0200 <davean> telser: I mean that was true 10 years ago, but now? No? Everyone has gone remote - you're always competing with that
2022-05-12 20:56:01 +0200 <maerwald> entry level in Europe is 50k €... I've seen Haskell positions in Sweden for 55-65k for seniors
2022-05-12 20:56:21 +0200 <davean> maerwald: Yah but pay in Europe is different because costs are different.
2022-05-12 20:56:34 +0200 <davean> (For the employees, via benefits and taxes)
2022-05-12 20:56:37 +0200 <whatsupdoc> Wow, that's broke money
2022-05-12 20:56:41 +0200 <maerwald> there was a Haskell position in japan for 9 million yen in Tokyo, which is a joke there
2022-05-12 20:56:41 +0200 <davean> so thats lower but not insanely low
2022-05-12 20:56:52 +0200 <maerwald> davean: 45% is tax here bro
2022-05-12 20:57:05 +0200 <maerwald> even worse when you're self employed
2022-05-12 20:57:13 +0200 <davean> maerwald: Yes, I'm aware - more if you're getting paid from an out-side-EU country.
2022-05-12 20:57:42 +0200 <maerwald> I've been paid by SEA countries, it doesn't get better, because they pay based on your location
2022-05-12 20:58:11 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-12 20:58:35 +0200 <maerwald> that's the new thing... salaries haven't gone global, now they pay you less, because you're living in India
2022-05-12 20:59:05 +0200 <maerwald> not that I care much anyway
2022-05-12 20:59:15 +0200 <maerwald> can't buy health with money
2022-05-12 20:59:29 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Remote host closed the connection)
2022-05-12 21:04:43 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 21:05:30 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 21:09:04 +0200fef(~thedawn@user/thedawn) (Ping timeout: 240 seconds)
2022-05-12 21:12:11 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 21:12:56 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 21:22:57 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 21:30:27 +0200MoC(~moc@user/moc)
2022-05-12 21:31:30 +0200merijn(~merijn@86-86-29-250.fixed.kpn.net)
2022-05-12 21:32:52 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2022-05-12 21:32:59 +0200pavonia(~user@user/siracusa)
2022-05-12 21:34:06 +0200 <mshiraeeshi> concerning the errors I previously posted: could the reason be that the readme of the project says that I need ghc-9.2 (and there is a link to ghc 9.2.1), but I'm building it with ghc-9.2.2
2022-05-12 21:35:47 +0200 <mshiraeeshi> they point to ghc-9.2.1-alpha2
2022-05-12 21:36:14 +0200 <tomsmeding> wasn't the Word# to Word8# shift in 9.2
2022-05-12 21:37:44 +0200 <mshiraeeshi> let's say I want to try ghc-9.2.1-alpha2, is there a way to install this version using ghcup?
2022-05-12 21:38:03 +0200 <maerwald> where is that version
2022-05-12 21:38:35 +0200 <mshiraeeshi> what do you mean?
2022-05-12 21:38:40 +0200coot(~coot@213.134.190.95)
2022-05-12 21:38:46 +0200 <mshiraeeshi> or do I have to do it outside of ghcup?
2022-05-12 21:38:55 +0200 <tomsmeding> https://downloads.haskell.org/~ghc/9.2.1-alpha2/ here, presumably
2022-05-12 21:38:58 +0200 <maerwald> ghcup install ghc -u https://downloads.haskell.org/ghc/9.2.1-alpha2/ghc-9.2.0.20210422-x86_64-fedora27-linux.tar.xz 9.2.0.20210422
2022-05-12 21:39:00 +0200 <maerwald> is a workaround
2022-05-12 21:39:02 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2022-05-12 21:39:26 +0200 <mshiraeeshi> ok, let me try
2022-05-12 21:39:41 +0200 <maerwald> pre-releases can be enabled via https://www.haskell.org/ghcup/guide/#pre-release-channels ...but 9.2.1-alpha2 has not been added
2022-05-12 21:39:59 +0200 <maerwald> is there a point? 9.2.2 is already out
2022-05-12 21:40:54 +0200 <mshiraeeshi> I think it's got to be ghc, because they have a certain disposition of dependencies in their configs, so it should've worked in their environments
2022-05-12 21:41:20 +0200 <maerwald> you can provide a PR to add 9.2.1 to https://github.com/haskell/ghcup-metadata/blob/master/ghcup-prereleases-0.0.7.yaml
2022-05-12 21:42:16 +0200alp_(~alp@user/alp) (Remote host closed the connection)
2022-05-12 21:42:42 +0200alp_(~alp@user/alp)
2022-05-12 21:42:43 +0200 <sm> mshiraeeshi: I'd expect 9.2.2 to be good for this, and I would have to be very highly motivated (paid) to go back to an alpha
2022-05-12 21:42:48 +0200Pickchea(~private@user/pickchea)
2022-05-12 21:42:55 +0200 <sm> you should probably check the issue tracker / contact the maintainer at this point
2022-05-12 21:43:12 +0200 <sm> so they can make this more buildable
2022-05-12 21:43:50 +0200 <mshiraeeshi> sm: but it obviously worked for those people who created the project?
2022-05-12 21:44:10 +0200 <mshiraeeshi> I mean, the https://github.com/well-typed/memory-usage-zurihac-2021 project
2022-05-12 21:44:23 +0200 <sm> I suppose ?
2022-05-12 21:44:45 +0200 <sm> are you using nix ?
2022-05-12 21:44:48 +0200 <mshiraeeshi> how can the same version of the package work and then fail to compile 7 months later?
2022-05-12 21:44:59 +0200 <mshiraeeshi> no, no nix
2022-05-12 21:45:10 +0200 <sm> very, very easily. It's the norm, not the exception
2022-05-12 21:45:36 +0200 <mshiraeeshi> I also wanted to ask about nix. the readme says: "Or, alternatively, use this nix invocation to set-up the environment."
2022-05-12 21:45:40 +0200 <tomsmeding> mshiraeeshi: that can happen if the package has loose (or nonexistent) upper bounds, and packages have been updated on hackage in the mean time
2022-05-12 21:45:46 +0200 <sm> nix, stack, cabal.project are all attempts to make it more repeatable
2022-05-12 21:45:48 +0200 <tdammers> the reason this can happen is because of how version bounds work, and how people use them
2022-05-12 21:45:49 +0200 <mshiraeeshi> using "nix-shell" command
2022-05-12 21:46:23 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 21:46:36 +0200 <tomsmeding> the difference is almost certainly not between 9.2.1-alpha2 and 9.2.2; ghc doesn't really do breaking changes (at least not like "core type is named differently") on such a minor version number change
2022-05-12 21:46:58 +0200 <tomsmeding> you're using a different version of some dependency to get those option and Word8# errors
2022-05-12 21:47:25 +0200 <mshiraeeshi> can I workaround this by using nix?
2022-05-12 21:47:34 +0200 <tomsmeding> probably
2022-05-12 21:47:49 +0200 <sm> mshiraeeshi: if you don't want to contact the maintainers, alternately you can dig in to the error messages and uplevel your haskell build ninja skills. If you want to do that (in a serious manner, not quick fixes) we can help
2022-05-12 21:47:53 +0200 <mshiraeeshi> and let me ask a stupid question just to make sure: it doesn't mean switching to nixos right?
2022-05-12 21:48:20 +0200 <sclv> you can use nix-as-an-environment-manager with linux or os x
2022-05-12 21:48:32 +0200 <tomsmeding> mshiraeeshi: are you building using cabal or using stack?
2022-05-12 21:48:38 +0200 <mshiraeeshi> cabal
2022-05-12 21:48:48 +0200 <tomsmeding> the cabal.project lists exact versions for loads of dependencies
2022-05-12 21:49:07 +0200 <tomsmeding> so kind of interesting that it still fails for you
2022-05-12 21:49:31 +0200 <tomsmeding> oh heh but it also has allow-newer on a bunch of packages, never mind
2022-05-12 21:49:47 +0200 <sm> (eg)
2022-05-12 21:49:48 +0200 <sm> the prepare script, I believe, which presumably uses cabal.project , but notice that file doesn't specify ghc version
2022-05-12 21:51:14 +0200 <sm> summary: it's not your fault, this project is not configured for reproducible building, so someone has to do that work
2022-05-12 21:51:27 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-12 21:51:35 +0200mc47(~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds)
2022-05-12 21:51:56 +0200 <sm> (well, unless the nix-shell route works, then maybe they get half marks)
2022-05-12 21:51:57 +0200 <sclv> personally i would start by bumping the base16-bytestring in that cabal.project to 1.0.2.0
2022-05-12 21:52:00 +0200 <sclv> and seeing if that helped
2022-05-12 21:52:05 +0200 <sm> agreed!
2022-05-12 21:53:01 +0200 <mshiraeeshi> I tried bumping the base16-bytestring to 1.0.2.0, but then the same happened to other packages
2022-05-12 21:53:24 +0200 <sclv> well which other packages -- some others might need bumps too!
2022-05-12 21:54:38 +0200 <mshiraeeshi> basement, blaze-builder, base-compat
2022-05-12 21:55:47 +0200 <mshiraeeshi> perhaps I should rewrite "allow-newer" and fix their version by introducing some upper bounds
2022-05-12 21:56:20 +0200 <sclv> well did you try bumping the versions on some of those as well?
2022-05-12 21:56:44 +0200mc47(~mc47@xmonad/TheMC47)
2022-05-12 21:57:08 +0200 <mshiraeeshi> no, you mean just incrementing their version numbers?
2022-05-12 21:57:35 +0200 <sclv> or removing the constraint entirely from the cabal.project file -- just commenting out the line
2022-05-12 21:57:44 +0200 <sclv> the lines in the cabal.project just insert constraints
2022-05-12 21:58:03 +0200 <sclv> (except for the allow-newer section, which is about lifting inherited constraints)
2022-05-12 21:58:41 +0200 <sclv> this whole thing was always super fragile
2022-05-12 21:59:01 +0200 <sm> aside: does cabal's allow-newer also allow older, as in stack ?
2022-05-12 21:59:02 +0200 <sclv> if you look at the cabal.project file it wasn't even working against normal hackage, but its set to use the overrides from head.hackage
2022-05-12 21:59:11 +0200 <sclv> sm: not afaik
2022-05-12 21:59:42 +0200 <sclv> like it was a demo written with a specific pre-release ghc with the pre-release set of ghc base libs and a ton of other libs with custom head.hackage patches
2022-05-12 22:00:06 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 22:00:35 +0200 <texasmynsted> sm: thank you :-)
2022-05-12 22:00:38 +0200 <sclv> like i would almost try to comment out the entire allow-newer, repoistory, and constraints sections
2022-05-12 22:00:39 +0200slac14257slack1256
2022-05-12 22:00:58 +0200 <sclv> and try to see what if anything i needed to put back, on an extremely case by case basis
2022-05-12 22:01:33 +0200 <sm> texasmynsted: np :)
2022-05-12 22:02:28 +0200_ht(~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
2022-05-12 22:04:02 +0200 <dminuoso> [exa]: By the way, thanks! I had a strange bug with a couple images that simply, for no apparent reason, would bug out a bunch of keys on the deck.
2022-05-12 22:04:14 +0200 <dminuoso> If I tend to the pictures with JuicyPixel they appear fine.
2022-05-12 22:04:23 +0200 <dminuoso> No clue what imagemagick does there
2022-05-12 22:07:59 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 22:08:36 +0200coot(~coot@213.134.190.95) (Quit: coot)
2022-05-12 22:19:34 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2022-05-12 22:24:55 +0200slac67882(~slack1256@186.11.63.14)
2022-05-12 22:27:09 +0200slack1256(~slack1256@191.126.227.91) (Ping timeout: 256 seconds)
2022-05-12 22:29:51 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 22:37:32 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl)
2022-05-12 22:38:20 +0200zincy(~zincy@2a00:23c8:970c:4801:18b4:9d3:33e8:26e3) (Remote host closed the connection)
2022-05-12 22:45:27 +0200Nux32(~Nux@92.139.200.146.dyn.plus.net) (Quit: Client closed)
2022-05-12 22:48:27 +0200mikoto-chan(~mikoto-ch@213.177.151.239) (Ping timeout: 265 seconds)
2022-05-12 22:52:11 +0200son0p(~ff@181.136.122.143)
2022-05-12 22:53:18 +0200phma(~phma@host-67-44-208-35.hnremote.net) (Read error: Connection reset by peer)
2022-05-12 22:53:35 +0200 <tomsmeding> dminuoso: like, IM output was somehow borked / not acceptable to streamdeck?
2022-05-12 22:54:14 +0200 <dminuoso> Yeah
2022-05-12 22:54:27 +0200phma(phma@2001:5b0:210d:5458:5d56:889b:9db6:9f82)
2022-05-12 22:54:35 +0200 <dminuoso> But its essentially impossible to tell why
2022-05-12 22:54:53 +0200 <dminuoso> Short of having the source code of the streamdeck or perhaps some magical debugging tools from their engineering team
2022-05-12 22:55:00 +0200 <tomsmeding> no discernable difference like "full colour instead of palette-able", or "has transparency"
2022-05-12 22:55:51 +0200 <dminuoso> Well, I had this particular image that after IM had done its thing, the image would be resized to about 30%, duplicated twice next to each other on the lower half of the key, with the upper key being filled with the image of the previously set key.
2022-05-12 22:56:10 +0200 <dminuoso> *shrugs*
2022-05-12 22:56:37 +0200 <tomsmeding> O.o
2022-05-12 22:57:12 +0200 <dminuoso> And it was not a transport encoding bug, that is definitely done correctly
2022-05-12 22:57:12 +0200 <EvanR> seems like a pretty standard effect
2022-05-12 22:57:15 +0200 <dminuoso> heh
2022-05-12 22:57:21 +0200 <tomsmeding> if that only happens on the streamdeck, not if you open the image normally on a computer, then yeah streamdeck needs a drink
2022-05-12 22:57:46 +0200 <dminuoso> well its really hard to say whats going on with proprietary hardware you have no documentation for.
2022-05-12 22:58:35 +0200 <dminuoso> Next up, I need to round those corners. Mission critical you know.
2022-05-12 22:59:23 +0200 <tomsmeding> yes that is important
2022-05-12 22:59:58 +0200tromp(~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2022-05-12 23:00:26 +0200 <Bulby[m]> https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Applicative-Combinators.… why are applicatives more prone to memory leaks
2022-05-12 23:02:19 +0200abrar_(~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Quit: WeeChat 3.3)
2022-05-12 23:03:01 +0200abrar(~abrar@static-108-2-152-54.phlapa.fios.verizon.net)
2022-05-12 23:03:49 +0200 <dminuoso> But jokes aside, I dont care for figuring out the silly math of rounding these corners right now,.
2022-05-12 23:04:14 +0200 <dminuoso> Given that this goes onto a pi via nixos, I might as well just preprocess them with imagemagick in nixos to round those corners.
2022-05-12 23:05:57 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2022-05-12 23:06:13 +0200 <zzz> hi. i've decided to learn about type families, what they are and why they are useful. can someone give me a quick brief and point me to beginner-level resources?
2022-05-12 23:06:56 +0200 <dminuoso> They are useful for similar reasons that functions are useful. It's nice to map things to things.
2022-05-12 23:07:17 +0200 <tomsmeding> dminuoso: rounding corners with or without anti-aliasing? If with anti-aliasing, what is the RGB subpixel layout of your screen :>
2022-05-12 23:07:44 +0200 <dminuoso> tomsmeding: Good question! Given that I want to do text rendering ontop, sub pixel hinting is going to be an important thing.
2022-05-12 23:07:53 +0200 <dminuoso> Guess I better buy a microscope
2022-05-12 23:07:57 +0200 <tomsmeding> :D
2022-05-12 23:08:18 +0200 <dminuoso> But seriously, is there some thing to render fonts onto juicypixel images?>
2022-05-12 23:08:41 +0200 <tomsmeding> that would need bindings to some kind of serious text rendering library
2022-05-12 23:08:48 +0200 <tomsmeding> text rendering is Hard
2022-05-12 23:08:56 +0200 <dminuoso> It cant be harder than caching.
2022-05-12 23:09:36 +0200slack1256(~slack1256@191.126.227.67)
2022-05-12 23:09:38 +0200 <tomsmeding> X doubt https://arstechnica.com/gadgets/2013/08/rendering-bug-crashes-os-x-and-ios-apps-with-string-of-ara…
2022-05-12 23:09:40 +0200 <dminuoso> But perhaps once again, I might as well go the easy route and generate them via imagemagick.
2022-05-12 23:09:52 +0200 <dminuoso> tomsmeding: to be fair, I dont want font rendering in a damn browser.
2022-05-12 23:09:53 +0200alp_(~alp@user/alp) (Ping timeout: 252 seconds)
2022-05-12 23:10:08 +0200 <EvanR> your best bet is to get a screen with display tech matching your desired shape exactly
2022-05-12 23:10:15 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 23:10:23 +0200 <tomsmeding> dminuoso: which browser are you referring to? The thing I linked was a bug in CoreText, a system library
2022-05-12 23:11:14 +0200 <dminuoso> tomsmeding: I think rendering is not hard if you dont need to support all writing systems and their bizarrities, and if layouting is not an issue either.
2022-05-12 23:11:34 +0200 <EvanR> if you only need 1 resolution on 1 DPI with 1 typeface yeah
2022-05-12 23:11:35 +0200 <dminuoso> If you constrain yourself to something like German or English, I think I can be optimistic that text rendering is mostly harmless
2022-05-12 23:11:40 +0200 <tomsmeding> dminuoso: then it's certainly easier, but still, hinting?
2022-05-12 23:11:48 +0200 <tomsmeding> harmless sure
2022-05-12 23:11:56 +0200slac67882(~slack1256@186.11.63.14) (Ping timeout: 260 seconds)
2022-05-12 23:12:23 +0200 <EvanR> hinting itself considered harmful, as a term
2022-05-12 23:12:33 +0200 <EvanR> no one agrees on what it does or is
2022-05-12 23:12:35 +0200 <tomsmeding> also anti-aliasing (which for non-ugly font rendering should really be including adapting to subpixel layout)
2022-05-12 23:12:49 +0200 <tomsmeding> EvanR: but for small text it suddenly becomes essential
2022-05-12 23:12:52 +0200 <tomsmeding> somehow
2022-05-12 23:12:58 +0200 <EvanR> whatever it is, it's necessary
2022-05-12 23:13:05 +0200 <EvanR> engineering 101
2022-05-12 23:13:48 +0200 <EvanR> basically it's come to mean, make text look subjectively better, without regard to context, viewer, or constraints
2022-05-12 23:14:16 +0200 <dminuoso> I guess it becomes a question of convenience
2022-05-12 23:14:17 +0200 <EvanR> which turns out to not make sense
2022-05-12 23:14:27 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2022-05-12 23:14:31 +0200 <dminuoso> At the end I dont really need font rendering, as I could do this in another tool.
2022-05-12 23:16:34 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
2022-05-12 23:20:03 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Remote host closed the connection)
2022-05-12 23:21:16 +0200acidjnk_new(~acidjnk@p200300d0c7068b99c0183a275a5d2a59.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
2022-05-12 23:21:25 +0200 <mshiraeeshi> update on me trying to build https://github.com/well-typed/memory-usage-zurihac-2021
2022-05-12 23:21:43 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 23:22:07 +0200 <mshiraeeshi> I've commented out a lot of constraints in cabal.project file based on trial and error
2022-05-12 23:22:32 +0200 <mshiraeeshi> and now I'm stuck on aeson and semigroups
2022-05-12 23:23:09 +0200 <mshiraeeshi> semigroups removed Data.Semigroup.Option after version 18
2022-05-12 23:23:43 +0200 <tomsmeding> mshiraeeshi: Option is in base-compat-batteries:Data.Semigroup.Compat, which is included in the dep list
2022-05-12 23:23:50 +0200 <tomsmeding> also s/Option/Maybe/g
2022-05-12 23:24:07 +0200 <mshiraeeshi> that's why it can't build aeson-1.5.6.0 with semigroups-18.0.1 and newer: https://paste.tomsmeding.com/5CmKtj66
2022-05-12 23:24:42 +0200littlebobeep(~alMalsamo@gateway/tor-sasl/almalsamo)
2022-05-12 23:24:53 +0200 <mshiraeeshi> but if I build it with semigroups-0.18, I get this error: https://paste.tomsmeding.com/BV60myvJ
2022-05-12 23:25:21 +0200 <mshiraeeshi> (a lot of Ambifuous occurence of 'Semigroup' in src/Data/Semigroup.hs)
2022-05-12 23:26:23 +0200 <tomsmeding> mshiraeeshi: clone the aeson git repo in a subdirectory, check out the 1.5.6.0 version, add that subdirectory to your cabal.project 'packages' line, build the main project, and then manually remove all the Option instances from aeson
2022-05-12 23:26:28 +0200 <mshiraeeshi> tomsmeding: should I try to constrain aeson to a newer version?
2022-05-12 23:26:39 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2022-05-12 23:26:44 +0200 <tomsmeding> mshiraeeshi: aeson 2.0 has a bunch of breaking changes, you can try but is unlikely to work
2022-05-12 23:27:22 +0200 <mshiraeeshi> hmm, okay, let's try
2022-05-12 23:32:14 +0200slack1256(~slack1256@191.126.227.67) (Ping timeout: 252 seconds)
2022-05-12 23:33:42 +0200 <sclv> Bulby[m]: i would say applicative is not less efficient _in general_ but rather for specific parser combinators, writing them with only applicative tools rather than monadic ones means that you cannot express certain things as efficiently.
2022-05-12 23:34:44 +0200 <Bulby[m]> interesting
2022-05-12 23:35:11 +0200 <Bulby[m]> is there a polysemy megaparsec lib
2022-05-12 23:36:39 +0200 <sclv> for example look at manyTill in the monad version
2022-05-12 23:36:41 +0200 <sclv> https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/src/Control.Monad.Combinators.ht…
2022-05-12 23:36:53 +0200 <tomsmeding> sclv: it also says "prone to memory leaks and not as efficient as their monadic counterparts" -- if that refers to expressivity, that's _really_ badly written
2022-05-12 23:36:58 +0200 <sclv> compare that to the applicative version
2022-05-12 23:36:58 +0200 <sclv> https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/src/Control.Applicative.Combinat…
2022-05-12 23:37:07 +0200 <sclv> tomsmeding: its badly written
2022-05-12 23:37:29 +0200 <sclv> the latter is cleaner but one can unwind it and see why it might be less efficient
2022-05-12 23:42:37 +0200 <sclv> tomsmeding: or rather the point is applicative is definitionally less expressive than monadic. and _hence_ some functions written only with the toolset available to applicative are less efficient than if they were written with the full monadic toolset.
2022-05-12 23:42:50 +0200kenran(~kenran@200116b82b161c00019eb3ff6945071f.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2022-05-12 23:43:00 +0200 <sclv> so expressivity is not the point but rather the thing that explains the performance issues being referred to
2022-05-12 23:43:35 +0200 <tomsmeding> right, that makes sense
2022-05-12 23:43:58 +0200odnes(~odnes@5-203-160-39.pat.nym.cosmote.net)
2022-05-12 23:44:11 +0200 <zzz> i'm not sure i'm understanding the concept of type families
2022-05-12 23:46:41 +0200 <mshiraeeshi> zzz: take a look at "An introduction to typeclass metaprogramming" https://lexi-lambda.github.io/blog/2021/03/25/an-introduction-to-typeclass-metaprogramming/
2022-05-12 23:47:11 +0200 <mshiraeeshi> there's a section called "Type families are functions from types to types"
2022-05-12 23:47:12 +0200 <Bulby[m]> I love type families they let me make monsters like higher kinded data
2022-05-12 23:47:47 +0200 <zzz> mshiraeeshi: thaks
2022-05-12 23:48:49 +0200 <mshiraeeshi> zzz: also "An Introduction to Type Level Programming" https://rebeccaskinner.net/posts/2021-08-25-introduction-to-type-level-programming.html
2022-05-12 23:52:08 +0200 <mshiraeeshi> zzz: also "Functional Dependencies" https://www.fpcomplete.com/haskell/tutorial/fundeps/ (there's a short section called "Type families")
2022-05-12 23:52:12 +0200 <EvanR> using type (synonym) families you can make MyFam Bool evaluate to Int during type checking
2022-05-12 23:52:34 +0200 <EvanR> or vice versa
2022-05-12 23:52:43 +0200xaotuk(~sasha@net137-36-245-109.mbb.telenor.rs)
2022-05-12 23:53:15 +0200yauhsien(~yauhsien@61-231-24-3.dynamic-ip.hinet.net)
2022-05-12 23:53:50 +0200jgeerds(~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds)
2022-05-12 23:53:59 +0200Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Ping timeout: 246 seconds)
2022-05-12 23:54:02 +0200 <mshiraeeshi> the most easy to understand is the use case described in "Functional Dependencies"
2022-05-12 23:54:37 +0200 <mshiraeeshi> the case when you have a Reader and the associated type Env which means the Environment which the reader reads
2022-05-12 23:55:01 +0200 <mshiraeeshi> in case of PersonReader the environment is Person
2022-05-12 23:55:15 +0200 <mshiraeeshi> in case of Reader env, the environment is env
2022-05-12 23:55:54 +0200 <zzz> i'm starting with that. thanks
2022-05-12 23:56:38 +0200alx741(~alx741@host-181-198-243-150.netlife.ec)
2022-05-12 23:58:26 +0200harveypwca(~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)