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)([1;5COCOCOCOCOC |
| 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.