Home liberachat/#haskell: Logs Calendar

Logs on 2023-05-19 (liberachat/#haskell)

00:00:58 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
00:02:13 × abrar quits (~abrar@pool-72-78-199-186.phlapa.fios.verizon.net) (Quit: WeeChat 3.7.1)
00:02:23 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
00:03:04 abrar joins (~abrar@pool-72-78-199-186.phlapa.fios.verizon.net)
00:04:13 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds)
00:07:05 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
00:09:36 <xameer> Hi , could anyone here share a good reference to yahb2 ?
00:09:54 <xameer> It's commands
00:11:34 <ski> GHCi
00:12:08 <ski> (prefix `% ' in front of the GHCi commands)
00:12:40 <probie> % :?
00:12:40 <yahb2> Commands available from the prompt: ; ; <statement> evaluate/run <statement> ; : repeat last command ; :{\n ..lines.. \n:}\n multiline comm...
00:13:09 <int-e> https://downloads.haskell.org/~ghc/9.2.5/docs/html/users_guide/ghci.html
00:13:35 <int-e> % GHC.Version.cProjectVersion
00:13:35 <yahb2> "9.2.5"
00:18:06 freeside_ joins (~mengwong@103.252.202.151)
00:19:12 <probie> Is there a canonical name for something like `class F t where fun :: (forall a b . f a b -> g a b) -> t f -> t g`. Functor2 I suppose?
00:22:25 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
00:28:38 jmdaemon joins (~jmdaemon@user/jmdaemon)
00:29:43 × shapr quits (~user@76.29.230.19) (Ping timeout: 256 seconds)
00:35:18 rf joins (~rf@2605:59c8:179c:f610:aa75:7d92:845a:e973)
00:39:35 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 240 seconds)
00:39:49 xameer` joins (~user@144.48.224.179)
00:42:40 <xameer`> bwrap-files/make-chroot.sh
00:42:47 <xameer`> 2+2
00:44:12 × xameer` quits (~user@144.48.224.179) (Remote host closed the connection)
00:46:08 × vandita quits (~vandit@92-249-150-219.static.digikabel.hu) (Ping timeout: 240 seconds)
00:48:18 vandita joins (~vandit@92-249-150-197.static.digikabel.hu)
00:53:07 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:54:12 califax joins (~califax@user/califx)
01:10:58 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:16:58 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
01:17:07 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:21:51 × esph quits (~weechat@104.207.141.174) (Ping timeout: 256 seconds)
01:30:20 juano joins (~juano@189.172.239.161)
01:34:05 <juano> Reese from Malcolm in the Middle gets seduced by Mrs. Edna Skilton from Regina, Saskatchewan! He fills her love canal full of his turds and then screws the shit out of her! Dewey listens through the walls and asks Malcolm, who is shellshocked, if he can heat up some hot pockets for that crazy lady! Season 8 Episode 1 https://justpaste.it/Reese_Fucks_Edna_Skilton_Malcolm
01:36:13 × juano quits (~juano@189.172.239.161) (K-Lined)
01:36:53 × evincar quits (~evincar@user/evincar) (Ping timeout: 250 seconds)
01:44:01 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
01:47:30 <DigitalKiwi> https://i.imgur.com/pO6eZ8b.png
01:48:08 <DigitalKiwi> haskell on dos > haskell on windows
01:50:48 freeside_ joins (~mengwong@103.252.202.151)
01:55:01 <pavonia> Oh, good old memories
01:55:05 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
01:55:35 cheater_ joins (~Username@user/cheater)
01:57:57 evincar joins (~evincar@user/evincar)
01:57:59 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
01:58:01 cheater_ is now known as cheater
02:03:14 bilegeek joins (~bilegeek@2600:1008:b067:ea26:84a2:b278:96d5:fcf7)
02:08:54 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
02:09:36 × td_ quits (~td@i5387093A.versanet.de) (Read error: Connection reset by peer)
02:09:48 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:10:44 × xff0x quits (~xff0x@2405:6580:b080:900:7953:b19f:2f45:6449) (Ping timeout: 246 seconds)
02:11:01 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 240 seconds)
02:13:04 td_ joins (~td@i53870931.versanet.de)
02:13:31 × xameer quits (~xameer@144.48.224.179) (Ping timeout: 240 seconds)
02:27:21 img joins (~img@user/img)
02:31:23 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:4c1f:3b38:25a9:d6c3)
02:32:54 cheater_ joins (~Username@user/cheater)
02:35:08 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
02:35:16 cheater__ joins (~Username@user/cheater)
02:35:25 img joins (~img@user/img)
02:35:59 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
02:36:02 cheater__ is now known as cheater
02:36:03 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
02:37:11 × cheater_ quits (~Username@user/cheater) (Ping timeout: 240 seconds)
02:38:47 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 240 seconds)
02:41:34 _leo___ joins (~emmanuelu@user/emmanuelux)
02:41:49 <albet70> filter g $ filter f alist ==?
02:42:07 × terrorjack quits (~terrorjac@2a01:4f8:c17:87f8::) (Quit: The Lounge - https://thelounge.chat)
02:43:04 cheater_ joins (~Username@user/cheater)
02:43:32 terrorjack joins (~terrorjac@2a01:4f8:c17:87f8::)
02:44:47 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Ping timeout: 265 seconds)
02:45:11 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
02:45:16 cheater__ joins (~Username@user/cheater)
02:45:16 cheater__ is now known as cheater
02:46:33 nate2 joins (~nate@98.45.169.16)
02:47:59 × cheater_ quits (~Username@user/cheater) (Ping timeout: 240 seconds)
02:51:29 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
02:53:49 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:53:49 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:53:49 finn_elija is now known as FinnElija
02:55:58 <ski> albet70 : `filter (\x -> f x && g x) alist'
02:56:41 × comarrrrrrrrrrrr quits (~comarrrrr@73.237.206.60) (Remote host closed the connection)
02:57:07 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:58:06 × _leo___ quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
02:59:26 xameer joins (~xameer@144.48.224.179)
03:08:09 freeside_ joins (~mengwong@103.252.202.151)
03:12:40 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 250 seconds)
03:19:35 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:d08e:309f:8c89:9b36) (Ping timeout: 265 seconds)
03:25:57 × rf quits (~rf@2605:59c8:179c:f610:aa75:7d92:845a:e973) (Remote host closed the connection)
03:34:16 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
03:34:30 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
03:41:15 <Inst__> any idea how to speed this up any further?
03:41:16 <Inst__> https://paste.tomsmeding.com/UvhAZk9q
03:41:20 <Inst__> i mean, without resorting to matrices
03:41:25 <Inst__> here, we're about, ummm
03:41:40 <Inst__> 30-40% slower than Julia
03:42:31 <Inst__> you actually get the opposite result when working with the Integer type, but w/e, can't be helped
03:48:47 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
03:51:04 <probie> How are you timing it?
03:51:39 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
03:52:06 <probie> and can you output the assembly that Julia is generating?
03:52:26 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
03:54:11 <Inst__> tasty-bench
03:55:51 <Inst__> julian;
03:55:53 <Inst__> https://godbolt.org/z/E1e8co76T
03:57:19 freeside_ joins (~mengwong@122.11.212.99)
03:57:19 <Inst__> ours
03:57:22 <Inst__> https://godbolt.org/z/djxo7bfGq
03:59:20 <Inst__> https://godbolt.org/z/Pfa9jaeTG
03:59:23 <Inst__> slightly revised, ours
04:01:40 <Inst__> ehhh, is there some way to pull ahead? I guess I briefly got deluded by the fact that if you rig it to work on integer return type, the Haskell is more efficient, probably because our bigNum type is better
04:06:07 vglfr joins (~vglfr@209.198.137.192)
04:07:08 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds)
04:07:23 <DigitalKiwi> Inst__: buy a faster computer
04:07:38 <Inst__> doesn't change the relative performance of julia vs haskell
04:07:47 <Inst__> anyways, the C assembly is so beautiful
04:07:48 <Inst__> https://godbolt.org/z/ozzzb1Wz6
04:08:01 <DigitalKiwi> oh i hadn't reaed that far lol
04:08:05 oo_miguel joins (~Thunderbi@77.252.47.84)
04:08:09 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:08:34 <probie> I don't think you can easily make GHC faster here. GHC isn't producing particularly slow code, but it's saving `rightAcc` via the stack, whilst Julia has just put aside an extra register for that.
04:08:55 <DigitalKiwi> buy a slower computer and use julia don't waste time making the haskell faster and go spend time with your friends
04:09:54 <DigitalKiwi> ...buy a reallllly expensive computer and use haskell anyway even though julia is faster lol
04:10:39 <probie> You might be able to beat Julia by manually unrolling the loop, but that's probably cheating (since I'm pretty sure the only reason Julia hasn't unrolled the loop is because it's not sure how big/small `n` is going to be) :p
04:12:29 <Inst__> the more stunning observation from benchmarking this
04:12:32 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 246 seconds)
04:12:37 <Inst__> is how much faster the accparam version is if you strict it
04:12:40 <Inst__> otherwise the thunks pile up
04:12:49 <Inst__> the benchmark is 35 ns per run under strict
04:13:00 <Inst__> 35 ms per run without the bangs?
04:13:52 <Inst__> well, actually closer to 778 us
04:14:05 × xameer quits (~xameer@144.48.224.179) (Ping timeout: 240 seconds)
04:14:21 × freeside_ quits (~mengwong@122.11.212.99) (Read error: Connection reset by peer)
04:14:40 <Inst__> 462 ns vs 35 ns with and without stricting
04:14:55 <Inst__> iirc the bangs add an overhead, right?
04:16:46 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:9c37:7744:24df:2b60)
04:18:11 <probie> Inst__: sort of? The bangs in your `go` for `fibTab` are effectively "free" here. You pay the cost once for `n` when you call `fibTab` (and you'd have had to pay it anyway to pattern match against it).
04:18:46 <Inst__> i guess, but `seq` gets expensive quickly, no?
04:18:56 <Inst__> the let foo = ... in seq foo foo
04:21:39 <probie> `seq` (and bang patterns) aren't free, but if something is already known to be in whnf, the compiler can erase the call to `seq`
04:26:07 <davean> They're not free but they're a prepayment that can come at a discount.
04:27:43 <Inst__> this is just interesting to know because i use accumulating parameter idiom a lot
04:28:09 <Inst__> i was just really shocked that we managed to somehow mildly outperform julia on bigint
04:28:16 <Inst__> or rather Integer vs Big
04:29:00 <davean> oh have you used the LLVM backend yet?
04:29:08 <davean> that can help this specific sort of code.
04:30:08 <davean> Its been a while since I optimized Haskell on this level sadly.
04:30:09 <probie> Inst__: By default, GHC uses gmp for `Integer`, which is known to be pretty fast. I'm not sure if Julia uses gmp or rolls their own, but it's unlikely to be faster
04:30:10 <davean> I'm rusty
04:30:29 <Inst__> i'm on windows :(
04:31:05 <Inst__> and not going to go al lthe way to LLVM / do my dual boot, once I saw the gcc C version, I sort of lost interest
04:31:59 <davean> -fregs-graph ?
04:32:10 <davean> -fregs-graph ?
04:32:37 <Inst__> -fregs-graph?
04:33:10 <davean> I'm too rusty to be sure what ticklets what ATM but thats an option that changes the register allocation pass.
04:33:38 <davean> I forget whats default, what catches what, etc. I've been doing much higher level optimizations.
04:34:27 <davean> It wasn't in -O2 for a while at least
04:34:51 <Inst__> added freqs-graph
04:35:03 × captnemo quits (~captnemo@193.32.127.232) (Quit: WeeChat 3.8)
04:35:54 <Inst__> stabilized around 33 seconds, vs previous 35 seconds, but could have been affected by what else was running on the machine
04:36:11 <davean> yah ok, that didn't do the thing I hoped it might
04:37:23 × evincar quits (~evincar@user/evincar) (Ping timeout: 264 seconds)
04:38:38 evincar joins (~evincar@user/evincar)
04:40:32 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:9c37:7744:24df:2b60) (Ping timeout: 248 seconds)
04:43:57 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
04:45:23 freeside_ joins (~mengwong@122.11.135.1)
04:45:37 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:9c37:7744:24df:2b60)
04:48:09 <probie> davean: `-fregs-graph` did the right thing (at least on godbolt). It no longer uses the stack when it doesn't need to
04:52:58 <probie> unfortunately GHC still generates an additional `testq` op, which Julia doesn't, and I don't think there's a way to get rid of that (although I think the llvm backend might?)
04:54:49 <probie> (it's extra, because you've actually set the flags you want to test against as part of the `n - 1`, but even with the args reordered to make sure that op is at the end, it generates `decq %r14 testq %r14,%r14`
04:57:38 <davean> probie: oh! Ok, so I'm rusty but not THAT rusty
04:58:07 <davean> I expect llvm would elide that
05:06:01 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds)
05:06:26 kimjetwav joins (~user@2607:fea8:235e:b600:7132:be12:79fb:18e8)
05:11:59 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
05:13:10 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
05:27:47 × freeside_ quits (~mengwong@122.11.135.1) (Ping timeout: 264 seconds)
05:38:58 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
05:40:57 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:45:43 nate2 joins (~nate@98.45.169.16)
05:47:26 xameer joins (~xameer@144.48.224.179)
05:50:01 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
05:53:07 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:55:49 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Read error: Connection reset by peer)
05:57:34 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:00:26 freeside_ joins (~mengwong@103.252.202.151)
06:04:47 × shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds)
06:05:36 michalz joins (~michalz@185.246.204.73)
06:06:16 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 268 seconds)
06:08:02 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
06:10:09 × bilegeek quits (~bilegeek@2600:1008:b067:ea26:84a2:b278:96d5:fcf7) (Quit: Leaving)
06:12:47 mncheck joins (~mncheck@193.224.205.254)
06:12:54 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
06:14:35 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 264 seconds)
06:15:59 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
06:18:02 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:25:45 × viwor quits (~Thunderbi@IGLD-83-130-212-68.inter.net.il) (Quit: viwor)
06:26:39 × iteratee quits (~kyle@162.218.222.207) (Read error: Connection reset by peer)
06:26:50 iteratee joins (~kyle@162.218.222.207)
06:29:28 × vandita quits (~vandit@92-249-150-197.static.digikabel.hu) (Ping timeout: 240 seconds)
06:30:39 lottaquestions joins (~nick@2607:fa49:503f:6d00:5204:d8f3:4fdf:6a82)
06:31:20 vandita joins (~vandit@91-83-3-38.pool.digikabel.hu)
06:31:41 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
06:32:23 × lottaquestions_ quits (~nick@2607:fa49:503f:6d00:e12c:3339:1e68:4fd9) (Ping timeout: 256 seconds)
06:34:51 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
06:35:10 hrberg joins (~quassel@171.79-160-161.customer.lyse.net)
06:35:30 acidjnk joins (~acidjnk@p200300d6e7072f02cd847e0b0d4a295b.dip0.t-ipconnect.de)
06:37:05 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
06:39:50 vpan joins (~0@mail.elitnet.lt)
06:50:24 motherfsck joins (~motherfsc@user/motherfsck)
06:52:52 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
06:54:30 trev joins (~trev@user/trev)
06:54:58 coot_ joins (~coot@89-69-206-216.dynamic.chello.pl)
06:56:23 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
06:57:03 CiaoSen joins (~Jura@dynamic-046-114-218-076.46.114.pool.telefonica.de)
06:57:35 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 240 seconds)
06:57:35 coot_ is now known as coot
07:06:25 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
07:10:59 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
07:12:03 zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe)
07:12:08 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:16:01 × mauke quits (~mauke@user/mauke) (Ping timeout: 256 seconds)
07:20:08 mc47 joins (~mc47@xmonad/TheMC47)
07:20:30 × Inst__ quits (~Inst@2601:6c4:4081:2fc0:4f54:13aa:bf33:bb41) (Read error: Connection reset by peer)
07:22:29 freeside_ joins (~mengwong@122.11.248.245)
07:23:28 × hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 240 seconds)
07:28:44 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
07:30:32 hsw joins (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net)
07:33:37 mmhat joins (~mmh@p200300f1c7066878ee086bfffe095315.dip0.t-ipconnect.de)
07:33:46 × mmhat quits (~mmh@p200300f1c7066878ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
07:37:42 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:4c1f:3b38:25a9:d6c3) (Remote host closed the connection)
07:39:01 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
07:42:17 × potato44 quits (uid421314@2a03:5180:f:2::6:6dc2) (Quit: Connection closed for inactivity)
07:42:19 alternateved joins (~user@77-253-195-69.adsl.inetia.pl)
07:42:42 gmg joins (~user@user/gehmehgeh)
07:45:42 Guest|77 joins (~Guest|77@92.255.240.18)
07:46:21 × Guest|77 quits (~Guest|77@92.255.240.18) (Client Quit)
07:49:32 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
08:01:05 × CiaoSen quits (~Jura@dynamic-046-114-218-076.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
08:01:28 phma_ joins (~phma@2001:5b0:211f:ac38:3175:c9e:af7a:b437)
08:03:18 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:9c37:7744:24df:2b60) (Ping timeout: 265 seconds)
08:03:34 vglfr joins (~vglfr@209.198.137.192)
08:03:37 × phma quits (phma@2001:5b0:211f:7e48:7766:33a8:8fd1:3dba) (Ping timeout: 256 seconds)
08:05:18 ubert joins (~Thunderbi@2001:871:263:e49d:d09b:76e5:9a99:b8ab)
08:07:29 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
08:09:51 evincar joins (~evincar@user/evincar)
08:10:08 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:10:25 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 256 seconds)
08:11:35 × Feuermagier quits (~Feuermagi@user/feuermagier) (Ping timeout: 240 seconds)
08:12:36 chele joins (~chele@user/chele)
08:13:09 vglfr joins (~vglfr@209.198.137.192)
08:13:16 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
08:14:24 × evincar quits (~evincar@user/evincar) (Ping timeout: 248 seconds)
08:26:10 titibandit joins (~titibandi@user/titibandit)
08:26:47 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 240 seconds)
08:27:01 evincar joins (~evincar@user/evincar)
08:28:57 user____3 joins (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de)
08:30:15 vglfr joins (~vglfr@209.198.137.192)
08:31:35 × evincar quits (~evincar@user/evincar) (Ping timeout: 240 seconds)
08:38:08 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
08:42:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Ping timeout: 250 seconds)
08:42:26 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
08:42:49 vglfr joins (~vglfr@209.198.137.192)
08:43:37 mechap joins (~mechap@user/mechap)
08:43:57 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:43:59 <absence> is there a way to get around the ambiguousness of the update functions? the get functions are not ambiguous... https://play.haskell.org/saved/sqDxEZxD
08:47:51 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
08:48:45 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
08:49:09 Lord_of_Life_ is now known as Lord_of_Life
08:50:13 CiaoSen joins (~Jura@dynamic-046-114-218-076.46.114.pool.telefonica.de)
08:51:39 <Profpatsch> Something that’s been preoccupying me
08:53:05 <Profpatsch> nvm, I think it’s too hard to describe
08:53:29 <sm> heh
08:53:50 × phma_ quits (~phma@2001:5b0:211f:ac38:3175:c9e:af7a:b437) (Read error: Connection reset by peer)
08:54:24 phma_ joins (~phma@host-67-44-208-41.hnremote.net)
08:57:11 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
09:00:52 <jackdk> absence: See https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0366-no-ambiguous-field-access.rst#migration-strategy ; there's an open proposal that's relevant: https://github.com/ghc-proposals/ghc-proposals/pull/537
09:03:27 titiband1t joins (~titibandi@user/titibandit)
09:04:01 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 240 seconds)
09:13:43 __monty__ joins (~toonn@user/toonn)
09:13:51 <absence> jackdk: thanks, i'll have a look!
09:15:26 Inst joins (~Inst@2601:6c4:4081:2fc0:29d6:ec38:cf28:128e)
09:15:36 <Inst> hmmm,m i'm wondering, what the hell is wrong with my accumulating parameter?
09:16:04 <Inst> basically, if I'm looking at the Julian version, they seem to have a (O)log n time complexity on the arithmetic
09:16:08 <Inst> the Haskell version is roughly linear
09:16:25 <Rembane> Inst: Maybe it's having a bad day? Can you share the code with us?
09:16:50 <Inst> i'm just using Julia as an analogue for a traditional for loop
09:16:59 <Inst> I'm not WSLed onto OCaml so I can't use OCaml
09:17:05 <Inst> for interpreter
09:18:02 <Inst> julian:
09:18:03 <Inst> https://godbolt.org/z/brY3sbKE1
09:18:41 <Inst> ours
09:18:42 <Inst> https://godbolt.org/z/xj13e156r
09:19:15 <probie> Inst: you want to pass -O2
09:19:45 <probie> also, one of those is fib, the other is fac
09:20:57 <Inst> weird
09:20:57 <Inst> https://godbolt.org/z/ovG4KfGn9
09:21:01 <Inst> julian version
09:22:48 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 240 seconds)
09:24:32 Pickchea joins (~private@user/pickchea)
09:24:48 <Inst> so it's probably that they have a log n optimization firing, which creates a high initial time, but my algorithm is O n
09:28:47 <probie> So, when n < 16, haskell and Julia are running pretty much the same code
09:31:18 <probie> when n >= 16 Julia has unrolled the loop and is doing some crazy stuff something with vector ops. I'm moderately sure it's not O(log n) though
09:32:53 <probie> The llvm backend for GHC might be able to generate something similar, but I don't think it will
09:34:42 × freeside_ quits (~mengwong@122.11.248.245) (Ping timeout: 268 seconds)
09:35:07 × zeenk quits (~zeenk@2a02:2f04:a105:f00::7fe) (Remote host closed the connection)
09:35:29 zeenk joins (~zeenk@2a02:2f04:a105:f00::fba)
09:39:16 × ubert quits (~Thunderbi@2001:871:263:e49d:d09b:76e5:9a99:b8ab) (Quit: ubert)
09:39:36 ubert joins (~Thunderbi@2001:871:263:e49d:9f32:772e:1ec6:8be6)
09:40:13 <stefan-_> I have an issue with some typeclass instances in pandoc
09:40:26 <stefan-_> previously there was: instance (Walkable [a] Pandoc, MonadIO m) => ToJSONFilter m (a -> [a]) where ...
09:40:34 <stefan-_> now there is: instance (Walkable [a] Pandoc, MonadIO m) => ToJSONFilter m (a -> m [a]) where
09:40:50 <stefan-_> the application code is here: https://gist.github.com/dozed/41c4c6b74d5fc1c06c306d6e1783e762
09:41:09 phma_ is now known as phma
09:41:32 <stefan-_> is there a simpler solution to turn an `Block -> [Block]` into `Block -> IO [Block]` than the two last snippets?
09:41:45 <stefan-_> -n
09:42:10 <ncf> :t (pure .)
09:42:11 <lambdabot> Applicative f => (a1 -> a2) -> a1 -> f a2
09:43:31 × ubert quits (~Thunderbi@2001:871:263:e49d:9f32:772e:1ec6:8be6) (Ping timeout: 240 seconds)
09:43:38 <ncf> toJSONFilter (pure . toList . convertBlock) -- doesn't that do it?
09:43:56 <ncf> oh, ambiguous
09:44:19 <ncf> you could turn on TypeApplications and do pure @IO
09:45:28 <stefan-_> nice, this works: `toJSONFilter $ (pure @IO .) $ toList . convertBlock`
09:45:41 <ncf> pure @IO . toList . convertBlock
09:45:50 <ncf> not sure why this is necessary though, since the type of main is known...
09:46:24 ubert joins (~Thunderbi@188-23-67-228.adsl.highway.telekom.at)
09:46:55 nate2 joins (~nate@98.45.169.16)
09:48:41 <stefan-_> ncf, ToJSONFilter has instances given `MonadIO`: https://github.com/jgm/pandoc-types/blob/master/src/Text/Pandoc/JSON.hs
09:48:51 <stefan-_> could be related to this indirection
09:49:46 hamzahaskell1 joins (~hamzahask@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0)
09:50:44 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
09:51:41 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
09:51:51 puque joins (~puke@user/puke)
09:51:51 × pyook quits (~puke@user/puke) (Killed (zirconium.libera.chat (Nickname regained by services)))
09:51:51 puque is now known as pyook
09:53:46 gensyst joins (~gensyst@user/gensyst)
09:54:38 <gensyst> Is there no way to keep the current thread alive in the background somehow, and schedule something to run on that thread later? (long after the "main thing" i'm currently doing on my thread is over)
09:54:56 <gensyst> s/that thread/that SAME thread
09:55:27 <gensyst> it'd be cool if i could do this without channels (and run EVERYTHING through the channel) because running things on a channel has overhead
09:55:46 <gensyst> it'd be cool if i could at least do the "main thing" without that overhead
09:56:17 × user____3 quits (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 268 seconds)
09:57:26 × pyook quits (~puke@user/puke) (Quit: Quit)
09:58:41 × tcard_ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
10:00:26 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
10:01:01 × acidjnk quits (~acidjnk@p200300d6e7072f02cd847e0b0d4a295b.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
10:05:12 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 250 seconds)
10:05:54 <ncf> stefan-_: wait, why aren't you just using the `ToJSONFilter IO (a -> a)` instance?
10:06:21 <stefan-_> ncf, the composed function is `Block -> [Block]`
10:06:53 <ncf> oh
10:07:05 <absence> jackdk: hm, the migration guide suggests that my code should work as is, so i guess it's outdated. the only other option seems to be to rewrite the code to not use record update syntax, which is a bit unfortunate
10:09:52 <absence> is there really no way to disambiguate record updates? https://play.haskell.org/saved/sqDxEZxD
10:12:19 <stefan-_> ncf, the `a -> [a]` instance has been removed some weeks ago: https://github.com/jgm/pandoc-types/commit/183af9d9f1066be974ac55fd23a4c985999d3ce8
10:12:46 <carbolymer> how can I find out what cabal knows about my custom package repository? I'm trying to debug famous 'Could not resolve dependencies'...
10:15:26 <sm> carbolymer: cabal exec -- ghc-pkg list maybe ?
10:17:00 <carbolymer> sm: wow, that just fails with the same error
10:17:49 <sm> cabal exec does ?
10:18:09 <sm> not ghc-pkg list, I assume
10:18:11 × titiband1t quits (~titibandi@user/titibandit) (Remote host closed the connection)
10:19:24 <carbolymer> yes, that's from cabal exec
10:19:37 <sm> what error I wonder
10:19:50 <carbolymer> weird,if I enforced the newer index-state from command line it worked
10:20:04 <carbolymer> somehow it ignored index-state from cabal.project
10:20:53 <carbolymer> sm: https://bpa.st/HKX5O
10:21:43 <sm> I see.. yes I guess exec has to satisfy deps too, just like build
10:23:23 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
10:25:44 <sm> carbolymer: I don't know where to see the deps of these packages.. but it looks like cardano-api requires cardano-cli >=8.1.0.1, and you are are asking it to install 8.1.0
10:26:18 <sm> if you're not specifying 8.1.0 on the command line, maybe you need to cabal update ?
10:27:20 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
10:28:18 <carbolymer> sm: I did cabal update, I updated index-states in cabal.project
10:28:39 <carbolymer> sm: I think I had an old cabal.project.freeze
10:28:45 <sm> ah, right
10:28:47 <carbolymer> and that could the the culprit
10:29:49 ardell joins (~ardell@user/ardell)
10:30:51 <absence> the ghc documentation seems to suggest that updates to records with duplicate record fields can be disambiguated using an explicit type signature: https://downloads.haskell.org/ghc/9.2.7/docs/html/users_guide/exts/duplicate_record_fields.html#record-updates
10:31:00 <absence> however, it doesn't seem to work: https://play.haskell.org/saved/awVx87GB
10:31:08 <absence> am i misunderstanding something, or is it a possible bug?
10:33:45 wootehfoot joins (~wootehfoo@user/wootehfoot)
10:37:49 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
10:38:29 inversed joins (~inversed@bcdcac82.skybroadband.com)
10:42:49 user____3 joins (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de)
10:44:19 × inversed quits (~inversed@bcdcac82.skybroadband.com) (Quit: Connection error?!)
10:44:56 reverse joins (~inversed@bcdcac82.skybroadband.com)
10:57:00 Feuermagier joins (~Feuermagi@user/feuermagier)
11:05:29 <dminuoso> anderson: No, its documented quite clearly
11:05:57 <probie> absence: "As of GHC 9.4.1, selector names have to be entirely unambiguous (under the usual name resolution rules), while for record updates, there must be at most one datatype that has all the field names being updated."
11:06:04 <probie> those docs are for 9.2.7
11:06:19 <dminuoso> Though, their play.haskell.org pad uses GHC 9.2.7
11:06:27 <dminuoso> But it may be, that the manual is not up to date.
11:06:59 <dminuoso> The whole business of record fields and updates is one gigantic mistake. :(
11:07:56 <absence> probie: i'm using ghc 9.2.7
11:08:05 freeside_ joins (~mengwong@103.252.202.151)
11:08:57 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
11:09:15 <probie> absence: it seems to be working to me, apart from the warning that it's not going to be supported in future releases
11:09:16 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
11:09:44 <absence> dminuoso: the documentation isn't clear enough that i can figure out how to change the code to not produce the warning :/
11:10:38 <probie> absence: short of sticking those data types in a different module to the one you're using them in, or not using record update syntax, you can't get rid of the warning.
11:11:20 <dminuoso> absence: Give https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0366-no-ambiguous-field-access.rst#effect-and-interactions a brief read
11:11:31 <dminuoso> absence: Consider RecordDotSyntax and/or HasField
11:12:06 <dminuoso> The GHC does mention this proposal right in the same sentence where it says that these rules are being removed.
11:12:31 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
11:13:10 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
11:16:04 img joins (~img@user/img)
11:18:29 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
11:19:35 kimiamania joins (~65804703@user/kimiamania)
11:26:36 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:89a5:6020:579e:71c0) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
11:26:56 YoungFrog joins (~youngfrog@2a02:a03f:ca07:f900:2511:dd1a:efe6:cefd)
11:30:23 × ubert quits (~Thunderbi@188-23-67-228.adsl.highway.telekom.at) (Ping timeout: 246 seconds)
11:35:07 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
11:48:52 acidjnk joins (~acidjnk@p200300d6e7072f02cde83c9df9d46ae6.dip0.t-ipconnect.de)
11:49:37 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:51:40 euandreh joins (~Thunderbi@189.6.18.7)
11:53:08 <absence> dminuoso: i don't think OverloadedRecordDot helps, and OverloadedRecordUpdate is flagged as experimental and requires RebindableSyntax. am i understanding correctly that the warning means "things will change", but there's not alternative syntax that will avoid the warning until then? that seems to be what probie suggests as well, so i should just disable the warning and wait for OverloadedRecordUpdate to
11:53:14 <absence> stabilise?
12:00:31 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
12:02:45 × ddellacosta quits (~ddellacos@146.70.168.196) (Ping timeout: 256 seconds)
12:05:48 × Vajb quits (~Vajb@2001:999:585:423d:44d3:48b0:adae:2d85) (Ping timeout: 240 seconds)
12:06:53 freeside_ joins (~mengwong@103.252.202.151)
12:09:41 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
12:09:55 elain4 joins (~textual@2601:5c1:4402:cd30:79c9:ede3:4f08:7c96)
12:09:59 chomwitt joins (~chomwitt@2a02:587:7a09:2000:1ac0:4dff:fedb:a3f1)
12:10:34 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
12:10:41 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 256 seconds)
12:14:23 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
12:15:25 × gensyst quits (~gensyst@user/gensyst) (Ping timeout: 240 seconds)
12:21:45 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
12:27:34 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
12:31:38 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 246 seconds)
12:31:53 TMA joins (tma@twin.jikos.cz)
12:31:59 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
12:34:06 × elain4 quits (~textual@2601:5c1:4402:cd30:79c9:ede3:4f08:7c96) (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:34:24 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
12:34:42 × vandita quits (~vandit@91-83-3-38.pool.digikabel.hu) (Ping timeout: 250 seconds)
12:36:41 vandita joins (~vandit@178-164-171-248.pool.digikabel.hu)
12:41:52 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
12:42:05 × user____3 quits (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
12:42:55 L29Ah joins (~L29Ah@wikipedia/L29Ah)
12:46:24 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Ping timeout: 248 seconds)
12:51:38 user____3 joins (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de)
13:00:50 euandreh joins (~Thunderbi@189.6.18.7)
13:00:57 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
13:01:47 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
13:05:11 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
13:07:25 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
13:10:34 euandreh joins (~Thunderbi@189.6.18.7)
13:14:10 × ardell quits (~ardell@user/ardell) (Quit: Konversation terminated!)
13:15:59 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 240 seconds)
13:17:15 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
13:18:18 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
13:19:48 × alternateved quits (~user@77-253-195-69.adsl.inetia.pl) (Remote host closed the connection)
13:20:22 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 265 seconds)
13:20:23 euandreh joins (~Thunderbi@189.6.18.7)
13:20:26 alternateved joins (~user@77-253-195-69.adsl.inetia.pl)
13:23:51 <jackdk> absence: The deprecation warning appears overly aggressive and I don't think that feature is getting fully removed until the open proposal I linked you is implemented.
13:24:14 × mei quits (~mei@user/mei) (Ping timeout: 265 seconds)
13:25:46 × troydm quits (~troydm@user/troydm) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
13:28:51 troydm joins (~troydm@user/troydm)
13:29:54 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:2511:dd1a:efe6:cefd) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
13:30:14 YoungFrog joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
13:33:40 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
13:34:21 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
13:35:08 × CiaoSen quits (~Jura@dynamic-046-114-218-076.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
13:39:18 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
13:39:18 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
13:39:18 wroathe joins (~wroathe@user/wroathe)
13:40:49 freeside_ joins (~mengwong@103.252.202.151)
13:44:32 × wroathe quits (~wroathe@user/wroathe) (Quit: Lost terminal)
13:45:11 × chomwitt quits (~chomwitt@2a02:587:7a09:2000:1ac0:4dff:fedb:a3f1) (Ping timeout: 264 seconds)
13:45:59 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
13:47:04 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds)
13:48:25 nate2 joins (~nate@98.45.169.16)
13:51:50 × Inst quits (~Inst@2601:6c4:4081:2fc0:29d6:ec38:cf28:128e) (Ping timeout: 250 seconds)
13:53:11 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
13:55:33 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
14:00:00 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
14:04:25 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 240 seconds)
14:04:31 cheater joins (~Username@user/cheater)
14:05:45 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Quit: xff0x)
14:06:07 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
14:08:52 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
14:10:20 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 246 seconds)
14:11:16 vglfr joins (~vglfr@209.198.137.192)
14:14:28 gensyst joins (~gensyst@user/gensyst)
14:16:16 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
14:17:02 freeside_ joins (~mengwong@103.252.202.151)
14:17:44 <gensyst> hi guys, if your irc client shows the ip address of a user who just joined.. what was my ip when i joined just now?
14:17:56 <gensyst> was it the ..44.22 one?
14:18:39 <TMA> you are cloaked: 16:14 -!- gensyst [~gensyst@user/gensyst] has joined #haskell
14:18:54 <gensyst> ah ok, cool
14:18:55 <gensyst> thanks!
14:20:23 shriekingnoise joins (~shrieking@186.137.175.87)
14:21:11 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
14:25:33 <ski> (iirc `/whois' on yourself shows your host/ip, but not to others, if you have a cloak/vhost)
14:25:58 <gensyst> thanks guys
14:29:30 ddellacosta joins (~ddellacos@146.70.185.10)
14:30:27 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 265 seconds)
14:37:11 chomwitt joins (~chomwitt@athedsl-351665.home.otenet.gr)
14:37:57 <gensyst> How are foreign pointers implemented under the hood?
14:38:02 <gensyst> esp. the finalization
14:40:23 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 264 seconds)
14:42:08 × vandita quits (~vandit@178-164-171-248.pool.digikabel.hu) (Ping timeout: 248 seconds)
14:43:44 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
14:44:08 vandita joins (~vandit@94-21-233-127.pool.digikabel.hu)
14:47:02 <geekosaur> the comments in https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/base-4.16.4.0/src/GHC.ForeignPtr.html are probably the best you will do with that
14:55:39 <gensyst> geekosaur, can you search there for "The storage manager will start the finalizer"?
14:55:57 <gensyst> "The storage manager will start the finalizer, in a separate thread, some time after the last reference to the @ForeignPtr@ is dropped."
14:56:13 <gensyst> How is this acceptable? Many C libraries require the close/abort to be called on same thread :S
14:57:00 <gensyst> oh, this "conc" thing is different from normal foreign ptrs?
14:57:22 <gensyst> Do you see anything anywhere about the normal ForeignPtr finalizer beign called on same thread?
14:57:49 <xilo> hi, what is the convention about error handling functions in haskell, should I put them in separate module?
14:58:22 <Rembane> xilo: What's an error handling function to you?
14:58:59 j4th joins (~Thunderbi@node-1w7jra29eyptmu39fxgzo44wt.ipv6.telus.net)
14:59:11 <geekosaur> gensyst, looks to me like "Conc" there means "conmcurrent" and the ForeignPtr in question is explicitly shared between multiple threads
14:59:12 × j4th quits (~Thunderbi@node-1w7jra29eyptmu39fxgzo44wt.ipv6.telus.net) (Remote host closed the connection)
14:59:44 <geekosaur> as opposed to, say, `withForeignPtr` which is explicitly in a single thread
15:00:48 <xilo> like separate data constructor and Either Monad
15:01:36 <geekosaur> gensyst, otherwise I would assume in the lack of other documentation that it obeys the usual thread rules: if it's a `forkOS` thread then it's guaranteed to use the same OS thread, otherwise there isn't any such guarnatee even for normal thread scheduling much less GC
15:01:40 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:01:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
15:02:47 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Remote host closed the connection)
15:03:19 paulpaul1076 joins (~textual@95-29-4-192.broadband.corbina.ru)
15:03:34 <gensyst> geekosaur, by what mechanism do you think it can keep the original OS thread alive (in the forkOS case) and call the finalizer onto it later?
15:03:48 <gensyst> that mechanism doesn't seem to be available in general, for other uses. (i.e. keep a thread alive like that, for later use)
15:04:00 <geekosaur> that's the whole point of `forkOS` threads
15:04:42 <geekosaur> and, ell, the I/O manager keeps the main thread pool, iirc. you'll need someone better versed in RTS internals to find out details though
15:04:50 <gensyst> geekosaur, but the point of foreignptrs is that the fianlizer will get called after the code *I as the programmer wrote* is over.
15:04:59 <gensyst> so somehow it manages to call back into it
15:06:08 <geekosaur> you might note there is no way to destroy an OS thread
15:06:29 <geekosaur> or even create one explicitly although IIRC in practice `forkOS` does create a dedicated OS thread
15:06:49 <hololeap> this profiling report shows that 43.1% of time is used by IDLE and 41.9% is used by GC: http://sprunge.us/078r3P
15:06:59 <geekosaur> anyway you need to ask about this in #ghc and hope an RTS concurrency expert is around
15:07:29 <hololeap> it doesn't seem like it should be using the GC so much. here is the code. I can clarify anything if needed: https://github.com/hololeap/hackport/commit/e56050246476949f255cee9596d2c865471e5be8
15:07:43 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0)
15:08:16 <hamzam3> Hey guys, I am creating a browser in Haskell if anyone wants to participate: https://github.com/HamzaM3/yes-browser
15:08:23 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0) (Client Quit)
15:09:05 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0)
15:10:18 <hololeap> I _think_ I made the Trie datatype as strict as possible, or maybe that's not the issue here? I'm new to profiling so I'm not exactly sure what to glean from the report, but it does seem excessively slow
15:11:08 <hololeap> also, this report is using the Trie cached in a file (deserialized using the binary package)
15:16:34 <gensyst> geekosaur, thanks i'm going to ask on #ghc
15:19:59 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0) (Ping timeout: 264 seconds)
15:19:59 × hamzahaskell1 quits (~hamzahask@2a01:e0a:1ee:8c60:c112:84e5:1df:32b0) (Ping timeout: 264 seconds)
15:20:55 euandreh joins (~Thunderbi@189.6.18.7)
15:22:06 Sgeo joins (~Sgeo@user/sgeo)
15:22:26 ubert joins (~Thunderbi@188-23-67-228.adsl.highway.telekom.at)
15:30:43 × user____3 quits (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
15:33:00 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
15:33:14 vglfr joins (~vglfr@209.198.137.192)
15:33:36 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 268 seconds)
15:34:35 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
15:34:43 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
15:38:07 AlexNoo_ joins (~AlexNoo@178.34.163.104)
15:39:09 ub joins (~Thunderbi@188-23-67-228.adsl.highway.telekom.at)
15:39:12 vglfr joins (~vglfr@209.198.137.192)
15:40:08 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 240 seconds)
15:41:08 × AlexNoo quits (~AlexNoo@178.34.151.85) (Ping timeout: 240 seconds)
15:41:11 × ubert quits (~Thunderbi@188-23-67-228.adsl.highway.telekom.at) (Ping timeout: 240 seconds)
15:41:11 ub is now known as ubert
15:41:37 × Alex_test quits (~al_test@178.34.151.85) (Ping timeout: 268 seconds)
15:42:14 × AlexZenon quits (~alzenon@178.34.151.85) (Ping timeout: 268 seconds)
15:42:40 user____3 joins (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de)
15:46:08 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 248 seconds)
15:48:09 titibandit joins (~titibandi@user/titibandit)
15:49:23 Alex_test joins (~al_test@178.34.163.104)
15:50:33 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 256 seconds)
15:51:46 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
15:53:08 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
15:53:12 vglfr joins (~vglfr@209.198.137.192)
15:55:34 AlexZenon joins (~alzenon@178.34.163.104)
15:55:57 <texasmynsted> Could somebody please recommend some resources for data modeling (in Haskell). I have found a little here an there... Do you know of anything that takes a deep dive into this subject?
15:59:52 cheater_ joins (~Username@user/cheater)
16:02:17 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
16:02:18 cheater_ is now known as cheater
16:03:15 × TheMatten[m] quits (~thematten@2001:470:69fc:105::1:5ba1) (Remote host closed the connection)
16:05:47 <[exa]> texasmynsted: that's a pretty wide topic tbh
16:06:28 × alternateved quits (~user@77-253-195-69.adsl.inetia.pl) (Remote host closed the connection)
16:06:31 <[exa]> texasmynsted: I assume you mean something like "how to represent stuff X best with algebraic data types" ?
16:06:43 econo joins (uid147250@user/econo)
16:07:47 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection)
16:08:20 freeside_ joins (~mengwong@103.252.202.151)
16:10:26 AlexNoo_ is now known as AlexNoo
16:11:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
16:12:25 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
16:13:59 × vglfr quits (~vglfr@209.198.137.192) (Ping timeout: 240 seconds)
16:16:07 mauke joins (~mauke@user/mauke)
16:16:42 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
16:17:04 vglfr joins (~vglfr@2a0d:3344:1b4f:9e10:ec99:a92:e82a:fcbf)
16:18:14 <texasmynsted> It is a wide topic area. It feels big enough to devote an entire book to the subject.
16:21:01 × vglfr quits (~vglfr@2a0d:3344:1b4f:9e10:ec99:a92:e82a:fcbf) (Ping timeout: 240 seconds)
16:21:31 <texasmynsted> Something like: Model basic types like this... Model sum types like this, product types like this. Here is how and when we need explicit Universal/ existential quantification...
16:21:54 <texasmynsted> When to use record types, when better alternatives should be considered...
16:22:42 vglfr joins (~vglfr@209.198.137.192)
16:23:29 <texasmynsted> Something that takes the theory/ideas and shows how to apply them as practical solutions to common problems.
16:27:00 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:28:45 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
16:37:52 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
16:40:24 motherfsck joins (~motherfsc@user/motherfsck)
16:42:16 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:42:19 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
16:42:42 vglfr joins (~vglfr@209.198.137.192)
16:43:00 wootehfoot joins (~wootehfoo@user/wootehfoot)
16:44:09 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
16:45:57 joeyh_ joins (~joeyh@kitenet.net)
16:46:14 × joeyh quits (~joeyh@kitenet.net) (Ping timeout: 265 seconds)
16:46:48 × tureba quits (~tureba@tureba.org) (Ping timeout: 240 seconds)
16:46:59 × dumptruckman quits (~dumptruck@143-42-239-71.ip.linodeusercontent.com) (Ping timeout: 268 seconds)
16:47:28 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:47:57 dumptruckman joins (~dumptruck@143-42-239-71.ip.linodeusercontent.com)
16:49:55 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:50:35 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:6793:fba0:f7a2:38d2)
16:50:37 hamzahaskell1 joins (~hamzahask@2a01:e0a:1ee:8c60:6793:fba0:f7a2:38d2)
16:51:21 vglfr joins (~vglfr@209.198.137.192)
16:52:24 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
16:53:45 × ubert quits (~Thunderbi@188-23-67-228.adsl.highway.telekom.at) (Remote host closed the connection)
16:54:13 × vpan quits (~0@mail.elitnet.lt) (Quit: Leaving.)
16:54:19 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
16:54:50 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
16:55:47 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:57:23 × hamzahaskell1 quits (~hamzahask@2a01:e0a:1ee:8c60:6793:fba0:f7a2:38d2) (Ping timeout: 265 seconds)
16:57:23 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:6793:fba0:f7a2:38d2) (Ping timeout: 265 seconds)
16:59:30 tureba joins (~tureba@tureba.org)
17:03:38 emmanuelux joins (~emmanuelu@user/emmanuelux)
17:04:52 m1-s[m] joins (~m1-smatri@2001:470:69fc:105::2:39da)
17:06:02 × vandita quits (~vandit@94-21-233-127.pool.digikabel.hu) (Ping timeout: 246 seconds)
17:07:54 vandita joins (~vandit@85-238-77-50.pool.digikabel.hu)
17:15:38 oo_miguel joins (~Thunderbi@77.252.47.84)
17:19:01 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds)
17:21:32 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:21:40 vglfr joins (~vglfr@209.198.137.192)
17:23:20 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:23:32 vglfr joins (~vglfr@209.198.137.192)
17:24:45 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:25:51 vglfr joins (~vglfr@209.198.137.192)
17:25:53 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:26:14 vglfr joins (~vglfr@209.198.137.192)
17:26:20 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:26:32 vglfr joins (~vglfr@209.198.137.192)
17:28:28 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:30:14 vglfr joins (~vglfr@209.198.137.192)
17:34:45 Inst joins (~Inst@2601:6c4:4081:2fc0:ddcc:91ce:26fa:a2d4)
17:34:45 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:34:57 vglfr joins (~vglfr@209.198.137.192)
17:35:00 × vglfr quits (~vglfr@209.198.137.192) (Read error: Connection reset by peer)
17:35:14 vglfr joins (~vglfr@209.198.137.192)
17:36:21 ski . o O ( "Modelling Large Datasets Using Algebraic Datatypes: A Case Study of the CONFMAN Database" in 2002-05-15 at <https://ofai.at/papers/oefai-tr-2002-27.pdf>,"Using Algebraic Datatypes as Uniform Representation for Structured Data" in 2003 at <https://ofai.at/papers/oefai-tr-2003-07.pdf>, both by Markus Mottl )
17:42:23 Guest|41 joins (~Guest|41@177.51.6.70)
17:43:27 × Guest|41 quits (~Guest|41@177.51.6.70) (Client Quit)
17:49:55 nate2 joins (~nate@98.45.169.16)
17:54:00 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection)
17:54:28 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
17:56:05 cheater joins (~Username@user/cheater)
17:56:26 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
17:57:04 titibandit joins (~titibandi@user/titibandit)
18:01:41 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
18:08:20 <Inst> welp, finally got Fumiaki Kinoshita's Objective working
18:09:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
18:09:46 nick_ joins (~nick@2600:8807:9103:b700:4573:4de0:330c:f2fa)
18:15:31 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
18:23:59 <Inst> tbh, can I ask about strictness annotations on accum params?
18:24:02 cheater joins (~Username@user/cheater)
18:24:03 <Inst> This is REALLY disappointing
18:24:26 <Inst> like, I dislike XStrict because I think laziness is the point of Haskell
18:24:52 <Inst> but the two seem rather related
18:25:23 <Inst> accum param recursion (aka iteration) seems to require strictness all the time
18:25:46 <Inst> bleh, maybe one day i'll finally get good enough to contribute to GHC and just render accum param recursion strict via strictness analyzer by default
18:29:38 Vajb joins (~Vajb@2001:999:489:89c8:241a:21c3:9f8f:9a9a)
18:32:38 <Inst> ironically, the effect of finally learning objective, learning some OOP via Python and Ruby
18:32:57 <Inst> is that I appreciate Haskell's purity more; i.e, Haskell is a fount of innovation and novel research
18:33:19 <Inst> ad-hoc solutions result in band-aiding everything and result in, well, just Algol with new features
18:33:32 <jade[m]> mhm, for me it was the other way around with the same effect
18:33:49 <jade[m]> finally learning haskell after oop was such an enlightenment
18:33:51 × spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Client closed)
18:34:31 <Inst> i mean I consider Haskell my first language, although I played around with BASIC, Visual Basic, C++ when I was a kid
18:34:44 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
18:34:55 <jade[m]> interesting
18:34:57 <Inst> same effect of monomer, i.e, monomer, when I look through the codebase
18:34:58 <texasmynsted> ski: thank you for the pdf link
18:35:04 <Inst> {-# LANGUAGE Strict #-} everywhere
18:35:18 <Inst> the widget model is very OOP-ish
18:36:00 <Inst> I ask around about FRP, I'm told it's okay / good for games, bad for GUI, but that does make me think, i.e, there are quite a few unsolved problems in Haskell
18:36:04 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:36:27 <Inst> just band-aiding them with conventional solutions means that the research sucks, we just stick to the old paradigms and old ways of doing things, without aggressive blue-sky research on how to do it better
18:36:37 <Inst> so I guess I'm less of a pragmatist now
18:36:49 <[exa]> texasmynsted: btw there's this principle "single point of self-evident truth", most of the data structure design is about making this one work w.r.t. 1] hardware and 2] the operations you want to run quickly
18:36:51 <texasmynsted> Inst: I am unclear how these are Haskell problems.
18:37:07 <jade[m]> what unsolved problems in particular?
18:37:12 <Inst> texasmynsted: what Haskell problems are you referring to?
18:37:45 <texasmynsted> I refer to > Inst: I ask around about FRP, I'm told it's okay / good for games, bad for GUI, but that does make me think, i.e, there are quite a few unsolved problems in Haskell
18:38:03 <[exa]> Inst: well it's kinda hard to grasp a unique point you're making in the last ~15 messages
18:38:35 <[exa]> except for the "random band-aid is bad", that's clear :D
18:38:59 <Inst> I believe that FP does not have a good solution for GUI; there's no "major" Haskell GUI app
18:39:11 <Inst> That, FRP is still a work in progress
18:39:26 <Inst> and problems are good, because they demand novel solutions
18:39:41 <jade[m]> Inst: is that a FP or tooling/library issue in your opinion?
18:39:50 <texasmynsted> [exa]: My coal is to abstract away from the hardware as much as possible. I want to be declarative and model data in such a way as it makes the most sense. (Like math). I can worry about the hardware if or when needed.
18:39:56 <texasmynsted> s/coal/goal/
18:40:15 <sm> not having a state of the art native GUI system is always more a matter of economics, not technology
18:41:21 <sm> Haskell is technically perfectly capable of it
18:42:36 <jade[m]> but what's the actual issue - is the way of programming the gui too <insert bad thing here> or does it just not look good, no matter what you try?
18:42:42 <jade[m]> or is it something else entirely
18:42:54 <Inst> oh, it just feels too imperative / OOP-ish
18:43:02 <Inst> I was told that GUI is intrinsically stateful
18:43:04 <[exa]> texasmynsted: at that point you're basically just following the SPOT rule and "mathematically easy" transformations, such as not having to do too much mental operation to have something changed... Did you see how zipper structures work? that's IMO a good demo of the tradeoffs
18:43:12 rf joins (~rf@142.99.241.246)
18:43:26 <jade[m]> Inst: even with like gui combinators and state transition functions?
18:43:30 <[exa]> Inst: I'd like to expand on that, I didn't see a good GUI solution yet, ever. Except maybe for imgui and brick, these are magique.
18:43:49 <Inst> I need to go learn Linux for brick because of the vty / windows problem
18:44:08 <[exa]> learning a unix is always a good investment tbh
18:44:28 <jade[m]> [exa]: I wanted to bring up brick which seems very idiomatic in terms of functional ~~gui~~ tui desigm
18:44:46 <[exa]> same for Elm probably
18:44:50 <[exa]> Inst: ^
18:45:15 <jade[m]> s/desigm/design
18:46:09 <ski> texasmynsted : i think probably not quite what you were looking for. i was just reminded of it
18:46:48 <sm> argh, when will a windows hacker make brick/vty work there
18:47:48 <geekosaur> iirc that will require massive changes because while unix uses escape sequences windows uses the equivalent of ioctl()
18:47:54 <sm> so many years now, it's odd. Windows hackers + free time + haskell + interested in terminal = 0 ?
18:48:05 <geekosaur> so every single I/O operation has to be conditionalized on platform
18:48:08 <texasmynsted> No I have not looked at how zipper structures work... So far that is pretty interesting.
18:48:46 <sm> geekosaur: ouch
18:49:11 <jade[m]> sm: I feel like most haskell users are on linux - and haskell also plays into that with ghcup for example being linux only
18:49:19 <ski> @where zipper
18:49:19 <lambdabot> http://www.haskell.org/haskellwiki/Zipper
18:49:21 <jade[m]> it might have gotten windows support just recently
18:49:36 <ski> [exa] : "SPOT" ?
18:49:44 <geekosaur> huh? ghcup supports windows for everything but tui, which requires brick
18:49:58 <geekosaur> there's been a powershell recipe to install it for over a year
18:50:02 <texasmynsted> I am just surprised nobody has written "Data modeling in Haskell" or "Data Driven Design in Haskell" or "Haskell type tetris" . . . etc . . .
18:50:44 <sm> ghcyup
18:50:49 <jade[m]> geekosaur: yes? I might have thought of something else
18:51:07 <sm> texasmynsted: there are a few things along that line.. maybe in
18:51:07 <sm> @where books
18:51:07 <lambdabot> https://www.extrema.is/articles/haskell-books is the best list of Haskell books. See also: LYAH, HTAC, RWH, PH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, FSAF, HftVB, TwT, FoP, PFAD, WYAH,
18:51:07 <lambdabot> non-haskell-books
18:53:40 <sm> dang that's a lot of books
18:53:50 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
18:55:53 evincar joins (~evincar@user/evincar)
18:56:07 <sm> https://leanpub.com/thinking-with-types looks to be more "thinking about types"
18:56:18 cheater joins (~Username@user/cheater)
18:57:00 <sm> https://www.packtpub.com/product/haskell-cookbook/9781786461353 is a practical cookbook, as is
18:57:00 <sm> @where HTAC
18:57:00 <lambdabot> "Haskell Tutorial and Cookbook" by Mark Watson in 2017-09-04 at <https://leanpub.com/haskell-cookbook>
18:58:24 <Inst> sm
18:58:38 <Inst> Haskell Windows support is atrocious, it's there, and that's great, but I think it was primarily because of Hugs and so on
18:58:41 <sm> https://www.packtpub.com/product/haskell-design-patterns/9781783988723 looks good but still not seeing much talk of concrete modelling/design. I'm not totally sure what your book would look like, but I feel it might be out there
18:59:23 <Inst> The sad thing is, I don't think any cheers will go up when Phyx and bgamari[m] finally get getChar and getLine working properly on Windows
18:59:27 ski idly remembers `WinHugs'
18:59:56 <geekosaur> there's still (or used to be) WinGhci although it may have bitrotted
19:00:03 <ski> yea. ndm
19:00:29 <sm> (last one: don't miss https://leanpub.com/production-haskell )
19:00:32 <texasmynsted> Wow, I found another Sandy Maguire book I need^^^^want!
19:00:37 <Inst> is it supposed to work that way?
19:00:38 <Inst> https://media.discordapp.net/attachments/968989726633779215/1109193869242929193/image.png?width=442&height=402
19:00:56 <texasmynsted> https://www.extrema.is/articles/haskell-books/algebra-driven-design
19:01:05 <geekosaur> Inst, yes
19:01:09 <Inst> wait, really?
19:01:13 <geekosaur> by default input is line buffered
19:01:20 <geekosaur> as with any other program
19:01:36 <geekosaur> use `hSetBuffering stdin NoBuffering` to change this
19:01:42 cheater_ joins (~Username@user/cheater)
19:01:47 <texasmynsted> I have been sooo close to buying "Production Haskell" a number of times.
19:02:17 <sm> I think I actually did (and promptly forgot it existed)
19:02:28 <hololeap> in case anyone was interested, my program's speed increased significantly by putting the Trie in a compact region
19:02:38 <mauke> induction haskell?
19:02:38 <texasmynsted> I have far more books than I could read
19:02:43 <sm> that's the power of a good TOC! All you need! :)
19:03:01 <Inst> bleh, damnit, I'm going to reboot into my Deb partition
19:03:07 <Inst> I swear it's not supposed to be this way
19:03:13 × Inst quits (~Inst@2601:6c4:4081:2fc0:ddcc:91ce:26fa:a2d4) (Read error: Connection reset by peer)
19:03:15 <tomsmeding> Inst: what's not supposed to be this way
19:03:16 <tomsmeding> oh
19:03:33 <tomsmeding> ah, on linux stdin seems to be in NoBuffering mode by default
19:03:52 <tomsmeding> perhaps on windows, ghci reads from the terminal directly whereas getChar reads from stdin? Or something?
19:04:01 <geekosaur> it varies, in ghci it's NoBuffering because of readline/haskeline, in a program it's line buffered
19:04:16 <geekosaur> and yes, emulation of this on windows is weird
19:04:25 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
19:04:29 cheater_ is now known as cheater
19:04:30 <tomsmeding> geekosaur: on linux I'm not reproducing Inst's screenshot
19:04:39 <geekosaur> interesting
19:04:48 <tomsmeding> https://tomsmeding.com/ss/get/tomsmeding/cmN89k
19:05:00 <tomsmeding> different behaviour all around
19:05:24 <tomsmeding> here ghci is clearly reading command input from the same stream as getChar is reading from
19:05:25 <geekosaur> yeh, that would make sense on linux, there's only one terminal I/O stream
19:05:30 <tomsmeding> showing that on windows that's not the case
19:05:34 <geekosaur> windows is different, as I said
19:05:37 <tomsmeding> geekosaur: no, there's also /dev/tty
19:05:43 <geekosaur> try it sometime
19:05:48 <tomsmeding> ghci doesn't use it, and it shouldn't, so all is well
19:05:52 <geekosaur> /dev/tty is an alias
19:06:50 Inst joins (~Inst@2601:6c4:4081:2fc0:e418:a15:6c7d:2dee)
19:07:01 <Inst> tried it on Linux, getChar's behavior is not preferred, but adequate, under 9.6.1
19:07:09 <tomsmeding> Inst: https://tomsmeding.com/ss/get/tomsmeding/cmN89k my linux experience
19:07:10 <Inst> will take a char, then immediately return on GHCI
19:07:17 <geekosaur> there's still only one input stream, which can be accessed as stdin when it's attached to the terminal, or /dev/tty, or in somewhat freakish other ways (for example session setup `dup()`s stdin onto stdout and stderr so it's possible to read from stdout when it's a terminal
19:07:19 <geekosaur> )
19:07:26 <Inst> possible this is a GHCI issue, not a GHC issue
19:07:27 <tomsmeding> Inst: https://ircbrowse.tomsmeding.com/browse/lchaskell?id=965035#trid965035
19:07:53 × vandita quits (~vandit@85-238-77-50.pool.digikabel.hu) (Ping timeout: 265 seconds)
19:08:02 <tomsmeding> geekosaur: hm, you're probably right, somehow I thought this worked differently
19:09:16 vandita joins (~vandit@80-95-69-243.pool.digikabel.hu)
19:09:36 <tomsmeding> geekosaur: ah I was confusing reading from /dev/tty with writing to /dev/tty
19:09:42 <tomsmeding> writing to /dev/tty is not the same as writing to stdout
19:09:47 <geekosaur> right
19:10:20 <tomsmeding> iirc sudo writes the prompt to /dev/tty so that it works even if its output is piped to a pager or something
19:10:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
19:10:50 <tomsmeding> Inst: what's your preferred behaviour
19:10:59 <geekosaur> yeh, all I/O to /dev/tty so you can pipe to/from it
19:11:24 <Inst> https://media.discordapp.net/attachments/968989726633779215/1109196545523458149/image.png?width=1232&height=300
19:11:58 <Inst> https://paste.tomsmeding.com/Y69PQ49f
19:12:31 <tomsmeding> you're not outputting anything, so seems right?
19:13:11 <Inst> is this some unsafeInterleaveIO thing with getChar?
19:13:16 <tomsmeding> what?
19:13:20 <tomsmeding> what did you expect to happen
19:13:35 <tomsmeding> in a program, stdin is line-buffered by default
19:13:36 <Inst> ah, okay, I guess this is intended behavior
19:13:43 <Inst> I was expecting it to set up two different input prompts
19:13:55 <tomsmeding> ghci on linux sets it to unbuffered to be able to read your commands as they come
19:13:57 <Inst> and I turned off the line-buffering via hSetBuffering stdin NoBuffering?
19:14:02 <tomsmeding> oh right
19:14:30 <Inst> as to your question of preferred behavior, i.e, read two separate keypresses
19:14:42 mapniv joins (~mapniv@user/Mapniv)
19:14:42 <tomsmeding> interesting, on linux that does work
19:15:22 <tomsmeding> Inst: what happens on windows if you do 'c <- getChar; c' <- getChar; print (c, c')'
19:15:24 <Inst> iirc there was a discussion of issues with haskelline
19:15:44 <tomsmeding> with your man program, no haskeline is involved
19:15:53 <Inst> the Winio RTSopts are even more of a mess
19:16:58 <tomsmeding> if printing the read characters only prints them after you press enter, it indeed seems as geekosaur said that NoBuffering doesn't work well on windows
19:17:04 <tomsmeding> s/well/at all/?
19:17:28 <geekosaur> windows is technically always in NoBuffering mode
19:17:34 <Inst> re phyx, iirc, there was discussion that ghc / ghci was running haskelline under the hood
19:17:38 <Inst> and it was blowing up
19:17:50 <Inst> also, the GHC compile on Linux (Deb) was far faster than the Windows compile
19:17:50 <tomsmeding> ghci uses haskeline, right?
19:17:54 <geekosaur> yes
19:17:57 <Inst> i think
19:18:04 <tomsmeding> any ghc-compiled program is not going to use haskeline without you explicitly using it
19:18:13 <Inst> https://media.discordapp.net/attachments/968989726633779215/1109198308037107802/image.png?width=1290&height=534
19:18:23 <geekosaur> but more to the point, BCO uses haskeline so anything run under ghci or runghc gets it
19:18:37 <tomsmeding> BCO?
19:18:48 <geekosaur> but compiled programs don't unless you explicitly use it
19:18:53 <geekosaur> the bytecode backend
19:18:55 <tomsmeding> Inst: what step is slow on windows, Compiling or Linking?
19:19:03 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
19:19:09 <tomsmeding> geekosaur: ah
19:19:26 <tomsmeding> only on windows I guess?
19:19:35 <tomsmeding> or is the input of any runghc program really passed through haskeline
19:19:40 <tomsmeding> that sounds dumb and redundant
19:19:41 <geekosaur> it really is
19:19:48 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:19:49 <tomsmeding> what's haskeline doing
19:20:04 <geekosaur> nothing much, it's just how things are implemented
19:20:09 <tomsmeding> its functionality is completely useless
19:20:26 <sm> wow, this is some serious terminal I/O lore that deserves its own.. page or something
19:20:44 <tomsmeding> except if you need to manually implement backspace on windows, but then that hardly warrants haskeline
19:20:50 sm . o O ( ..podcast.. )
19:21:11 <Inst> possibly linking, could just be clang's fault
19:21:19 tomsmeding . o O ( Everything You Did and Did Not Want to Know About Terminal IO in Haskell )
19:21:45 <geekosaur> basically it's much easier and saner to do things this way because constantly switching between haskeline and line oriented mode in ghci would be slow and produce unexpected behavior at times
19:21:47 <tomsmeding> Inst: linking haskell programs is indeed excessively slow on windows
19:22:00 <geekosaur> and runghc inherits it because it's secretly ghci in the background
19:22:00 <tomsmeding> interesting
19:23:11 tomsmeding would expect ghci to do said switching
19:23:18 <geekosaur> the shell can also have these weirdnesses happen because it does switch between line and character/readline mode, and zsh actually has some hacks to warn you when it thinks it's happened (reverse video percent sign)
19:23:22 <Inst> ehhh, but i'd say getting GHCI / compiled Haskell terminal programs to work properly on getLine / getChar on Windows is higher priority than getting vty working
19:23:38 <Inst> https://www.reddit.com/r/haskell/comments/ht4ehe/comment/fyeo644/?utm_source=share&utm_medium=web2x&context=3
19:23:41 <tomsmeding> and do the work to pass retain the leftover input buffer from line-buffered mode to pass that to haskeline
19:24:56 <geekosaur> tomsmeding, the reason ghci doesn't is that you can have threads running while the ghci prompt is up and there's no way to stop them from doing I/O
19:25:05 <Inst> do windows hackers have a cladic allergic to Haskell? ;_;
19:25:07 <geekosaur> (shells *can* stop them, they get SIGTTIN)
19:25:09 <mauke> the zsh reverse percent sign is for incomplete output (unterminated line), not input, though
19:25:15 <tomsmeding> geekosaur: lol that's true
19:25:41 tomsmeding thought the same as mauke, fish also does that with a neat ⏎ sign
19:26:57 × rf quits (~rf@142.99.241.246) (Remote host closed the connection)
19:27:20 rf joins (~rf@142.99.241.246)
19:29:08 <tomsmeding> Inst: I suspect that Haskell programmers typically find programming fun (otherwise they'd stay with languages that pay), and such people also typically find tinkering with software fun, and such people typically want a unixy system and not a windows system
19:29:16 <Inst> btw, one thing, thanks for putting up with me, at least, the folks who've been willing to do so, you guys are a great introduction to CS / programming and I wish everyone could have a similar experience, except without the cost involved on your side
19:30:53 <Inst> it's more a newbie thing, I think starting with Haskell is a great way to get into proper CS / programming as a science / art beyond copy pasting button labels
19:31:20 <jade[m]> I like the programming as art concept
19:31:23 <tomsmeding> that's also a path to haskell, but it's one that few people take
19:31:56 <Inst> i.e, tons of beginnesr are on haskell, starting with haskell and leraning full CS that way is better than the alternatives
19:32:10 <Inst> erm, beginners are on Windows
19:32:18 <tomsmeding> I think the number of people that had haskell as their first programming language, where this was not because their uni was radical enough to start with haskell, and that continued learning long enough to get decent at haskell, is very very small
19:32:50 <tomsmeding> that uni side-condition can be removed because I know of only 1 uni that does this, which is Oxford iirc
19:33:04 <sm> Inst 👍️
19:33:08 <tomsmeding> most haskellers already knew programming
19:33:15 <[exa]> nice thing about haskells today is that it makes the learning kinda constructive and rewarding (as opposed to learning which library monkeypatched half of your core libraries to oblivion again, as in one certain other language)
19:33:17 <tomsmeding> but you're right, most of these very small group are on windows
19:34:33 <sm> uh.. maybe. <cough>tools, dependency hell, ghc bugs..</cough>
19:37:30 <EvanR> most haskellers already knew programming and many of them then had to unlearn it and relearn it in the process xD
19:37:43 <__monty__> [exa]: Is this a language that starts with E or R? (Yes, one extra level of indirection to obfuscate a tiny bit more.)
19:40:08 AkechiShiro joins (~licht@user/akechishiro)
19:41:31 <[exa]> __monty__: ...but why would you omit the one that starts with P?
19:42:17 pavonia joins (~user@user/siracusa)
19:44:09 <Inst> on the ruby Discord, besides whinging about their classes with 1000+ methods
19:44:12 <__monty__> Because there are too many of those. And if it's the one I'm thinking of I never ran into such extensive monkeypatching there. I've also only heard things about the others though.
19:44:20 <Inst> there are apparently quite a few devs who started with Haskell
19:44:52 <hololeap> I'm a bit confused on the nuances of compact regions. if I have (s :: Compact Seq) and I use (toList (getCompact s)), will the resulting list be in the compact region?
19:44:58 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
19:45:18 <hololeap> or do I have to run compactAdd on every intermediate value?
19:45:45 × rf quits (~rf@142.99.241.246) (Ping timeout: 240 seconds)
19:46:26 rf joins (~rf@142.99.241.246)
19:46:33 <Inst> https://media.discordapp.net/attachments/280033776820813825/1108983771404959786/image.png?width=2878&height=566
19:47:21 comarrrrrrrrrrrr joins (~comarrrrr@73.237.206.60)
19:54:13 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 256 seconds)
19:55:48 <[exa]> Inst: a fun observation is that e.g. for me there was no way to start with haskell because there was no haskell
19:56:23 shapr joins (~user@76.29.230.19)
19:58:05 <geekosaur> same
19:58:40 <int-e> you could've waited
19:59:44 <geekosaur> lol, try to get a kid to wait a decade…
20:00:32 <int-e> :)
20:02:08 <geekosaur> actually more like a decade and a half, I recall playing in a study room with a TRS-80 in middle school
20:02:29 mapniv parts (~mapniv@user/Mapniv) (Sleepy)
20:04:11 <hololeap> this seems like it would work to take the guessing out and make sure everything is part of the same compacted region: http://sprunge.us/y3yrem
20:11:54 × phma quits (~phma@host-67-44-208-41.hnremote.net) (Read error: Connection reset by peer)
20:12:31 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
20:12:35 × chomwitt quits (~chomwitt@athedsl-351665.home.otenet.gr) (Remote host closed the connection)
20:12:49 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
20:12:57 phma joins (~phma@host-67-44-208-177.hnremote.net)
20:14:45 gmg joins (~user@user/gehmehgeh)
20:14:58 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
20:15:15 Lycurgus joins (~juan@user/Lycurgus)
20:18:53 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 246 seconds)
20:21:02 tessier joins (~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
20:21:29 merijn joins (~merijn@86.86.29.250)
20:22:30 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
20:26:44 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
20:27:39 × mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 256 seconds)
20:32:47 × user____3 quits (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
20:33:36 × spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Client closed)
20:36:52 × trev quits (~trev@user/trev) (Quit: trev)
20:41:18 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
20:48:31 <probie> hololeap: the list itself won't be part of the compact region, but all the elements in this will be
20:48:44 <probie> s/in this/in this list/
20:49:05 <probie> (assuming that they were already in the compact region)
20:51:01 Inst[m] joins (~instrmatr@2001:470:69fc:105::1:903e)
20:51:58 <hololeap> probie, what I'm trying to do is very quickly spin up using a binary-encoded trie from a file, use the trie to search and return the resulting strings, then spin down
20:52:20 <hololeap> (it's for bash completion)
20:52:36 <hololeap> the GC keeps being the biggest bottleneck
20:52:51 <hololeap> I wonder if there's a way to just disable the GC altogether
20:54:04 <hololeap> decoding the trie into a compact region was a 6x speedup compared to just doing it normally
20:55:00 <hololeap> but my .prof file still shows GC being 34.2% time
20:56:09 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 265 seconds)
20:58:01 <probie> hololeap: if you want to "disable GC", you can add the RTS options to disable idle time garbage collection and make the nursery very big and (if needed) manually call performGC in your code
20:58:45 <EvanR> not doing GC at all is probably ineffective for haskell
21:00:26 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:03:06 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
21:04:03 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4) (Remote host closed the connection)
21:04:23 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
21:05:06 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
21:09:08 <Inst> okay, why is it doing that?
21:09:13 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:510d:16a:b9b3:3b4)
21:09:46 <Inst> u <- newMVar id on ghci gives me MVar (GHC.Types.Any -> GHC.Types.Any)
21:10:10 <geekosaur> it has to assign a type but can't
21:10:30 <geekosaur> `Any` is a magical type that is used when ghc can't settle on a type any other way
21:10:34 <Inst> in GHC, does it work?
21:10:54 <Inst> I'm now thinking about porting Objective to STM, but I'd need to learn STM first
21:10:56 <geekosaur> normally you have to use `AllowAmbiguousTypes` to see it
21:11:24 <EvanR> STM is great and not that hard
21:11:27 <geekosaur> but there's a few places where internals let it leak out, like you're seeing with `newMVar`
21:12:16 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
21:12:37 × zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
21:12:53 <Inst> I need to study FRP more, to figure out what Haskell GUI looks like "the right way", but I'm thinking that with this library, if you're using objects, you should be honest you're using objects
21:13:02 euandreh joins (~Thunderbi@189.6.18.7)
21:13:10 <Inst> an ADT that's a record of functions...
21:13:18 <Inst> well, it might not be an object
21:15:59 × vandita quits (~vandit@80-95-69-243.pool.digikabel.hu) (Ping timeout: 240 seconds)
21:17:30 Pickchea joins (~private@user/pickchea)
21:17:31 × rf quits (~rf@142.99.241.246) (Ping timeout: 256 seconds)
21:17:45 vandita joins (~vandit@80-95-69-254.pool.digikabel.hu)
21:19:23 <EvanR> record of functions (or other data) which operate on its own self is the theory-of-objects version of objects
21:19:41 <hololeap> hm, maybe other changes to my program are what accounted for the 6x speedup, because removing the compact region code didn't change anything. also, +RTS -n999999999999 -I0 -RTS seems to slow it down if anything
21:22:24 <EvanR> that's over 9000 cores
21:22:30 rf joins (~rf@142.99.241.246)
21:22:59 <hololeap> wouldn't that be -N9999999999999999
21:23:49 × comarrrrrrrrrrrr quits (~comarrrrr@73.237.206.60) (Remote host closed the connection)
21:23:51 <geekosaur> cores is -N not -n (number of allocation areas; you probably don't want zillions of those)
21:24:41 <geekosaur> you're probably making a lot of tiny areas so ghc has to do a lot of work
21:25:36 <geekosaur> maybe -A64G would help?
21:26:00 <geekosaur> s/ghc has/the RTS has/
21:28:43 <hololeap> yeah lots of tiny branches to encode ~100000 strings into my Trie
21:28:53 <hololeap> data Trie = Bool :< Map Char Trie
21:29:08 <hololeap> the GC is going out of control
21:29:54 × michalz quits (~michalz@185.246.204.73) (Remote host closed the connection)
21:30:31 <hololeap> -A64G blew the stack
21:31:47 <hololeap> it triggered earlyoom
21:32:33 <geekosaur> so you're actually generating a lot of garbage. that sounds like maybe you need some strictness annotations and maybe to clean up how you do your trie construction a bit
21:33:06 zmt00 joins (~zmt00@user/zmt00)
21:33:21 <hololeap> I have the Strict language extension enabled in my Data.Trie module
21:34:06 <geekosaur> that can actually make things worse if used indiscriminately
21:34:31 × rf quits (~rf@142.99.241.246) (Ping timeout: 240 seconds)
21:34:31 <geekosaur> `Strict` does not magically solve problems, it is a tradeoff
21:36:45 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:38:59 <hololeap> geekosaur: if you have any suggestions here, I'd love to hear them: https://github.com/hololeap/hackport/commit/bff9112
21:39:17 <hololeap> this is the area of haskell that I find the most difficult
21:39:34 <hololeap> I would love to get a solid understanding of how to solve this kind of problem
21:39:56 <geekosaur> I'm not real great at it myself
21:40:37 <geekosaur> I just know that people tend to try to bang everything or -XStrict / -XStrictData but you need to use profiling to guide putting them in appropriate spots or you can make things worse instead of better
21:41:46 <hololeap> I have +RTS -hc -pa -RTS on my command line, but knowing how to use the generated files is another story
21:44:22 freeside_ joins (~mengwong@103.252.202.151)
21:45:19 <hololeap> isn't there some *oscope webapp that you can put the json profiler output into? would that be useful here?
21:46:23 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 246 seconds)
21:46:52 <geekosaur> probably but I don't know enough about that 😞
21:47:39 ctearrrrrrrrrrrr joins (~ctearrrrr@73.237.206.60)
21:48:47 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
21:49:59 × shapr quits (~user@76.29.230.19) (Ping timeout: 240 seconds)
21:51:25 nate2 joins (~nate@98.45.169.16)
21:53:37 foul_owl joins (~kerry@71.212.137.212)
21:54:25 user____3 joins (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de)
21:55:59 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 264 seconds)
21:56:05 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
21:56:25 motherfsck joins (~motherfsc@user/motherfsck)
21:57:32 × tessier quits (~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Ping timeout: 265 seconds)
22:00:06 <EvanR> hololeap, have you looked at bytestring-trie
22:01:54 <hololeap> no, not yet
22:02:25 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
22:04:25 <geekosaur> but he's feeding it from cabal data that all uses String
22:06:40 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:12:18 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
22:12:47 × user____3 quits (~user@dynamic-046-114-177-008.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
22:17:26 falafel joins (~falafel@2603-8000-d700-115c-e4af-b9a0-55a4-148f.res6.spectrum.com)
22:17:39 motherfsck joins (~motherfsc@user/motherfsck)
22:26:46 × evincar quits (~evincar@user/evincar) (Ping timeout: 268 seconds)
22:31:05 freeside_ joins (~mengwong@103.252.202.151)
22:32:50 zer0bitz joins (~zer0bitz@user/zer0bitz)
22:34:08 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Ping timeout: 248 seconds)
22:34:37 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
22:35:43 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 256 seconds)
22:37:55 evincar joins (~evincar@user/evincar)
22:39:14 × acidjnk quits (~acidjnk@p200300d6e7072f02cde83c9df9d46ae6.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:39:46 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:40:02 × zeenk quits (~zeenk@2a02:2f04:a105:f00::fba) (Quit: Konversation terminated!)
22:40:08 gptke joins (~gptke@138.84.54.255)
22:41:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
22:42:38 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) (Remote host closed the connection)
22:42:57 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf)
22:43:15 × zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
22:43:42 <gptke> Malcolm in the Middle Season 8 Episodes 1 and 2: 2. Reese Wilkerson Teams with Canadian Mountie Secret Agents to Trap and Torture Pedophile Tom Cruise https://justpaste.it/Tom_Cruise_BDSM_Tortured_Reese 1. Reese meets Edna Skilton, Fills Her Pussy with Shit, and Fucks that poopy cooter! https://justpaste.it/Reese_Fucks_Edna_Skilton_Malcolm
22:43:56 ChanServ sets mode +o geekosaur
22:44:05 geekosaur sets mode +b *!*@138.84.54.255
22:44:05 gptke is kicked by geekosaur (gptke)
22:44:21 geekosaur sets mode -o geekosaur
22:44:36 zmt00 joins (~zmt00@user/zmt00)
22:46:54 spatchkaa parts (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) ()
22:47:03 <jade[m]> what the actual fuck
22:47:39 <geekosaur> the latest style of IRC spam, the links probably are to recent chrome and firefox exploits
22:49:10 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
22:58:13 <probie> Two links this time
23:08:42 × vandita quits (~vandit@80-95-69-254.pool.digikabel.hu) (Ping timeout: 268 seconds)
23:08:46 <geekosaur> yeh. seems to always be to justpaste.it too
23:09:58 vandita joins (~vandit@84-236-10-12.pool.digikabel.hu)
23:11:23 <DigitalKiwi> "fun" fact one of my favorite paste sites is dpaste.com and dpaste.org and dpaste.com is blocked by malwarebytes plugin for trojan and justpaste.in is not lol
23:12:09 × xameer quits (~xameer@144.48.224.179) (Remote host closed the connection)
23:13:04 xameer joins (~xameer@144.48.224.179)
23:13:28 <jade[m]> it's gonna get really fun now because google introduced a .zip TLD
23:13:49 <jade[m]> surely noone is gonna maliciously use that for malware
23:14:22 theesm joins (2cbdf4b38a@2604:bf00:561:2000::11c8)
23:14:34 <jade[m]> (that sentence barely made any sense - malware is malicious by definition - but I suppose you understand what I mean
23:14:41 freeside_ joins (~mengwong@103.252.202.151)
23:15:31 <DigitalKiwi> i got an email the other day that had a bank statement "pdf" that had an .exe extension if tried to download lol
23:17:55 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
23:19:57 spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net)
23:20:05 × freeside_ quits (~mengwong@103.252.202.151) (Ping timeout: 240 seconds)
23:20:57 <DigitalKiwi> https://www.dropbox.com/s/g66q0akd2sdcfzo/Screenshot%202023-05-19%2018.20.11.png?dl=0
23:21:25 <DigitalKiwi> nice try but my store never left demo mode and got deleted anyway
23:24:42 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:27:04 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
23:31:52 mauke_ joins (~mauke@user/mauke)
23:32:23 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
23:33:01 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 240 seconds)
23:33:31 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
23:33:31 mauke_ is now known as mauke
23:37:32 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:43:27 euandreh joins (~Thunderbi@189.6.18.7)
23:55:28 freeside_ joins (~mengwong@103.252.202.151)

All times are in UTC on 2023-05-19.