Home liberachat/#haskell: Logs Calendar

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

00:00:09 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
00:01:23 roconnor joins (~roconnor@host-45-58-217-8.dyn.295.ca)
00:01:54 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
00:02:59 × ph88 quits (~ph88@2a02:8109:9e00:7e5c::3d56) (Remote host closed the connection)
00:04:58 ph88 joins (~ph88@2a02:8109:9e00:7e5c::3d56)
00:06:22 machinedgod joins (~machinedg@24.105.81.50)
00:07:03 hyiltiz joins (~quassel@31.220.5.250)
00:09:58 × machinedgod quits (~machinedg@24.105.81.50) (Remote host closed the connection)
00:11:01 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
00:11:18 machinedgod joins (~machinedg@24.105.81.50)
00:11:23 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
00:11:24 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
00:11:24 wroathe joins (~wroathe@user/wroathe)
00:13:44 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
00:19:52 hololeap_ is now known as hololeap
00:34:21 × [Kalisto] quits (~nico@user/kalisto/x-8968079) (Ping timeout: 265 seconds)
00:36:28 favonia joins (~favonia@user/favonia)
00:37:05 × Skyfire quits (~pyon@user/pyon) (Quit: brb)
00:37:11 × acidjnk_new quits (~acidjnk@pd9e0b933.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
00:37:16 <hololeap> ph88: it will be easier if you reverse the string and match on it that way, I think
00:38:02 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
00:40:27 Skyfire joins (~pyon@user/pyon)
00:41:16 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 252 seconds)
00:43:05 waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
00:46:00 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
00:58:47 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
01:01:58 ski joins (~ski@remote12.chalmers.se)
01:02:23 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
01:07:40 × xff0x quits (~xff0x@2001:1a81:52ca:8900:7389:7610:d1fa:c93e) (Ping timeout: 252 seconds)
01:09:18 xff0x joins (~xff0x@2001:1a81:534f:ad00:a171:1916:9bbd:f9e0)
01:11:46 × waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
01:12:34 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
01:15:33 lavaman joins (~lavaman@98.38.249.169)
01:18:49 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
01:21:21 × sclv quits (sid39734@haskell/developer/sclv) (Ping timeout: 245 seconds)
01:21:21 × gonz___ quits (sid304396@id-304396.lymington.irccloud.com) (Ping timeout: 245 seconds)
01:21:21 × hendi quits (sid489601@id-489601.lymington.irccloud.com) (Ping timeout: 245 seconds)
01:21:22 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
01:21:22 × slack1256 quits (~slack1256@45.4.2.52) (Ping timeout: 252 seconds)
01:22:14 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (Ping timeout: 260 seconds)
01:22:21 × hnOsmium0001 quits (uid453710@id-453710.hampstead.irccloud.com) (Ping timeout: 265 seconds)
01:22:36 × econo quits (uid147250@user/econo) (Ping timeout: 245 seconds)
01:22:41 × CiaoSen quits (~Jura@p5dcc1303.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
01:22:42 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 260 seconds)
01:23:20 sclv joins (sid39734@haskell/developer/sclv)
01:23:24 gonz___ joins (sid304396@lymington.irccloud.com)
01:23:26 × aarchi quits (sid486183@id-486183.uxbridge.irccloud.com) (Ping timeout: 245 seconds)
01:23:26 × edwardk quits (sid47016@haskell/developer/edwardk) (Ping timeout: 245 seconds)
01:23:36 hendi joins (sid489601@lymington.irccloud.com)
01:23:37 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 252 seconds)
01:23:38 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (Ping timeout: 260 seconds)
01:23:49 acertain joins (sid470584@hampstead.irccloud.com)
01:25:52 hnOsmium0001 joins (uid453710@hampstead.irccloud.com)
01:26:24 edwardk joins (sid47016@haskell/developer/edwardk)
01:26:32 aarchi joins (sid486183@uxbridge.irccloud.com)
01:26:43 agander_m joins (sid407952@tinside.irccloud.com)
01:26:52 dmj` joins (sid72307@hampstead.irccloud.com)
01:36:53 × _0x47 quits (sid508683@tinside.irccloud.com) (Read error: Connection reset by peer)
01:36:56 × hongminhee quits (sid295@tinside.irccloud.com) (Read error: Connection reset by peer)
01:37:00 × taktoa[c] quits (sid282096@tinside.irccloud.com) (Read error: Connection reset by peer)
01:37:00 × glowcoil quits (sid3405@tinside.irccloud.com) (Read error: Connection reset by peer)
01:37:02 × typetetris quits (sid275937@tinside.irccloud.com) (Read error: Connection reset by peer)
01:37:04 × bbhoss quits (sid18216@tinside.irccloud.com) (Read error: Connection reset by peer)
01:37:11 × jmct_ quits (sid160793@tinside.irccloud.com) (Ping timeout: 265 seconds)
01:37:11 × kristjansson_ quits (sid126207@tinside.irccloud.com) (Ping timeout: 265 seconds)
01:37:19 × agander_m quits (sid407952@tinside.irccloud.com) (Ping timeout: 252 seconds)
01:37:22 × hubvu quits (sid495858@user/hubvu) (Ping timeout: 252 seconds)
01:37:22 × jackdk quits (sid373013@cssa/jackdk) (Read error: Connection reset by peer)
01:37:35 × sa quits (sid1055@tinside.irccloud.com) (Write error: Connection reset by peer)
01:39:16 pepeiborra joins (sid443799@ilkley.irccloud.com)
01:45:08 _0x47 joins (sid508683@id-508683.tinside.irccloud.com)
01:45:22 typetetris joins (sid275937@id-275937.tinside.irccloud.com)
01:45:49 jmct_ joins (sid160793@tinside.irccloud.com)
01:46:24 sa joins (sid1055@tinside.irccloud.com)
01:49:42 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
01:50:36 kristjansson_ joins (sid126207@id-126207.tinside.irccloud.com)
01:50:38 bbhoss joins (sid18216@id-18216.tinside.irccloud.com)
01:50:56 taktoa[c] joins (sid282096@id-282096.tinside.irccloud.com)
01:51:06 jackdk joins (sid373013@cssa/jackdk)
01:51:28 hubvu joins (sid495858@user/hubvu)
01:51:39 hongminhee joins (sid295@id-295.tinside.irccloud.com)
01:52:06 econo joins (uid147250@user/econo)
01:52:19 agander_m joins (sid407952@id-407952.tinside.irccloud.com)
01:57:58 × roconnor quits (~roconnor@host-45-58-217-8.dyn.295.ca) (Quit: Konversation terminated!)
02:04:45 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
02:04:45 Jeanne-Kamikaze joins (~Jeanne-Ka@static-198-54-131-119.cust.tzulo.com)
02:15:27 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
02:16:49 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
02:19:10 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
02:27:58 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:31:13 × pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
02:34:16 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
02:36:20 × betelgeuse quits (~betelgeus@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat)
02:36:25 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
02:36:26 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
02:36:26 wroathe joins (~wroathe@user/wroathe)
02:41:57 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
02:45:13 × Jeanne-Kamikaze quits (~Jeanne-Ka@static-198-54-131-119.cust.tzulo.com) (Quit: Leaving)
02:49:13 lavaman joins (~lavaman@98.38.249.169)
02:52:07 × td_ quits (~td@muedsl-82-207-238-022.citykom.de) (Ping timeout: 252 seconds)
02:53:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds)
02:53:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 265 seconds)
02:53:43 td_ joins (~td@94.134.91.135)
02:55:20 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:00:00 × Taneb quits (~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.)
03:00:16 pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net)
03:01:08 Taneb joins (~Taneb@runciman.hacksoc.org)
03:03:51 roconnor joins (~roconnor@host-45-58-217-8.dyn.295.ca)
03:06:05 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: leaving)
03:06:38 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
03:08:17 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
03:08:40 tomsmeding joins (~tomsmedin@tomsmeding.com)
03:08:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
03:09:46 × shriekingnoise quits (~shrieking@186.137.144.80) (Quit: Quit)
03:09:50 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
03:09:50 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
03:09:50 wroathe joins (~wroathe@user/wroathe)
03:11:33 shriekingnoise joins (~shrieking@186.137.144.80)
03:12:09 × alx741 quits (~alx741@181.196.69.249) (Quit: alx741)
03:15:15 roconnor_ joins (~roconnor@host-45-58-217-8.dyn.295.ca)
03:15:29 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
03:15:38 × roconnor quits (~roconnor@host-45-58-217-8.dyn.295.ca) (Ping timeout: 260 seconds)
03:17:10 mbuf joins (~Shakthi@223.178.93.142)
03:17:58 × hammock quits (~Hammock@2600:1700:19a1:3330::588) (Ping timeout: 260 seconds)
03:25:02 falafel joins (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com)
03:27:12 × zebrag quits (~chris@user/zebrag) (Remote host closed the connection)
03:35:28 roconnor_ is now known as roconnor
03:43:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
03:47:10 × falafel quits (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) (Ping timeout: 252 seconds)
03:53:21 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Remote host closed the connection)
03:53:30 × dfg quits (dfg@user/dfg) (Quit: I hate quit messages.)
03:55:27 dfg joins (dfg@2600:3c00::f03c:92ff:feb4:be75)
03:55:27 × dfg quits (dfg@2600:3c00::f03c:92ff:feb4:be75) (Changing host)
03:55:27 dfg joins (dfg@user/dfg)
04:02:59 × aegon quits (~mike@174.127.249.180) (Remote host closed the connection)
04:39:01 × slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving)
04:43:26 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
04:48:17 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
04:50:10 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
04:50:10 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
04:50:10 wroathe joins (~wroathe@user/wroathe)
04:51:35 phma_ joins (~phma@host-67-44-208-35.hnremote.net)
04:52:04 × phma quits (~phma@host-67-44-209-84.hnremote.net) (Read error: Connection reset by peer)
04:55:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
04:57:10 img joins (~img@user/img)
05:01:15 phma_ is now known as phma
05:03:34 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
05:04:43 × retroid_ quits (~retro@176.255.22.194) (Ping timeout: 252 seconds)
05:06:27 aliosablack joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
05:11:25 hyiltiz joins (~quassel@31.220.5.250)
05:11:50 × tabemann_ quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Ping timeout: 260 seconds)
05:15:28 tabemann joins (~tabemann@2600:1700:7990:24e0:3cc6:48ac:847e:27f3)
05:15:44 <vaibhavsagar[m]> looking at the changelog for aeson: https://hackage.haskell.org/package/aeson-2.0.1.0/changelog, it looks like they've switched to `Map Text Value` instead of `HashMap Text Value` by default? This is huge, was it discussed anywhere?
05:16:41 <razor[m]> vaibhavsagar[m]: look history
05:17:08 <vaibhavsagar[m]> the history of what exactly?
05:17:22 <vaibhavsagar[m]> I know about the hash collision problem
05:17:55 <vaibhavsagar[m]> but when did we decide that `Map Text` performed better than `HashMap Text`
05:18:34 <vaibhavsagar[m]> now I'm thinking about all the code I have to rewrite
05:20:16 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
05:21:05 <razor[m]> then rewrite lol
05:21:13 <razor[m]> easy peasy
05:22:43 <vaibhavsagar[m]> and also maintain backwards compatibility for
05:24:05 <razor[m]> 🤦‍♀️
05:25:24 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
05:33:51 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:33:58 <Axman6> looks like there's a flag https://github.com/haskell/aeson/pull/871/files#diff-2c0e389ce159d4726f1597ca2a63f039fe8c35706280f60aeb6770b537aaa32eR150
05:34:23 <dsal> These commits make me sad. :(
05:35:35 <vaibhavsagar[m]> Axman6: the flag is on by default now
05:35:45 <vaibhavsagar[m]> so far all I can find is https://github.com/haskell/aeson/issues/864#issuecomment-917455382
05:37:53 <dsal> I've been arguing with some people I'm working with about writing better commit messages. This project is kind of a poster child for "git as backup." These changes are major design and implementation changes, but the commit messages are all like "Add ordered keymap option\nAlso add alterF, delete and from/toHashMapText to KeyMap module"
05:38:13 <dsal> Lost a great opportunity to answer questions like vaibhavsagar[m] and lots of other people are going to be asking.
05:38:15 retroid_ joins (~retro@2e41e9c8.skybroadband.com)
05:39:02 <vaibhavsagar[m]> dsal: I agree in general, but in this case even a pull request/issue linked from the PR would have helped greatly
05:39:14 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
05:39:17 <vaibhavsagar[m]> I consider myself fairly informed when it comes to the Haskell ecosystem
05:39:22 × shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 260 seconds)
05:39:27 <vaibhavsagar[m]> I followed the blog post about DOS
05:40:17 <vaibhavsagar[m]> I know people were agitating for solutions (which I also want, to be clear)
05:40:46 <vaibhavsagar[m]> but there don't seem to be any benchmarks quantifying the performance changes
05:42:57 <dsal> Sure, the commit is the best place to write a description of the change (since that *is* the change). Some people like the PR process. I think it's kind of awful, but at least if you have good connectivity while you're reviewing stuff, you might find some information. Bugs are differently useful. But yeah, three places this could've been communicated.
05:44:25 <Axman6> I had also managed to miss this change was happening, definitely a bit of a surprise.
05:44:52 <awpr> stumbled on this comment: https://github.com/haskell-unordered-containers/unordered-containers/issues/319#issuecomment-918589714
05:44:55 <dsal> It's a good change at least.
05:44:57 wonko joins (~wjc@62.115.229.50)
05:45:12 <awpr> "The problem with SipHash is that apparently it's so slow that you might as well switch to Data.Map"
05:45:47 <awpr> if the mitigations all involved hash functions with that property, then using Map would in fact be the best performing way to eliminate the vulnerability
05:46:01 <Axman6> feels like a change that could have used backpack or something, but I have no idea how many cans of worms that opens, particularly for such a depended upon library.
05:46:42 <dsal> I wonder how big a typical JSON object is.
05:46:59 <Axman6> vaibhavsagar[m]: if you can at least use the common interface that this library exposes, which should match most if not all of what's exposed in v1, then it shouldn't be too hard to support v1 and v2 I think...
05:47:30 <dsal> I was using lenses to update some of these things because I couldn't be bothered to import and/or learn the HashMap functions.
05:47:37 <dsal> I accidentally made compatible code.
05:48:10 <vaibhavsagar[m]> Axman6: that's true going forward, but if I have to simultaneously support old and new versions of `aeson` in e.g. `ihaskell` there's no way around CPP crimes against humanity
05:48:20 <Axman6> Something I have wanted in aeson for a long time is a way to be more strict about what it parses. at the moment, if someone sends me {"foo": 1, "lolsuckit": <4TB of random text>, "bar": true} I have no way to bail and say "lolsuckit" isn't a key I am expecting
05:48:42 <Axman6> vaibhavsagar[m]: I'm saying those CPP parts should be very small
05:48:51 <vaibhavsagar[m]> also someone complained about how aeson doesn't preserve insertion order
05:48:55 <vaibhavsagar[m]> and it still doesn't
05:49:18 <vaibhavsagar[m]> because `ordered` only means that there is an ordering between keys
05:49:38 <vaibhavsagar[m]> not that it is the one that was present beforehand
05:50:07 <Axman6> waargonaught solves a lot of these problems IIRC
05:50:22 <Axman6> including the one I mentioned above, because I asked Sean to add it for me :P
05:50:32 <vaibhavsagar[m]> cool but that's not what my dependencies use
05:51:39 <vaibhavsagar[m]> I also didn't think Sean was still working on it but I just checked and I am very wrong about that
05:57:26 <Axman6> Sean is a much better maintainer than I am
05:58:50 _ht joins (~quassel@82-169-194-8.biz.kpn.net)
06:01:28 <dibblego> Sean handed it over to Emily, myself and whoever else is keen
06:02:23 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
06:07:00 <Axman6> Also much better maintainers than I am
06:07:39 desantra joins (~skykanin@user/skykanin)
06:10:52 × tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in)
06:11:11 tomsmeding joins (~tomsmedin@tomsmeding.com)
06:13:33 michalz joins (~michalz@185.246.204.89)
06:13:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
06:15:02 × desantra quits (~skykanin@user/skykanin) (Quit: WeeChat 3.3)
06:15:35 <dibblego> I've considered writing an API to work over both aeson and waargonaut
06:20:01 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
06:20:24 × brainfreeze quits (~brainfree@2a03:1b20:4:f011::20d) (Remote host closed the connection)
06:20:58 lavaman joins (~lavaman@98.38.249.169)
06:22:45 <awpr> since I'm apparently not creative enough, how about crowd-sourcing: any ideas for better names for this package? https://github.com/awpr/niche-containers/tree/keyed_containers/keyed-containers
06:24:16 <dibblego> woss wrong with keyed-containers?
06:24:56 <awpr> just a bit weird to apply it to IntSet
06:24:58 <Axman6> "intricate-containers" =)
06:25:28 <awpr> "keyed" works well for IntMap and Vector though (if I get around to doing a vector one)
06:25:44 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
06:25:44 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
06:26:02 × Skyfire quits (~pyon@user/pyon) (Ping timeout: 260 seconds)
06:26:11 jtomas_ joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
06:27:00 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Remote host closed the connection)
06:27:28 Null_A joins (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c)
06:28:13 × Null_A quits (~null_a@2601:645:8700:2290:14d:2889:1082:cd2c) (Client Quit)
06:29:39 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
06:44:07 Guest63 joins (~Guest63@2607:fb90:8f02:2c9f:6d81:92ca:ea64:2fd8)
06:45:26 × Guest63 quits (~Guest63@2607:fb90:8f02:2c9f:6d81:92ca:ea64:2fd8) (Client Quit)
06:47:33 lortabac joins (~lortabac@2a01:e0a:541:b8f0:3723:9200:db0d:b69e)
06:51:07 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
06:51:49 <jackdk> Can anyone recommend for me a lightweight regex library? I don't need to test for anything more complex than basic character classes
06:53:44 Skyfire joins (~pyon@user/pyon)
07:00:16 <pavonia> regex-posix
07:01:04 <pavonia> Maybe ReadP is an alternative too
07:05:26 <jackdk> yes, that's probably what I'm looking for. Thanks pavonia
07:06:31 <pavonia> Regexes are rarely used in Haskell, you usually use parser combinators for such tasks
07:07:04 <jackdk> Yeah. However, I'm porting code that exists in another language and I specifically want the tests to obviously correspond.
07:09:49 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:13:37 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
07:13:37 allbery_b joins (~geekosaur@xmonad/geekosaur)
07:13:40 allbery_b is now known as geekosaur
07:18:18 Farzad joins (~FarzadBek@178.131.27.23)
07:19:07 × wonko quits (~wjc@62.115.229.50) (*.net *.split)
07:19:08 × hyiltiz quits (~quassel@31.220.5.250) (*.net *.split)
07:19:08 × td_ quits (~td@94.134.91.135) (*.net *.split)
07:19:08 × lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (*.net *.split)
07:19:08 × aarchi quits (sid486183@uxbridge.irccloud.com) (*.net *.split)
07:19:08 × hnOsmium0001 quits (uid453710@hampstead.irccloud.com) (*.net *.split)
07:19:08 × hendi quits (sid489601@lymington.irccloud.com) (*.net *.split)
07:19:08 × gonz___ quits (sid304396@lymington.irccloud.com) (*.net *.split)
07:19:08 × fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split)
07:19:08 × terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (*.net *.split)
07:19:08 × sm2n quits (~sm2n@user/sm2n) (*.net *.split)
07:19:08 × unmanbearpig quits (~unmanbear@user/unmanbearpig) (*.net *.split)
07:19:08 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (*.net *.split)
07:19:08 × ghoulguy quits (x@libera/staff/glguy) (*.net *.split)
07:19:08 × cls quits (~cls@chalk.lubutu.com) (*.net *.split)
07:19:08 × hook54321 quits (sid149355@user/hook54321) (*.net *.split)
07:19:08 × T_S_ quits (sid501726@uxbridge.irccloud.com) (*.net *.split)
07:19:08 × rembo10 quits (~rembo10@remulis.com) (*.net *.split)
07:19:08 × mniip quits (~mniip@libera/staff/mniip) (*.net *.split)
07:19:08 × nvmd quits (~nvmd@user/nvmd) (*.net *.split)
07:19:08 × lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split)
07:19:08 × awth13 quits (~awth13@user/awth13) (*.net *.split)
07:19:08 × slep quits (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net) (*.net *.split)
07:19:08 × dpratt_ quits (sid193493@helmsley.irccloud.com) (*.net *.split)
07:19:08 × awpr quits (uid446117@lymington.irccloud.com) (*.net *.split)
07:19:08 × aria quits (sid380617@lymington.irccloud.com) (*.net *.split)
07:19:08 × bradparker quits (sid262931@uxbridge.irccloud.com) (*.net *.split)
07:19:08 × tapas quits (sid467876@ilkley.irccloud.com) (*.net *.split)
07:19:08 × nisstyre quits (~wes@user/nisstyre) (*.net *.split)
07:19:08 × hgolden quits (~hgolden2@cpe-172-114-81-123.socal.res.rr.com) (*.net *.split)
07:19:08 × mjrosenb quits (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net) (*.net *.split)
07:19:08 × ikex quits (~ash@user/ikex) (*.net *.split)
07:19:08 × AndrewYu quits (~andrew@user/andrewyu) (*.net *.split)
07:19:08 × sqrt2 quits (~ben@80-108-18-7.cable.dynamic.surfer.at) (*.net *.split)
07:19:08 × dolio quits (~dolio@130.44.130.54) (*.net *.split)
07:19:08 × jrm quits (~jrm@156.34.187.65) (*.net *.split)
07:19:08 × poljar quits (~poljar@93-139-113-226.adsl.net.t-com.hr) (*.net *.split)
07:19:08 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split)
07:19:08 × tdammers quits (~tdammers@77.109.72.177.res.static.edpnet.net) (*.net *.split)
07:19:08 × w1gz quits (~do@159.89.11.133) (*.net *.split)
07:19:08 × gnyeki quits (~gnyeki@user/gnyeki) (*.net *.split)
07:19:08 × mmarusea1ph2 quits (~mihai@198.199.100.72) (*.net *.split)
07:19:08 × CannabisIndica quits (~herb@user/mesaboogie) (*.net *.split)
07:19:08 × erisco quits (~erisco@d24-57-249-233.home.cgocable.net) (*.net *.split)
07:19:08 × piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split)
07:19:08 × cods quits (~fred@82-65-232-44.subs.proxad.net) (*.net *.split)
07:19:08 × m5zs7k quits (aquares@web10.mydevil.net) (*.net *.split)
07:19:08 × martin02 quits (~silas@141.84.69.76) (*.net *.split)
07:19:09 × tureba quits (~tureba@tureba.org) (*.net *.split)
07:19:09 × sshine quits (~simon@hubris.eta.solutions) (*.net *.split)
07:19:09 × samebchase quits (~thelounge@51.15.68.182) (*.net *.split)
07:26:16 cfricke joins (~cfricke@user/cfricke)
07:27:27 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
07:27:52 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
07:28:38 dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be)
07:30:52 wonko joins (~wjc@62.115.229.50)
07:30:52 hyiltiz joins (~quassel@31.220.5.250)
07:30:52 td_ joins (~td@94.134.91.135)
07:30:52 lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
07:30:52 aarchi joins (sid486183@uxbridge.irccloud.com)
07:30:52 hnOsmium0001 joins (uid453710@hampstead.irccloud.com)
07:30:52 hendi joins (sid489601@lymington.irccloud.com)
07:30:52 gonz___ joins (sid304396@lymington.irccloud.com)
07:30:52 fryguybob joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
07:30:52 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
07:30:52 sm2n joins (~sm2n@user/sm2n)
07:30:52 unmanbearpig joins (~unmanbear@user/unmanbearpig)
07:30:52 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
07:30:52 ghoulguy joins (x@libera/staff/glguy)
07:30:52 cls joins (~cls@chalk.lubutu.com)
07:30:52 hook54321 joins (sid149355@user/hook54321)
07:30:52 T_S_ joins (sid501726@uxbridge.irccloud.com)
07:30:52 rembo10 joins (~rembo10@remulis.com)
07:30:52 mniip joins (~mniip@libera/staff/mniip)
07:30:52 nvmd joins (~nvmd@user/nvmd)
07:30:52 lambdabot joins (~lambdabot@haskell/bot/lambdabot)
07:30:52 awth13 joins (~awth13@user/awth13)
07:30:52 slep joins (~slep@cpc150002-brnt4-2-0-cust437.4-2.cable.virginm.net)
07:30:52 dpratt_ joins (sid193493@helmsley.irccloud.com)
07:30:52 awpr joins (uid446117@lymington.irccloud.com)
07:30:52 aria joins (sid380617@lymington.irccloud.com)
07:30:52 bradparker joins (sid262931@uxbridge.irccloud.com)
07:30:52 tapas joins (sid467876@ilkley.irccloud.com)
07:30:52 nisstyre joins (~wes@user/nisstyre)
07:30:52 hgolden joins (~hgolden2@cpe-172-114-81-123.socal.res.rr.com)
07:30:52 mjrosenb joins (~mjrosenb@pool-108-54-97-96.nycmny.fios.verizon.net)
07:30:52 ikex joins (~ash@user/ikex)
07:30:52 AndrewYu joins (~andrew@user/andrewyu)
07:30:52 sqrt2 joins (~ben@80-108-18-7.cable.dynamic.surfer.at)
07:30:52 dolio joins (~dolio@130.44.130.54)
07:30:52 jrm joins (~jrm@156.34.187.65)
07:30:52 poljar joins (~poljar@93-139-113-226.adsl.net.t-com.hr)
07:30:52 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
07:30:52 tdammers joins (~tdammers@77.109.72.177.res.static.edpnet.net)
07:30:52 w1gz joins (~do@159.89.11.133)
07:30:52 gnyeki joins (~gnyeki@user/gnyeki)
07:30:52 mmarusea1ph2 joins (~mihai@198.199.100.72)
07:30:52 CannabisIndica joins (~herb@user/mesaboogie)
07:30:52 erisco joins (~erisco@d24-57-249-233.home.cgocable.net)
07:30:52 piele joins (~piele@tbonesteak.creativeserver.net)
07:30:52 cods joins (~fred@82-65-232-44.subs.proxad.net)
07:30:52 m5zs7k joins (aquares@web10.mydevil.net)
07:30:53 martin02 joins (~silas@141.84.69.76)
07:30:53 tureba joins (~tureba@tureba.org)
07:30:53 sshine joins (~simon@hubris.eta.solutions)
07:30:53 samebchase joins (~thelounge@51.15.68.182)
07:30:53 × d34df00d quits (~d34df00d@2600:1700:8c60:3a10::48) (Excess Flood)
07:31:51 × AndrewYu quits (~andrew@user/andrewyu) (Max SendQ exceeded)
07:32:01 × unmanbearpig quits (~unmanbear@user/unmanbearpig) (Max SendQ exceeded)
07:32:01 × ikex quits (~ash@user/ikex) (Max SendQ exceeded)
07:32:01 × hook54321 quits (sid149355@user/hook54321) (Max SendQ exceeded)
07:32:01 × terrorjack quits (~terrorjac@static.3.200.12.49.clients.your-server.de) (Max SendQ exceeded)
07:32:34 ikex joins (~ash@user/ikex)
07:32:52 unmanbearpig joins (~unmanbear@user/unmanbearpig)
07:33:07 terrorjack joins (~terrorjac@static.3.200.12.49.clients.your-server.de)
07:34:22 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
07:34:32 hook54321 joins (sid149355@user/hook54321)
07:34:57 Gurkenglas joins (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
07:35:27 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
07:36:08 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
07:36:29 AndrewYu joins (~andrew@user/andrewyu)
07:38:37 chele joins (~chele@user/chele)
07:38:38 gehmehgeh joins (~user@user/gehmehgeh)
07:41:31 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
07:41:42 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:9d7d:3fe6:8f3b:9e6c) (Remote host closed the connection)
07:46:06 × cjb quits (~cjb@user/cjb) ()
07:57:53 gaussrz joins (~gaussrz@58.247.22.226)
07:59:14 ssaGuest68 joins (~ssaGuest6@52.187.169.89)
07:59:28 acidjnk_new joins (~acidjnk@p200300d0c703cb85b4411e2fd211e6ee.dip0.t-ipconnect.de)
08:00:39 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
08:00:43 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:01:42 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Remote host closed the connection)
08:02:04 × hnOsmium0001 quits (uid453710@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:02:27 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds)
08:05:23 hendursa1 joins (~weechat@user/hendursaga)
08:08:01 max22- joins (~maxime@2a01cb08833598001ef87c92a35b854f.ipv6.abo.wanadoo.fr)
08:08:58 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
08:09:09 × hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 276 seconds)
08:10:15 × max22- quits (~maxime@2a01cb08833598001ef87c92a35b854f.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
08:11:30 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
08:11:52 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
08:14:19 hololeap_ joins (~hololeap@user/hololeap)
08:15:15 × hololeap quits (~hololeap@user/hololeap) (Read error: Connection reset by peer)
08:17:37 × geekosaur quits (~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
08:17:37 allbery_b joins (~geekosaur@xmonad/geekosaur)
08:17:40 allbery_b is now known as geekosaur
08:20:56 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
08:21:13 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
08:21:43 lavaman joins (~lavaman@98.38.249.169)
08:26:26 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
08:26:35 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:27:06 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
08:27:07 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
08:29:30 × jushur quits (~human@user/jushur) (Quit: ¯\_(ツ)_/¯)
08:30:34 fendor joins (~fendor@178.165.170.133.wireless.dyn.drei.com)
08:38:03 × LiaoTao quits (~LiaoTao@gateway/tor-sasl/liaotao) (Remote host closed the connection)
08:42:07 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
08:43:51 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds)
08:45:39 LiaoTao joins (~LiaoTao@gateway/tor-sasl/liaotao)
08:46:21 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Ping timeout: 245 seconds)
08:49:22 jgeerds joins (~jgeerds@55d4da80.access.ecotel.net)
08:51:38 DNH joins (~DNH@2a02:8108:1100:16d8:d1f:d611:c784:7f39)
08:53:09 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
08:56:25 neurocyte0132889 joins (~neurocyte@IP-185189142031.dynamic.medianet-world.de)
08:56:25 × neurocyte0132889 quits (~neurocyte@IP-185189142031.dynamic.medianet-world.de) (Changing host)
08:56:25 neurocyte0132889 joins (~neurocyte@user/neurocyte)
08:58:01 × azeem quits (~azeem@2a00:801:429:e0aa:bd65:9227:b4c:ee58) (Read error: Connection reset by peer)
08:58:15 fendor_ joins (~fendor@178.115.71.1.wireless.dyn.drei.com)
08:58:19 Everything joins (~Everythin@37.115.210.35)
08:58:55 azeem joins (~azeem@emp-85-170.eduroam.uu.se)
09:00:06 × SimonWeiss[m] quits (~weiss-dma@2001:470:69fc:105::bebd) (Quit: You have been kicked for being idle)
09:00:58 × fendor quits (~fendor@178.165.170.133.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
09:04:28 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
09:04:40 × hololeap_ quits (~hololeap@user/hololeap) (Remote host closed the connection)
09:06:02 hololeap_ joins (~hololeap@user/hololeap)
09:07:54 hyiltiz joins (~quassel@31.220.5.250)
09:11:44 fusion86 joins (~fusion@2a02-a44c-e6e5-1-5889-bfe7-56d3-5d3.fixed6.kpn.net)
09:15:22 × hololeap_ quits (~hololeap@user/hololeap) (Read error: Connection reset by peer)
09:18:43 hololeap_ joins (~hololeap@user/hololeap)
09:20:26 <kuribas> nice, my quickcheck properties are catching errors :)
09:22:16 <kuribas> I wonder if the effort is more than to do unit tests.
09:22:25 <kuribas> Because it can be hard to find edge cases in unit tests.
09:22:50 <kuribas> I told my colleage that tests are some sort of documentation, and he thought I was crazy.
09:23:09 <merijn> property testing is less likely to be testing implementation specifics
09:23:18 <kuribas> word
09:23:38 <merijn> because the properties are generally abstract statements about the interface/API
09:23:57 <kuribas> although I also test some internal functions.
09:24:57 <kuribas> And the properties teach you about how the system is supposed to work.
09:25:27 <kuribas> IMO if your unit test is obvious, then there is no point in keeping it as a test.
09:26:38 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Ping timeout: 260 seconds)
09:27:45 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
09:38:29 jakalx parts (~jakalx@base.jakalx.net) ()
09:40:32 jakalx joins (~jakalx@base.jakalx.net)
09:43:34 × jgeerds quits (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 265 seconds)
09:44:36 × mrmonday quits (robert@2a01:7e00::f03c:91ff:fe24:1bd) (Quit: .)
09:44:46 alzgh joins (~alzgh@user/alzgh)
09:45:52 mrmonday joins (~robert@what.i.hope.is.not.a.tabernaevagant.es)
09:46:41 kritzefitz[m] joins (~kritzefit@2001:470:69fc:105::1:1186)
09:49:49 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
09:51:05 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
10:02:10 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
10:04:33 boxscape_ joins (~boxscape_@vpn-44-115.hq.eso.org)
10:07:36 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 245 seconds)
10:09:04 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
10:12:09 <arahael> kuribas: Not neccessarily. Unit tests are also good as *regression* testing.
10:12:32 <kuribas> arahael: but why should something break that is obvious?
10:12:41 <kuribas> unless you do something stupid...
10:12:53 <arahael> kuribas: Because it might not be obvious, as your head may be too much in one particular area.
10:14:01 <boxscape_> hm, Data.List has sortOn, and the equivalent in Data.List.NonEmpty is sortWith
10:14:05 <boxscape_> that seems unfortunate
10:14:39 notzmv joins (~zmv@user/notzmv)
10:14:42 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:14:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:15:19 <boxscape_> and GHC.Exts exports sortWith for []
10:20:07 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.3)
10:20:18 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:20:34 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:25:28 × ByronJohnson quits (~bairyn@mail.digitalkingdom.org) (Ping timeout: 265 seconds)
10:25:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
10:26:31 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:27:14 hololeap_ is now known as hololeap
10:29:56 <Hecate> kuribas: can confirm, time is not kind with things you may think are "obvious"
10:30:18 × Guest7083 quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Read error: Connection reset by peer)
10:30:30 Guest7083 joins (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
10:31:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:32:13 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:32:48 × Guest7083 quits (~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684) (Read error: Connection reset by peer)
10:32:53 <kuribas> Hecate: I never had trivial code that broke with regressions...
10:34:11 <lortabac> to be honest I have rarely caught bugs of any kind with unit tests
10:34:31 <lortabac> maybe it's me who don't know how to write good tests
10:34:58 sirpalee joins (~sirpalee@28.141.220.111.sta.wbroadband.net.au)
10:37:28 × sirpalee quits (~sirpalee@28.141.220.111.sta.wbroadband.net.au) (Client Quit)
10:37:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:37:55 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:42:27 <Hecate> kuribas: I had, because although the code was trivial, it interacted with complex systems in complex ways
10:43:21 × azeem quits (~azeem@emp-85-170.eduroam.uu.se) (Ping timeout: 265 seconds)
10:43:53 azeem joins (~azeem@2a00:801:3c1:caaa:afb9:64bd:221b:8a1f)
10:45:04 <kuribas> Hecate: that sounds more like integration testing than unit testing.
10:47:30 fendor_ is now known as fendor
10:47:58 <maerwald> unit testing is also for expected bugs you assume you might write in the future
10:48:12 <boxscape_> or someone else
10:48:28 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
10:48:56 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
10:49:03 <maerwald> property testing isn't as useful for most applications, because you either don't really have well defined properties or they are so complicated that it takes a lot of effort to implement arbitrary instances for your data that makes any sense
10:49:50 <kuribas> it's good for pure functionality, where the type system doesn't help.
10:50:19 <maerwald> even for blockchain smart contracts, I'm much more likely to write unit tests, although there's some overlap between the two methods there... it's just that you're actually interested in *scenarios*, not really *properties*
10:51:05 <maerwald> it'll be hard to figure out properties that hold across all scenarios
10:51:40 <kuribas> maerwald: you can use implication.
10:51:50 <maerwald> I'm aware
10:51:51 <kuribas> and you can make generators for different usecases.
10:52:04 <maerwald> yep and it's usually more work than unit testing
10:52:17 <maerwald> and doesn't do much better
10:52:44 <kuribas> if you don't have a lot of possible edge cases, unit tests are good.
10:52:48 <maerwald> your property tests end up being unit tests that all test specific scenarios, just with more input data
10:52:57 <maerwald> so not really properties
10:52:57 <kuribas> otherwise it takes more time to find edge cases than to write a good property test.
10:54:01 <maerwald> I've never seen a property test catch a bug that I wouldn't have caught with a unit test in production.
10:54:49 <maerwald> But I've seen property tests that failed every other month and no one ever figured out why xD
10:55:05 acidjnk_new3 joins (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de)
10:55:14 <kuribas> maerwald: I did, just now :)
10:55:26 <maerwald> (because some loan period started in 1820 and no one really understood the underlying math well enough)
10:55:28 <kuribas> yeah, I could have made a lot of unit tests, but the effort is the same.
10:55:52 <kuribas> maerwald: that's why you want pure property tests.
10:55:58 <maerwald> then... why would you test loan periods longer than 200 years
10:56:06 <kuribas> to test and understand the underlying math
10:56:09 <maerwald> lol
10:56:42 <kuribas> maerwald: why wouldn't you? You want the math to be solid.
10:56:51 <maerwald> as I said... it wasn't trivial math
10:57:00 <maerwald> so not something for a programmer to figure out
10:57:10 <kuribas> And if those dates makes the property invalid, than change the property to limit the dates.
10:57:31 <kuribas> I prefer to understand the math of what I am programming.
10:57:43 <kuribas> But in that case, you could work together with the mathematician.
10:57:55 <maerwald> They weren't there anymore
10:58:23 × acidjnk_new quits (~acidjnk@p200300d0c703cb85b4411e2fd211e6ee.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
10:58:37 <maerwald> And, honestly... property tests aren't your first choice for math problems
10:58:43 <maerwald> there are better tools for that
10:58:46 <kuribas> Then it's even more important to understand the math.
10:58:52 <kuribas> or you need to hire another mathematician.
10:59:13 <maerwald> so I find them to be in a weird spot... not really unit test, not really proof
10:59:16 <kuribas> sure, you could plug in a SMT solver :)
10:59:32 <maerwald> and yet they seem to be used for both
10:59:58 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
11:00:24 <kuribas> It serves two purposes: generate test cases with edge cases that you could easily overlook. 2) Make you think about the properties of the system, and validate them.
11:00:26 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:00:52 alx741 joins (~alx741@181.196.69.249)
11:01:04 <kuribas> validate is not proof, but it's better than not having anything.
11:01:04 <maerwald> even for parsers, they're not that great... because pushing random input into your parser might not really test all code branches. Then what people basically do is add a predefined set of input to the random data
11:01:11 <maerwald> which is essentially a unit test again
11:01:48 <maerwald> right, so I'd argue property tests are maybe 10-20% of your tests
11:03:54 __monty__ joins (~toonn@user/toonn)
11:06:02 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
11:06:37 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
11:11:44 AlexNoo_ joins (~AlexNoo@178.34.161.78)
11:12:13 Lycurgus joins (~juan@98.4.112.204)
11:15:19 × AlexNoo quits (~AlexNoo@94.233.240.247) (Ping timeout: 245 seconds)
11:15:25 × Alex_test quits (~al_test@94.233.240.247) (Ping timeout: 252 seconds)
11:15:30 × AlexZenon quits (~alzenon@94.233.240.247) (Ping timeout: 260 seconds)
11:18:14 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:3723:9200:db0d:b69e) (Quit: WeeChat 2.8)
11:20:12 Alex_test joins (~al_test@178.34.161.78)
11:20:27 AlexZenon joins (~alzenon@178.34.161.78)
11:23:38 <Hecate> < kuribas> Hecate: that sounds more like integration testing than unit testing. // I don't know if I'd call that "integration testing" if it's still in the same monolith
11:27:07 Lycurgus is slighlty surprised unit/integration/system is still in use
11:32:39 × azeem quits (~azeem@2a00:801:3c1:caaa:afb9:64bd:221b:8a1f) (Read error: Connection reset by peer)
11:32:59 azeem joins (~azeem@emp-85-170.eduroam.uu.se)
11:34:25 <kuribas> Hecate: for me unit testing means testing a small part of the system. Ideally just a single function.
11:34:48 <kuribas> Of course you can write a unit test which is actually integration test :)
11:35:09 <merijn> integration testing makes sense it's testing whole workflows across independent components
11:35:22 <merijn> Unit testing is an awkward term, because no one agrees on what a unit is
11:36:19 <Lycurgus> it's ur piece
11:36:34 hololeap_ joins (~hololeap@user/hololeap)
11:36:47 Inst joins (~Inst@2601:6c4:4080:3f80:4173:3bb7:a5d4:1bf9)
11:36:48 <Lycurgus> ur piece/things it touches/the whole shebang
11:37:09 × hololeap quits (~hololeap@user/hololeap) (Ping timeout: 276 seconds)
11:38:01 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
11:41:02 kritzefitz[m] parts (~kritzefit@2001:470:69fc:105::1:1186) ()
11:41:48 kritzefitz[m] joins (~kritzefit@2001:470:69fc:105::1:1186)
11:46:33 sam__ joins (~sam@modemcable242.171-178-173.mc.videotron.ca)
11:46:57 sam__ is now known as Guest5349
11:55:39 dasfdf joins (~dasfdf@156.17.43.70)
11:59:02 acidjnk_new3 joins (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de)
11:59:27 <maerwald> kuribas: well, there's no such thing as tsting only a single function
11:59:36 <maerwald> because you're testing the entire callstack
11:59:47 <maerwald> depending on which function you test, you might be testing the entire system
12:00:49 <maerwald> unit testing to me means: I'm explicitly thinking about what input to test and I consider that a good thing.
12:01:10 <maerwald> if I need random input to complement, I go for property tests, but otherwise I don't
12:01:24 × defanor quits (~defanor@tart.uberspace.net) (Quit: .)
12:01:36 <maerwald> for libraries like bytestring/text etc. property testing makes a lot of sense
12:01:48 <maerwald> for my API backend that has internal state, not so much
12:02:01 defanor joins (~defanor@tart.uberspace.net)
12:02:02 <maerwald> yes, you can still use it, but ugh
12:03:16 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
12:03:37 <exarkun> there's some cool stateful property testing stuff around
12:03:50 <exarkun> which is sometimes quite handy and not ugh at all
12:05:13 <maerwald> for an API, the subset of actions that even make sense as a sequence is rather limited
12:05:54 kritzefitz is now known as kritzefitz_
12:05:59 × AWizzArd quits (~code@gehrels.uberspace.de) (Ping timeout: 250 seconds)
12:06:02 <maerwald> all your property tests would do would be to randomize input over those... and then they become really awkward, because you're not testing properties anymore, but using the internal functions to calculated the expected outcome
12:06:06 <exarkun> that depends a lot on the API, and "something non-catastrophic happens if the API is misused" is also not always a bad property to test
12:06:12 <maerwald> which is hilarious if those same functions have a bug
12:06:15 exarkun shrugs
12:06:21 <exarkun> I agree that sometimes it's not useful at all
12:06:22 <maerwald> a unit test allows you to freeze the output
12:06:28 <exarkun> I'm just pointing out that sometimes it is quite useful.
12:06:31 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 252 seconds)
12:06:40 <maerwald> I've had property tests not failing, because everything returns 0 or []
12:06:43 AWizzArd joins (~code@gehrels.uberspace.de)
12:06:44 kritzefitz[m] is now known as kritzefitz
12:06:57 × kritzefitz_ quits (~kritzefit@picard.host.weltraumschlangen.de) (Quit: ZNC 1.8.2+deb2+b1 - https://znc.in)
12:07:01 <merijn> maerwald: Then your properties are bad :)
12:07:06 <maerwald> no
12:07:09 <maerwald> the functions were buggy
12:07:20 <maerwald> the *implementation*
12:07:24 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:07:24 × dasfdf quits (~dasfdf@156.17.43.70) (Quit: Client closed)
12:08:08 <maerwald> > (reverse $ reverse [1..2]) == [1..2]
12:08:10 <lambdabot> True
12:08:13 <maerwald> > (id $ id [1..2]) == [1..2]
12:08:15 <lambdabot> True
12:08:15 <maerwald> oops...
12:08:31 <maerwald> so, did you actually test `reverse`? lol
12:09:53 <arahael> maerwald: Perhaps that's an argument to not only having property tests like that, but also test some specific scenarios as well.
12:10:07 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:10:19 <maerwald> yeah, I consider property tests to be complementary
12:11:50 × aliosablack quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds)
12:12:11 AlexNoo_ is now known as AlexNoo
12:17:02 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
12:17:47 hololeap_ is now known as hololeap
12:23:32 lavaman joins (~lavaman@98.38.249.169)
12:27:58 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
12:29:08 jonathanx joins (~jonathan@dyn-8-sc.cdg.chalmers.se)
12:30:04 <Franciman> what about correctness proofs?
12:30:08 <Franciman> are they used by anybody?
12:30:16 <Franciman> or are they too hard to get?
12:34:23 <merijn> Define "used" and "anybody" :p
12:34:30 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
12:34:37 <merijn> There have, obviously, been more than zero projects that used formal proof methods
12:34:54 <merijn> But they aren't particularly mainstream even in niches like Haskell
12:35:50 <boxscape_> you also have the same problem as with property tests that you have to decide which properties to prove
12:36:14 <boxscape_> the haskell type system usually makes sure that some properties you want provably hold, at least
12:36:33 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
12:36:42 <boxscape_> (modulo bottom)
12:36:49 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
12:49:17 × mbuf quits (~Shakthi@223.178.93.142) (Quit: Leaving)
12:51:18 Guest98 joins (~Guest98@2601:547:902:5e80:8983:c84f:9b8:8179)
12:52:08 slack1256 joins (~slack1256@45.4.2.52)
12:55:41 <Guest98> I have a application where I need to read in a file line by line and manipulate the string and write to an output file. I can either create a giant string and flush to the output file at the end or write to the output file multiple times. Which method is more efficient? Thanks in advance!
12:56:46 acidjnk_new3 joins (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de)
12:57:30 <Hecate> Guest98: you're gonna have to benchmark things, if you have any limitations on your RAM or writing speed for your storage medium
12:57:32 <geekosaur> haskell already does output buffering, so even if you do it line at a time it'll be buffered into larger chunks
12:57:42 <Hecate> ^ this too
12:58:28 <geekosaur> you can use hSetBuffering to set the buffer size, if you need to
13:00:22 kritzefitz_ joins (~kritzefit@picard.host.weltraumschlangen.de)
13:01:28 <geekosaur> but as Hécate says, test and benchmark; it will depend on the data and exactly how you're doing it. in most cases the default buffering to files will be good enough, though
13:01:34 × cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds)
13:01:58 <geekosaur> if you really need better performance, there are streaming I/O libraries, but those will be somewhat harder to work with
13:02:07 cheater joins (~Username@user/cheater)
13:02:19 <Guest98> geekosaur Hecate Thanks!
13:02:27 <Hecate> 👍
13:03:12 kritzefitz is now known as kritzefitz[m]
13:03:12 kritzefitz_ is now known as kritzefitz
13:03:53 × kritzefitz[m] quits (~kritzefit@2001:470:69fc:105::1:1186) (Quit: issued !quit command)
13:05:01 pera joins (~pera@user/pera)
13:07:10 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 268 seconds)
13:08:18 × cheater quits (~Username@user/cheater) (Ping timeout: 260 seconds)
13:08:34 cheater joins (~Username@user/cheater)
13:09:58 chomwitt joins (~chomwitt@94.66.61.137)
13:14:52 Sgeo joins (~Sgeo@user/sgeo)
13:15:41 hyiltiz joins (~quassel@31.220.5.250)
13:18:07 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:19:38 × Guest5349 quits (~sam@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
13:22:04 × noctuks quits (3ifQGPdAXw@user/noctux) (Quit: WeeChat 3.1)
13:22:04 × yushyin quits (XZhaV87tPp@karif.server-speed.net) (Quit: WeeChat 3.1)
13:24:10 noctuks joins (dzDZscEp9m@user/noctux)
13:24:11 yushyin joins (0Ujx9gMz8O@karif.server-speed.net)
13:39:10 ubert joins (~Thunderbi@178.115.41.191.wireless.dyn.drei.com)
13:41:31 coot joins (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl)
13:44:43 xiongxin joins (~quassel@119.123.101.136)
13:46:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
13:48:24 × boxscape_ quits (~boxscape_@vpn-44-115.hq.eso.org) (Quit: Connection closed)
13:48:56 CiaoSen joins (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
13:50:03 ystael joins (~ystael@user/ystael)
13:50:59 k`` joins (~user@152.1.137.158)
13:51:17 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Ping timeout: 250 seconds)
13:52:01 kayprish joins (~kayprish@cable-188-2-145-210.dynamic.sbb.rs)
13:52:07 <k``> > :m +Data.Bits
13:52:09 <lambdabot> <hint>:1:1: error: parse error on input ‘:’
13:52:37 <merijn> lambdabot is not ghci and doesn't support it's syntax (aside from manually ported commnds)
13:52:52 <k``> Oh, oops.
13:53:04 <merijn> :t finiteBits
13:53:04 <k``> > rotate (1 :: Integer) 1
13:53:05 <lambdabot> error: Variable not in scope: finiteBits
13:53:05 <lambdabot> 2
13:53:20 <merijn> ah, looks like it's already in scope anyway
13:53:26 × TDANG_ quits (~TDANG@2600:1700:13c1:8fe0:8023:fb4d:8e58:e262) (Ping timeout: 245 seconds)
13:53:27 <k``> So why isn't `rotate (1 :: Integer) 1` 3?
13:53:33 <k``> Oh, never mind.
13:53:44 TDANG joins (~TDANG@inet-177-7.ets.org)
13:53:58 <k``> > popCount (-1 :: Integer)
13:53:59 <lambdabot> -1
13:54:26 <k``> rotate (-1 :: Integer) 1
13:54:41 <k``> > rotate (-1 :: Integer) 1
13:54:42 × TDANG quits (~TDANG@inet-177-7.ets.org) (Client Quit)
13:54:42 <lambdabot> -2
13:55:25 <k``> Shouldn't `rotate (-1 :: Integer)` 1 be -1?
13:55:35 <merijn> Why?
13:56:00 <k``> It's an infinite string of 1 bits. Rotating it should be identity.
13:56:25 <k``> You'll rotate the bit at infinity back into the bit at 0.
13:56:30 <k``> Right?
13:57:09 <merijn> > popCount (-1 :: Integer)
13:57:11 <lambdabot> -1
13:57:17 <merijn> hmm
13:57:39 <k``> Yeah, I also wondered why they chose to back that in-band rather than `overflowError` .
13:57:48 <k``> *make.
13:57:56 <merijn> k``: Per the docs: "For unbounded types like Integer, rotate is equivalent to shift."
13:58:43 × gaussrz quits (~gaussrz@58.247.22.226) (Ping timeout: 252 seconds)
13:58:53 × ssaGuest68 quits (~ssaGuest6@52.187.169.89) (Ping timeout: 256 seconds)
13:59:01 <k``> OK, I guess there's no point in arguing with the docs, but still. That makes sense for `Natural` , but it seems to violate 'least surprise' for `Integer` .
13:59:35 <merijn> tbh, nothing would surprise me about Integer semantics for bits xD
14:00:14 o1lo01ol1o joins (~o1lo01ol1@bl13-86-242.dsl.telepac.pt)
14:00:23 × arahael quits (~arahael@203-206-94-225.tpgi.com.au) (Ping timeout: 250 seconds)
14:01:13 acidjnk_new joins (~acidjnk@p200300d0c703cb85117f917eb3780430.dip0.t-ipconnect.de)
14:02:59 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 250 seconds)
14:03:06 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
14:03:06 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
14:03:06 wroathe joins (~wroathe@user/wroathe)
14:03:31 <k``> I mean, as safe test for negativity should be `testBit 0 (rotate x 1)` . Oh well.
14:04:20 <k``> Sorry, always write those backward.
14:04:43 × acidjnk_new3 quits (~acidjnk@p200300d0c703cb85f89b89a3db90ff65.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
14:05:01 <merijn> k``: Why should that be safe?
14:05:14 <merijn> I don't think Bits guarantees anything about the bit representation
14:06:05 <merijn> Now, for Int and the likes, that's *usually* going to be 2s complement, but nothing in Bits guarantees that, it's left instance specific
14:06:06 × chomwitt quits (~chomwitt@94.66.61.137) (Read error: Connection reset by peer)
14:06:10 aliosablack joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
14:07:29 <sshine> maybe there's a negabinary instance
14:10:34 <merijn> I was thinking more like "some 1s complement data"
14:11:05 <k``> Good point. I assumed that, say, a 3's complement Integer would pretend to be 2's complement for a Bits instance, but that's unreasonable.
14:12:52 <merijn> right, but Bits doesn't specify anything
14:13:36 <k``> So what's the point of `isSigned`?
14:13:48 <merijn> > isSigned (1 :: Natural)
14:13:50 <lambdabot> error:
14:13:50 <lambdabot> Not in scope: type constructor or class ‘Natural’
14:13:55 <merijn> > isSigned (1 :: Word)
14:13:56 <lambdabot> False
14:13:58 arahael joins (~arahael@118.208.229.178)
14:13:59 <merijn> > isSigned (1 :: Int)
14:14:01 <lambdabot> True
14:14:14 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
14:14:22 <merijn> that? :p
14:15:19 <k``> isSigned (mempty :: IntSet)
14:15:33 <k``> > isSigned (mempty :: IntSet)
14:15:34 <lambdabot> error:
14:15:34 <lambdabot> Not in scope: type constructor or class ‘IntSet’
14:15:35 <lambdabot> Perhaps you meant ‘IS.IntSet’ (imported from Data.IntSet)
14:15:50 <k``> > isSigned (mempty :: IS.IntSet)
14:15:52 <lambdabot> error:
14:15:52 <lambdabot> • No instance for (Bits IS.IntSet) arising from a use of ‘isSigned’
14:15:52 <lambdabot> • In the expression: isSigned (mempty :: IS.IntSet)
14:15:59 <k``> Oh, huh.
14:16:48 <k``> > isSigned (mempty :: ByteString)
14:16:50 <lambdabot> error:
14:16:50 <lambdabot> Not in scope: type constructor or class ‘ByteString’
14:16:50 <lambdabot> Perhaps you meant one of these:
14:17:06 <geekosaur> doesn't Bits have Num as superclass currently?
14:17:14 <k``> Nope, just Eq.
14:17:25 <sshine> https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Bits.html#t:Bits
14:18:53 ub joins (~Thunderbi@178.115.41.191.wireless.dyn.drei.com)
14:19:52 machinedgod joins (~machinedg@24.105.81.50)
14:22:14 hyiltiz joins (~quassel@31.220.5.250)
14:34:07 × jonathanx quits (~jonathan@dyn-8-sc.cdg.chalmers.se) (Ping timeout: 268 seconds)
14:35:33 max22- joins (~maxime@2a01cb0883359800e798224cc2755b60.ipv6.abo.wanadoo.fr)
14:36:56 × Guest98 quits (~Guest98@2601:547:902:5e80:8983:c84f:9b8:8179) (Quit: Client closed)
14:37:05 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Quit: What is Hope? That all of your wishes and all of your dreams come true? To turn back time because things were not supposed to happen like that (C) Rau Le Creuset)
14:37:22 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
14:37:26 × acidjnk_new quits (~acidjnk@p200300d0c703cb85117f917eb3780430.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
14:39:07 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Client Quit)
14:39:23 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
14:42:08 × xiongxin quits (~quassel@119.123.101.136) (Quit: No Ping reply in 180 seconds.)
14:43:23 xiongxin joins (~quassel@113.116.34.120)
14:43:49 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
14:45:44 × yorick quits (~yorick@user/yorick) (Quit: brb)
14:46:55 <k``> > testBit (-1 :: Integer) maxBound
14:46:57 <lambdabot> True
14:49:11 hnOsmium0001 joins (uid453710@id-453710.hampstead.irccloud.com)
14:55:20 geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca)
15:05:39 × o1lo01ol1o quits (~o1lo01ol1@bl13-86-242.dsl.telepac.pt) (Quit: Leaving...)
15:06:16 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
15:07:15 hyiltiz joins (~quassel@31.220.5.250)
15:12:01 betelgeuse joins (~betelgeus@94-225-47-8.access.telenet.be)
15:13:13 × DNH quits (~DNH@2a02:8108:1100:16d8:d1f:d611:c784:7f39) (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:14:50 DNH joins (~DNH@2a02:8108:1100:16d8:d1f:d611:c784:7f39)
15:16:48 × xiongxin quits (~quassel@113.116.34.120) (Quit: No Ping reply in 180 seconds.)
15:18:04 xiongxin joins (~quassel@113.116.33.170)
15:18:11 slowButPresent joins (~slowButPr@user/slowbutpresent)
15:18:30 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
15:21:39 × Farzad quits (~FarzadBek@178.131.27.23) (Quit: Leaving)
15:23:21 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
15:25:56 × euandreh quits (~euandreh@2804:14c:33:9fe5:bea9:a565:1d5e:1b2d) (Ping timeout: 245 seconds)
15:27:09 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
15:32:50 doyougnu joins (~user@c-73-25-202-122.hsd1.or.comcast.net)
15:33:26 × dermato quits (~dermatobr@cpe-70-114-219-76.austin.res.rr.com) (Ping timeout: 245 seconds)
15:35:26 dermato joins (~dermatobr@cpe-70-114-219-76.austin.res.rr.com)
15:38:26 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Remote host closed the connection)
15:38:38 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
15:39:40 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
15:43:49 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
15:44:49 <k``> For haddock block comments, do you need a space in `{- ^ ... -}` ? or is `{-^ ... -}` OK?
15:46:00 <monochrom> I think you should just try. And -- will be different from {-
15:46:27 <k``> I mean, it seems to work, but I wasn't sure whether it's kosher.
15:46:53 <monochrom> Oh, that's going to be as divisive as editor wars.
15:47:07 <k``> Then forget I asked!
15:47:39 <monochrom> --^ will not work because Haskell syntax says that --^ is an operator not a comment :)
15:47:52 jgeerds joins (~jgeerds@55d4da80.access.ecotel.net)
15:48:12 <k``> Probably used in lens...
15:48:17 <monochrom> haha
15:48:55 <int-e> 'A nested comment begins with "{-" and ends with "-}". No legal lexeme starts with "{-"; hence, for example, "{---" starts a nested comment despite the trailing dashes.'
15:49:42 <monochrom> Yeah, people use {--------- and --------} to make great banners, like C's /******** ********/
15:49:47 <int-e> So that's half of the answer... {-^ -} is a comment
15:49:53 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
15:49:54 <k``> '--{-' is also a valid one-line comment, yeah?
15:50:43 <int-e> k``: yes
15:50:57 neurocyte0132889 joins (~neurocyte@IP-185189142031.dynamic.medianet-world.de)
15:50:57 × neurocyte0132889 quits (~neurocyte@IP-185189142031.dynamic.medianet-world.de) (Changing host)
15:50:57 neurocyte0132889 joins (~neurocyte@user/neurocyte)
15:51:18 <int-e> But --^ is an infix operator
15:51:36 <int-e> As monochrom already said)(OCOCOCOCOC
15:52:36 <monochrom> So I chosen {- ^ because the -- ^ case already needs a space and I want to remember less.
15:53:01 <monochrom> But this is really personal preference.
15:53:52 <int-e> (irssi does not deal well with lag...)
15:54:16 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
15:55:00 <k``> Seems like a good policy, then, like indenting 'then' and 'else'. (Unless do blocks don't need the indentation anymore?)
15:55:33 <monochrom> Right, do-if-then-else doesn't need the indentation anymore.
15:56:13 <monochrom> But if you carefully read how the Haskell 2010 grammar supports it, it's hilarious, it allows a lot of strange layouts too.
15:56:28 <k``> Oh, then like not using '-- ^' because you can't use it in type signatures. (Unless you can do that now?)
15:57:08 <int-e> Meh, haddock doesn't document its lexical structure?
15:57:15 <monochrom> It is OK when interleaving type sig parts with doc parts.
15:58:01 <k``> In the past I got parse errors. So I guess it's fixed.
15:59:10 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
15:59:18 <monochrom> This: https://haskell-haddock.readthedocs.io/en/latest/markup.html#function-arguments
16:01:05 <monochrom> Oh, I now see that "f :: X -> Y" and then "-- ^ doc for f" is also fine.
16:02:55 <monochrom> IIRC very old versions didn't have that.
16:03:05 Farzad joins (~FarzadBek@178.239.149.229)
16:03:18 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:03:53 × xiongxin quits (~quassel@113.116.33.170) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
16:06:20 lbseale joins (~lbseale@user/ep1ctetus)
16:08:16 FarzadBekran_ joins (~FarzadBek@151.234.207.10)
16:09:10 <monochrom> What does System.Info.os say on Windows?
16:10:43 × jgeerds quits (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 265 seconds)
16:10:46 × Farzad quits (~FarzadBek@178.239.149.229) (Ping timeout: 252 seconds)
16:11:06 <geekosaur> mingw32, per docs
16:11:25 <geekosaur> iirc it's hardcoded at RTS compile time
16:12:13 <geekosaur> yeh, it's HOST_OS from configure
16:17:55 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
16:18:20 <k``> Just tested it on a real live Windows box, it is indeed "mingw32".
16:19:01 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
16:19:13 _73 joins (~user@pool-108-49-252-36.bstnma.fios.verizon.net)
16:19:45 <monochrom> Thanks.
16:24:11 × max22- quits (~maxime@2a01cb0883359800e798224cc2755b60.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
16:25:16 euandreh joins (~euandreh@191.181.59.160)
16:26:14 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Remote host closed the connection)
16:27:21 × immae1 quits (~immae@2a01:4f8:141:53e7::) (Quit: WeeChat 2.9)
16:27:51 × kayprish quits (~kayprish@cable-188-2-145-210.dynamic.sbb.rs) (Remote host closed the connection)
16:27:52 immae joins (~immae@2a01:4f8:141:53e7::)
16:27:58 <_73> I am using a perl parser combinator library that is directly based off of haskell's parsec library and uses the same names as parsec for its combinators. I am trying to parse data blocks with key=val fields where there is a static set of valid keys, where each member of this set must be defined, but in any order. At a high level what combinators/parsing tactics would you reccomend I should look at for this scenario? Example:
16:27:58 <_73> http://dpaste.com/3TUL3XA5Q Library: https://metacpan.org/pod/Parser::Combinators
16:28:14 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
16:29:03 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
16:32:14 max22- joins (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr)
16:33:51 × aliosablack quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 245 seconds)
16:34:55 <c_wraith> _73: you're looking for "permutation parsing"
16:36:09 chomwitt joins (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374)
16:37:05 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:38:22 <_73> c_wraith: I see haskell has libraries for this that are seperate from parsec. Does this mean it is not a concept easily implemented with the basic parsec combinators?
16:42:07 tom joins (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45)
16:42:29 bontaq` joins (~user@ool-45779fe5.dyn.optonline.net)
16:42:44 bontaq` is now known as bontaq
16:42:51 tom parts (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45) ()
16:42:55 tom joins (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45)
16:43:31 tom is now known as Guest2024
16:45:34 lavaman joins (~lavaman@98.38.249.169)
16:45:56 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
16:46:21 × CiaoSen quits (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
16:47:30 sam__ joins (~sam@modemcable242.171-178-173.mc.videotron.ca)
16:47:54 sam__ is now known as Guest9265
16:48:19 machinedgod joins (~machinedg@24.105.81.50)
16:48:37 × FarzadBekran_ quits (~FarzadBek@151.234.207.10) (Quit: Leaving)
16:50:13 hyiltiz joins (~quassel@31.220.5.250)
16:50:16 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
16:52:00 <monochrom> parsec has a function for permutation parsing, no?
16:52:51 × phma quits (~phma@host-67-44-208-35.hnremote.net) (Read error: Connection reset by peer)
16:53:36 phma joins (~phma@host-67-44-209-69.hnremote.net)
16:56:05 nowl joins (~nowl@pool-96-230-3-13.bstnma.fios.verizon.net)
16:56:38 <_73> monochrom: ya I just found `permute`
16:59:10 shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net)
17:02:25 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
17:02:26 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
17:02:51 arjun joins (~user@user/arjun)
17:03:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:03:04 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:03:04 wroathe joins (~wroathe@user/wroathe)
17:03:16 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
17:04:55 MoC joins (~moc@user/moc)
17:07:06 × fusion86 quits (~fusion@2a02-a44c-e6e5-1-5889-bfe7-56d3-5d3.fixed6.kpn.net) (Quit: Leaving)
17:07:28 Guest2024 parts (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45) (Leaving)
17:07:31 Guest2024 joins (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45)
17:07:40 Guest2024 parts (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45) (Leaving)
17:08:05 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
17:08:27 Guest2024 joins (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45)
17:08:53 × Guest2024 quits (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45) (Quit: Leaving)
17:09:08 tom joins (~tom@2a00:23c8:970c:4801:69d2:4473:99ea:fb45)
17:10:32 tom is now known as Guest7926
17:14:54 <dminuoso> monochrom: Better yet, https://hackage.haskell.org/package/parser-combinators-1.3.0/docs/Control-Applicative-Permutations.html#t:Permutation
17:15:33 justsomeguy joins (~justsomeg@user/justsomeguy)
17:15:34 <dminuoso> parser-combinators is really wonderful due to its Alternative/Applicative only interface, it works with practically any parser library. :)
17:16:02 <k``> Except perl parser libraries :(
17:16:15 <dminuoso> Oh,
17:16:45 <dminuoso> I must admit, this is a first time. People coming here for Agda, Idris or Cadano advice happens frequently.
17:16:48 <dminuoso> But Perl? :-)
17:17:05 econo joins (uid147250@user/econo)
17:17:26 <geekosaur> decent overlap between perlers and haskellers, or at least used to be
17:17:42 <Franciman> due to raku's original interpreter written in haskell, I guess ^^'
17:17:49 <geekosaur> that said, for parsing I would not use perl; I can usely make it work but it's too bloody slow
17:18:21 <geekosaur> *surely
17:18:35 <Franciman> which perl are we talkin about?
17:18:38 <Franciman> <6 I reckon?
17:18:59 <geekosaur> the Parser::Combinators mentioned earlier looks to be 5
17:19:09 pavonia joins (~user@user/siracusa)
17:19:09 <Franciman> 6 has builtin stuff for parsing IIRC
17:19:12 <Franciman> oh ok
17:19:15 <geekosaur> ]yep
17:19:19 <dminuoso> Pugs, hah.
17:19:21 <dminuoso> That name. :)
17:19:44 <monochrom> Will there be also a GPC? >:)
17:19:50 <dminuoso> geekosaur: It's curious because I've never really seen perl being brought up in any of the Haskell places Im in.
17:20:06 <geekosaur> mostly I'm going by "same nicks"
17:20:11 <dminuoso> Not that I dont believe you, but I just haven't seen any evidence.
17:20:14 <dminuoso> Ah.
17:20:14 <geekosaur> not it being mentioned as such
17:20:18 <dminuoso> Fair enough
17:20:29 <monochrom> It was also a long time ago.
17:20:34 <geekosaur> yeh
17:20:44 <geekosaur> I'm talking 2007ish
17:20:57 <monochrom> They have all got real jobs, real families, real lives, no more time for IRC.
17:21:27 <monochrom> Audrey Tang got a real government minister position, for example!
17:21:30 <dminuoso> monochrom: Let me guess, it's diagnostic routines rather slinging around complicated type theory legalese, it would indulge the reader in linguistic battles?
17:21:46 sm found haskell via perl/pugs discussion
17:21:47 <monochrom> haha
17:23:35 × azeem quits (~azeem@emp-85-170.eduroam.uu.se) (Read error: Connection reset by peer)
17:26:20 geekosaur sometimes thinks he killed pugs
17:26:38 <monochrom> onoes what did you do?!!!
17:26:39 × hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1)
17:26:57 <geekosaur> …tried to update and augment its file type checking operations, discovered some severe parsing conflicts in the process
17:27:01 × arjun quits (~user@user/arjun) (Remote host closed the connection)
17:27:37 <geekosaur> then-rakudo got completely redesigned ones, pugs just kinda faded away because it was harder to update and only audrey tang really understood the code :(
17:27:48 <monochrom> If you killed pugs, then Gödel killed math, and Turing killed computing. :)
17:27:57 <sm> ack
17:28:12 hendursaga joins (~weechat@user/hendursaga)
17:28:12 emf joins (~emf@2620:10d:c090:400::5:61e3)
17:28:34 azeem joins (~azeem@2a00:801:44a:7af2:af4a:bfcd:ab75:2b7e)
17:36:10 waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
17:39:38 <k``> If you want to talk about killing stuff, like an idiot I argued against renaming `Foldable1` to `Semifoldable` . And now there's still no nonempty foldable class in base. Not sure if it's because of my ranting, but, regardless, I wish we had one.
17:40:50 <geekosaur> well, some of that is just that changes to base only happen at glacial pace. and that's moving fast :/
17:41:14 <int-e> monochrom: What about this guy, https://en.wikipedia.org/wiki/Wilhelm_Killing
17:42:03 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
17:42:03 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
17:42:03 wroathe joins (~wroathe@user/wroathe)
17:42:32 <geekosaur> is there an actual proposal for that change somewhere, or is it just something floated on some list?
17:43:20 <geekosaur> (also, changfes to base were pretty much on hold for a couple years and should be starting to become unstuck a bit now that there's a new and larger committee with some actual rules and accountability)
17:43:54 <k``> init-e: "Lie was scornful of Killing." Good stuff there.
17:44:08 <monochrom> That guy really made a killing heh
17:44:33 <k``> geekosaur: It was a few years ago. Not sure anymore.
17:45:09 narendraj9 joins (~user@2a02:8109:b63f:ff7c::a540)
17:45:15 <k``> Back when Edward was more actively trying to improve stuff in the Haskell world.
17:46:06 <monochrom> BTW tongue in cheek but I agree that non-empty foldable should not be called semifoldable. You look at monoid and semigroup (so, not semimonoid), and you know in your heart, it's foldable and semitraversable!
17:46:12 × gehmehgeh quits (~user@user/gehmehgeh) (Remote host closed the connection)
17:46:29 <awpr> huh, I was just reading that GitHub issue this weekend
17:47:03 gehmehgeh joins (~user@user/gehmehgeh)
17:47:52 <geekosaur> so maybe it's time to reawaken it and possibly move it (I think these days you make a ghc proposal?)
17:48:36 <geekosaur> or was that what you meant since the ghc proposals are I think hosted on github? in which case just some pings with a current state/consensus might be enough
17:48:46 × pera quits (~pera@user/pera) (Ping timeout: 260 seconds)
17:48:59 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 268 seconds)
17:50:31 pera joins (~pera@137.221.132.228)
17:50:55 pera is now known as Guest4717
17:51:27 <geekosaur> fwiw Foldable1 sounds more right to me than Semifoldable. actually for a reason similar to monochrom's, Semi… feels like it should be an incomplete version of … and …1 feels like the wrong kind of incomplete
17:51:45 <geekosaur> but I am not really a mathematician, so who knows
17:52:10 <awpr> could steal terminology from the average of 15 lens libraries and use `AffineFoldable` and `AffineTraversable`
17:52:23 <awpr> granted those are pretty long names
17:52:42 <geekosaur> shorten them to Af…?
17:52:50 <awpr> `FoldableAF`
17:52:50 <monochrom> AffFoldable
17:53:14 <monochrom> Tttttartartargagagagalia
17:53:22 <tomsmeding> I mean at that point just go with Affordable
17:53:33 <tomsmeding> is in the style of lens and friends
17:53:34 <monochrom> haha
17:53:54 <k``> I'm super ignorant here, but wouldn't 'affine' mean 'foldable with an empty value and no combining function'?
17:53:57 <monochrom> And AffineTraversable -> Aversable? >:)\
17:54:32 × chomwitt quits (~chomwitt@2a02:587:dc18:b400:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
17:54:47 zer0bitz joins (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi)
17:54:49 <k``> Amble
17:55:02 <monochrom> adorable
17:55:05 <tomsmeding> Able
17:55:43 <tomsmeding> weaken :: Adorable a -> Affordable a
17:56:09 <monochrom> I thought that would be "bargain"
17:56:29 <tomsmeding> fair point
17:56:35 <k``> If it's not already used for `Bizarre` ?
17:56:43 <awpr> oh right, I had it backwards, indeed affine should be 0 or 1, and at least one Haddock in profunctor-optics uses it that way
17:56:52 emf_ joins (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5)
17:57:00 × ub quits (~Thunderbi@178.115.41.191.wireless.dyn.drei.com) (Remote host closed the connection)
17:57:12 TomasJakl[m] joins (~jaklttchn@2001:470:69fc:105::a42)
17:57:15 <awpr> `RelevantTraversable` is even longerer
17:57:32 <tomsmeding> my mental reference for linear/affine is that Linear Haskell is linear and requires you to explicitly 'consume' something you want to throw away, but Rust is affine and allows you to use implicit 'drop!()'
17:57:39 <tomsmeding> s/!//
17:58:02 × Guest4717 quits (~pera@137.221.132.228) (Quit: leaving)
17:58:07 <awpr> yeah, in theory I know the difference, I just have the magical ability to type without thinking
17:58:16 <tomsmeding> most programmers have that
17:58:40 <tomsmeding> and sometimes it shows
17:59:30 × emf quits (~emf@2620:10d:c090:400::5:61e3) (Ping timeout: 260 seconds)
17:59:35 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
18:09:41 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
18:09:57 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
18:11:38 × emf_ quits (~emf@2601:602:9400:84d:83e:973e:4aa8:d9e5) (Ping timeout: 260 seconds)
18:12:05 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Remote host closed the connection)
18:13:58 × max22- quits (~maxime@lfbn-ren-1-762-224.w81-53.abo.wanadoo.fr) (Ping timeout: 265 seconds)
18:15:10 emf joins (~emf@2620:10d:c090:400::5:8ff4)
18:19:11 × wrengr_away quits (~wrengr@136.247.83.34.bc.googleusercontent.com) (Quit: leaving)
18:20:20 × Guest9265 quits (~sam@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
18:20:43 Guest9265 joins (~sam@modemcable242.171-178-173.mc.videotron.ca)
18:22:02 neurocyte0132889 joins (~neurocyte@IP-185189142031.dynamic.medianet-world.de)
18:22:02 × neurocyte0132889 quits (~neurocyte@IP-185189142031.dynamic.medianet-world.de) (Changing host)
18:22:02 neurocyte0132889 joins (~neurocyte@user/neurocyte)
18:25:02 × Guest9265 quits (~sam@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
18:25:10 ub joins (~Thunderbi@178.115.41.191.wireless.dyn.drei.com)
18:28:09 wrengr joins (~wrengr@150.12.83.34.bc.googleusercontent.com)
18:31:56 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
18:34:07 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
18:35:59 × ub quits (~Thunderbi@178.115.41.191.wireless.dyn.drei.com) (Ping timeout: 250 seconds)
18:44:41 machinedgod joins (~machinedg@24.105.81.50)
18:46:32 × nowl quits (~nowl@pool-96-230-3-13.bstnma.fios.verizon.net) (Quit: Leaving)
18:47:16 <maerwald> do we have a canonical place to for new haskell users wrt introduction material?
18:47:22 <maerwald> and please don't say "Haskell wiki"
18:48:11 <tomsmeding> maerwald: https://www.haskell.org/documentation/
18:48:14 <tomsmeding> courtesy of hpc
18:48:42 <tomsmeding> (well, the reference courtesy to hpc, they didn't write all that I imagine :p )
18:53:33 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
18:58:26 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 245 seconds)
18:59:45 mc47 joins (~mc47@xmonad/TheMC47)
19:00:46 jgeerds joins (~jgeerds@55d4da80.access.ecotel.net)
19:02:48 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:02:48 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
19:02:48 wroathe joins (~wroathe@user/wroathe)
19:07:56 chomwitt joins (~chomwitt@94.66.61.137)
19:08:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
19:08:31 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
19:08:31 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
19:08:31 wroathe joins (~wroathe@user/wroathe)
19:14:25 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
19:17:24 × son0p quits (~ff@181.136.122.143) (Ping timeout: 245 seconds)
19:17:50 sedeki joins (~textual@user/sedeki)
19:18:53 × waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
19:20:59 waleee joins (~waleee@h-98-128-228-119.na.cust.bahnhof.se)
19:21:57 Tuplanolla joins (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
19:24:23 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 265 seconds)
19:26:14 ByronJohnson joins (~bairyn@mail.digitalkingdom.org)
19:27:27 max22- joins (~maxime@2a01cb08833598000bdc249d87a31114.ipv6.abo.wanadoo.fr)
19:29:28 justsomeguy joins (~justsomeg@user/justsomeguy)
19:32:02 rootard joins (~rootard@172.58.88.54)
19:32:26 mikoto-chan joins (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
19:35:46 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
19:39:00 hyiltiz joins (~quassel@31.220.5.250)
19:44:40 <raehik> Can I build documentation for uploading to Hackage without compiling the project itself?
19:44:51 <monochrom> Life was so much simpler when The Gentle Introduction was the canonical starting point.
19:45:33 lavaman joins (~lavaman@98.38.249.169)
19:46:26 <monochrom> raehik: I haven't tried, but "cabal haddock" has a chance.
19:46:47 <sclv> `cabal haddock --for-hackage`
19:46:55 <sclv> but building the haddocks requires running ghc afaik
19:47:08 <sclv> like you can't extract the type info for all the functions etc without ghc actually doing work
19:47:38 <monochrom> I think haddock goes through GHC API for you for that.
19:47:38 <raehik> ahhh that's fair, I didn't think too far into the work it does
19:48:02 <monochrom> It's why haddock comes with GHC.
19:48:42 emf_ joins (~emf@2620:10d:c090:400::5:fe52)
19:48:47 <sclv> i guess i more meant that if your product doesn't compile, it wont haddock
19:48:56 <monochrom> Ah, right.
19:49:40 <raehik> true. trying to improve CI without having to build unnecessarily
19:50:06 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
19:50:36 <sclv> `cabal haddock` should reuse everything it can if you ran `cabal build` prior i believe
19:50:56 × emf quits (~emf@2620:10d:c090:400::5:8ff4) (Ping timeout: 245 seconds)
19:51:54 <raehik> yep. but I've been mix and matching Stack and Cabal so now I've got to mess around with the Cabal side since Stack can't produce Hackage docs! :(
19:55:10 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds)
19:58:30 <sclv> also note that if you're not intending to upload to hackage, running it with or without --for-hackage as flags shouldn't matter (i.e. for CI purposes)
19:58:49 <sclv> like it changes linking and formatting, but shouldn't change correctness checks
20:00:46 <raehik> thanks, good to know
20:00:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds)
20:01:43 Lycurgus joins (~juan@98.4.112.204)
20:02:15 mestre joins (~mestre@191.177.175.57)
20:05:28 × juhp quits (~juhp@128.106.188.220) (Ping timeout: 265 seconds)
20:06:40 × wonko quits (~wjc@62.115.229.50) (Ping timeout: 252 seconds)
20:06:43 juhp joins (~juhp@128.106.188.220)
20:10:01 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
20:10:08 × MoC quits (~moc@user/moc) (Quit: Konversation terminated!)
20:10:20 zebrag joins (~chris@user/zebrag)
20:13:32 × _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
20:20:31 × narendraj9 quits (~user@2a02:8109:b63f:ff7c::a540) (Ping timeout: 245 seconds)
20:21:17 <sm> why can't stack produce hackage docs ?
20:22:04 × mikoto-chan quits (~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
20:22:22 <geekosaur> becuase they never bothered to add the ability
20:29:20 Psybur joins (~Psybur@mobile-166-170-32-197.mycingular.net)
20:35:36 × fendor quits (~fendor@178.115.71.1.wireless.dyn.drei.com) (Remote host closed the connection)
20:43:50 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
20:47:55 <maerwald> sm: https://github.com/commercialhaskell/stack/issues/737
20:49:04 × k`` quits (~user@152.1.137.158) (Quit: ERC (IRC client for Emacs 27.1))
20:52:11 <sm> so it can produce them but not upload them eh
20:52:51 <sm> damn "them"! Once again, our minions fail us!
20:55:48 jtomas joins (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net)
20:57:18 × jtomas_ quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
20:57:24 <awpr> FWIW I'd find this useful, too. every time I upload a package, I resolve to let Hackage build the docs itself, and then an hour or two later I give up and use the cabal-based script from https://hackage.haskell.org/upload instead
20:57:26 ikex1 joins (~ash@user/ikex)
20:57:40 × ikex quits (~ash@user/ikex) (Ping timeout: 265 seconds)
20:58:03 ikex1 is now known as ikex
20:58:24 eco_ is now known as eco
21:04:28 × bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Ping timeout: 268 seconds)
21:05:51 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
21:05:51 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
21:05:51 wroathe joins (~wroathe@user/wroathe)
21:08:49 × zer0bitz quits (~zer0bitz@dsl-hkibng31-54fafc-123.dhcp.inet.fi) (Ping timeout: 252 seconds)
21:14:41 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 245 seconds)
21:20:39 CiaoSen joins (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
21:20:45 × emf_ quits (~emf@2620:10d:c090:400::5:fe52) (Quit: emf_)
21:22:18 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
21:23:08 hyiltiz joins (~quassel@31.220.5.250)
21:23:15 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 250 seconds)
21:23:26 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
21:23:37 Lord_of_Life_ is now known as Lord_of_Life
21:27:07 × michalz quits (~michalz@185.246.204.89) (Remote host closed the connection)
21:33:42 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:35:44 emf joins (~emf@2620:10d:c090:400::5:fe52)
21:40:10 × Gurkenglas quits (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
21:42:34 cjb joins (~cjb@user/cjb)
21:45:23 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
21:48:10 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
21:55:48 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
21:56:28 × geranim0 quits (~geranim0@modemcable242.171-178-173.mc.videotron.ca) (Remote host closed the connection)
21:56:38 [_] is now known as [itchyjunk]
22:04:30 × neurocyte0132889 quits (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds)
22:06:29 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
22:09:13 × Lycurgus quits (~juan@98.4.112.204) (Quit: Exeunt)
22:11:29 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d) (Remote host closed the connection)
22:16:17 × feliix42_ quits (~felix@gibbs.uberspace.de) (Quit: ZNC 1.8.2 - https://znc.in)
22:16:32 feliix42 joins (~felix@gibbs.uberspace.de)
22:16:42 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:18:36 × Hecate quits (~mariposa@user/hecate) (Ping timeout: 250 seconds)
22:18:42 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
22:18:43 Hecate joins (~mariposa@163.172.211.189)
22:19:57 × sedeki quits (~textual@user/sedeki) (Quit: Textual IRC Client: www.textualapp.com)
22:22:21 × dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.2)
22:27:08 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:d130:ee1a:7e8:282d)
22:27:35 × coot quits (~coot@37.30.52.99.nat.umts.dynamic.t-mobile.pl) (Quit: coot)
22:28:02 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
22:30:37 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
22:32:25 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 252 seconds)
22:37:44 × cjb quits (~cjb@user/cjb) ()
22:37:50 × max22- quits (~maxime@2a01cb08833598000bdc249d87a31114.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
22:40:54 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
22:44:52 × tremon_ quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in)
22:45:27 × jgeerds quits (~jgeerds@55d4da80.access.ecotel.net) (Ping timeout: 265 seconds)
22:45:56 × chomwitt quits (~chomwitt@94.66.61.137) (Ping timeout: 265 seconds)
22:46:33 hyiltiz joins (~quassel@31.220.5.250)
22:47:48 × Tuplanolla quits (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
22:49:31 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
22:56:28 aegon joins (~mike@174.127.249.180)
22:56:37 × machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 252 seconds)
22:57:56 × ubert quits (~Thunderbi@178.115.41.191.wireless.dyn.drei.com) (Ping timeout: 268 seconds)
23:01:04 × jtomas quits (~jtomas@95.red-88-11-64.dynamicip.rima-tde.net) (Ping timeout: 265 seconds)
23:09:33 × emf quits (~emf@2620:10d:c090:400::5:fe52) (Quit: emf)
23:10:21 zzz is now known as yournick
23:11:54 falafel joins (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com)
23:15:37 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
23:20:53 × DNH quits (~DNH@2a02:8108:1100:16d8:d1f:d611:c784:7f39) (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:25:49 × falafel quits (~falafel@2603-8000-d800-688c-c469-52c4-b20d-779e.res6.spectrum.com) (Ping timeout: 252 seconds)
23:27:10 emf joins (~emf@2620:10d:c090:400::5:fe52)
23:28:09 × myShoggoth quits (~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 268 seconds)
23:28:31 × waleee quits (~waleee@h-98-128-228-119.na.cust.bahnhof.se) (Ping timeout: 252 seconds)
23:30:56 × CiaoSen quits (~Jura@p200300c9571101002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
23:31:46 × emf quits (~emf@2620:10d:c090:400::5:fe52) (Ping timeout: 260 seconds)
23:32:20 × hyiltiz quits (~quassel@31.220.5.250) (Ping timeout: 265 seconds)
23:32:21 myShoggoth joins (~myShoggot@97-120-70-214.ptld.qwest.net)
23:32:22 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
23:33:04 hyiltiz joins (~quassel@31.220.5.250)
23:35:49 Amras joins (~Amras@user/Amras)
23:35:57 <Amras> how do I actually use Decidable's `lose`?
23:36:28 <Amras> I know it's supposed to mark a theoretical but unreachable branch, and that is what I'm trying to do with it
23:38:11 <Amras> but lose wants an `a->Void` argument and I see no way to generate that
23:39:34 <geekosaur> :t absurd
23:39:35 <lambdabot> Void -> a
23:39:39 <geekosaur> whoops
23:41:05 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
23:41:20 <geekosaur> I wonder if that means it wants an invocation of error
23:41:53 <awpr> it expects the type parameter to be an uninhabited type
23:41:58 <geekosaur> since there is indeed no way to create a value of type Void, only to tell the type system you're doing it (but actually throwing an exception)
23:42:18 <Amras> handing it error is definitely the sensible thing in my instance!
23:42:34 <awpr> `\x -> case x of {}` works for any type with no constructors
23:43:05 <awpr> if the type _does_ have values, then `lose` isn't really meant to handle it
23:45:30 machinedgod joins (~machinedg@24.105.81.50)
23:47:11 lavaman joins (~lavaman@98.38.249.169)
23:47:21 <awpr> actually `lose` might be pragmatic with an `error` call: `lose` embodies the concept of "the Decidable is vacuously satisfied because the case is unreachable", so turning your "impossible" value into an `error` would probably result in the error getting thrown if that case does end up happening
23:47:46 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds)
23:48:03 emf joins (~emf@2620:10d:c090:400::5:fe52)
23:48:42 <awpr> although some particular instances might find a way to miss the error, if they don't force the values of their type parameter or if they're phantom
23:50:27 yournick is now known as zzz
23:50:29 Phantastes joins (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net)
23:50:43 × Phantastes quits (~Phantaste@c-67-173-229-120.hsd1.co.comcast.net) (Client Quit)
23:51:37 × lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
23:57:13 porky joins (~porky@c-67-173-229-120.hsd1.co.comcast.net)

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