Home liberachat/#haskell: Logs Calendar

Logs on 2021-10-26 (liberachat/#haskell)

00:01:45 whatif joins (~xxx@47.245.54.240)
00:02:38 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
00:04:16 × haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.7.2+deb3 - https://znc.in)
00:04:21 random-jellyfish joins (~random-je@user/random-jellyfish)
00:05:27 × xff0x quits (~xff0x@2001:1a81:538f:ce00:2234:349c:dfdf:94b7) (Ping timeout: 260 seconds)
00:06:19 xff0x joins (~xff0x@2001:1a81:538f:ce00:64fa:cdd8:de80:1300)
00:08:59 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
00:09:07 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
00:10:43 Feuermagier joins (~Feuermagi@user/feuermagier)
00:11:14 × Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection)
00:11:31 Feuermagier joins (~Feuermagi@user/feuermagier)
00:12:45 whatif joins (~xxx@47.245.54.240)
00:13:38 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
00:14:13 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
00:17:03 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
00:17:41 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 244 seconds)
00:18:22 Lord_of_Life_ is now known as Lord_of_Life
00:18:52 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
00:19:04 × Firedancer quits (sid336191@hampstead.irccloud.com) (Ping timeout: 265 seconds)
00:19:39 <mmhat> -quit
00:19:43 × mmhat quits (~mmh@55d48723.access.ecotel.net) (Quit: WeeChat 3.3)
00:21:05 <Axman6> is negative quit join?
00:21:59 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
00:23:03 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Remote host closed the connection)
00:23:46 whatif joins (~xxx@47.245.54.240)
00:23:46 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
00:24:08 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
00:24:38 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
00:24:45 × euandreh quits (~euandreh@2804:14c:33:9fe5:b9d3:55ff:4c84:c8cf) (Ping timeout: 260 seconds)
00:25:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
00:26:30 ChaiTRex joins (~ChaiTRex@user/chaitrex)
00:29:27 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
00:30:34 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
00:32:53 <ski> i'd've expected negative part to be that
00:33:07 kilolympus joins (~kilolympu@185.65.135.177)
00:34:46 whatif joins (~xxx@47.245.54.240)
00:35:38 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
00:45:45 whatif joins (~xxx@47.245.54.240)
00:46:39 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
00:50:43 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
00:56:45 whatif joins (~xxx@47.245.54.240)
00:57:39 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:01:12 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
01:07:46 whatif joins (~xxx@47.245.54.240)
01:08:40 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:12:42 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:14:58 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
01:15:06 Deide_ joins (~Deide@217.155.19.23)
01:16:25 lavaman joins (~lavaman@98.38.249.169)
01:16:51 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
01:17:16 × Deide_ quits (~Deide@217.155.19.23) (Changing host)
01:17:16 Deide_ joins (~Deide@user/deide)
01:17:31 Deide_ is now known as Deidde
01:18:46 whatif joins (~xxx@47.245.54.240)
01:18:49 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:40 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:20:52 × juand quits (~a@p200300ef973db1624086f0a6a24fc4dd.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
01:20:54 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
01:24:38 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:28:54 × Deidde quits (~Deide@user/deide) (Quit: Seeee yaaaa)
01:29:46 whatif joins (~xxx@47.245.54.240)
01:30:40 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:31:24 img joins (~img@user/img)
01:40:47 whatif joins (~xxx@47.245.54.240)
01:41:40 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:41:51 <hololeap> maerwald: wait, setting it globally actually seems like a good idea...
01:42:54 <hololeap> export GHCRTS="-N4"
01:42:59 × tommd quits (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds)
01:43:15 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
01:44:47 <hololeap> what's wrong with that?
01:46:30 × aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Read error: Connection reset by peer)
01:46:54 lavaman joins (~lavaman@98.38.249.169)
01:47:00 aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net)
01:47:39 × xff0x quits (~xff0x@2001:1a81:538f:ce00:64fa:cdd8:de80:1300) (Ping timeout: 260 seconds)
01:49:30 xff0x joins (~xff0x@2001:1a81:53d3:900:a88e:53f:98a9:8a85)
01:51:14 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
01:51:48 whatif joins (~xxx@47.245.54.240)
01:52:12 × ArtVandelayer quits (~ArtVandel@ip174-68-147-20.lv.lv.cox.net) (Quit: Leaving)
01:52:34 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
01:52:34 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
01:52:41 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
01:53:13 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
01:58:07 × deni quits (~deni@user/deni) (Quit: bye...)
01:58:18 deni_ joins (~deni@user/deni)
02:02:47 whatif joins (~xxx@47.245.54.240)
02:03:41 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:03:46 × alx741 quits (~alx741@181.196.69.72) (Quit: alx741)
02:09:51 × mvk quits (~mvk@2607:fea8:5cc1:300::4a62) (Quit: Konversation terminated!)
02:13:49 whatif joins (~xxx@47.245.54.240)
02:14:41 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:17:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
02:20:17 mvk joins (~mvk@2607:fea8:5cc1:300::d3fb)
02:24:49 whatif joins (~xxx@47.245.54.240)
02:25:42 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:25:43 <Cajun> if you dont compile with -threaded and -rtsopts i believe that would throw an error, and using the threaded GC is bound to lead to lower performance in single-threaded programs
02:26:25 <Cajun> but exporting something for quick access to the many options for debugging/profiling doesnt seem like a terrible idea
02:28:12 euandreh joins (~euandreh@2804:14c:33:9fe5:fa59:2f99:edd:cd7b)
02:30:42 × jespada quits (~jespada@181.28.253.200) (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:35:49 whatif joins (~xxx@47.245.54.240)
02:36:08 × td_ quits (~td@94.134.91.68) (Ping timeout: 244 seconds)
02:36:42 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:38:18 td_ joins (~td@94.134.91.24)
02:38:54 × Player001 quits (~Player001@user/player001) (Quit: Quitting)
02:39:00 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds)
02:41:26 hyiltiz joins (~quassel@31.220.5.250)
02:41:47 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds)
02:42:11 jkaye joins (~jkaye@2601:281:8300:7530:8985:f1bc:4422:2d97)
02:43:11 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:43:34 <Boarders> I am trying to use the tool stan but am unsure of how to add a rule that will exclude a particular inspection-id, do any of you know how to do that?
02:44:07 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
02:46:48 whatif joins (~xxx@47.245.54.240)
02:47:42 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:55:38 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:55:38 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
02:55:38 wroathe joins (~wroathe@user/wroathe)
02:57:50 whatif joins (~xxx@47.245.54.240)
02:58:22 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.3)
02:58:43 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
02:59:54 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
03:00:07 econo joins (uid147250@user/econo)
03:01:29 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
03:02:53 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:08:49 whatif joins (~xxx@47.245.54.240)
03:09:37 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
03:09:43 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
03:11:16 × machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 244 seconds)
03:14:27 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 260 seconds)
03:19:50 whatif joins (~xxx@47.245.54.240)
03:20:43 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
03:24:37 mbuf joins (~Shakthi@27.58.130.187)
03:27:04 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds)
03:29:23 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
03:30:50 whatif joins (~xxx@47.245.54.240)
03:31:44 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
03:31:46 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
03:32:30 hyiltiz joins (~quassel@31.220.5.250)
03:32:38 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
03:33:09 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Remote host closed the connection)
03:35:02 safinaskar joins (~safinaska@109.252.90.153)
03:35:43 <safinaskar> how to statically build C program with curl on nix os?
03:36:11 <safinaskar> (yes, this question is unrelated to haskell, but unfortunately people in #nixos keep silence, so i ask here)
03:36:28 <safinaskar> i want whole binary to be static
03:37:58 ceedon joins (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net)
03:38:47 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
03:41:39 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
03:41:51 whatif joins (~xxx@47.245.54.240)
03:42:11 × jkaye quits (~jkaye@2601:281:8300:7530:8985:f1bc:4422:2d97) (Ping timeout: 245 seconds)
03:42:44 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
03:42:52 × ceedon quits (~ceedon@172-11-250-42.lightspeed.tukrga.sbcglobal.net) (Remote host closed the connection)
03:46:35 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 260 seconds)
03:51:42 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
03:52:43 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
03:52:51 whatif joins (~xxx@47.245.54.240)
03:53:28 × zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving)
03:53:44 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
03:54:48 zaquest joins (~notzaques@5.128.210.178)
03:56:18 × dermato quits (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Ping timeout: 260 seconds)
03:56:34 × segfaultfizzbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Ping timeout: 265 seconds)
03:57:51 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
03:58:05 dermato joins (~dermatobr@cpe-70-114-219-76.austin.res.rr.com)
03:59:08 tommd joins (~tommd@75-164-130-101.ptld.qwest.net)
04:02:47 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 264 seconds)
04:03:51 whatif joins (~xxx@47.245.54.240)
04:04:45 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
04:07:39 × cjb quits (~cjbayliss@user/cjb) ()
04:10:44 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
04:12:07 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
04:14:51 whatif joins (~xxx@47.245.54.240)
04:15:35 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
04:15:45 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
04:19:41 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 245 seconds)
04:25:51 whatif joins (~xxx@47.245.54.240)
04:26:45 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
04:27:02 <Axman6> jackdk: you know nix, any ideas about ^ ?
04:28:44 <jackdk> yeah, #nixos moved to matrix, I have a call in 90 seconds, will think more after. What's the C program linking against? just libcurl?
04:36:51 whatif joins (~xxx@47.245.54.240)
04:37:45 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
04:46:11 zebrag joins (~chris@user/zebrag)
04:46:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
04:47:52 whatif joins (~xxx@47.245.54.240)
04:48:46 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
04:50:31 phma_ joins (~phma@host-67-44-208-12.hnremote.net)
04:51:43 × phma quits (~phma@host-67-44-208-220.hnremote.net) (Read error: Connection reset by peer)
04:55:43 × mbuf quits (~Shakthi@27.58.130.187) (Ping timeout: 260 seconds)
04:55:44 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
04:56:15 MQ-17J joins (~MQ-17J@8.21.10.17)
04:58:53 whatif joins (~xxx@47.245.54.240)
04:59:46 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:00:41 <Inst> can someone help me understand what's going on with function composition?
05:01:01 × jinsun quits (~quassel@user/jinsun) (Read error: Connection reset by peer)
05:01:17 jinsun joins (~quassel@user/jinsun)
05:02:03 <Inst> dropLast :: [a0] -> [a0]
05:02:04 <Inst> dropLast [] = []
05:02:04 <Inst> dropLast l = (reverse. reverse . init) l
05:02:10 <Inst> sorry
05:02:14 <Inst> https://pastebin.com/Eg4M2W4z
05:02:17 <Inst> this works correctly
05:02:26 <Inst> but it shouldn't, right?
05:02:47 <Inst> my HLS is telling me it's wrong, that the reverse is superfluous
05:02:49 <int-e> > (reverse . reverse . init) "abc"
05:02:51 <lambdabot> "ab"
05:02:58 <int-e> > init "abc"
05:02:59 <lambdabot> "ab"
05:03:02 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
05:03:06 <Inst> oh, i see
05:03:17 <Inst> i'm an idiot
05:08:15 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 260 seconds)
05:09:34 mbuf joins (~Shakthi@122.174.49.59)
05:09:53 whatif joins (~xxx@47.245.54.240)
05:10:12 × MQ-17J quits (~MQ-17J@8.21.10.17) (Ping timeout: 260 seconds)
05:10:46 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:12:18 MQ-17J joins (~MQ-17J@8.6.144.197)
05:12:43 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
05:15:43 segfaultfizzbuzz joins (~segfaultf@135-180-0-138.static.sonic.net)
05:16:30 × segfaultfizzbuzz quits (~segfaultf@135-180-0-138.static.sonic.net) (Client Quit)
05:19:31 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
05:20:53 whatif joins (~xxx@47.245.54.240)
05:21:26 <sm> hls doesn't like to say that :)
05:21:46 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:22:38 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
05:24:39 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
05:25:20 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:31:54 whatif joins (~xxx@47.245.54.240)
05:32:05 <Axman6> but sometimes it should
05:32:47 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:35:24 <sm> "Inst! cut it out!"
05:35:39 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
05:35:39 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
05:35:39 wroathe joins (~wroathe@user/wroathe)
05:36:57 <Axman6> "For real bro? Did you seriously just write that?"
05:37:12 <Inst> i mistook init for tail
05:37:15 <Inst> so it worked in that context
05:37:48 <jneira[m]> well hls only let hlint make kind suggestions :-P
05:37:51 <Axman6> so you actually wanted reverse . tail . reverse
05:37:56 <Axman6> which is what init does
05:38:50 <Axman6> but much more efficiently
05:40:22 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 260 seconds)
05:42:06 <Inst> it was an exercise ;_;
05:42:16 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
05:42:19 <Inst> i got confused and had init' that was really tail
05:42:37 <Axman6> heh - nice work writing O(n) tail :P
05:42:51 <Axman6> and possibly non-terminating tail
05:42:54 whatif joins (~xxx@47.245.54.240)
05:43:47 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:46:05 <Inst> probably, it's a lazy piece
05:46:09 <Inst> just have 5 more exercises to go
05:47:11 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Ping timeout: 264 seconds)
05:47:18 <Axman6> You can do it!
05:47:59 <Axman6> Feel free to ask for feedback (if this is homework let us know because we can't just give you answers in that case - and if it is homework, there's a very good chance your lecturer is in here :)
05:48:37 <Inst> not at cambridge or anywhere that might use John Whitington's textbook
05:49:24 <Inst> man why am i so lazy these days
05:50:08 <Inst> bleh, the question requires that i use elem to create a function that removes all duplicate items in a list
05:50:32 <Inst> otherwise i'd go look up how to remove length 2 of a list comprehension nested in a list comprehension
05:52:52 <Inst> there's also full solutions at the end of the book, so it doesn't matter
05:53:53 whatif joins (~xxx@47.245.54.240)
05:54:47 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
05:54:50 haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220)
05:54:50 × haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host)
05:54:50 haritz joins (~hrtz@user/haritz)
05:55:10 × safinaskar quits (~safinaska@109.252.90.153) (Ping timeout: 256 seconds)
05:59:24 dyeplexer joins (~dyeplexer@user/dyeplexer)
06:04:54 whatif joins (~xxx@47.245.54.240)
06:05:47 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
06:05:58 mei joins (~mei@user/mei)
06:11:40 haskell-noob joins (~haskell-n@176-93-247-194.bb.dnainternet.fi)
06:12:53 <haskell-noob> hey - i'm trying to understand my veery first line of haskell code, but i'm not sure what it does: print(sum $ map (\x -> length $ filter ((==0) . (`rem` x)) [1 .. 65535] ) [1 .. 65535])
06:13:57 <haskell-noob> could anyone enlighten me?
06:14:26 × Cajun quits (~Cajun@user/cajun) (Ping timeout: 256 seconds)
06:15:55 whatif joins (~xxx@47.245.54.240)
06:16:48 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
06:17:17 lortabac joins (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr)
06:17:20 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
06:17:53 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a193:fe09:637c:a86c) (Remote host closed the connection)
06:17:58 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
06:18:01 <pavonia> haskell-noob: Do you know what the individual functions do?
06:18:16 <haskell-noob> yeah, i do
06:18:19 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
06:18:38 <Axman6> maybe start by using a let statement to give names to each of the parts
06:19:06 <haskell-noob> this isn't my code -- i'm just trying to understand it
06:19:10 <Axman6> not that I've said that, I'm not sure where to start XD
06:20:01 <Axman6> now*
06:23:09 <Axman6> let countFactors x = length (filter (\d -> d `rem` x == 0) [1..65536]) in print (sum $ map countFators [1..65535])
06:23:17 <Axman6> roughly
06:24:46 <haskell-noob> so would the countFactors return all integers 1 to 65535 where the integer is divisible by x?
06:25:54 <Axman6> it counts how many numbers are factors of the given number below 65536, it doesn't return them
06:26:11 <Axman6> but filter (\d -> d `rem` x == 0) [1..65536] does
06:26:15 <haskell-noob> ahhh
06:26:16 <haskell-noob> right of course
06:26:19 <haskell-noob> that makes sense
06:26:20 <Axman6> factorsOf x = filter (\d -> d `rem` x == 0) [1..65536]
06:26:40 <Axman6> (with the assumption that x is less than 65536
06:26:53 kenran joins (~kenran@b2b-37-24-119-190.unitymedia.biz)
06:26:55 whatif joins (~xxx@47.245.54.240)
06:27:00 <Axman6> I probably messed up using 65536 instead of 65535 - habits die hard
06:27:07 <haskell-noob> so the entire thing calculates the sum of how many factors each integer in the range [1 .. 65535] has
06:27:48 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
06:28:16 × ubert quits (~Thunderbi@178.115.41.93.wireless.dyn.drei.com) (Remote host closed the connection)
06:29:33 × brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Quit: Leaving)
06:30:04 <Inst> in a guard specified by (x:xs), how do I set a pattern match for the empty set?
06:33:53 d0ku joins (~d0ku@178.43.15.137.ipv4.supernova.orange.pl)
06:34:42 × haskell-noob quits (~haskell-n@176-93-247-194.bb.dnainternet.fi) (Quit: Client closed)
06:37:42 fendor joins (~fendor@178.115.73.9.wireless.dyn.drei.com)
06:37:45 <[exa]> Inst: what does "in a guard specified by (x:xs)" mean precisely? (can you pastebin a tiny bit of code?)
06:37:54 whatif joins (~xxx@47.245.54.240)
06:38:01 <[exa]> (guards are usually specified by boolean conditions)
06:38:27 <Inst> https://pastebin.com/3zQdNxT8
06:38:38 <Inst> with (x:xs) as an argument
06:38:48 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
06:38:53 <[exa]> ah so. (x:xs) can't be of length 0
06:39:14 <Inst> so I just switch (x:xs) out to x, no?
06:39:16 <pavonia> @src length
06:39:16 <lambdabot> Source not found. Do you think like you type?
06:39:19 <[exa]> in particular, `makeSet` doesn't support empty list, because you always require the first element by patternmatching (x:xs)
06:39:21 <pavonia> :<
06:39:41 <[exa]> Inst: you can easily make another version for `makeSet [] = ` below that
06:41:18 <Inst> thanks
06:41:31 <[exa]> btw there's a way to patternmatch in guards, which could allow you to match both [] and (x:xs) variants in there (google "pattern guards") but I guess the above variant will be nicer
06:41:41 <Inst> still ugly, but i hate pure pattern matching
06:42:19 <Inst> i also discovered i hate this textbook and hutton's is better, but if I don't finish it I'm just going to keep on switching from textbook to textbook until I've read the entirety of haskell literature targeted at non-programmers
06:43:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
06:43:21 <[exa]> Inst: re "pure pattern matching" -- why hate it? (the multiple definitions style?)
06:43:30 <Inst> having to type the function over and over again
06:43:33 <Inst> it's a nice tool when you need it
06:44:21 <Inst> and in Haskell, is there a way to say c == (2 || 3)?
06:45:24 <Inst> thanks for the help, [exa]
06:45:32 <lortabac> Inst: pattern-matching does not require typing the function name over and over again
06:45:47 <lortabac> you can use "case"
06:46:20 <lortabac> the syntax with the repeated function name is just syntactic sugar, it's useful when you want to match on multiple arguments at once
06:46:39 <[exa]> Inst: I guess || isn't the boolean OR, ie. the condition doesn't reduce to c==True right?
06:46:55 <[exa]> Inst: in that case ' c `elem` [2,3] ' would work
06:47:18 <[exa]> also yeah +1 for `case`
06:47:35 <Inst> i see
06:48:22 <Inst> it's intended as a boolean or, i.e, ways to stuff things on one line and so on
06:48:55 whatif joins (~xxx@47.245.54.240)
06:49:49 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
06:51:42 × hololeap quits (~hololeap@user/hololeap) (Remote host closed the connection)
06:53:56 hololeap joins (~hololeap@user/hololeap)
06:54:13 artemis joins (~artemis@94-212-96-168.cable.dynamic.v4.ziggo.nl)
06:54:15 chele joins (~chele@user/chele)
06:59:22 <Axman6> case xs of [] -> doAThing; (y:ys) | x `elem [2,3] -> doThingsFor2And3 | otherwise -> doOtherThings
06:59:55 whatif joins (~xxx@47.245.54.240)
07:00:49 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:01:42 gehmehgeh joins (~user@user/gehmehgeh)
07:03:24 mc47 joins (~mc47@xmonad/TheMC47)
07:04:11 ubert joins (~Thunderbi@178.115.41.93.wireless.dyn.drei.com)
07:05:36 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:07:35 phma_ is now known as phma
07:08:51 jonathanx_ joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
07:09:39 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 260 seconds)
07:10:02 × artemis quits (~artemis@94-212-96-168.cable.dynamic.v4.ziggo.nl) (Changing host)
07:10:02 artemis joins (~artemis@user/artemis)
07:10:56 whatif joins (~xxx@47.245.54.240)
07:11:34 × artemis quits (~artemis@user/artemis) (Quit: artemis)
07:11:49 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:11:51 artemis joins (~artemis@user/artemis)
07:16:40 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
07:17:08 <jackdk> @help tell
07:17:08 <lambdabot> tell <nick> <message>. When <nick> shows activity, tell them <message>.
07:17:23 <jackdk> tell safinaskar https://git.sr.ht/~jack/curl-nix-sample
07:17:36 <jackdk> @tell safinaskar https://git.sr.ht/~jack/curl-nix-sample
07:17:36 <lambdabot> Consider it noted.
07:18:17 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
07:18:28 <jackdk> Axman6: stop nerd sniping me
07:19:34 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
07:19:37 cheater1__ joins (~Username@user/cheater)
07:19:40 cheater1__ is now known as cheater
07:20:18 × ubert quits (~Thunderbi@178.115.41.93.wireless.dyn.drei.com) (Quit: ubert)
07:21:56 whatif joins (~xxx@47.245.54.240)
07:22:36 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 245 seconds)
07:22:50 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:23:41 michalz joins (~michalz@185.246.204.125)
07:24:19 × artemis quits (~artemis@user/artemis) (Quit: artemis)
07:24:54 artemis joins (~artemis@user/artemis)
07:25:20 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
07:25:50 × mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 260 seconds)
07:27:34 mc47 joins (~mc47@xmonad/TheMC47)
07:28:05 acidjnk_new3 joins (~acidjnk@p200300d0c7161c6868001932eceb2d10.dip0.t-ipconnect.de)
07:29:27 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
07:30:14 <timCF> Hello I do have a problem. Problem are hundreds of types generated from Google Protobuf API schema, which do have a lot of ByteString fields which are looking ugly in case I'm trying to log them using Show. I'd prefer ByteString to look just like array of bytes (Int8) or at least as normal hex string. Is there any easy solution except doing my own GHC.Generics based Show class (to not implement it for any
07:30:20 <timCF> single of hundreds types)?
07:30:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:32:54 Midjak joins (~Midjak@82-65-111-221.subs.proxad.net)
07:32:57 whatif joins (~xxx@47.245.54.240)
07:33:50 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:33:57 martin02 joins (~silas@emasq.stusta.mhn.de)
07:34:10 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:34:14 ubert joins (~Thunderbi@178.115.41.93.wireless.dyn.drei.com)
07:35:00 <[exa]> timCF: I guess the solution with Generics isn't bad, given it's only for showing the stuff to the user
07:35:27 <[exa]> normally you'd need to rewrite the Show instance for ByteString which is not adviseable I'd say
07:36:52 <[exa]> notably, `generic-pretty` is pretty good
07:37:22 <[exa]> and you can easily inject a specialized ByteString handling there
07:42:14 jgeerds joins (~jgeerds@55d40de2.access.ecotel.net)
07:43:57 whatif joins (~xxx@47.245.54.240)
07:44:50 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:45:14 mcglk_ joins (~mcglk@131.191.49.120)
07:46:35 kuribas joins (~user@ptr-25vy0i7odq84g8auwpp.18120a2.ip6.access.telenet.be)
07:48:14 × mcglk quits (~mcglk@131.191.49.120) (Ping timeout: 260 seconds)
07:50:22 wonko joins (~wjc@62.115.229.50)
07:54:58 whatif joins (~xxx@47.245.54.240)
07:55:51 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
07:57:42 cfricke joins (~cfricke@user/cfricke)
07:58:45 sydo joins (~sydo@99-100-247-254.lightspeed.okcbok.sbcglobal.net)
07:59:57 × sydo quits (~sydo@99-100-247-254.lightspeed.okcbok.sbcglobal.net) (Client Quit)
08:00:23 × mvk quits (~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 264 seconds)
08:02:11 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
08:05:49 hendursa1 joins (~weechat@user/hendursaga)
08:05:57 whatif joins (~xxx@47.245.54.240)
08:06:12 lavaman joins (~lavaman@98.38.249.169)
08:06:51 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
08:07:02 <timCF> [exa]: thanks!
08:08:39 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:10:48 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
08:14:25 jumper149 joins (~jumper149@80.240.31.34)
08:15:05 × timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
08:16:58 whatif joins (~xxx@47.245.54.240)
08:16:58 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer)
08:17:33 geekosaur joins (~geekosaur@xmonad/geekosaur)
08:17:51 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
08:20:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:27:13 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
08:27:58 whatif joins (~xxx@47.245.54.240)
08:28:24 spruit11 joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
08:28:52 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
08:32:43 × spruit11 quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Client Quit)
08:33:41 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
08:36:56 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Client Quit)
08:37:14 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
08:38:58 whatif joins (~xxx@47.245.54.240)
08:39:52 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
08:41:18 × sprout quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Client Quit)
08:42:30 egelbot joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
08:44:20 × egelbot quits (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b) (Client Quit)
08:45:12 sprout joins (~quassel@2a02:a467:ccd6:1:e876:dcb:76b1:818b)
08:45:41 CiaoSen joins (~Jura@p5dcc1a24.dip0.t-ipconnect.de)
08:49:58 whatif joins (~xxx@47.245.54.240)
08:50:52 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
08:57:00 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
08:58:18 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 265 seconds)
08:58:33 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
08:59:52 __monty__ joins (~toonn@user/toonn)
09:00:59 whatif joins (~xxx@47.245.54.240)
09:01:52 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:03:51 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
09:05:50 hyiltiz joins (~quassel@31.220.5.250)
09:07:27 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
09:12:00 whatif joins (~xxx@47.245.54.240)
09:12:53 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:14:36 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
09:18:31 × hendursa1 quits (~weechat@user/hendursaga) (Remote host closed the connection)
09:20:22 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
09:21:12 ubert1 joins (~Thunderbi@178.115.41.93.wireless.dyn.drei.com)
09:22:56 hendursa1 joins (~weechat@user/hendursaga)
09:22:59 whatif joins (~xxx@47.245.54.240)
09:23:53 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:24:56 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 258 seconds)
09:26:12 dschrempf joins (~dominik@2a01-036d-0118-8903-12a2-bff4-2c40-bb21.pool6.digikabel.hu)
09:26:12 × ubert quits (~Thunderbi@178.115.41.93.wireless.dyn.drei.com) (Quit: ubert)
09:26:13 ubert1 is now known as ubert
09:33:53 fendor_ joins (~fendor@77.119.200.17.wireless.dyn.drei.com)
09:33:59 whatif joins (~xxx@47.245.54.240)
09:34:53 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:36:21 × fendor quits (~fendor@178.115.73.9.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
09:39:30 × srk quits (~sorki@user/srk) (Ping timeout: 260 seconds)
09:44:42 <jonathanx_> Is there a way to automatically fix --pedantic errors? Like redundant imports/language pragmas?
09:45:00 whatif joins (~xxx@47.245.54.240)
09:45:20 × tommd quits (~tommd@75-164-130-101.ptld.qwest.net) (Ping timeout: 260 seconds)
09:45:22 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Ping timeout: 260 seconds)
09:45:51 <jonathanx_> I'm on vscode :)
09:45:53 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:47:26 fendor_ is now known as fendor
09:48:06 <fendor> jonathanx_, while not completely automatic, you can at least in each file click the code-action "remove redundant imports"
09:49:23 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
09:50:05 × teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 2.3)
09:52:45 sprout is now known as egelbot
09:55:02 egelbot is now known as sprout
09:55:58 srk joins (~sorki@user/srk)
09:56:00 whatif joins (~xxx@47.245.54.240)
09:56:54 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
09:58:13 × dextaa quits (~DV@user/dextaa) (Quit: Ping timeout (120 seconds))
09:58:35 dextaa joins (~DV@user/dextaa)
09:59:48 dyeplexer joins (~dyeplexer@user/dyeplexer)
10:02:09 evocatus joins (~evocatus@84.51.113.13)
10:07:00 whatif joins (~xxx@47.245.54.240)
10:07:54 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
10:08:03 robosexual joins (~spaceoyst@88.85.216.62)
10:10:34 rond_ joins (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438)
10:10:53 echoSMILE joins (~echoSMILE@user/echosmile)
10:12:08 × dsrt^ quits (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Ping timeout: 260 seconds)
10:13:09 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
10:13:34 × wonko quits (~wjc@62.115.229.50) (Quit: See You Space Cowboy..)
10:17:28 × ubert quits (~Thunderbi@178.115.41.93.wireless.dyn.drei.com) (Remote host closed the connection)
10:17:34 chomwitt joins (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374)
10:18:00 whatif joins (~xxx@47.245.54.240)
10:18:39 × dschrempf quits (~dominik@2a01-036d-0118-8903-12a2-bff4-2c40-bb21.pool6.digikabel.hu) (Ping timeout: 260 seconds)
10:18:54 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
10:19:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:20:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:24:12 wonko joins (~wjc@62.115.229.50)
10:25:31 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
10:26:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:28:55 × CiaoSen quits (~Jura@p5dcc1a24.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
10:29:02 whatif joins (~xxx@47.245.54.240)
10:29:55 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
10:32:00 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:32:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:35:55 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 260 seconds)
10:36:07 wonko joins (~wjc@62.115.229.50)
10:36:43 Pickchea joins (~private@user/pickchea)
10:37:28 timCF joins (~timCF@200-149-20-81.sta.estpak.ee)
10:37:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 258 seconds)
10:38:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:39:13 <timCF> I'm trying to derive Generic for `newtype Vout = Vout Word32` but there is no Generic instance for Word32 (which seems pretty basic type) - is that expected and why?
10:39:36 jespada joins (~jespada@181.28.253.200)
10:40:02 whatif joins (~xxx@47.245.54.240)
10:40:55 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
10:42:10 dsrt^ joins (~dsrt@wsip-68-227-92-38.mc.at.cox.net)
10:43:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
10:44:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:44:23 <dminuoso> % data F = F Word32 deriving Generic -- timCF
10:44:24 <yahb> dminuoso:
10:44:39 <dminuoso> Please share your code and the error message you are getting.
10:45:37 <dminuoso> Oh wait
10:45:56 <dminuoso> % newtype F = F Word32 deriving Generic -- timCF
10:45:56 <yahb> dminuoso:
10:46:00 <dminuoso> There this is the correct example.
10:46:42 <timCF> dminuoso: I'm usually using `deriving newtype` strategy. Strange it's not working.
10:47:48 <dminuoso> timCF: Of course that wouldn't work.
10:48:05 <timCF> dminuoso: the same example but with `deriving newtype` gives error `No instance for (Generic Word32)`
10:48:15 <dminuoso> timCF: GND uses coerce to pierce the newtype and give you the underlying instance instead.
10:48:25 <dminuoso> But Word32 doesnt have a Generic representation, because its a builtin/primitive type.
10:49:27 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:49:31 <timCF> dminuoso: Got it, thanks! Do you know, can I still use `deriving newtype` for other classes, but use `deriving stock` for Generic?
10:49:45 <timCF> Somehow in one expression
10:49:52 <dminuoso> timCF: You can use it for any class you want in general, even Generic.
10:49:59 <dminuoso> In one expression?
10:50:05 <dminuoso> These are not expressions, gramatically
10:50:10 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:50:14 <timCF> yes, without standalone instance syntax
10:50:16 <dminuoso> timCF: You can use DerivingStrategies to specify multiple ones.
10:51:01 whatif joins (~xxx@47.245.54.240)
10:51:08 <timCF> dminuoso: wow, that's cool extension! Thanks!
10:51:13 <dminuoso> % newtype F = F Word deriving stock Generic deriving newtype Num
10:51:13 <yahb> dminuoso:
10:51:55 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
10:51:55 Cajun joins (~Cajun@user/cajun)
10:54:42 × wonko quits (~wjc@62.115.229.50) (Quit: See You Space Cowboy..)
10:55:55 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:56:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:58:43 dschrempf joins (~dominik@2a01-036d-0118-8903-ec67-76f1-f11d-71a6.pool6.digikabel.hu)
10:59:57 wonko joins (~wjc@62.115.229.50)
11:00:53 alx741 joins (~alx741@181.196.69.72)
11:01:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:02:01 whatif joins (~xxx@47.245.54.240)
11:02:22 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:02:55 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
11:03:55 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 260 seconds)
11:05:24 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
11:07:11 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds)
11:10:06 × kenran quits (~kenran@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 245 seconds)
11:11:01 hyiltiz joins (~quassel@31.220.5.250)
11:12:37 AlexNoo_ joins (~AlexNoo@178.34.150.219)
11:12:55 matsurago joins (~matsurago@p0458911-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp)
11:13:03 whatif joins (~xxx@47.245.54.240)
11:13:35 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds)
11:13:56 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
11:14:23 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:14:47 × Alex_test quits (~al_test@178.34.150.6) (Ping timeout: 264 seconds)
11:14:52 × AlexZenon quits (~alzenon@178.34.150.6) (Ping timeout: 244 seconds)
11:16:22 × AlexNoo quits (~AlexNoo@178.34.150.6) (Ping timeout: 260 seconds)
11:19:26 Alex_test joins (~al_test@178.34.150.219)
11:19:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:20:19 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:20:30 AlexZenon joins (~alzenon@178.34.150.219)
11:23:20 × jgeerds quits (~jgeerds@55d40de2.access.ecotel.net) (Ping timeout: 260 seconds)
11:24:02 whatif joins (~xxx@47.245.54.240)
11:24:56 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
11:25:00 lavaman joins (~lavaman@98.38.249.169)
11:25:51 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:26:16 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:28:13 × evocatus quits (~evocatus@84.51.113.13) (Read error: Connection reset by peer)
11:29:00 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
11:29:14 max22- joins (~maxime@2a01cb0883359800a0295da993ecee0f.ipv6.abo.wanadoo.fr)
11:29:22 × mbuf quits (~Shakthi@122.174.49.59) (Quit: Leaving)
11:29:25 × matsurago quits (~matsurago@p0458911-vcngn.tkyo.nt.ngn.ppp.ocn.ne.jp) (Quit: Leaving)
11:29:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
11:31:21 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
11:32:12 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:35:03 whatif joins (~xxx@47.245.54.240)
11:35:56 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
11:37:32 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:37:57 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:43:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
11:44:01 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:45:06 whatif joins (~xxx@47.245.54.240)
11:45:59 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
11:46:28 <albet70> what's the major changes in ghc 9.x than 8.x?
11:47:08 <merijn> albet70: Check the release notes? :p
11:48:10 × robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
11:49:08 asus232 joins (~user@114.250.136.140)
11:51:51 <Cajun> quite a bit, 9.2 looks especially fun :)
11:53:10 deni_ is now known as deni
11:54:13 <albet70> "Cajun :quite a bit, 9.2 looks especially fun :)", in which way?
11:54:37 × rond_ quits (~rond_@2a02:a31a:a23c:f480:2fd7:e087:5546:a438) (Quit: Client closed)
11:55:48 <merijn> albet70: Presumably extensions, whether those are relevant depends how useful those are for you :p
11:56:19 × asus232 quits (~user@114.250.136.140) (Remote host closed the connection)
11:56:28 <merijn> albet70: Note that the GHC user guide has release notes somewhere at the start documenting all import new features
11:57:03 <merijn> Actually, there's one exciting new thing in 9.2
11:57:09 <merijn> -XNoFieldSelectors !
11:57:40 <yushyin> ^ i want that!
11:58:09 × jonathanx_ quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
11:58:26 jonathanx_ joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
11:58:37 <merijn> I mean, screw all these complex record extensions, NoFieldSelectors means safe usage of record fields in sumtypes and that's all I really want :p
11:59:20 <merijn> NoFieldSelectors + NamedFieldPuns, new match made in heaven
12:00:28 kenran joins (~kenran@200116b82be34a0057089fd82850b09a.dip.versatel-1u1.de)
12:01:22 burnsidesLlama joins (~burnsides@dhcp168-053.wadham.ox.ac.uk)
12:03:59 guniberas joins (~guniberas@42.191.188.121)
12:04:43 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
12:05:11 stiell joins (~stiell@gateway/tor-sasl/stiell)
12:05:51 whatif joins (~xxx@47.245.54.240)
12:06:35 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
12:09:53 azimut_ joins (~azimut@gateway/tor-sasl/azimut)
12:12:36 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
12:13:36 slowButPresent joins (~slowButPr@user/slowbutpresent)
12:14:17 mastarija joins (~mastarija@31.217.25.149)
12:14:31 × dsrt^ quits (~dsrt@wsip-68-227-92-38.mc.at.cox.net) (Remote host closed the connection)
12:14:55 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:15:49 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:17:17 <mastarija> Do you think a game server for a game like Agar.IO implemented in Haskell can be profitable?
12:17:44 <dminuoso> I dont think games are profitable in general.
12:17:45 <merijn> Yes, no, maybe, it depends
12:18:03 <mastarija> I've been working on a similar game for a while now, and now I'm thinking about costs of maintaining such a game server
12:18:18 <dminuoso> Most game developers do it out of either misbelief in hidden fortunes, because they are masochists or because they just like games a lot.
12:18:22 <merijn> Let me refine my answer: If you think technology matters for game success, you probably don't understand games well enough to make a profit :)
12:18:46 <mastarija> Or rather, since margins will probably be tight I'm not sure if I could cover server expenses
12:19:01 <dminuoso> The only way to make money off a game, is by hiring hords of underpayed developers, giving them high pressure to release poor code quickly, do good marketing, and then sell your game.
12:19:04 <merijn> mastarija: Doubt it, servers are *really* cheap these days
12:19:24 <dminuoso> mastarija: What's expensive about games is the developers and marketing.
12:19:36 <merijn> dminuoso: Or channel divine inspiration and solo develop the biggest game of the year in fucking "GameMaker Studios" >.>
12:20:16 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
12:20:19 <merijn> Looking at you, Undertale, inspiring inferiority complexes in aspiring game developers everywhere... >.>
12:20:23 <mastarija> dminuoso, I'm just looking to publish my work and keep it running
12:20:35 <dminuoso> merijn: heh. There's a lot of survivor bias in that. :)
12:20:38 <mastarija> not really looking for riches
12:20:46 <dminuoso> The huge masses of indie game developers that are not successful..
12:20:52 <kuribas> mastarija: ask for a subscription fee.
12:21:04 <merijn> mastarija: What makes you think the expenses of a server will be too high? How big a server do you think you need and how much do you imagine that costs?
12:21:12 <merijn> dminuoso: Hence the "channel divine inspiration"
12:21:14 × chele quits (~chele@user/chele) (Ping timeout: 260 seconds)
12:21:18 <merijn> That part is the hard bit :p
12:21:35 <merijn> dminuoso: See also Stardew Valley and RimWorld :p
12:21:35 <mastarija> Developing server in Haskell seems easier than doing it in Cpp (though I'm comfortable with both)
12:21:47 <mastarija> I just have 0 experience in real life production Haskell
12:21:53 <kuribas> mastarija: high server fees makes it sound like you'll have a lot of users :)
12:22:08 <mastarija> That's the end goal
12:22:16 <dminuoso> mastarija: First reality is, if you want contributors for a game, haskell is a terrible pick out of its low popularity.
12:22:21 <merijn> mastarija: Note that if you're in comfortable with C and C++ then mixing and matching with Haskell as glue code is fairly straightforward
12:22:28 <kuribas> mastarija: so start with a small working, cheap server.
12:22:29 <mastarija> dminuoso, I don't want contributors :D
12:22:52 <mastarija> merijn, yes I did some FFI
12:23:00 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
12:23:20 <mastarija> But my primary trade is WebDev and I have very little intuition about game servers
12:23:37 <zincy> Is there a marketing plan for the game?
12:23:49 <mastarija> zincy, yes
12:24:03 <mastarija> I've been working on the idea for the past few years
12:24:06 <dminuoso> merijn: Its not just divine inspiration though. You also need to channel divine energy to keep you alive while working tirelessly 15 hours a day, 6.5 days a week for 53 weeks in a year to deliver your indie game.
12:24:20 <dminuoso> It's a darn cutthroat business.
12:24:27 <zincy> When it comes to building projects people generally spend way too much time on the technology and then find out no one cares about the product
12:24:33 <dminuoso> It's pretty much like fintech, except without the money.
12:24:33 <zincy> *products
12:24:33 <mastarija> With corona + some crypto gains I finally had some time to relax and work on the game ;)
12:25:10 <mastarija> I've read that one of the "price" bottlenecks for games is bandwidth
12:25:23 <dminuoso> Or any startup I guess? :)
12:25:34 <mastarija> + I have somewhat more complex physics than agar
12:25:37 <zincy> You will most likely face a user demand issue first before anything else
12:25:46 <mastarija> I can deal with that :D
12:26:03 <mastarija> My country subreddit is pretty active and supportive of gamedevs
12:26:07 boxscape_ joins (~boxscape_@134.171.69.87)
12:26:09 <mastarija> So that's an entry point
12:26:15 Guest82 joins (~Guest82@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
12:26:32 × MQ-17J quits (~MQ-17J@8.6.144.197) (Ping timeout: 260 seconds)
12:27:22 <merijn> mastarija: bandwidth is fairly cheap in the grand scheme of things. You can get a 2 core server with 2TB bandwidth per month for, like, 5 dollars or less. The main bandwidth restriction in gaming is that you need good latency which limits how much data you can rely on sending
12:27:35 <mastarija> So Haskell memory and cpu usage are not a big concern for a game server you think?
12:27:47 <dminuoso> Seeing as Im working at an ISP, I can tell you right away that servers and bandwidths are mostly for free.
12:27:48 <mastarija> merijn, yes, latency is a given
12:27:54 <dminuoso> Their cost is almost completely negligible.
12:27:59 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 264 seconds)
12:28:16 <dminuoso> You have to scale incredibly high for their cost to become a relevant factor
12:28:28 <merijn> mastarija: If you earn non-zero incoming, paying for a big enough server is easy, because servers are generally fairly cheap (unless you have crazy usage)
12:28:38 <merijn> The real issue is ever hitting non-zero income :p
12:28:40 × max22- quits (~maxime@2a01cb0883359800a0295da993ecee0f.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
12:28:43 <dminuoso> mastarija: One of the problems with Haskell, is that in GHC Haskell we have a stop-the-world garbage collector.
12:28:46 <dminuoso> That can create latency issues.
12:29:17 <boxscape_> There is a low-latency garbage collector as well though, now
12:29:18 <mastarija> dminuoso, yes that's ok I think
12:29:31 <merijn> boxscape_: "low"
12:29:37 <boxscape_> lower, at least
12:29:38 <dminuoso> mastarija: Its okay if your game server pauses for 10ms in the wrong moment?
12:29:40 <dminuoso> Just asking.
12:29:58 <mastarija> yes, I have decent client side prediction
12:30:51 <mastarija> my main concern now is "if" I suddenly get a lot of trafic, I don't want to loose those customers because I couldn't scale
12:31:10 <dminuoso> There's no silver bullet
12:31:17 <mastarija> yes
12:31:30 × wonko quits (~wjc@62.115.229.50) (Quit: See You Space Cowboy..)
12:31:51 <dminuoso> It's a very subtle balance to write software that can architecturally be adapted (!) to scale, but not overspend on premature optimization.
12:31:56 <merijn> Ok, lemme stop you there and tell you know that engineering to scale with abitrary *hypothetical* large traffic spikes is a great way to never get anywhere :)
12:31:57 cfricke joins (~cfricke@user/cfricke)
12:32:22 <lortabac> merijn: +1
12:32:26 <dminuoso> Have predicted growth, aim for that.
12:32:29 <mastarija> merijn, I know that, however I don't think I'm optimizing prematurely here
12:32:36 <dminuoso> If the growrth exceeds your predictions, refactor.
12:32:46 <dminuoso> Yes you are.
12:32:50 <dminuoso> 14:30:51 mastarija | my main concern now is "if" I suddenly get a lot of trafic,
12:33:00 <merijn> Well, you don't even have a game, so you can't even predict how traffic will affect your game :p
12:33:01 <kuribas> merijn: no, it's not! That's why every project needs microservices + cloud computing!
12:33:14 <dminuoso> mastarija: write code, profile, optimize. in that order.
12:33:25 <kuribas> and kubernetes and inlimited scalability.
12:33:29 chele joins (~chele@user/chele)
12:33:38 <dminuoso> mastarija: you are trying to mix in hypothetical predictions of growth of users you dont have, playing a game you dont have.
12:33:39 <boxscape_> is a microservices architecture feasible for a game server?
12:34:05 <dminuoso> kuribas: Must be why so many games run on k8s.
12:34:09 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:34:19 <mastarija> don't know kubernetes, I have only resources to finish the basic game (it's already in a somewhat working state), also I don't have much funds so I'll be the only one working
12:34:20 <dminuoso> This is quite an interesting remark, I shall remember it.
12:34:40 <dminuoso> mastarija: You said yourself, you only have web development experience.
12:34:42 <kuribas> mastarija: I was being ironic, don't use kubernetes :)
12:35:02 <mastarija> "if" I get a lot of trafic, it won't be "profitable" for at least a while
12:35:22 <dminuoso> You want to: a) build a game, b) expect to scale beyond expectations, c) design for that scale, and you have very limited funds, and d) no experience in writing scaling software or game software.
12:35:24 <geekosaur> you can scratch the "if" part of that :)
12:35:27 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
12:35:40 <dminuoso> Not trying to dissuade you, but it sounds to me like you have a bad project plan.
12:35:44 <mastarija> and being the only dev with no cash I can't scale
12:35:57 <merijn> I mean, realistically getting more than 0 traffic exceeds the average indie
12:36:08 <merijn> Your problem won't be "I can't scale"
12:36:23 <dminuoso> merijn: Haha. Read that news about that fancy "electronic drivers license app" fail in Germany?
12:36:29 <merijn> Your real problem will be "nobody will care enough for scaling to ever be relevant"
12:36:46 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 245 seconds)
12:36:49 <merijn> So focus on solving the "make people care problem", then you can solve scaling if/when that happens
12:36:53 <merijn> dminuoso: No?
12:37:01 <mastarija> I'm pretty confident in success :), so investing a bit of time in advance, at least in a plan of how to scale is worth it from my perspective
12:37:34 slowtyper joins (~slowtyper@user/slowtyper)
12:38:08 <kuribas> mastarija: spend you time in advance to make it work, then if you'ld get enough traffic, you should have more funds to make it performant.
12:38:08 <dminuoso> merijn: It was some "government spends many millions on blockchain nonsense" on an electronic drivers license that is worthless (its not recognizable in a traffic control), and it turns out that after the first thousand registration the entire thing came crashing in performance. It couldn't even scale to *hold* or process more than a thousand registrations.
12:38:10 <dminuoso> Total.
12:38:16 <lortabac> mastarija: I'd suggest you to focus on one problem at a time
12:38:17 <dminuoso> Not thousand a second, Just some thousand total.
12:38:43 <lortabac> for now the focus should be on releasing the game and have users
12:39:15 <mastarija> lortabac, I know that, I was just looking for some opinions since I have no experience with Haskell in production
12:39:28 <dminuoso> mastarija: Since you have limited funds, pick a language you're already familiar with.
12:39:43 <geekosaur> there might be better ways to get experience on haskell in production than trying to dive into gamedev with no experience
12:39:44 <dminuoso> It reduces costs of making the many learning mistakes of a completely strange programming language.
12:39:58 <geekosaur> my own experience is one new thing is enough, two at once is asking for trouble
12:40:09 <kuribas> It will be much harder to get good latency in haskell than in C++.
12:40:13 <dminuoso> Haskell is particularly nasty to create performance problems with if you don't have experience.
12:40:20 <mastarija> It takes some effort to write the server, if for some reason unbeknownst to me Haskell might be troublesome for a game server (other than garbage collector) than I'd go with CPP
12:40:28 <mastarija> I know CPP and Haskell very well
12:40:34 <dminuoso> If I was to write a game server, I might do it in Rust perhaps?
12:40:35 <mastarija> So that's why I was asking
12:40:41 × chele quits (~chele@user/chele) (Remote host closed the connection)
12:40:44 justsomeguy joins (~justsomeg@user/justsomeguy)
12:40:44 <dminuoso> Gives me good performance, an acceptable type system and semantics...
12:40:52 <mastarija> dminuoso, don't really know rust
12:40:53 <dminuoso> And more easily predictable memory behavior
12:40:59 <kuribas> +1 for rust
12:41:00 <maerwald> gamedev needs a lot of ecosystem
12:41:04 <maerwald> Haskell doesn't have it
12:41:13 <maerwald> serious gamedev, that is
12:41:24 <mastarija> client is JS, server is Haskell, I just need networking library
12:41:43 <maerwald> I don't think performance is your worst enemy in gamedev... I mean people are writing games in C#
12:41:46 <mastarija> maerwald, sure, I'm not serious gamedev thoug :D
12:42:11 <maerwald> and the GC in C# causes serious issues
12:42:58 <mastarija> I guess I'll report back in few months :D
12:44:54 chele joins (~chele@user/chele)
12:45:08 <timCF> Speaking about games - recently I did some small googling about simple games for developers designed to be played by developer-written bots, not humans. Shuch that you and your co-workers are writing multiple bots which fight with each other on some sort of arena
12:45:30 <dminuoso> Many decades old.
12:45:38 <merijn> timCF: A ton of those exist
12:45:54 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Remote host closed the connection)
12:46:07 <mastarija> I think there's even a site like codewars where you program such bots
12:46:12 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
12:46:22 alzgh joins (~alzgh@user/alzgh)
12:46:26 wonko joins (~wjc@62.115.229.50)
12:46:37 <timCF> merijn: I did found only one called BatteSnake (I want it to allow implement bot in any programming language and communicate through web API)
12:47:13 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
12:47:47 <kuribas> corewars?
12:48:07 <geekosaur> you may be using the wrong search terms. those kinds of game have been around since the 90s
12:48:12 <geekosaur> yeh, that
12:48:24 <merijn> corewars, there's the online scripted MMORTS
12:48:31 <merijn> a billion variants of corewars, tbh
12:48:40 <dminuoso> We had a bunch of such DOS games at the time
12:48:52 <dminuoso> Cant recall the names, but there was a plethora of these
12:49:06 <kritzefitz> I think screeps is a more recent example.
12:49:16 <merijn> ah, screeps is the one I was thinking off, yeah
12:49:20 <geekosaur> corewars was the first one I heard of and may have been the first one to exist
12:49:48 × pbrisbin quits (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net) (Quit: WeeChat 3.3)
12:50:24 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
12:50:48 john232 joins (~user@114.250.136.140)
12:51:36 pbrisbin joins (~patrick@pool-173-49-152-45.phlapa.fios.verizon.net)
12:52:13 <kritzefitz> I once set out to make such a game in Haskell, but as discussed earlier, insufficient experience in game development and lack of ecosystem for gamedev in Haskell have prevented me from finishing this project (yet).
12:53:35 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving)
12:54:03 <geekosaur> hmm, ytry: try to trick another bot into making a Y combinator :þ
12:54:05 <mastarija> kritzefitz, hopefully, once ARM is fully supported this will change
12:54:59 machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca)
12:55:30 <kritzefitz> I'm not sure how support for ARM (by GHC?) would affect my experience in game development or the adoption of Haskell for game development.
12:56:21 shriekingnoise joins (~shrieking@186.137.144.80)
12:58:55 × deni quits (~deni@user/deni) (Quit: bye...)
13:01:27 deni joins (~deni@user/deni)
13:04:42 tim1 joins (~tim@dslb-088-070-254-249.088.070.pools.vodafone-ip.de)
13:05:05 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
13:05:38 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Read error: Connection reset by peer)
13:06:11 whatif joins (~xxx@47.245.54.240)
13:06:21 <tim1> Just got Real World Haskell from my library. Has anyone read this book, is it good?
13:07:04 × whatif quits (~xxx@47.245.54.240) (Remote host closed the connection)
13:07:08 <Clint> i found it to be inconsistent and outdated
13:07:18 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
13:07:31 AlexNoo_ is now known as AlexNoo
13:07:46 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
13:07:53 ystael joins (~ystael@user/ystael)
13:07:58 <sshine> outdated. I think it was good at some point. there are still chapters that are good.
13:08:09 <tim1> Oh ok do you have any other recommendation.
13:08:55 <sshine> I don't think there is a realer world haskell book :) what are you looking for?
13:09:23 <mastarija> kritzefitz, ARM support would incentivize mobile app development in Haskell, it's also easier to sell your apps on mobile. Money is great incentive to put some effort into GUI / Graphics libraries.
13:09:51 <tim1> I just want to get started with haskell, bc I never did much in functional programming so basically an Introduction to Haskell
13:10:10 <mastarija> tim1, just read / follow "Learn you a haskell"
13:10:36 <mastarija> It's simple and easy to start with
13:10:47 <boxscape_> tim1 here's a list of links http://book.realworldhaskell.org/read/index.html
13:10:51 <merijn> tbh, LYAH is not a very good book in terms of teaching
13:10:53 <merijn> @where books
13:10:53 <lambdabot> https://www.extrema.is/articles/haskell-books, see also @where LYAH, RWH, YAHT, SOE, HR, PIH, TFwH, wikibook, PCPH, HPFFP, HTAC, TwT, FoP, PFAD, WYAH, non-haskell-books
13:11:03 <boxscape_> tim1 I gave you the wrong link -.-
13:11:10 <boxscape_> I meant to post this https://github.com/bitemyapp/learnhaskell
13:11:15 <mastarija> merijn, I've heard this sentiment
13:11:27 <mastarija> I think it's better at teaching basic haskell than any other book I've read
13:11:41 <tim1> No problem thank you all learn you a haskell sounds really cool
13:11:46 <opqdonut> tim1: try haskell.mooc.fi
13:11:46 <mastarija> http://learnyouahaskell.com/chapters
13:11:53 <merijn> It doesn't really teach you anything, tbh. Once you finish LYAH you can't really write any real code
13:12:00 <opqdonut> tim1: it's an online course with exercises that get automatically checked
13:12:07 <opqdonut> tim1: (and it's completely free & open)
13:12:10 <mastarija> merijn, it's for getting started
13:12:37 <boxscape_> reminds me of a duolingo courses for natural languages :)
13:13:31 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi)
13:13:43 <tim1> Ok thank you guys will check them out! :)
13:15:04 × mastarija quits (~mastarija@31.217.25.149) (Quit: Leaving)
13:15:25 gdd joins (~gdd@129.199.146.230)
13:16:27 <justsomeguy> Some of these books like "Haskell Programming from First Principles" and "Get Programming with Haskell" have online meetups, sometimes, which I find useful.
13:16:58 × boxscape_ quits (~boxscape_@134.171.69.87) (Quit: Connection closed)
13:18:00 justsomeguy personally likes "Get Programming with Haskell" most, since it's brief and conversational. It doesn't do a good job of explaining environment setup, though. (Build tools, etc.)
13:18:22 <justsomeguy> But maybe I shouldn't be reccomending books, since I don't yet know haskell.
13:19:14 × john232 quits (~user@114.250.136.140) (Quit: ERC (IRC client for Emacs 26.3))
13:19:44 burnsidesLlama joins (~burnsides@dhcp168-053.wadham.ox.ac.uk)
13:19:49 × timCF quits (~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
13:20:11 <tim1> haha but thanks will check it out
13:23:41 × wonko quits (~wjc@62.115.229.50) (Quit: See You Space Cowboy..)
13:24:29 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Ping timeout: 265 seconds)
13:24:45 <albet70> what's the easiest way to distro a binary package compiled by ghc?
13:25:18 <albet70> distribute
13:27:37 <shapr> albet70: ooh, I want to know that too
13:27:52 <shapr> albet70: I've seen people upload to hackage, but that's a binary distribution
13:28:01 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
13:28:02 <shapr> I've seen people use nix to build a binary.
13:28:56 <kritzefitz> albet70: If you don't have data files, you might get away with distributing a single statically compiled binary.
13:30:29 <kritzefitz> albet70: otherwise you might want to look at this link, even though the answers there might be a bit unsatisfactory: https://stackoverflow.com/questions/68761677
13:31:27 <shapr> justsomeguy: or maybe you have a good viewpoint because others of us already know haskell?
13:32:19 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 260 seconds)
13:36:33 <justsomeguy> Maybe the frustrations of trying to learn are fresher in my mind.
13:37:47 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
13:38:10 <albet70> kritzefitz, statically? how? musl?
13:38:26 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
13:38:29 <albet70> shapr, I'd like to have a binary distribution
13:38:35 <dminuoso> albet70: Do it on an alpine docker image for ease.
13:39:04 <dminuoso> That way you have the full toolchain available, including musl and other static .a libraries
13:39:15 <dminuoso> Remember to pass the appropriate linker flags to ghc
13:39:27 <albet70> I see
13:40:14 <albet70> most gnu linux distro use dynamic links, not good to ghc
13:40:37 <kritzefitz> albet70: I guess it depends on your target audience and what foreign dependencies you have besides libc. If you only have foreign dependencies on “standard” libraries, you could just assume that your users will probably already have those libraries installed.
13:41:37 <albet70> archlinux, debian 9, debian 10, those three I don't think they share the same libs
13:42:02 <albet70> specially archlinux, pain in the ass
13:42:14 <dminuoso> albet70: Yeah. So far Ive only had two good experiencing making static haskell binaries. Alpine Linux or on Nixos with static-haskell-nix, but the latter is only sensible if you're already an intermediate/expert at nix.
13:42:19 <merijn> albet70: You'll have to compile executables per distro, yes. Like all other compiled languages
13:42:21 <dminuoso> Alpine Linux is way easier and very reliable.
13:42:36 <dminuoso> And doing it via docker makes it very portable as to where you build it.
13:43:00 <dminuoso> We used to do this via docker executors in our gitlab back when we still did static linking.
13:43:49 <dminuoso> albet70: So the usual way is that you dont care about distribution packaging, and make it the problem of some volunteer maintainer.
13:44:10 <dminuoso> With some lucky you get them part of your project, such that you can coordinate releases
13:45:17 hyiltiz joins (~quassel@31.220.5.250)
13:45:45 × jonathanx_ quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
13:47:15 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 260 seconds)
13:47:34 Sgeo joins (~Sgeo@user/sgeo)
13:48:36 <shapr> albet70: If you find more answers, will you post them somewhere?
13:48:40 <kritzefitz> albet70: in case you want to make distribution specific packages you might want to take a look at cabal-debian, but that only gets you far if you already have debian packages for all your dependencies.
13:49:18 × dschrempf quits (~dominik@2a01-036d-0118-8903-ec67-76f1-f11d-71a6.pool6.digikabel.hu) (Quit: WeeChat 3.3)
13:50:27 oxide joins (~lambda@user/oxide)
13:50:37 <albet70> "🟢 shapr :albet70: If you find more answers, will you post them somewhere?", I think docker alpine musl is the best anwser, no need to post
13:50:59 <shapr> albet70: fair enough
13:51:30 <shapr> I'd like to have some automatic way to publish my Haskell programs to linux and mac
13:52:11 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
13:52:45 <albet70> "🟢 kritzefitz :albet70: in case you want to make distribution specific packages you might want to take a look at cabal-debian, but that only gets you far if you already have debian packages for all your dependencies.", does cabal has something like raco?
13:53:05 <albet70> raco is a tool for racket to distribute binary file
13:53:50 chele_ joins (~chele@user/chele)
13:54:05 <kritzefitz> I don't know raco well enough to know for sure, but from your description it sounds like cabal doesn't have something like that.
13:54:06 × chele quits (~chele@user/chele) (Ping timeout: 260 seconds)
13:54:30 <shapr> What does raco do?
13:54:43 <shapr> does it create a static binary?
13:55:08 <albet70> raco would create a package which contain libraries and binary
13:55:16 <shapr> oh
13:55:16 <merijn> The real problem isn't Haskell/GHC, but the fact that glibc refuses to be statically linked sanely
13:56:46 <albet70> merijn, if glibc use statically linked, what is the bad for it? file size will be too big?
13:56:47 <dminuoso> Oh it doesnt.
13:56:52 <dminuoso> glibc happily statically links
13:57:00 × Stotteren quits (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net) (Remote host closed the connection)
13:57:05 <dminuoso> You get just error prone and undefined behavior if you use NSS or other things..
13:57:09 <merijn> albet70: No, glibc is intentionally designed to behave badly/break when statically linked
13:57:13 <dminuoso> Yup
13:57:24 Stotteren joins (~Stotteren@pool-108-20-79-41.bstnma.fios.verizon.net)
13:57:40 <dminuoso> albet70: If you statically link against glibc and you use getaddrinfo from it, you *must* also dynamically load the same glibc version.
13:57:41 <merijn> Because one of the core glibc maintainers is a fundamentalist who hates static linking for ideological reasons
13:57:46 <dminuoso> albet70: just digest that for a moment.
13:58:14 <dminuoso> statically linking glibc means you *must* have a dynamic variant of it of the same version around still in most cases.
13:58:18 shapr cannot digest, and must regurgitate
13:59:33 <albet70> "merijn :Because one of the core glibc maintainers is a fundamentalist who hates static linking for ideological reasons", how Linus feel about this? support or disagree?
13:59:57 <merijn> albet70: Linus is not involved at all?
14:00:05 <dminuoso> albet70: The problem is this. The original author is largely known as an "dictator asshole" amongst many internet communities, for having extremely religious views on things. He really thinks its his place to educate people that static linking is so bad, that glibc was designed to make it as hard as possible.
14:00:06 <albet70> ok
14:00:09 mc47 joins (~mc47@xmonad/TheMC47)
14:00:10 <shapr> oh my
14:00:13 <merijn> Why would he be? He deals with linux and the kernel, not GNU and distro packaging
14:00:31 <albet70> but this glibc is really effect lots of things in linux
14:00:34 <dminuoso> albet70: https://sourceware.org/bugzilla/show_bug.cgi?id=10134
14:00:40 <dminuoso> Take a good look at this bug report.
14:00:43 <dminuoso> It's humerous but true.
14:01:01 × jespada quits (~jespada@181.28.253.200) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:01:27 jespada joins (~jespada@181.28.253.200)
14:01:29 marinelli joins (~marinelli@gateway/tor-sasl/marinelli)
14:01:29 × jespada quits (~jespada@181.28.253.200) (Client Quit)
14:02:11 <janus> but why does it matter what the original author (Drepper?) thinks when he doesn't have a commit bit anymore?
14:02:47 <merijn> Pretty sure Drepper still maintains glibc
14:05:05 <albet70> the other system like BSD or OSX, what they use? glibc?
14:05:34 <merijn> They use their own libc
14:05:39 <albet70> there're two things I hated in most linux distro, systemd and glibc
14:05:56 <merijn> FreeBSD uses it's own libc and OSX uses a fork of that
14:06:13 <albet70> they can do statically linked?
14:06:22 <merijn> afaik
14:08:13 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
14:11:29 × justHaunt quits (~justache@user/justache) (Read error: Connection reset by peer)
14:11:55 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
14:12:25 justHaunt joins (~justache@user/justache)
14:12:56 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
14:13:29 <janus> there are also linux distros that use musl
14:13:42 <albet70> "janus :there are also linux distros that use musl", alpine
14:13:58 <albet70> most living in docker
14:14:30 <albet70> not a real installed system on hard disk
14:16:34 yin is now known as zzz
14:17:02 × acidjnk_new3 quits (~acidjnk@p200300d0c7161c6868001932eceb2d10.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
14:17:17 <janus> albet70: what are you using now? since you write 'hated' in past tense
14:17:35 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 260 seconds)
14:18:17 <zzz> is this an interesting idea? https://www.unisonweb.org/
14:18:30 <janus> zzz: nope
14:18:40 <albet70> "🟢 janus :albet70: what are you using now? since you write 'hated' in past tense", windows
14:18:52 <shapr> oh my
14:18:53 <zzz> janus: are you familiar with it?
14:19:40 <janus> zzz: only superficially :P just thought i'd give a random answer to a random question, sorry.
14:19:49 <zzz> fair enough :p
14:21:08 <zzz> > Unison definitions are identified by content. Each Unison definition is some syntax tree, and by hashing this tree in a way that incorporates the hashes of all that definition's dependencies, we obtain the Unison hash which uniquely identifies that definition.
14:21:10 <lambdabot> <hint>:1:89: error: parse error on input ‘,’
14:21:15 × chomwitt quits (~chomwitt@2a02:587:dc12:b600:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
14:22:05 <janus> zzz: let's discuss it in #haskell-offtopic
14:22:18 <zzz> janus: yeah that makes sense
14:22:23 <zzz> sorry about that
14:22:31 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
14:22:55 <geekosaur> freebsd can do static libc. os x does dynamic everything
14:23:15 stiell joins (~stiell@gateway/tor-sasl/stiell)
14:23:25 <geekosaur> you can't even get a static libSystem, iirc
14:24:01 tim1 parts (~tim@dslb-088-070-254-249.088.070.pools.vodafone-ip.de) (WeeChat 3.3)
14:24:06 <merijn> There isn't even a library file anymore :p
14:24:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
14:29:11 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 264 seconds)
14:30:40 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
14:32:08 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
14:43:56 <janus> albet70: i'd like to learn about linking on windows. join me in #haskell-offtopic
14:45:28 <dminuoso> Does sqlite-simple have an equivalent of the In newtype wrapper, to fit inside `WHERE x IN ?`
14:46:33 <dminuoso> Oh hah hold on
14:46:35 <dminuoso> sqlite cant do this
14:47:22 chomwitt joins (~chomwitt@ppp-94-68-249-8.home.otenet.gr)
14:48:30 <merijn> dminuoso: Sure you can!
14:48:32 allbery_b joins (~geekosaur@xmonad/geekosaur)
14:48:32 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
14:48:35 allbery_b is now known as geekosaur
14:48:46 <merijn> dminuoso: foreign export a haskell predicate function and inject it into your query!
14:49:04 <merijn> And rewrite to "WHERE pred(x)" for an arbitrary predicate!
14:50:00 lavaman joins (~lavaman@98.38.249.169)
14:50:18 <merijn> I haven't done it (yet), but I know enough that you can do it :p
14:50:22 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
14:50:59 <dminuoso> o.o
14:51:19 <dminuoso> merijn: That needs some custom ToField for that too I guess?>
14:52:27 <merijn> dminuoso: I don't think you can do that it that way, tbh
14:53:00 <merijn> dminuoso: But you can have your query calling arbitrary code in the same process, including whatever Haskell predicates you want :p
14:53:22 <merijn> Whether it's worth the effort depends on the size of your query and how badly you need it over stringly manipulation of your where :p
14:54:27 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
14:54:48 × kenran quits (~kenran@200116b82be34a0057089fd82850b09a.dip.versatel-1u1.de) (Quit: WeeChat info:version)
14:54:57 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
14:55:28 hendursaga joins (~weechat@user/hendursaga)
14:55:46 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
14:58:34 × deni quits (~deni@user/deni) (Quit: bye...)
15:00:06 × lortabac quits (~lortabac@atoulouse-256-1-14-70.w92-136.abo.wanadoo.fr) (Quit: WeeChat 2.8)
15:01:04 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
15:02:33 × ByronJohnson quits (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net) ()
15:03:36 Psybur joins (~Psybur@mobile-166-170-34-121.mycingular.net)
15:06:36 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
15:06:51 justsomeguy joins (~justsomeg@user/justsomeguy)
15:07:33 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
15:11:06 ByronJohnson joins (~bairyn@50-250-232-19-static.hfc.comcastbusiness.net)
15:13:40 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
15:14:57 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (Remote host closed the connection)
15:16:23 kayprish joins (~kayprish@46.240.130.158)
15:20:31 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 245 seconds)
15:20:37 slowtype- joins (~slowtyper@46.12.47.90.dsl.dyn.forthnet.gr)
15:22:54 × kayprish quits (~kayprish@46.240.130.158) (Quit: leaving)
15:23:06 kayprish joins (~kayprish@46.240.130.158)
15:23:55 zzz parts (~z@user/zero) ()
15:24:20 moonoid joins (~a@p5b0627a9.dip0.t-ipconnect.de)
15:25:18 jushur joins (~human@user/jushur)
15:25:53 MoC joins (~moc@user/moc)
15:27:36 × chele_ quits (~chele@user/chele) (Ping timeout: 260 seconds)
15:28:01 burnsidesLlama joins (~burnsides@dhcp168-053.wadham.ox.ac.uk)
15:28:27 deni joins (~deni@user/deni)
15:28:51 <moonoid> Hi, I need a two dimensional Int matrix. Is Vector (Vector Int) a good idea or should I use another another package?
15:29:10 <merijn> @hackage hmatrix -- ?
15:29:10 <lambdabot> https://hackage.haskell.org/package/hmatrix -- ?
15:30:28 MQ-17J joins (~MQ-17J@2607:fb90:884d:3b56:d10e:dfdb:4d5e:86f1)
15:30:30 kayprish_ joins (~kayprish@46.240.130.158)
15:30:43 × kayprish_ quits (~kayprish@46.240.130.158) (Client Quit)
15:30:48 × kayprish quits (~kayprish@46.240.130.158) (Quit: leaving)
15:30:58 kayprish joins (~kayprish@46.240.130.158)
15:32:45 <moonoid> merijn: I did a bad job explaining. I'm a beginner and I'm familiar with the Vector api. Can I get away with representing an Int matrix as nested Vectors or will I soon run into trouble?
15:33:06 <dminuoso> moonoid: depends (tm)
15:33:14 <moonoid> :D
15:33:27 <dminuoso> It all depends on what you intend to do
15:33:28 <merijn> That, yes
15:33:33 <adamCS> moonoid: https://hackage.haskell.org/package/massiv is also pretty good. Very much depends on what you need to do with the matrix, though.
15:33:56 <dminuoso> If you're just dabbling with some excercise and you need to represent some 2 dimensional discrete space, a Vector of Vector is probably fine.
15:34:08 <dminuoso> If you want to do linear algebra or some kind you probably to use hmatrix
15:34:10 <merijn> hmatrix uses BLAS/LAPACK internally, so it'll be *much* faster for most non-trivial operations
15:34:39 <merijn> If you just need a simple 2D array, I'd use either "Map (Int, Int) a" or Array
15:35:16 <merijn> adamCS: No benchmarks comparing with hmatrix :(
15:35:57 × jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.2)
15:37:06 <moonoid> For now I don't care about performance. I will give Map (Int,Int) a try.
15:37:18 <adamCS> merijn: Yeah. I assume hmatrix would be faster for all the things where BLAS/LAPACK are in the critical path. But if you are doing all the low-level manipulation yourself, it's less clear. Benchmarks would be good.
15:43:00 Null_A joins (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e)
15:43:42 <monochrom> I have benchmarks comparing hmatrix with hmatrix. It says they perform the same. #identitymatrix >:)
15:44:00 Square is now known as Sqaure
15:45:48 <xerox> moonoid: there's also Data.Array from the array package (and some variations on it)
15:46:14 <xerox> dimensionality is achieved through Data.Ix
15:46:24 × ghoulguy quits (x@libera/staff/glguy) (Quit: Quit)
15:46:46 × xff0x quits (~xff0x@2001:1a81:53d3:900:a88e:53f:98a9:8a85) (Ping timeout: 245 seconds)
15:47:10 lavaman joins (~lavaman@98.38.249.169)
15:47:19 xff0x joins (~xff0x@2001:1a81:53d3:900:7585:5a8d:bffa:bcfc)
15:47:32 glguy joins (x@libera/staff/glguy)
15:47:44 glguy is now known as ghoulguy
15:49:54 max22- joins (~maxime@2a01cb0883359800160b7175cc684a86.ipv6.abo.wanadoo.fr)
15:51:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
15:56:36 × MQ-17J quits (~MQ-17J@2607:fb90:884d:3b56:d10e:dfdb:4d5e:86f1) (Read error: Connection reset by peer)
15:57:05 × xff0x quits (~xff0x@2001:1a81:53d3:900:7585:5a8d:bffa:bcfc) (Quit: xff0x)
15:57:30 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
16:00:17 xff0x joins (~xff0x@2001:1a81:53d3:900:4e53:4d86:e32e:4caf)
16:02:07 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 260 seconds)
16:04:03 econo joins (uid147250@user/econo)
16:04:46 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
16:09:08 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Read error: Connection reset by peer)
16:09:42 MQ-17J joins (~MQ-17J@d192-24-122-179.try.wideopenwest.com)
16:10:52 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
16:11:27 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
16:15:28 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:17:36 jakalx parts (~jakalx@base.jakalx.net) ()
16:18:27 × Psybur quits (~Psybur@mobile-166-170-34-121.mycingular.net) (Ping timeout: 260 seconds)
16:20:50 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:22:27 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:23:24 × echoSMILE quits (~echoSMILE@user/echosmile) (Quit: Client closed)
16:27:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:28:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:33:31 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:33:42 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
16:34:10 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:35:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:36:23 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
16:40:14 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:40:54 vicfred joins (~vicfred@user/vicfred)
16:41:09 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:41:28 lbseale joins (~lbseale@user/ep1ctetus)
16:44:35 × slowtype- quits (~slowtyper@46.12.47.90.dsl.dyn.forthnet.gr) (Ping timeout: 265 seconds)
16:44:47 × oxide quits (~lambda@user/oxide) (Quit: oxide)
16:45:01 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:45:16 Vajb joins (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi)
16:45:19 slowtyper joins (~slowtyper@user/slowtyper)
16:46:46 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
16:46:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:47:56 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
16:49:43 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
16:50:55 zzz joins (~z@user/zero)
16:51:27 <zzz> am i wrong to say that continuations are "closures"?
16:51:41 Anton-323 joins (~Anton-323@2a05:7e83:3:539:9473:4114:36bf:424c)
16:52:12 <geekosaur> they're one specific kind of closure
16:53:17 <moonoid> Is it possible to call a Haskell script from the bash command line as if it were "cd" or "rm". So no specifying the path to the script and no "$ ghc ..."?
16:55:42 <yushyin> moonoid: https://cabal.readthedocs.io/en/latest/cabal-commands.html#cabal-v2-run
16:56:49 <geekosaur> not sure if runghc lets you have a #! line as the first line of the file…
16:56:56 <yushyin> with one disadvantage, the compiled executable is not cached
16:57:39 × guniberas quits (~guniberas@42.191.188.121) (Ping timeout: 260 seconds)
16:57:45 <merijn> moonoid: Kinda, but your probably don't want that as it'll be slow
16:58:04 <merijn> moonoid: You'd wanna compile it once and then just use the result, tbh
16:58:21 jakalx joins (~jakalx@base.jakalx.net)
16:59:10 robosexual joins (~spaceoyst@88.85.216.62)
16:59:24 <moonoid> yushyin: So the idea is that a globally accessible cabal cmd knows about this script?
16:59:45 <moonoid> merijn: So basically make an executable and add the dir to PATH?
16:59:50 <merijn> moonoid: Well, yes
16:59:59 <merijn> Like in any other compiled language :p
17:00:45 <moonoid> True but Haskell somehow feels special. ;)
17:01:13 <geekosaur> not really
17:01:21 <merijn> runghc and the cabal run shebang are possible options, but they're gonna be significantly slower
17:01:29 <geekosaur> it's not that different from C / C++ in this regard
17:02:11 <geekosaur> it feels different if what you're used to is js or python, I'll grant
17:03:02 <merijn> geekosaur: I think he meant haskell doesn't feel like C :p
17:03:34 <geekosaur> rust's crate might be closer?
17:03:52 <geekosaur> I think they even borrowed some things from cabal
17:08:55 <AWizzArd> Linear Types. Does it count as one use if I use a var in the Then branch and the Else branch of an IF?
17:09:40 × d34df00d quits (~d34df00d@2600:1700:8c60:3a10::48) (Read error: Connection reset by peer)
17:10:11 d34df00d joins (~d34df00d@2600:1700:8c60:3a10::48)
17:10:26 Pickchea joins (~private@user/pickchea)
17:14:50 jokleinn joins (~jokleinn@user/jokleinn)
17:16:18 × gdd quits (~gdd@129.199.146.230) (Remote host closed the connection)
17:16:36 gdd joins (~gdd@129.199.146.230)
17:19:49 <Franciman> yes AWizzArd
17:20:25 <dminuoso> It'd be a bit strange if linear types couldn't even chase linearity through something as simple as if-then-else
17:20:35 <Franciman> wait it depends
17:20:45 <Franciman> do you use the linear variable in the if condition?
17:20:56 × jokleinn quits (~jokleinn@user/jokleinn) (Quit: WeeChat 3.3)
17:21:15 <Franciman> that would count as one usage :P
17:21:18 <Franciman> asking for making sure
17:21:33 <dminuoso> Mmmm https://gitlab.haskell.org/ghc/ghc/-/issues/19477
17:24:15 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
17:24:25 cheater joins (~Username@user/cheater)
17:25:14 <geekosaur> mm, I've been thinking it is getting to be time to take QualifiedDo to heart and just split up RebindableSyntax into its components
17:25:26 <geekosaur> it's the modern -fglasgow-exts
17:27:04 × Vajb quits (~Vajb@n8vwdu04eps78g521-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
17:27:14 <AWizzArd> Franciman: Not using it, yet, just wondering if it could do that. But as dminuoso said it would be strange if it couldn’t do this.
17:27:39 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
17:30:43 slowtype- joins (~slowtyper@79.103.51.245.dsl.dyn.forthnet.gr)
17:32:00 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 260 seconds)
17:32:48 × Anton-323 quits (~Anton-323@2a05:7e83:3:539:9473:4114:36bf:424c) (Quit: Client closed)
17:35:08 neurocyte0132889 joins (~neurocyte@185.117.68.82)
17:35:08 × neurocyte0132889 quits (~neurocyte@185.117.68.82) (Changing host)
17:35:08 neurocyte0132889 joins (~neurocyte@user/neurocyte)
17:35:18 × slowtype- quits (~slowtyper@79.103.51.245.dsl.dyn.forthnet.gr) (Ping timeout: 260 seconds)
17:36:17 slowtyper joins (~slowtyper@user/slowtyper)
17:36:37 <merijn> btw, what's the term when numerical errors compound into a catastrophic error in the final result?
17:38:37 ubert joins (~Thunderbi@178.115.36.180.wireless.dyn.drei.com)
17:39:21 aegon joins (~mike@174.127.249.180)
17:40:21 <geekosaur> "sadness"
17:40:39 <merijn> actually "catastrophic error propagation" sounds good :p
17:41:59 <Rembane_> CEP-flag
17:42:31 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
17:42:46 × xlei quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 260 seconds)
17:45:05 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
17:49:34 <sm> moonoid: stack scripts are similar, but a little better: they cache the compiled version, and are more reproducible
18:00:00 × max22- quits (~maxime@2a01cb0883359800160b7175cc684a86.ipv6.abo.wanadoo.fr) (Ping timeout: 260 seconds)
18:01:08 slowtype- joins (~slowtyper@79.103.49.216.dsl.dyn.forthnet.gr)
18:01:33 <maerwald> for some very narrow meaning of reproducible :)
18:01:54 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 260 seconds)
18:02:23 <maerwald> but yeah, you probably can't use a freeze file with a cabal script
18:02:48 <sclv> you just put the version bounds directly in the header
18:02:49 <sclv> *shrug8
18:03:36 <maerwald> that's not a freeze file
18:04:07 <sclv> yes, but it freezes the deps nonetheless
18:04:14 <maerwald> the direct dependencies only
18:05:31 <monochrom> It is legal to include indirect dependencies.
18:06:53 <maerwald> how would you expan them? :)
18:07:03 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
18:07:36 <monochrom> "perseverence"
18:08:02 <merijn> What's fancy math speak for the "parts" of a summation?
18:08:12 <monochrom> summand
18:08:28 <monochrom> terms
18:08:34 × Midjak quits (~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep)
18:08:43 <sclv> you can generate them by generating a freeze file and pasting the output in
18:08:45 <merijn> summand is probably best
18:08:56 <sclv> or a gen-bounds
18:08:59 <monochrom> Ugh I was inconsistent. summand or term; summands or terms.
18:09:11 <sclv> (actually gen-bounds only does direct, disregard)
18:10:27 <monochrom> I hesitated to suggest "use cabal freeze" because it would defeat the point of being too lazy to write a *.cabal file :)
18:12:06 <sm> yes, it is still quite hard to make a cabal script reproducible. The other part of it, mentioned here recently, is that it depends on you having done cabal update recently
18:12:30 <sclv> i don't think "paste in the deps" is hard. *shrug*
18:12:46 <sclv> i do think we should better document the grammar of the cabal header block
18:12:52 <maerwald> how do you generate a freeze file without a cabal file?
18:12:57 <sclv> i think its closer to a cabal.project than a cabal file, but ot sure
18:13:22 <sclv> i didn't think the use case for scripts was "too lazy to generate a cabal file"
18:13:44 <maerwald> yes that's the use case
18:13:45 <sclv> i thought it was "ease of distribution"
18:14:05 <geekosaur> scripts always struck me as a haskell source with a cabal file at the top
18:14:12 <geekosaur> phrased a little differently
18:14:31 <geekosaur> which doesn't seem very lazy
18:14:34 xlei joins (znc@pool-68-129-84-118.nycmny.fios.verizon.net)
18:23:06 slowtyper joins (~slowtyper@user/slowtyper)
18:24:15 <shapr> speaking of which, I keep meaning to try https://github.com/BrianHicks/nix-script
18:24:28 × slowtype- quits (~slowtyper@79.103.49.216.dsl.dyn.forthnet.gr) (Ping timeout: 260 seconds)
18:30:24 <sm> the idea of a script is "one file, just works"
18:30:27 <sm> and secondly, "easier to make than a cabal project"
18:30:36 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
18:31:30 <sm> if you try shipping haskell code that just works, including for non-haskellers, you'll find all the pain points
18:32:02 <maerwald> yeah, send them a nix config, haha
18:35:03 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
18:35:56 superstar64 joins (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4)
18:37:47 max22- joins (~maxime@2a01cb088335980019672c320416cfca.ipv6.abo.wanadoo.fr)
18:38:30 × dyeplexer quits (~dyeplexer@user/dyeplexer) (Remote host closed the connection)
18:38:58 <superstar64> How do I get hpc to work with cabal? I've tried running `cabal test --enable-coverage` but the pages it generates inside dist-newstyle are empty.
18:40:56 <geekosaur> do you run the program to completion, or do you interrupt it somehow?
18:41:30 jespada joins (~jespada@181.28.253.200)
18:42:20 <superstar64> It runs to completetion and cabal tells me that my tests pass and that the html files are written
18:42:34 <maerwald> cabal version?
18:42:48 <maerwald> I've never actually done this, will give it a go
18:42:57 × moonoid quits (~a@p5b0627a9.dip0.t-ipconnect.de) (Quit: WeeChat 3.0.1)
18:43:17 <superstar64> cabal-install version 3.0.0.0
18:43:24 <superstar64> compiled using version 3.0.1.0 of the Cabal library
18:43:26 <maerwald> upgrade to something newer
18:43:31 <maerwald> 3.4.1.0 or 3.6.2.0
18:43:45 <maerwald> hunting bugs in legacy versions isn't worth it
18:43:47 × jespada quits (~jespada@181.28.253.200) (Client Quit)
18:43:52 <superstar64> It's the default on debian testing
18:44:03 <maerwald> well
18:44:14 <maerwald> https://www.haskell.org/ghcup/
18:44:18 <maerwald> install something new
18:46:13 <superstar64> How out of date is 3.0.0.0? debian testing is usually pretty new
18:46:19 <maerwald> it's not new
18:46:51 <maerwald> from 2019
18:46:54 <maerwald> pre-covid
18:47:17 <geekosaur> we're on 3.6.x now, this should say something
18:47:32 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
18:49:31 jespada joins (~jespada@181.28.253.200)
18:49:55 NieDzejkob joins (~quassel@212.87.13.106)
18:50:10 <janus> i wonder if distros will ever admit that they just shouldn't try to package stuff they don't need for the system :P
18:51:03 × MQ-17J quits (~MQ-17J@d192-24-122-179.try.wideopenwest.com) (Ping timeout: 260 seconds)
18:51:08 <geekosaur> not as long as the distro repos are the first place people look for stuff
18:52:46 <janus> i think the first place people look for stuff is using google ;) so they won't find https://www.debian.org/distrib/packages first
18:53:12 <superstar64> I try to use debian's package manager when ever possible
18:53:29 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Remote host closed the connection)
18:53:38 <maerwald> well, good luck then :p
18:53:43 <superstar64> A lot of cabal packages are actually on debian's repos
18:53:48 neurocyte0132889 joins (~neurocyte@185.117.68.82)
18:53:48 × neurocyte0132889 quits (~neurocyte@185.117.68.82) (Changing host)
18:53:48 neurocyte0132889 joins (~neurocyte@user/neurocyte)
18:53:54 <maerwald> yeah, avoid those
18:54:12 <superstar64> Why?
18:54:19 MQ-17J joins (~MQ-17J@2607:fb90:884d:3b56:d10e:dfdb:4d5e:86f1)
18:55:12 × alx741 quits (~alx741@181.196.69.72) (Quit: alx741)
18:55:53 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:55:58 <janus> because they are unmaintained as you can see
18:56:12 <superstar64> Having it as a dpkg package actually uninstall it
18:56:42 <superstar64> actually lets me uninstall things*
18:57:31 <[exa]> superstar64: it's good for supporting the other debian packages, but if you need something a bit custom (bumping one version of something in the middle of dependency chain), you just can't
18:58:39 janiczek joins (~janiczek@89-24-215-117.customers.tmcz.cz)
18:59:06 <[exa]> that said, it works (I'm keeping system pandoc installation that way), also for development, but there you're sooner or later going to hit a wall
18:59:42 <merijn> having pandoc dependencies installed as separate debian package is a dumb ass decision anyway
19:00:00 <merijn> They should just install the final static binary and not a 100+ transitive haskell dependencies as dynamic libs
19:01:04 <geekosaur> debian's not the one that does that
19:01:29 <geekosaur> they do have the poackages but that's because a system should be able to reproduce itself; thy're build-only deps
19:01:51 <geekosaur> if you install pandoc you get only pandoc
19:02:47 × marinelli quits (~marinelli@gateway/tor-sasl/marinelli) (Remote host closed the connection)
19:03:02 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds)
19:03:14 <[exa]> there's some debian policy that prevented this, but given the amount of software installed as static (mainly the venerable 450MB docker binary) I guess it could use an update
19:03:16 marinelli joins (~marinelli@gateway/tor-sasl/marinelli)
19:03:24 <[exa]> geekosaur: wow is that a recent update?
19:03:32 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fae3-116.dhcp.inet.fi) (Read error: Connection reset by peer)
19:03:42 <geekosaur> I didn't get gallons of crap when I installed pandoc
19:03:57 <geekosaur> that said I'm on ubuntu which might have altered that policy, I guess
19:04:12 <[exa]> oh wow really, there we go 148M /usr/bin/pandoc
19:04:13 <geekosaur> ut they certainly don't install stuff dynamically like arch does
19:04:38 <janus> no, it's not just ubuntu, it also doesn't install all the deps on debian bullseye
19:04:49 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:05:55 × janiczek quits (~janiczek@89-24-215-117.customers.tmcz.cz) (Quit: Connection closed)
19:05:57 alx741 joins (~alx741@181.196.69.72)
19:09:46 <[exa]> ok cool, seems like I completely confused myself into believing that pandoc actually depends on that stuff
19:10:02 <[exa]> what a great day to learn this.
19:10:36 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
19:12:17 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
19:14:23 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 260 seconds)
19:14:35 ystael joins (~ystael@user/ystael)
19:14:43 slowtyper joins (~slowtyper@user/slowtyper)
19:20:35 echoSMILE joins (~echoSMILE@user/echosmile)
19:21:31 × kuribas quits (~user@ptr-25vy0i7odq84g8auwpp.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
19:26:44 burnsidesLlama joins (~burnsides@dhcp168-053.wadham.ox.ac.uk)
19:28:40 × slowtyper quits (~slowtyper@user/slowtyper) (Ping timeout: 260 seconds)
19:28:43 slowtype- joins (~slowtyper@2a02:214c:8630:300:654c:f501:742f:b8e4)
19:30:53 pavonia joins (~user@user/siracusa)
19:31:08 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
19:31:35 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Ping timeout: 264 seconds)
19:32:23 shiroginne joins (~shiroginn@2a02:8109:9880:16c0:109f:6509:a2bf:b905)
19:35:14 × max22- quits (~maxime@2a01cb088335980019672c320416cfca.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
19:36:09 × fendor quits (~fendor@77.119.200.17.wireless.dyn.drei.com) (Remote host closed the connection)
19:36:18 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
19:40:12 fendor joins (~fendor@77.119.200.17.wireless.dyn.drei.com)
19:42:44 manicennui joins (uid349235@tinside.irccloud.com)
19:45:50 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
19:49:16 × robosexual quits (~spaceoyst@88.85.216.62) (Quit: Konversation terminated!)
19:51:25 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
19:55:01 mvk joins (~mvk@2607:fea8:5cc1:300::d3fb)
19:58:07 lavaman joins (~lavaman@98.38.249.169)
19:58:20 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
19:59:55 acidjnk_new3 joins (~acidjnk@p200300d0c7161c6868001932eceb2d10.dip0.t-ipconnect.de)
20:00:10 × Null_A quits (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e) (Remote host closed the connection)
20:00:51 acidjnk_new joins (~acidjnk@p200300d0c7238d5160a532b196255ee8.dip0.t-ipconnect.de)
20:01:37 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
20:04:19 × acidjnk_new3 quits (~acidjnk@p200300d0c7161c6868001932eceb2d10.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
20:04:41 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds)
20:04:55 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
20:05:04 CiaoSen joins (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
20:05:15 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 260 seconds)
20:06:01 × shiroginne quits (~shiroginn@2a02:8109:9880:16c0:109f:6509:a2bf:b905) (Quit: Textual IRC Client: www.textualapp.com)
20:06:44 juhp joins (~juhp@128.106.188.220)
20:09:27 <ski> merijn : fwiw, there's also "augend" (that which is added to) and "addend" (the thing to add)
20:09:56 × mei quits (~mei@user/mei) (Ping timeout: 260 seconds)
20:10:08 <geekosaur> "augend" looks too much like "augeas"
20:10:51 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Quit: WeeChat 3.3)
20:11:12 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:12:02 × lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection)
20:12:16 <maerwald> so, how do you install ghcjs? Are there bindists?
20:12:17 <merijn> ski: To fancy ;)
20:14:24 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
20:16:17 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 265 seconds)
20:18:11 mikoto-chan joins (~mikoto-ch@185.237.102.117)
20:18:12 burnsidesLlama joins (~burnsides@dhcp168-053.wadham.ox.ac.uk)
20:21:22 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
20:21:35 Null_A joins (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e)
20:22:30 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
20:26:54 <ski> i'd only use "augend","addend", when there's a clear difference between the "absolute amount", and the "relative amount" added to it
20:27:22 <ski> (e.g. adding a vector to a point. or adding a temperature difference to an absolute temperature, &c.)
20:31:17 × mikoto-chan quits (~mikoto-ch@185.237.102.117) (Quit: mikoto-chan)
20:38:13 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
20:41:46 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
20:41:47 yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net)
20:43:01 solomon joins (~solomon@cpe-76-168-7-139.socal.res.rr.com)
20:44:54 wootehfoot joins (~wootehfoo@user/wootehfoot)
20:54:19 × MQ-17J quits (~MQ-17J@2607:fb90:884d:3b56:d10e:dfdb:4d5e:86f1) (Read error: Connection reset by peer)
20:54:37 MQ-17J joins (~MQ-17J@8.6.144.197)
21:00:39 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
21:02:40 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 260 seconds)
21:05:28 kaol joins (~kaol@94-237-42-30.nl-ams1.upcloud.host)
21:06:04 jle` joins (~justin@cpe-23-240-75-236.socal.res.rr.com)
21:07:19 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
21:10:35 × mvk quits (~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 264 seconds)
21:11:54 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 276 seconds)
21:13:45 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
21:17:40 brainfreeze joins (~brainfree@2a03:1b20:4:f011::20d)
21:18:43 × superstar64 quits (~superstar@2600:1700:ed80:50a0:d250:99ff:fe2c:53c4) (Quit: Leaving)
21:23:40 × yrlnry quits (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net) (Ping timeout: 260 seconds)
21:24:11 yrlnry joins (~mjd@pool-74-109-22-90.phlapa.fios.verizon.net)
21:26:00 × d0ku quits (~d0ku@178.43.15.137.ipv4.supernova.orange.pl) (Ping timeout: 260 seconds)
21:26:13 × zincy quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Read error: Connection reset by peer)
21:29:01 × solomon quits (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Ping timeout: 256 seconds)
21:29:27 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:31:46 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
21:32:32 <jackdk> Conduit question: I have a ConduitT () ByteString m r representing a large file, and I want to process it in chunks, where each chunk is between some minimum and maximum (constant) number of bytes. I feel like I would want to write a function like `chunksBetween :: Monad m => Integer -> Integer -> ConduitT i ByteString m r -> ConduitT i (ConduitT i ByteString m ()) m r` that streams smoothly from the input conduit.
21:32:53 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:33:41 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
21:33:53 <maerwald> jackdk: too bad you're not using streamly :D
21:34:02 <maerwald> https://hackage.haskell.org/package/streamly-0.8.0/docs/Streamly-Prelude.html#v:chunksOf
21:34:11 <jackdk> Pipes appears to have this operator in `pipes-group`, as some kind of crazy lens that lets you look at it as a `FreeT` or something, and I can't make heads or tails of it. Streaming looks like it could give you a `Stream (Of (Stream (Of o))`, which is what's driving my intuitions about where I want conduit to go. The other option would be conduit's connect-and-resume `SealedConduit` stuff, but the library I'm using only accepts a conduit
21:35:20 <maerwald> jackdk: https://hackage.haskell.org/package/conduit-1.3.4.2/docs/Data-Conduit-Combinators.html#v:chunksOfE
21:35:22 <maerwald> ?
21:38:32 <juri_> hmm. if you've got a test suite written using quickcheck and `shouldbe` from hunit, is there a way, when a test is falsifiable, to see the sets of values that didn't fail?
21:38:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
21:39:31 neotod joins (~manjaro-u@95.85.66.41)
21:39:41 × neotod quits (~manjaro-u@95.85.66.41) (Client Quit)
21:41:03 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Quit: Leaving)
21:41:52 <jackdk> maerwald: right, now the full hardmode context. I'm helping Axman6 with amazonka-s3-streaming. The high-level goal: create a multipart upload in S3, and perform upload part requests such that each chunk is between some minimum and maximum size. amazonka can accept a conduit describing the body to upload. This makes me think about generating a stream of conduits, where each one streams from the outer conduit with minimal rechunking
21:42:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
21:43:30 <maerwald> multipart upload works easier from the frontend side :p
21:43:43 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
21:43:44 <jackdk> maerwald: ?
21:43:58 <maerwald> yep, you can do multipart upload from the fronted to S3
21:44:13 <maerwald> with a tokenish link
21:44:19 <maerwald> I forgot the details
21:44:21 <jackdk> I mean sure, but also this library is a tool that is useful to people
21:44:26 <maerwald> yeah sure
21:44:48 <maerwald> but it's less efficient, in a way
21:45:02 <maerwald> because you stream to the backend and then from the backend to S3
21:45:23 × ubert quits (~Thunderbi@178.115.36.180.wireless.dyn.drei.com) (Ping timeout: 264 seconds)
21:45:42 <jackdk> that's only if amazonka-s3-streaming is used in the context of a webapp, no?
21:45:48 <maerwald> yeah
21:46:05 <jackdk> we want minimal unnecessary rechunking at the S3 multipart upload level (so like if we're just under our target part size, just throw the next chunk in - don't split it), and also once the first part is uploaded, we need to be able to send the remainder of the conduit to the next part
21:46:24 <jackdk> and do that without buffering an entire part's worth of chunks
21:46:35 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Ping timeout: 264 seconds)
21:47:07 <maerwald> yeah, I don't think that exists... there's only chunksOfE and chunksOfExactlyE
21:48:01 <jackdk> juri_: I don't use quickcheck but is there a setting that controls general test verbosity? I wonder if the `shouldbe` stuff is a red herring?
21:48:21 <maerwald> https://hackage.haskell.org/package/conduit-1.3.4.2/docs/src/Data.Conduit.Combinators.html#chunksOfE
21:48:27 <maerwald> but you can probably just leverage the code
21:49:37 × Null_A quits (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e) (Remote host closed the connection)
21:49:54 Null_A joins (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e)
21:54:30 <jackdk> right, but there are two levels of grouping going on here - I want to group the ByteStrings in such a way that I send between minPartSize and maxPartSize to each amazonka upload-part request. Then within each part, I want to emit at least minChunkSize chunks
21:55:04 × fendor quits (~fendor@77.119.200.17.wireless.dyn.drei.com) (Read error: Connection reset by peer)
21:55:57 <jackdk> and do this two-level grouping without buffering each part, and with a minimum of reallocations
21:57:47 × jinsun quits (~quassel@user/jinsun) (Ping timeout: 265 seconds)
22:04:43 × CiaoSen quits (~Jura@p200300c95730dd002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
22:05:11 × chomwitt quits (~chomwitt@ppp-94-68-249-8.home.otenet.gr) (Ping timeout: 260 seconds)
22:05:43 <maerwald> jackdk: do you have a link to the ticket/PR?
22:06:17 <jackdk> there isn't one yet, Axman6 and I have been hashing it out 1-1
22:06:42 <jackdk> (chunkedbody uploads have been broken in amazonka for a while anyway, so this stream grouping stuff hasn't even been an option yet)
22:06:48 × jespada quits (~jespada@181.28.253.200) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:07:07 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:07:14 <maerwald> that's why I went with frontend-side uploads back when I needed that
22:09:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
22:09:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
22:09:48 wroathe joins (~wroathe@user/wroathe)
22:10:35 × emf quits (~emf@2620:10d:c090:400::5:b46d) (Ping timeout: 264 seconds)
22:10:49 <maerwald> https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createPresignedPost-property
22:10:52 <maerwald> that one
22:12:16 emf joins (~emf@2620:10d:c091:480::1:1c3a)
22:16:48 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
22:20:17 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
22:21:06 justHaunt is now known as justache
22:22:43 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
22:26:27 mvk joins (~mvk@2607:fea8:5cc1:300::d3fb)
22:26:46 × emf quits (~emf@2620:10d:c091:480::1:1c3a) (Ping timeout: 245 seconds)
22:29:08 emf joins (~emf@2620:10d:c090:400::5:5ca4)
22:32:16 × alx741 quits (~alx741@181.196.69.72) (Quit: alx741)
22:32:30 × ouroboros quits (~ouroboros@user/ouroboros) (Quit: Bye.)
22:32:55 neotod joins (~manjaro-u@95.85.66.41)
22:33:17 ouroboros joins (~ouroboros@user/ouroboros)
22:33:51 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 245 seconds)
22:35:29 × michalz quits (~michalz@185.246.204.125) (Remote host closed the connection)
22:50:59 × neotod quits (~manjaro-u@95.85.66.41) (Quit: Konversation terminated!)
22:52:20 × burnsidesLlama quits (~burnsides@dhcp168-053.wadham.ox.ac.uk) (Remote host closed the connection)
22:53:27 × Null_A quits (~null_a@2601:645:8700:2290:391b:b1e6:7bfa:182e) (Remote host closed the connection)
22:56:45 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:57:54 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
23:00:29 lavaman joins (~lavaman@98.38.249.169)
23:03:57 <Axman6> To be clear, I am also ok with just storing data in memory in a Builder and writing it out - the amount of data in memory should be bounded (though might have some issues if someone maliciously sends very large bytestring - someone like jackdk)
23:05:14 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
23:07:16 × myShoggoth quits (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
23:16:36 × Guest82 quits (~Guest82@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
23:19:20 <Axman6> (To be more clear, jackdk is not (necessarily) malicious, but he did think about this possibly being a problem)
23:19:55 × jle` quits (~justin@cpe-23-240-75-236.socal.res.rr.com) (Quit: WeeChat 2.7)
23:20:47 × acidjnk_new quits (~acidjnk@p200300d0c7238d5160a532b196255ee8.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:24:02 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55) (Remote host closed the connection)
23:26:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
23:29:25 solomon joins (~solomon@cpe-76-168-7-139.socal.res.rr.com)
23:37:28 <jackdk> It's more that I am always willing to troll Axman6
23:37:59 <Axman6> chaotic good
23:37:59 myShoggoth joins (~myShoggot@97-120-85-195.ptld.qwest.net)
23:38:23 <jackdk> but also that the maximum size of a multipart upload part is 5GB, and if we could stream parts of that size rather than buffer 5GB, that'd be grand
23:39:47 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
23:40:32 × mvk quits (~mvk@2607:fea8:5cc1:300::d3fb) (Ping timeout: 258 seconds)
23:40:42 × kayprish quits (~kayprish@46.240.130.158) (Remote host closed the connection)
23:43:11 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:197f:30be:cf5f:af55)
23:43:29 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
23:43:29 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
23:43:29 wroathe joins (~wroathe@user/wroathe)
23:43:30 × tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (Ping timeout: 260 seconds)
23:48:23 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 264 seconds)
23:49:46 <Axman6> yeah - need to add something to cap that chunksize too...
23:50:36 <Axman6> so... a lot of these problems could be fixed with threads and channels potentially
23:50:59 lavaman joins (~lavaman@98.38.249.169)
23:52:14 <Axman6> stream in bytestring chunks, fork a thread for each upload chunk when needed then push chunks into the channel. in the thread, making a conduit which reads from the channel is pretty easy and would allow concurrent upload and input. at the moment they're interleaved which isn't ideal
23:52:34 fluffyballoon joins (~user@131.93.208.196)
23:52:44 <Axman6> if I bound the size of the channel then it should provide the appropriate backpressure to prevent filling up ram if something going wrong
23:53:31 × solomon quits (~solomon@cpe-76-168-7-139.socal.res.rr.com) (Quit: Client closed)
23:54:37 PuzzledSA joins (~PuzzledSA@cache0-req.hlcrwi.sol.net)
23:57:17 tdammers joins (~tdammers@77.109.72.177.res.static.edpnet.net)

All times are in UTC on 2021-10-26.