Logs on 2021-06-13 (liberachat/#haskell)
| 00:02:11 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 00:11:58 | × | pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 272 seconds) |
| 00:13:53 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 00:14:01 | DigitalKiwi | trolls ethereum twitter https://twitter.com/ArchKiwi/status/1403867746635558914?s=20 |
| 00:14:43 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Quit: leaving) |
| 00:14:58 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 00:29:04 | → | Kaipi joins (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) |
| 00:29:05 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 00:29:14 | × | Kaipi quits (~Kaiepi@nwcsnbsc03w-47-54-173-93.dhcp-dynamic.fibreop.nb.bellaliant.net) (Remote host closed the connection) |
| 00:35:31 | × | pe200012_ quits (~pe200012@183.63.73.36) (Read error: Connection reset by peer) |
| 00:35:37 | → | pe200012 joins (~pe200012@183.63.73.36) |
| 00:37:26 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds) |
| 00:38:13 | → | sekun joins (~sekun@180.190.155.195) |
| 00:40:23 | × | swistak quits (~swistak@185.21.216.141) (Ping timeout: 252 seconds) |
| 00:41:00 | × | hololeap quits (hololeap@user/hololeap) (Quit: Bye) |
| 00:41:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 00:50:20 | × | sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 245 seconds) |
| 00:58:24 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 00:58:40 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 245 seconds) |
| 00:59:26 | × | chisui quits (~chisui@200116b8666c8300147e1d1a4c512cff.dip.versatel-1u1.de) (Ping timeout: 250 seconds) |
| 01:00:28 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 01:04:44 | × | killsushi quits (~killsushi@user/killsushi) (Quit: Leaving) |
| 01:08:01 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 01:10:24 | × | kw quits (~user@152.1.137.158) (Remote host closed the connection) |
| 01:11:59 | × | xff0x quits (~xff0x@2001:1a81:5382:9400:bf95:26e2:74b9:5674) (Ping timeout: 272 seconds) |
| 01:13:30 | → | xff0x joins (~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4) |
| 01:15:19 | → | johnw_ joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 01:15:46 | → | dcoutts__ joins (~duncan@94.186.125.91.dyn.plus.net) |
| 01:15:55 | → | tzh_ joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 01:16:01 | × | Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Remote host closed the connection) |
| 01:16:01 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
| 01:16:01 | × | dcoutts_ quits (~duncan@94.186.125.91.dyn.plus.net) (Remote host closed the connection) |
| 01:16:09 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 01:16:24 | × | justBull quits (~justache@user/justache) (Remote host closed the connection) |
| 01:17:13 | → | justBull joins (~justache@user/justache) |
| 01:17:16 | <janus> | i am looking at http://www.vex.net/~trebla/haskell/cont.xhtml and it defines `fmap = liftM` |
| 01:18:15 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 252 seconds) |
| 01:18:40 | <geekosaur> | historically Monad didn't require Functor, so it was common to get the Functor instance that way |
| 01:19:00 | <janus> | right! but let's say i wanted to define fmap myself, i could take the solution for monadic bind, and substitute that into the law "fmap f xs = xs >>= return . f" from Control.Monad |
| 01:19:13 | <janus> | then i would have an fmap implementation that didn't rely on Monad, right? |
| 01:19:27 | <geekosaur> | yes |
| 01:19:37 | <janus> | i feel a bit dirty defining Functor in terms of Monad, since i feel like it is the wrong way around |
| 01:19:41 | <geekosaur> | you're looking at a historical accident, basically |
| 01:20:40 | <janus> | but there is another problem: that line also uses `return`. so i'd have to find a law on Control.Applicative that defines fmap in terms of "pure", right? |
| 01:21:32 | <geekosaur> | pure is the same as return |
| 01:21:43 | <janus> | right, that's why i mention it |
| 01:21:48 | <geekosaur> | you should be able to use them interchangeably |
| 01:21:57 | × | theproffesor quits (~theproffe@2601:282:847f:8010::3a29) (Changing host) |
| 01:21:57 | → | theproffesor joins (~theproffe@user/theproffesor) |
| 01:22:15 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
| 01:22:48 | <janus> | right, so i showed the law that defines fmap in terms of bind and return. but i can't find a law that defines fmap in terms of applicative's pure, and surely there can't be |
| 01:23:30 | <geekosaur> | right, Applicative relies on having Functor as a superclass |
| 01:23:39 | × | pfurla quits (~pfurla@ool-182ed2e2.dyn.optonline.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 01:24:07 | <janus> | but then how do i do this, is it better if i just start from scratch with the fmap laws and my Cont definition? |
| 01:24:16 | <geekosaur> | probably yes |
| 01:24:35 | <janus> | ok lemme try, thanks :) |
| 01:25:17 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 01:26:30 | <DigitalKiwi> | for some reason i'm remembering a slide dibblego had where he (ab)used return lol |
| 01:27:09 | <DigitalKiwi> | yes i could be more vague ;( |
| 01:27:35 | → | pfurla joins (~pfurla@ool-182ed2e2.dyn.optonline.net) |
| 01:29:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 01:38:03 | × | benin036 quits (~benin@183.82.205.218) (Ping timeout: 252 seconds) |
| 01:39:54 | → | benin036 joins (~benin@183.82.176.84) |
| 01:43:17 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 01:45:55 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 01:46:56 | × | unyu quits (~pyon@user/pyon) (Quit: WeeChat 3.1) |
| 01:50:30 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:6149:a9e8:86ec:e649) (Quit: Leaving) |
| 01:51:36 | × | jiribenes quits (~jiribenes@rosa.jiribenes.com) (Ping timeout: 268 seconds) |
| 01:51:57 | <DigitalKiwi> | now i have to watch all of his videos on youtube until i find it ;( |
| 01:52:11 | <Henson> | Cale: the lumatone looks interesting |
| 01:53:16 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 01:53:54 | <DigitalKiwi> | if only i could limit it to the subset of videos i have watched before that would reduce the search space... |
| 01:54:44 | <DigitalKiwi> | oh wait that's all of them LOL <3 |
| 01:58:26 | → | iridescent joins (~iridescen@41337027.cst.lightpath.net) |
| 01:58:34 | <iridescent> | what does the line "class Randomizable spec f | spec -> f" mean? |
| 01:58:46 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 01:58:46 | <iridescent> | i'm not sure what the syntax here is |
| 01:59:13 | <geekosaur> | it's a class with a functional dependency saying that for any spec there can be only one f |
| 01:59:30 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 252 seconds) |
| 02:00:00 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 02:00:21 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds) |
| 02:00:33 | <geekosaur> | this helps with type resolution in the presence of multiparameter typeclasses |
| 02:01:06 | → | sander joins (~sander@user/sander) |
| 02:01:26 | → | jespada joins (~jespada@90.254.242.55) |
| 02:02:16 | <iridescent> | what do you mean by that second statement? |
| 02:03:19 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds) |
| 02:03:42 | <geekosaur> | without the functional dependency, the typeclass could mean nearly anything and you would have to annotate all uses with their types. with the fundep ghc knows that if it knows spec, there's only one possible f instead of just about anything |
| 02:05:23 | <geekosaur> | https://downloads.haskell.org/ghc/latest/docs/html/users_guide/exts/functional_dependencies.html |
| 02:07:02 | × | td_ quits (~td@94.134.91.54) (Ping timeout: 244 seconds) |
| 02:08:53 | → | td_ joins (~td@94.134.91.38) |
| 02:09:24 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1) |
| 02:10:23 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 272 seconds) |
| 02:11:22 | × | iridescent quits (~iridescen@41337027.cst.lightpath.net) (Ping timeout: 250 seconds) |
| 02:11:35 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 02:13:05 | → | phma_ joins (phma@2001:5b0:215d:8f48:bacd:d5e3:1440:7006) |
| 02:16:01 | × | GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Ping timeout: 244 seconds) |
| 02:16:26 | → | GIANTWORLDKEEPER joins (~pjetcetal@2.95.204.25) |
| 02:16:32 | × | phma quits (~phma@host-67-44-209-1.hnremote.net) (Ping timeout: 244 seconds) |
| 02:17:06 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds) |
| 02:18:27 | phma_ | is now known as phma |
| 02:19:27 | ← | qrpnxz parts (~qrpnxz@user/qrpnxz) (Disconnected: closed) |
| 02:20:11 | → | curiousgay joins (~quassel@178.217.208.8) |
| 02:21:57 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 02:25:41 | → | qrpnxz joins (~qrpnxz@user/qrpnxz) |
| 02:25:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:29:26 | <Cale> | Henson: It's fantastic. It's actually way easier to learn than the usual piano keyboard layout, since you generally arrange it so that musical intervals and spatial intervals coincide. |
| 02:30:36 | <Cale> | and then you get to generalise to larger tuning systems in a natural way, but play them similarly regardless (provided they support whatever temperament is implied by your layout) |
| 02:32:38 | <Cale> | https://imgur.com/a/91xHTjS -- 31 equal divisions of the octave Wicki-Hayden schematic and on the keyboard :) |
| 02:33:22 | <theproffesor> | I love microtonal keyboards.. I think that one looks pretty sweet. Has there been any good updates software wise yet? I know that there is an ethernet port among other future planned upgrades |
| 02:33:28 | <Cale> | That type of layout, with perfect fifths on the / axis and perfect fourths on the \ axis so that whole tones go across is my favourite |
| 02:34:52 | <Cale> | There was one firmware update almost immediately after shipping with some hotfixes, but yeah, there should be a lot of potential cool stuff |
| 02:35:15 | → | da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f) |
| 02:35:17 | × | da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:f1c5:68ee:212f:e12f) (Client Quit) |
| 02:35:18 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 02:35:45 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds) |
| 02:36:01 | → | curiousgay_ joins (~quassel@178.217.208.8) |
| 02:36:10 | × | curiousgay_ quits (~quassel@178.217.208.8) (Client Quit) |
| 02:36:55 | <qrpnxz> | anything in particular that made the devs go from ghc 8 to 9? (got a changelog?) |
| 02:37:02 | <Cale> | I also have to try to convince them to open source the firmware... for the sake of convenience it would be really nice to have an MPE mode, which I'd write myself if I could (I ended up writing a Lua script for moony.lv2 to convert channel-per-octave into MPE, but it's not as good as building it in would be) |
| 02:37:15 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:37:17 | <Cale> | qrpnxz: I guess LinearHaskell? |
| 02:37:31 | <qrpnxz> | what's that |
| 02:38:16 | <Cale> | It lets you restrict the number of times functions are allowed to use their arguments based on their type. |
| 02:38:41 | ← | smokey991 parts (sid369395@id-369395.brockwell.irccloud.com) () |
| 02:39:03 | <qrpnxz> | so for example, does sum a = a + a use the argument twice? |
| 02:39:08 | <Cale> | yeah |
| 02:39:22 | <qrpnxz> | ohhhh, that's pretty nice, you can optimize a lot of it's only one use |
| 02:39:39 | <Cale> | Yeah, except that at least at present, it doesn't give you any additional optimisation. |
| 02:39:40 | <qrpnxz> | well, idk why you'd want it as part of the type |
| 02:40:00 | <qrpnxz> | alright thx i'll look more into it |
| 02:40:39 | <Cale> | I personally don't think it'll turn out to be very useful, and gives a fair amount of rope with which to hang yourself, but people are interested in the potential regardless. |
| 02:42:23 | <Henson> | Cale: cool, thanks for the info on the keyboard! |
| 02:42:27 | <Cale> | The most interesting example usages I've seen have all involved making various uses of unsafePerformIO safe, but they don't really buy you much more than the ST monad would. |
| 02:42:33 | → | unyu joins (~pyon@user/pyon) |
| 02:44:02 | <Cale> | (but slightly more terse syntax usually, you get to avoid do notation I guess) |
| 02:44:49 | → | da39a3ee5e6b4b0d joins (~textual@171.6.243.223) |
| 02:46:53 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:47:25 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 245 seconds) |
| 02:49:30 | × | Henson quits (~kvirc@23-233-1-122.cpe.pppoe.ca) (Quit: goodnight) |
| 02:49:43 | × | zebrag quits (~chris@user/zebrag) (Remote host closed the connection) |
| 02:50:14 | <qrpnxz> | i'm reading an article on this (https://blog.acolyer.org/2018/01/24/linear-haskell-practical-linearity-in-a-higher-order-polymorphic-language/ for reference), and it feels a LOT like ownership tbh. Because when you use a value multiple times essentially you are making an implicit copy of that value, so these types are essentially restricting your ability to copy the value, which is indeed rather useful in |
| 02:50:14 | <qrpnxz> | determining who has to (or can) destruct,drop,close,free,unlock,mutate etc. that value. |
| 02:50:19 | <qrpnxz> | I wonder if haskell just had something like Rust's Copy and Clone traits that you'd be able to do basically the same thing in many cases idk. |
| 02:53:59 | <Cale> | Yeah, they kind of picked... not the substructural set of operations that I'd be most interested in. Personally, I'm quite interested in stuff like Conal's "constrained categories", which translate pretty-much-arbitrary Haskell expressions into operations involving a bunch of subclasses of Category, and just leaving out constraints for the subclasses that let you duplicate values (and/or discard them, etc.) would then |
| 02:53:59 | <Cale> | be a better way to express substructural stuff like linearity/affineness/etc. |
| 02:55:47 | <Cale> | I'm not even sure it would have been much more complicated than LinearHaskell to build something like that into GHC, and I feel like it would in any case have gotten much more bang for the buck. |
| 02:55:59 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 02:56:10 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 02:57:22 | <Cale> | There are not a lot of practical combinator libraries that are exactly linear, but there's a lot of stuff which is somewhere in that direction, but perhaps more constrained, or a bit less. |
| 02:59:02 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 02:59:39 | <Cale> | and the way they've rigged it up in LinearHaskell also kind of forces you into using unsafePerformIO to do anything really interesting, which is also kind of gross. They're trying too hard to overlap with the usual (->) type and that results in something which is less useful than you'd perhaps hope for. |
| 02:59:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 03:00:52 | <Cale> | (Usually I'd think you'd prefer to have a totally separate type from the type of ordinary Haskell functions, and just overload lambda to be able to produce values of your new type) |
| 03:01:44 | × | hiruji quits (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) (Ping timeout: 252 seconds) |
| 03:02:08 | <Cale> | But we'll see, maybe someone will find some sort of killer app for LinearHaskell |
| 03:04:44 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 03:07:59 | → | hiruji joins (~hiruji@2606:6080:1001:18:8d41:9604:d435:36b6) |
| 03:13:51 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 03:14:09 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 03:14:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 03:14:45 | <arahael> | Given a date time, how do I format it given a particular format string and locale? |
| 03:14:55 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:15:10 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:15:16 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:15:33 | → | lavaman joins (~lavaman@98.38.249.169) |
| 03:15:40 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:16:16 | × | ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 244 seconds) |
| 03:17:01 | → | ubikium joins (~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e) |
| 03:17:54 | <janus> | arahael: did you see https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format-ISO8601.html ? |
| 03:19:05 | <arahael> | janus: That's mostly biased towards parsing, I think? I want to produce a human-friendly time, such as: "Saturday 12th June". |
| 03:21:28 | → | sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20) |
| 03:22:21 | <arahael> | I think what I need is something like formatCalendarTime in `old-time`, but that's a deprecated module. |
| 03:23:26 | <janus> | araheal well i think it shouldn't be hard to make the serialization, you can use e.g. https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar-OrdinalDate.html#v:mondayStartWeek |
| 03:23:37 | <janus> | and the month name surely must also be easy to get |
| 03:23:51 | <janus> | dunno if it is worse to make it yourself or use old-time... |
| 03:24:39 | <janus> | maybe easiest just to use https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Format.html#v:formatTime |
| 03:24:42 | <arahael> | Yeah, it shouldn't be that much work, I wonder how most people deal with time formatting. |
| 03:24:53 | <janus> | i just use iso8601 for everything ;) |
| 03:24:56 | <arahael> | Yeah, I looked at formatTime, but... How do you do the '12th"? |
| 03:26:26 | <janus> | that is so english-centric, i am kinda happy it isn't in 'time' ;) i see there is https://hackage.haskell.org/package/ordinal |
| 03:27:03 | <arahael> | janus: Yeah, so we're going back to "Manually, painstakingly, format it yourself, by hand". :( |
| 03:28:25 | <janus> | but are you sure your users would even appreciate the ordinal form? i know i always turn it off if i can |
| 03:28:52 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
| 03:29:05 | <janus> | it's not even available with strftime |
| 03:29:07 | <arahael> | janus: This is going to go into the string: "Come and meet us at <location> on Saturday 12th June at 11 AM!" |
| 03:29:30 | → | kiweun joins (~sheepduck@2607:fea8:2a61:4800::ea20) |
| 03:29:41 | × | sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Read error: Connection reset by peer) |
| 03:29:52 | <arahael> | So I was wanting to format the latter part of that string. |
| 03:30:32 | × | Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
| 03:31:29 | <qrpnxz> | rfc3339 gang |
| 03:31:30 | × | ubikium quits (~ubikium@2400:2200:3f7:6d04:f545:ef78:6130:411e) (Ping timeout: 268 seconds) |
| 03:31:36 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 03:32:19 | <arahael> | qrpnxz: That's not exactly "conversational", though. |
| 03:32:19 | <qrpnxz> | format you want looks like rfc1123 |
| 03:32:31 | <qrpnxz> | see rfc1123 :) |
| 03:32:35 | <janus> | qrpnxz: is rfc3339 a subset of iso8601? |
| 03:32:46 | <janus> | looks good |
| 03:32:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 03:32:50 | Lord_of_Life_ | is now known as Lord_of_Life |
| 03:33:18 | <qrpnxz> | i think it's supposed to be the same, there's a good SO answer on a comparison between the two. I'm team rfc because ofc that's a std i can actually read xD |
| 03:33:23 | <arahael> | qrpnxz: Similar, except I want full names, and no year. :) |
| 03:33:41 | <qrpnxz> | sounds like a custom format |
| 03:33:42 | <qrpnxz> | gl |
| 03:33:55 | <arahael> | qrpnxz: Of course, trivially supported using the likes of strftime. |
| 03:34:18 | <janus> | qrpnxz: looks like neither of these have the ordinal ending https://hackage.haskell.org/package/time-http |
| 03:34:20 | <qrpnxz> | janus, from SO: "RFC 3339 is listed as a profile of ISO 8601" :) https://stackoverflow.com/questions/522251/whats-the-difference-between-iso-8601-and-rfc-3339-date-formats |
| 03:34:23 | <janus> | and that package includes 1123 |
| 03:34:39 | <janus> | qrpnxz: right , that's what the rfc text says. dunno what a profile is |
| 03:34:57 | <janus> | but i guess it is better to use that name for it since it looks like iso8601 is way too big |
| 03:34:58 | → | ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
| 03:35:02 | <qrpnxz> | probably effectively a subset |
| 03:35:24 | <qrpnxz> | or an instanciation |
| 03:36:47 | <qrpnxz> | another area go shines is time https://golang.org/pkg/time/#pkg-constants |
| 03:37:56 | <janus> | qrpnxz: is it really shining or is it just cutting the right corners ? ;) i see a problem already when saying "MST is -07:00" like they do there |
| 03:38:13 | <qrpnxz> | two different formats |
| 03:38:34 | <qrpnxz> | you pick |
| 03:39:25 | <janus> | right, but timezone names can change, and where does "MST" come from? what if it changes , and i give it a timestamp in a period where it had the old definition? |
| 03:39:48 | <qrpnxz> | MST just marks where the timezone goes in the format |
| 03:39:55 | <qrpnxz> | like Jan marks where the month goes |
| 03:40:10 | <qrpnxz> | and 02 marks the day and so on |
| 03:40:18 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:40:31 | <qrpnxz> | you can make your own custom format string quite easily |
| 03:40:37 | <janus> | ok, where does the mapping MST -> -07:00 take place? if it doesn't take place, why is MST mentioned in the docs? |
| 03:41:31 | <janus> | i understand that it works in 90% of the cases, probably comes from your local olson db |
| 03:41:32 | <qrpnxz> | maybe i don't understand the question. MST is GMT-0700, that's just what it is. Not sure what you are asking now |
| 03:42:05 | <janus> | i am saying that it is effectively not a "pure computation" because it comes from a database that is outside of go's control |
| 03:42:16 | <qrpnxz> | no it's in the lib |
| 03:42:31 | <qrpnxz> | you don't have to fetch it anywhere, it's not changing |
| 03:42:51 | <janus> | ok, so it can't handle DST changes then? |
| 03:43:19 | <qrpnxz> | i think it does, but DST produces different timezone codes |
| 03:43:36 | <qrpnxz> | like CST <-> CDT |
| 03:43:48 | <qrpnxz> | both central time, but one is DST and the other isnt |
| 03:44:24 | <qrpnxz> | 1:00 CST doesn't change meaning on what time of year you are in |
| 03:47:27 | <arahael> | So I'm using formatTime with the format string "%d", to get the day of the month, which I then convert to an integer, so that I can then get the Ordinal suffix for it and concat it. |
| 03:47:33 | <arahael> | Seems quite a lot. |
| 03:48:44 | <arahael> | Oh, and stripping spaces from it... |
| 03:48:52 | <arahael> | A bit of a mess. |
| 03:50:02 | <arahael> | I might as well just split my input string by '-' for the date parts. |
| 03:52:20 | <arahael> | Heh, Data.DateTime from datetime has this comment in the code: -- the craziness of the Haskell standard library date and time functions. |
| 03:52:42 | <Cale> | arahael: That sounds crazy, why not just go directly? |
| 03:52:50 | <Cale> | What are you starting with? |
| 03:54:06 | <arahael> | Cale: Unbelievably, just an ISO 8601 date. |
| 03:54:06 | <davean> | Yah, I mean you can just ask for the month |
| 03:54:10 | <Cale> | Usually you'll want to convert your UTCTime into a LocalTime in order to get the (local) Day from it, and then you can take that apart in various ways |
| 03:54:18 | → | da39a3ee_ joins (~textual@171.6.243.223) |
| 03:54:36 | <Cale> | You'll need to specify which TimeZone you want to know the day in though, since otherwise it'd be ambiguous. |
| 03:54:38 | <arahael> | davean: But I don't want to ask for the date, the month, the day, the name of the day, the ordinal suffix of the day, etc, when I can just infer it all from the date itself. |
| 03:54:43 | <arahael> | Cale: Yeah, always local. |
| 03:55:06 | <arahael> | Cale: Taking it apart seems to be the *insane* bit in Haskell, though maybe I'm looking at the wrong module. |
| 03:55:13 | <davean> | arahael: except you're formating it out! |
| 03:55:23 | <davean> | arahael: I think you're totally confused |
| 03:55:23 | <arahael> | davean: In this particular instance, yes. |
| 03:55:30 | <janus> | arahael: what do you mean by "taking it apart" ? surely the iso8601 parsing is easy since it has already been written |
| 03:55:42 | <Cale> | toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth) |
| 03:55:52 | <Cale> | is probably what you wanted? |
| 03:56:19 | <Cale> | Assuming that you're starting with a Day |
| 03:56:21 | <arahael> | Cale: I completely missed that since it's already in Gregorian... Yes, that's what I want. |
| 03:56:34 | <arahael> | Cale: Well, LocalTime has a Day. |
| 03:56:39 | <Cale> | yeah |
| 03:57:14 | <arahael> | That works nicely. :) |
| 03:57:50 | × | da39a3ee5e6b4b0d quits (~textual@171.6.243.223) (Ping timeout: 245 seconds) |
| 03:57:55 | <Cale> | A Day is meant to be an abstract notion of a day, and it's internally stored as the number of days since a particular day in 1858 :D |
| 03:59:30 | <arahael> | Makes sense. :) But... Does it support anything other than Gregorian (or Julian, even?) |
| 04:00:02 | <davean> | arahael: if you looked at how format was doing it you'd have found: |
| 04:00:06 | <davean> | mapGregorian :: Format (Integer, (Int, Int)) -> Format Day |
| 04:00:07 | <Cale> | There's the WeekDate stuff |
| 04:00:12 | <davean> | mapGregorian = mapMFormat (\(y, (m, d)) -> fromGregorianValid y m d) (\day -> (\(y, m, d) -> Just (y, (m, d))) $ toGregorian day) |
| 04:00:14 | <Cale> | which counts weeks of the year |
| 04:00:27 | <janus> | toModifiedJulianDay in https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Calendar.html#t:Day |
| 04:00:29 | <pavonia> | What happened o that particular day? |
| 04:00:34 | <pavonia> | *on |
| 04:00:35 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 04:01:05 | <arahael> | davean: Where's mapGregorian? (And again, I dismissed all the 'gregorian' stuff as I didn't realise I had to convert calendarws) |
| 04:01:40 | <janus> | arahael: you don't have to "convert" calendars afaik, because the iso8601 parser will know that it is parsing a gregorian date |
| 04:02:02 | <Cale> | pavonia: https://groups.google.com/g/comp.os.vms/c/IMWn2Fg46VA has an answer of sorts for why it's that particular day |
| 04:02:05 | <davean> | arahael: the Format Day implimentation |
| 04:02:06 | <janus> | when you get the DayOfMonth and such, that is an integer that is also using the gregorian calendar |
| 04:02:13 | <arahael> | janus: Yes, that's what i was saying... |
| 04:02:15 | <davean> | arahael: which is how you were printing IOS8601 |
| 04:02:42 | <arahael> | davean: I'm printing ISO 8601 by physically typing the characters in! |
| 04:02:51 | <janus> | arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian |
| 04:03:26 | <pavonia> | Cale: Thanks. Was already reading about https://en.wikipedia.org/wiki/Great_Stink :D |
| 04:03:33 | <janus> | arahael: but there is no conversion necessarily taking place. haskell is just abstracting the internal representation which isn't necessarily gregorian. for example a unix time isn't really gregorian know what it means? |
| 04:03:36 | <arahael> | janus: I think we got our signals mixed up. Cale brought up 'toGregorgian", which turned out to be exactly what I wanted... I was saying I only dismissed that when reading the docs the first time because... I was *already* using gregorian! |
| 04:03:53 | <monochrom> | Haha I should have become an astronomer. My day starts at noon. |
| 04:04:15 | <janus> | araheal: but how do you know you were already using gregorian? the Day doesn't say that it is using that internally |
| 04:04:27 | <monochrom> | But I can be talked into "you were right to join computer science instead, CS grad student day starts at 4PM" |
| 04:04:27 | <arahael> | janus: Because I'm typing in the ****'ing date myself in gregorigan! :) |
| 04:04:47 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:04:59 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds) |
| 04:05:22 | <janus> | arahael: but how? the Day constructor takes a ModifiedJulianDay |
| 04:05:40 | × | pe200012 quits (~pe200012@183.63.73.36) (Ping timeout: 272 seconds) |
| 04:05:44 | <arahael> | janus: Yes. Perhaps I should have just ignored hackage and read the source code myself. |
| 04:06:01 | <janus> | so if you're typing a iso8601 and parsing that, you're only using gregorian because that is what iso8601 uses. but when you got your Day, you forgot about the fact that it was ever a gregorian |
| 04:06:47 | <arahael> | janus: Yeah, well, I didn't have my Day, I had a LocalTime. |
| 04:07:25 | × | derelict quits (~derelict@user/derelict) (Ping timeout: 272 seconds) |
| 04:08:18 | <arahael> | janus: And Day is documented in a completely different place. :) I was wondering: "Do I need to convert this to a UnixTime?". |
| 04:09:38 | <arahael> | janus: I also checked stackoverflow and other places, look at how much *code* is in https://stackoverflow.com/questions/4174372/haskell-date-parsing-and-formatting |
| 04:11:17 | <arahael> | Do we have a wiki or something where we consolidate all this documentation so that it's clearer to navigate/ |
| 04:11:19 | <arahael> | ? |
| 04:11:41 | <janus> | there is wiki, it is easy to get a user |
| 04:11:49 | <janus> | or you can just send me some content and i can make a page for you |
| 04:12:26 | <janus> | you can also ask an SO question and answer it yourself, i kinda like that model |
| 04:14:23 | <arahael> | Perhaps I should think about doing a decent tutorial on the wiki. |
| 04:14:31 | × | ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds) |
| 04:15:02 | → | ubikium joins (~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b) |
| 04:16:02 | <Cale> | arahael: Yeah, the time library is actually really good and has most of what you'd ever need, but it takes a moment to get used to :) |
| 04:16:28 | <janus> | arahael: there is also a wikibook on haskell, you could add a chapter |
| 04:16:40 | <arahael> | janus: Another possibility. |
| 04:16:53 | <arahael> | Cale: Yeah, it's definitely not easy to dive in and see everything. |
| 04:17:50 | <janus> | check out this diagram https://wiki.haskell.org/File:Time-diagram.png |
| 04:17:59 | → | reumeth joins (~reumeth@user/reumeth) |
| 04:18:49 | <davean> | I don't think that diagram is quite right |
| 04:19:07 | <janus> | looks weird with "Day - Day" not being Void :P |
| 04:19:21 | <arahael> | janus: The best thing about that particular diagram is the "The following pages link to this file:", bringing up the Time docs. |
| 04:19:31 | → | thelounge92 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com) |
| 04:19:34 | <arahael> | janus: All my searching was focused on either date, or datetime! |
| 04:19:42 | <arahael> | Those time docs are quite good. |
| 04:19:58 | <davean> | Pretty sure that diagram screws up the relation between AbsoluteTime and UTCTime janus |
| 04:20:18 | <janus> | i wouldn't call them docs on the wiki :P i mean, the diagram is on there |
| 04:20:40 | <janus> | would suck to make a library only for someone to make a bad diagram , put it on the wiki page, and now people tell you that your docs suck :P |
| 04:21:14 | <janus> | davean: thanks for the pointers! a shame, i like diagrams :P |
| 04:21:22 | <arahael> | janus: The back link is docs. :) |
| 04:21:37 | <arahael> | janus: https://wiki.haskell.org/Time |
| 04:22:18 | <davean> | janus: there is a function AbsoluteTime -> UTCTime but no map UTCTime -> AbsoluteTime specificly |
| 04:22:24 | <janus> | but documentation written mostly by Russell O'Connor in 2013. when people say "docs" don't they usually talk about the official ones? |
| 04:22:42 | × | tomsmeding quits (~tomsmedin@2a03:b0c0:0:1010::767:3001) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:23:20 | <davean> | janus: Some UTCTimes map to multiple AbsoluteTimes |
| 04:23:29 | <davean> | since UTCTime isn't monotonic |
| 04:24:24 | <janus> | why is UTC not monotonic? because of leap seconds? |
| 04:24:27 | → | Morrow_ joins (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) |
| 04:24:29 | <davean> | janus: yes |
| 04:24:41 | <davean> | which can go forward or backwards, so UTCTime repeats |
| 04:25:00 | <janus> | i wish there was a name for UTC-with-time-smearing? |
| 04:25:10 | <davean> | I mean just use AbsoluteTime |
| 04:25:13 | <davean> | TAI is pretty easy |
| 04:25:21 | <davean> | And its far more correct |
| 04:25:37 | <davean> | UTCTime is for display to humans |
| 04:25:45 | <davean> | computers should always just use time in TAI |
| 04:26:09 | <arahael> | janus: At this point, I'd have been happy with *any* docs. The hackage modules barely refer to each other except when they happen to use a type in another module. |
| 04:26:49 | <janus> | davean: ok, but in practice, if they don't use TAI , and they use UTC with time smearing, wouldn't it be easier to invent a new correct name for this variant, instead of rewriting everything to use TAI? |
| 04:27:03 | <davean> | janus: smearing varies |
| 04:27:06 | <davean> | so no, it wouldn't |
| 04:27:12 | × | MorrowM quits (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
| 04:27:12 | <davean> | smearing is a huge mess |
| 04:27:21 | <davean> | So I just check the time at the time, and convert into TAI |
| 04:27:30 | <davean> | computers DO keep a monotonic clock |
| 04:27:35 | <davean> | since they can't possibly keep UTC correctly |
| 04:27:43 | <davean> | so I just access the monotonic clock, and get TAI out |
| 04:28:43 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 04:28:54 | <janus> | "TAI clock, if it exists. Note that it is unlikely to be set correctly, without due care and attention." |
| 04:28:57 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
| 04:28:58 | <janus> | from https://hackage.haskell.org/package/time-1.12/docs/Data-Time-Clock-TAI.html |
| 04:29:18 | <davean> | sure, which is why I use https://hackage.haskell.org/package/tai instead of time |
| 04:29:33 | <janus> | oh my |
| 04:29:39 | <davean> | That deals with the system details |
| 04:29:51 | <janus> | oh it's your own library :D |
| 04:29:54 | <davean> | Yes |
| 04:29:59 | <davean> | I've dealt with the time issues a lot |
| 04:30:16 | <janus> | space traveller? |
| 04:30:34 | <glguy> | aren't we all? |
| 04:30:35 | <davean> | as I said, the systems use mononic time, rarely TAI |
| 04:30:42 | <davean> | they present UTCTime |
| 04:30:57 | <davean> | You just have to align them |
| 04:31:07 | <davean> | janus: a second is a huge amount of time |
| 04:31:17 | <davean> | a smeared second causes a TON of issues |
| 04:31:34 | <arahael> | A second is long enough to crash all the eftpos terminals in my state. :) |
| 04:31:49 | <davean> | it might be mononic and continuous but it either drops a second or packs two times as much in |
| 04:31:56 | × | justBull quits (~justache@user/justache) (Excess Flood) |
| 04:31:59 | <davean> | arahael: right, a second is a big deal :) |
| 04:32:42 | <janus> | but isn't the whole point of time smearing that it is smeared out over such a long period that the delta will never grow close to a second? |
| 04:32:45 | → | justBull joins (~justache@user/justache) |
| 04:32:49 | → | teaSlurper joins (~chris@81.96.113.213) |
| 04:32:52 | <davean> | janus: depends on the smearing |
| 04:32:56 | <davean> | so ... no |
| 04:33:04 | <davean> | as I said, theres no specific smearing |
| 04:33:05 | <arahael> | davean: Yep, I just get sad at how it comes as a huge surprise even now, if the system depends on sub-second precision, why don't they do it properly? :( |
| 04:33:17 | <arahael> | janus: Sometimes it's smeared over "two" seconds |
| 04:33:39 | <davean> | janus: and even a second smeared over a day is pretty fucking obvious to anyone looking |
| 04:33:50 | <davean> | which isn't want anything does in practice |
| 04:34:12 | <davean> | so yah, mostly you get rediculous errors if you deal with UTCTime |
| 04:34:49 | arahael | now finally has 'the xth day". |
| 04:34:58 | <arahael> | So... Now for the month! Another timesink! |
| 04:35:25 | <arahael> | Of course, I could simply write a 12-case switch, but blegh. This has surely been done. |
| 04:35:57 | <davean> | arahael: most people don't care to do their jobs well? I mean thats how people got in this situation in the first place |
| 04:36:13 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 04:36:56 | <arahael> | davean: The big problem is when responsibilities overlap or are split out. Collobrating with other components in your organisation about some technical issue that only happens maybe for a *second* once or twice every other year is a pretty big ask for many businesses. |
| 04:38:10 | × | HarveyPwca quits (~HarveyPwc@2601:246:c180:a570:29df:3b00:ad0e:3a06) (Quit: Leaving) |
| 04:38:34 | <davean> | arahael: I mean they had to have a pretty big fundimental flaw to get there in the first place |
| 04:38:39 | <davean> | arahael: sure its hard to fix AFTER |
| 04:39:22 | <arahael> | davean: I'm convinced it's related to not only being a bit lazy, but also due to how software systems are partitioned today. |
| 04:39:35 | <arahael> | (In the organisations) |
| 04:39:47 | <arahael> | Ie, this is not just a technical issue, but also a social one. |
| 04:40:00 | <janus> | davean: your library needs a base bump to work on ghc 9, btw |
| 04:40:26 | <davean> | janus: lol, so I can't actually verify it on GHC 9 ATM because of package issues with GHC 9! |
| 04:40:36 | <davean> | janus: so uh, no, it doesn't need a bump :( |
| 04:40:48 | <janus> | :( |
| 04:40:50 | <davean> | I have to wait for the ecosystem to percolate |
| 04:41:01 | davean | shakes fist at sky |
| 04:41:25 | <janus> | huge amount of broken packages, just submitted 4 bump requests last week on the trustees tracker |
| 04:41:50 | <davean> | yah, there were a few issues, unrelated to GHC, that made the 9 transition difficult |
| 04:41:51 | arahael | uses formatTime to get the month name out. |
| 04:42:26 | <davean> | janus: for MOST configurations I think jail breaking it is fine |
| 04:42:47 | <davean> | janus: I just wasn't going to bump it until it was actually passing tests properly |
| 04:42:54 | <davean> | (across all targets, etc) |
| 04:48:54 | × | kiweun quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds) |
| 04:50:12 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Remote host closed the connection) |
| 04:53:58 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 04:55:06 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 04:56:33 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 05:04:15 | × | alx741 quits (~alx741@181.196.69.243) (Quit: alx741) |
| 05:07:42 | × | da39a3ee_ quits (~textual@171.6.243.223) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 05:09:48 | × | renzhi quits (~xp@modemcable070.17-177-173.mc.videotron.ca) (Ping timeout: 252 seconds) |
| 05:14:46 | → | MQ-17J joins (~MQ-17J@8.21.10.116) |
| 05:15:27 | → | nerdypepper joins (~nerdypepp@152.67.162.71) |
| 05:27:13 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 05:30:42 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 05:44:18 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 05:47:34 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 05:47:53 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 05:48:51 | → | sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20) |
| 05:49:18 | × | aerona quits (~aerona@2600:6c54:4600:f300:6de7:8f27:ad87:4107) (Quit: Leaving) |
| 05:51:36 | × | shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 252 seconds) |
| 05:52:03 | × | Morrow_ quits (~MorrowM_@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 272 seconds) |
| 05:52:25 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 245 seconds) |
| 05:53:42 | × | sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 264 seconds) |
| 05:54:18 | × | haskl quits (~haskeller@2601:643:897f:561d::af3) (Ping timeout: 264 seconds) |
| 05:55:50 | → | anandprabhu joins (~anandprab@87.201.97.214) |
| 06:01:44 | → | Bartosz joins (~textual@24.35.90.211) |
| 06:03:40 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 06:04:07 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 06:05:00 | × | Adran quits (adran@botters/adran) (Quit: Este é o fim.) |
| 06:11:10 | × | benin036 quits (~benin@183.82.176.84) (Ping timeout: 245 seconds) |
| 06:11:29 | → | benin036 joins (~benin@183.82.176.166) |
| 06:12:00 | × | MQ-17J quits (~MQ-17J@8.21.10.116) (Remote host closed the connection) |
| 06:12:16 | → | Adran joins (~adran@botters/adran) |
| 06:12:16 | → | MQ-17J joins (~MQ-17J@8.21.10.116) |
| 06:15:21 | → | haskl joins (~haskeller@2601:643:897f:561d::af3) |
| 06:16:12 | → | adios joins (~adios@244.92.151.186.static.intelnet.net.gt) |
| 06:21:56 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 252 seconds) |
| 06:27:12 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:31:09 | → | amahl joins (~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi) |
| 06:34:22 | × | fvr quits (uid503686@id-503686.highgate.irccloud.com) () |
| 06:34:33 | → | fvr joins (uid503686@id-503686.highgate.irccloud.com) |
| 06:37:49 | → | sheepduck joins (~sheepduck@2607:fea8:2a61:4800::ea20) |
| 06:40:25 | → | qbt joins (~edun@user/edun) |
| 06:40:25 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 06:40:38 | × | xff0x quits (~xff0x@2001:1a81:53bf:ae00:b6fb:e579:3973:61d4) (Ping timeout: 252 seconds) |
| 06:40:58 | × | zmt00 quits (~zmt00@user/zmt00) (Quit: Gone.) |
| 06:42:38 | → | xff0x joins (~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591) |
| 06:47:47 | × | sheepduck quits (~sheepduck@2607:fea8:2a61:4800::ea20) (Ping timeout: 252 seconds) |
| 06:48:44 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 06:49:58 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 06:50:23 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 06:54:02 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 06:54:22 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 06:58:42 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Ping timeout: 252 seconds) |
| 07:00:07 | → | matsurago joins (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) |
| 07:01:05 | → | sheepduck joins (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) |
| 07:02:00 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 07:02:57 | × | sheepduck quits (~sheepduck@cpe98524a8cef7c-cm98524a8cef7a.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 07:03:01 | × | xff0x quits (~xff0x@2001:1a81:53da:9800:7857:139c:679e:1591) (Ping timeout: 268 seconds) |
| 07:04:49 | → | xff0x joins (~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175) |
| 07:05:06 | × | ubikium quits (~ubikium@2400:2200:3f1:982e:b73d:c88d:7f8e:831b) (Ping timeout: 264 seconds) |
| 07:05:21 | → | ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
| 07:09:09 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 07:11:33 | × | haskl quits (~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection) |
| 07:11:50 | → | haskl joins (~haskeller@2601:643:897f:561d::af3) |
| 07:13:32 | × | haskl quits (~haskeller@2601:643:897f:561d::af3) (Remote host closed the connection) |
| 07:13:49 | → | haskl joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) |
| 07:14:29 | × | nerdypepper quits (~nerdypepp@152.67.162.71) (Changing host) |
| 07:14:29 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 07:19:22 | → | notzmv joins (~zmv@user/notzmv) |
| 07:21:56 | <maerwald> | is there a function to get a temporary filename (without creating it)? |
| 07:22:11 | → | wonko joins (~wjc@62.115.229.50) |
| 07:27:11 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:30:43 | × | xff0x quits (~xff0x@2001:1a81:53da:f000:a10f:4223:ab2e:3175) (Ping timeout: 272 seconds) |
| 07:32:01 | → | xff0x joins (~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6) |
| 07:35:50 | × | beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection) |
| 07:36:19 | → | beka joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 07:41:45 | × | beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Remote host closed the connection) |
| 07:42:39 | → | beka joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 07:42:42 | × | amahl quits (~amahl@dxv5skyhc49fswhfjlcpy-3.rev.dnainternet.fi) (Remote host closed the connection) |
| 07:44:25 | × | xff0x quits (~xff0x@2001:1a81:53db:5a00:806f:9a3:56a7:aca6) (Ping timeout: 244 seconds) |
| 07:45:12 | → | lavaman joins (~lavaman@98.38.249.169) |
| 07:45:37 | × | zaquest quits (~notzaques@5.128.210.178) (Quit: Leaving) |
| 07:46:13 | → | xff0x joins (~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74) |
| 07:46:53 | → | Peng7 joins (~Peng@188.233.111.108) |
| 07:46:53 | <Peng7> | /!\ THΙЅ СΗANΝEⅬ ᎻAS МⲞVΕⅮ ТO IRϹ.LIBEᎡА.CዘAᎢ #HᎪΜᖇΑᎠIⲞ ⁄!\ |
| 07:46:53 | × | Peng7 quits (~Peng@188.233.111.108) (K-Lined) |
| 07:48:04 | <Rembane_> | maerwald: Do you want the name but not the file? |
| 07:48:36 | <maerwald> | Rembane_: yeah |
| 07:48:58 | <maerwald> | I want the juice, not the fruit |
| 07:49:06 | <Rembane_> | maerwald: Do you care at all about the shape of the name? Can it be ugly? |
| 07:49:21 | <maerwald> | it has to be *valid* |
| 07:49:28 | <maerwald> | which isn't that easy on windows |
| 07:49:41 | <maerwald> | otherwise you run it through `makeValid` |
| 07:50:03 | <Rembane_> | Are dashes valid in file names on Windows? Because if they are, you could generate an UUID that's a function of time. |
| 07:50:18 | <Rembane_> | And if they aren't, you could still use an UUID but remove the dashes. |
| 07:50:58 | → | poljar1 joins (~poljar@93-139-36-109.adsl.net.t-com.hr) |
| 07:51:01 | <Vq> | Is going beyond 8+3 filenames still an extension? Could be tricky with so short filenames. |
| 07:52:22 | × | poljar quits (~poljar@93-139-68-198.adsl.net.t-com.hr) (Ping timeout: 265 seconds) |
| 07:56:50 | <maerwald> | filename length is a problem on windows |
| 07:57:36 | <Rembane_> | Is 8+3 still the max length? |
| 07:57:54 | <maerwald> | that depends on the path length of the temporary system directory |
| 07:59:32 | <Rembane_> | That's way too exciting. |
| 08:02:02 | <xsperry> | Rembane_, 260 should be safe (IIRC there's a way to go beyond that, but it requires registry tweaks). https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-vds/9d39e835-514b-4308-a3f9-d4a6cbe5691b |
| 08:02:19 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 08:04:39 | <xsperry> | of course that's the whole path, there's no specific length limit for filename alone AFAIK |
| 08:05:04 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:06:16 | → | jasonm joins (~bc817c21@217.29.117.252) |
| 08:06:38 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 244 seconds) |
| 08:07:03 | fendor_ | is now known as fendor |
| 08:07:39 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:40 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 08:08:00 | <jasonm> | hi. is there a scanf equivalent for haskell? that takes an actual string. there's scanf, but it works with template haskell |
| 08:08:27 | <jasonm> | (I'm working with config files that, among other things, includes user supplied scanf string) |
| 08:08:30 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 08:08:54 | → | lavaman joins (~lavaman@98.38.249.169) |
| 08:08:55 | <Rembane_> | jasonm: There's a bad one because you throw all type safety out of the window. |
| 08:08:55 | → | mikoto-c1 joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 08:09:28 | <Rembane_> | jasonm: Nevermind, I mixed it up with printf. |
| 08:09:40 | <[exa]> | jasonm: using attoparsec is usually faster and much more convenient |
| 08:10:04 | <jasonm> | [exa], but I'd have to rewrite scanf basically |
| 08:10:23 | <[exa]> | do you have user-specified format strings or something? |
| 08:10:33 | <jasonm> | yes, I actually said that above :) |
| 08:10:34 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
| 08:10:41 | <[exa]> | ah sorry I just kinda arrived :D |
| 08:11:38 | <[exa]> | hm, like, okay, that's hard |
| 08:12:18 | <[exa]> | what would be the higher purpose? |
| 08:12:21 | <jasonm> | np. can scanf package work with strings? this is an example from their page: scanf [fmt|Hello %s|] "Hello world!" :: Maybe (String :+ ()) |
| 08:12:40 | <nshepperd> | you might need to write your own scanf |
| 08:12:42 | <jasonm> | I am working with a config file that, among other things, includes scanf string |
| 08:12:43 | <Rembane_> | How much work is it to map the scanf "commands" to some series of attoparsec combinators? |
| 08:12:55 | <nshepperd> | either that or call out to C. if you need compatibility |
| 08:14:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:15:01 | <[exa]> | jasonm: what would happen if the user attempts buffer overflow by specifying "%d%d%d%d%d%d.........." ? |
| 08:16:47 | <jasonm> | bad things.. they assume cooperation of the user. that's why it be better if there was a pure haskell version, i'd get a nice error instead of memory corruption or segfault |
| 08:18:43 | <aerkenemesis> | jasonm I would use FFI for that |
| 08:19:07 | <maerwald> | Can you tell stack to use a different msys2? |
| 08:19:17 | → | tomsmeding joins (~tomsmedin@tomsmeding.com) |
| 08:21:08 | <siers> | how do people usually represent that only As are present in a list if you have data D = A | B? |
| 08:22:03 | <siers> | ah, there's even no A type like in scala, so you can't use that for a phantom type. so perhaps this is not a good question then |
| 08:22:04 | → | zaquest joins (~notzaques@5.128.210.178) |
| 08:22:23 | <Rembane_> | siers: What's the problem you really are trying to solve? |
| 08:22:47 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:23:08 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 08:23:16 | <jasonm> | D is a type, A is one of two possible values of D |
| 08:23:17 | <siers> | Rembane_, I have history with two entries and I want to filter and store only "A"s. If I use the D type, I will later have to make a function that handles the two cases though I care only about one. |
| 08:23:45 | <siers> | I guess I can move all of A's data into its own data and then D will only represent the discrimination |
| 08:24:02 | <jasonm> | your type is equivalent to data Bool = True | False |
| 08:24:12 | <Rembane_> | siers: Something like: filter (\case; A -> True; _ -> False) [{- list of As and Bs -}] |
| 08:24:55 | <siers> | I'd never seen an inline case, cool |
| 08:25:18 | <tomsmeding> | if you want type-level evidence of having only A's in a list, you need to reflect the information of "being A" on the type level |
| 08:25:21 | <Rembane_> | You need to activate LambdaCase, but it's worth it imo |
| 08:25:40 | TheRAt | is now known as TheRAt_AWAY |
| 08:25:42 | TheRAt_AWAY | is now known as TheRAt |
| 08:25:57 | <tomsmeding> | e.g. data D a where A :: D 'True ; B :: D 'False -- where I'm using DataKinds so that 'a' has kind Bool |
| 08:26:29 | <tomsmeding> | then a list of D 'True can contain only As, but you can't have a list of whatevers anymore |
| 08:26:35 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 08:26:37 | <maerwald> | tomsmeding: yes... and in the end you'll still write your own filter function that just happens to then manipulate the types, which is one of those instances where I find type level programming pointless |
| 08:26:42 | <maerwald> | because you can still mess up |
| 08:26:52 | <tomsmeding> | but you can't mess up here? |
| 08:26:58 | <tomsmeding> | you can't stuff a B in a list of D 'True |
| 08:27:51 | <siers> | maerwald, and also you won't have to handle the cases when consuming |
| 08:28:08 | <tomsmeding> | you do still have to write your own filter function, but aside from skipping items / putting them in the wrong order (which the types do not prohibit), you can't put items in the wrong list |
| 08:28:18 | <maerwald> | siers: you convert to a different type then |
| 08:28:44 | <siers> | tomsmeding, pretty cool, that was kind of what I was looking for |
| 08:28:49 | <tomsmeding> | which is equivalent, I guess? having my GADT or instead two data types is kind of the same thing with different syntax |
| 08:29:19 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 08:29:26 | <siers> | maerwald, I was thinking that is the saner of options |
| 08:29:30 | <tomsmeding> | siers: if you want a list of "either A or B", with my GADT you now have to do wrap them though |
| 08:29:55 | <siers> | maerwald, I still want to know what's the alternative, crazier solution :) |
| 08:30:00 | <tomsmeding> | data Some f where Some :: f a -> Some f -- or alternatively, same meaning different syntax: data Some f = forall a. Some (f a) |
| 08:30:04 | <tomsmeding> | or use: |
| 08:30:05 | <tomsmeding> | @hackage some |
| 08:30:05 | <lambdabot> | https://hackage.haskell.org/package/some |
| 08:31:03 | → | __monty__ joins (~toonn@user/toonn) |
| 08:31:33 | <tomsmeding> | which makes Some a newtype using some unsafeCoerce magic |
| 08:32:46 | <tomsmeding> | siers: to answer your original question, I guess: for most people that's making two datatypes, data A = A and data B = B, and having a function splitD :: [D] -> ([A], [B]) |
| 08:32:58 | <jasonm> | can Some be used to have a list of types that implement some typeclass? |
| 08:32:59 | <tomsmeding> | and for the people that like type-level trickery, the GADT solution that I described |
| 08:33:07 | Rembane_ | is now known as Rembane |
| 08:33:21 | <tomsmeding> | jasonm: do you have an example? |
| 08:33:47 | <siers> | "mkSome" :D funny... is Some like a Proxy? I don't yet understand what it does |
| 08:34:05 | × | MQ-17J quits (~MQ-17J@8.21.10.116) (Ping timeout: 245 seconds) |
| 08:34:06 | <tomsmeding> | siers: 'Some Maybe' is a type that contains a 'Maybe a' for some existential 'a' |
| 08:34:07 | <jasonm> | tomsmeding, having a list of Show a => [a], for example. existential types can be used for this |
| 08:34:40 | <tomsmeding> | siers: in this case, with my GADT-based D, you can have a list of 'Some D' where each item is a 'D a' for some existential 'a' -- i.e. either 'True or 'False in this case |
| 08:34:45 | × | matsurago quits (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving) |
| 08:35:06 | <siers> | tomsmeding, it's starting to make sense |
| 08:35:15 | <siers> | the some part // the D a part is clear |
| 08:35:23 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 08:35:31 | <tomsmeding> | it's not like a Proxy in that a Proxy has only a phantom type variable; Some carries data but hides one type variable behind an existential |
| 08:37:09 | <tomsmeding> | but you don't have to use Some for your D; you can also directly write: data SomeD where SomeD :: D a -> SomeD -- or equivalently: data SomeD = forall a. SomeD (D a) |
| 08:37:14 | <siers> | but if TagInt :: Tag Int, then shouldn't Some TagInt be Some Tag? |
| 08:37:16 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Remote host closed the connection) |
| 08:37:30 | <tomsmeding> | siers: is TagInt a constructor of a GADT named Tag? |
| 08:37:39 | <maerwald> | tomsmeding: your example requires using a different type... I was thinking of type families |
| 08:37:44 | <tomsmeding> | then yes Some TagInt :: Some Tag |
| 08:37:45 | <siers> | tomsmeding, ah, gotcha |
| 08:38:06 | <siers> | I'm not used to data .. where syntax |
| 08:38:40 | <tomsmeding> | jasonm: (sorry missed your message) no for that you have to write a custom GADT |
| 08:39:06 | <jasonm> | ok |
| 08:39:39 | <tomsmeding> | or, I guess, Some (Product (Has Show) []), where Product is from Data.Functor.Product, and data Has c a where Has :: c a => Has c a |
| 08:39:54 | <tomsmeding> | (using ConstraintKinds to pass a constraint to the type variable 'c' of Has) |
| 08:40:06 | <tomsmeding> | but at that point just write a custom GADT :p |
| 08:40:11 | → | yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
| 08:40:45 | <tomsmeding> | siers: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/gadt.html?highlight=gadts |
| 08:40:51 | <tomsmeding> | maerwald: I'm not sure I see how? |
| 08:42:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 08:43:04 | <siers> | tomsmeding, cool link |
| 08:43:17 | <tomsmeding> | siers: the ghc user's guide is underappreciated |
| 08:43:35 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 08:44:42 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d) |
| 08:44:46 | × | tomsmeding quits (~tomsmedin@tomsmeding.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 08:46:06 | → | tomsmeding joins (~tomsmedin@tomsmeding.com) |
| 08:48:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 08:48:09 | × | jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 252 seconds) |
| 08:48:28 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 268 seconds) |
| 08:49:31 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds) |
| 08:50:34 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 08:53:14 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 08:54:58 | → | fendor_ joins (~fendor@77.119.131.227.wireless.dyn.drei.com) |
| 08:57:57 | × | fendor quits (~fendor@91.141.0.106.wireless.dyn.drei.com) (Ping timeout: 264 seconds) |
| 09:00:07 | → | berberman joins (~berberman@user/berberman) |
| 09:00:42 | <maerwald> | tomsmeding: yeah, on second thought... me neither |
| 09:01:02 | <tomsmeding> | :) |
| 09:01:30 | × | berberman_ quits (~berberman@user/berberman) (Ping timeout: 264 seconds) |
| 09:02:43 | → | neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
| 09:03:06 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 09:06:54 | × | xff0x quits (~xff0x@2001:1a81:53db:9400:2ec8:4cb:1537:c74) (Ping timeout: 264 seconds) |
| 09:07:50 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 09:08:22 | → | xff0x joins (~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb) |
| 09:08:26 | → | hseg joins (~gesh@185.120.126.41) |
| 09:10:28 | → | da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) |
| 09:11:07 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:14:00 | <hseg> | Hi. I want a function :: Semigroup v => (k -> v -> [l]) -> Map k v -> Map l v that replaces all (k,v) pairs in the map by their image, then collects them all, sconcat'ing if there are duplicate keys |
| 09:14:13 | <hseg> | The current way I have of doing this is fromListWith (<>) . toList . traverseWithKey f |
| 09:14:50 | <hseg> | but a) am unsure whether this will fuse away the intermediate list and b) seems like an awkward way of doing things |
| 09:14:56 | <hseg> | am I missing something? |
| 09:15:21 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 272 seconds) |
| 09:15:46 | <hseg> | (in fact, this is the unary case of what is actually a parametrized binary op on Maps in my use case) |
| 09:16:31 | <hseg> | (ie convolveF :: (_, Foldable f, Semigroup v) => (i -> j -> f k) -> Map i v -> Map j v -> Map k v |
| 09:16:59 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 09:18:25 | <tomsmeding> | hseg: that function doesn't seem to typecheck |
| 09:18:48 | <hseg> | bc of the hole in the context? |
| 09:19:05 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds) |
| 09:19:06 | <c_wraith> | because traverseWithKey is returning a list of maps |
| 09:19:43 | <hseg> | ah oops |
| 09:20:52 | <hseg> | yeah, ig that intermediate toList should be map toList ? |
| 09:21:51 | <hseg> | ... foldMap toList |
| 09:21:54 | <c_wraith> | maybe concatMap? |
| 09:22:01 | <hseg> | concatMap, right |
| 09:22:15 | <hseg> | (though for lists those coincide, right? |
| 09:22:24 | <c_wraith> | yeah, those two are the same in that case |
| 09:23:24 | <c_wraith> | in that case, I can basically guarantee the intermediate lists are not getting fused away |
| 09:23:30 | <hseg> | hrm... a moment, I made a mistake in my type tetris |
| 09:23:33 | × | tzh_ quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 09:23:45 | <hseg> | (the traversal is modifying the values, not the keys) |
| 09:23:58 | <hseg> | but the general point is clear |
| 09:24:31 | <hseg> | ig that containers doesn't provide a clean, quick way of doing this then? |
| 09:24:55 | <hseg> | and that i need to use monoidal-containers instead? |
| 09:24:57 | <c_wraith> | Not clean, but foldlWithKey' would be efficient. |
| 09:25:22 | <c_wraith> | though it doesn't do a thing for your binary case |
| 09:25:48 | <hseg> | oh well. it's what I get for abusing a container outside its intended use case |
| 09:26:25 | <hseg> | Map k v is meant to be "v-valued container keyed by k", not "v-valuation on k values" |
| 09:28:14 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 09:28:25 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 09:29:19 | <hseg> | ... actually, instead of destructing+reconstructing, could just unionsWith (<>) |
| 09:29:28 | <hseg> | so at least there's that |
| 09:29:56 | <tomsmeding> | which is, then, probably the best you'll get |
| 09:30:06 | <hseg> | ... and that's yet another thing Map has that HashMap doesn't *frustration* |
| 09:30:12 | <hseg> | yeah, ig |
| 09:31:30 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 264 seconds) |
| 09:32:14 | → | azeem joins (~azeem@176.201.21.98) |
| 09:33:32 | → | teaSlurper joins (~chris@81.96.113.213) |
| 09:33:45 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 09:35:17 | × | cheater quits (~Username@user/cheater) (Quit: (BitchX) A gentleman is one who knows how to play the bagpipes, but chooses not to.) |
| 09:38:08 | <hseg> | ... ok, so the "solution" I began with doesn't even work, since it modifies the values, not the keys |
| 09:38:09 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 272 seconds) |
| 09:38:29 | <hseg> | and indeed, I don't see a traversal in containers that permits altering the keys |
| 09:38:49 | <hseg> | like, except mapKeys |
| 09:41:10 | <hseg> | and even with that, I can end up with a Map (f k) v, but with no way of distributing that f over Map |
| 09:42:31 | <tomsmeding> | because in terms of a tree data structure, that operation makes no sense anywah |
| 09:42:33 | <tomsmeding> | *anyway |
| 09:43:05 | <tomsmeding> | you basically can't do better than iterating over the tree and building a new one, which is exactly what the approach that goes via a list does |
| 09:43:08 | <c_wraith> | the binary version is a cartesian product anyway. might as well perform it on lists |
| 09:43:33 | <hseg> | fair. am being myopic |
| 09:43:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 09:47:29 | L29Ah | is now known as L29Ah[XMPP] |
| 09:47:30 | → | cheater joins (~Username@user/cheater) |
| 09:48:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 252 seconds) |
| 09:50:03 | → | rusua joins (uid124537@id-124537.highgate.irccloud.com) |
| 09:50:34 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 09:51:17 | → | PotatoGim joins (sid99505@id-99505.tooting.irccloud.com) |
| 09:51:31 | × | azeem quits (~azeem@176.201.21.98) (Read error: Connection reset by peer) |
| 09:52:35 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 09:53:28 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 09:53:50 | → | lavaman joins (~lavaman@98.38.249.169) |
| 09:55:14 | → | bfrk joins (~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de) |
| 09:55:49 | → | jneira joins (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) |
| 09:58:33 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 10:00:21 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:00:30 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 10:01:20 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 10:04:46 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 10:07:25 | → | hulo joins (~hulo@182.18.206.5) |
| 10:08:26 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:08:47 | ← | hulo parts (~hulo@182.18.206.5) () |
| 10:14:05 | × | beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds) |
| 10:17:29 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 10:22:39 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 10:25:10 | × | sudden quits (~cat@h-98-128-128-173.A351.priv.bahnhof.se) (Quit: Lost terminal) |
| 10:25:33 | → | sudden joins (~cat@h-98-128-128-173.A351.priv.bahnhof.se) |
| 10:27:26 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 10:28:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:30:54 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 265 seconds) |
| 10:32:07 | → | blankhart joins (~blankhart@pool-72-88-174-206.nwrknj.fios.verizon.net) |
| 10:35:47 | → | gedda joins (~gedda@user/gedda) |
| 10:36:31 | × | da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 10:36:47 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 10:37:38 | <gedda> | is there a difference in lazyness in `f foo = case foo of ...` vs pattern matching on foo directly? |
| 10:37:53 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 10:38:44 | <gedda> | oh wow first result on google gave me the answer smh |
| 10:40:10 | <maerwald> | gedda: I don't think so (in this case) |
| 10:40:49 | <aerkenemesis> | I'm looking to discuss CI using nix flakes, so step forward if that's something that floats your boat |
| 10:41:12 | <maerwald> | gedda: but if you're using -XStrict, then yes |
| 10:41:30 | <gedda> | maerwald, apparently pattern matching gets transformed into cases in core, just like if's |
| 10:41:39 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 10:41:48 | <gedda> | maerwald, interesting, but not -XStrictData i presume? |
| 10:42:05 | <maerwald> | StrictData is something entirely different |
| 10:42:33 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds) |
| 10:42:58 | <gedda> | Yep, I'm just mixing things up sorry |
| 10:43:08 | <maerwald> | oh wait, no I misread... it's the same for Strict too |
| 10:43:25 | <maerwald> | I was thinking of f = \foo -> case foo of |
| 10:43:40 | <maerwald> | I think that's different under -XStrict than f foo |
| 10:44:19 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:44:54 | <gedda> | is -XStrict actually useful in production somewhere? feels like more of a flag for testing purposes |
| 10:45:29 | → | xkuru joins (~xkuru@user/xkuru) |
| 10:46:11 | <maerwald> | gedda: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386 |
| 10:49:29 | → | bor0 joins (~boro@user/bor0) |
| 10:50:01 | <maerwald> | I've started using it in my own projects too... the times it causes problems are rather obvious ones |
| 10:50:12 | <maerwald> | e.g. some monadic combinators |
| 10:50:17 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 10:50:35 | <maerwald> | and when you want fusion etc. you also don't want it |
| 10:51:26 | <gedda> | yeah i would believe the performance angle is the one that allows for XStrict |
| 10:51:38 | × | ubikium quits (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) (Ping timeout: 272 seconds) |
| 10:52:27 | <maerwald> | well, it can worsen performance too |
| 10:53:14 | <maerwald> | but I feel... if you rely on huge performance gain based on the fact that a function argument hides a huge computation... either it's a "combinator" library (like lens) or you're doing something odd |
| 10:54:39 | → | ubikium joins (~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323) |
| 10:55:06 | <maerwald> | it might blow up sooner or later anyway |
| 10:55:37 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (Quit: brb) |
| 10:55:46 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 10:58:08 | → | pe200012 joins (~pe200012@120.236.162.19) |
| 10:58:29 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 10:59:12 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Quit: bye) |
| 11:00:10 | → | pkkm joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl) |
| 11:00:55 | <maerwald> | anything non-trivial doesn't fuse easily anyway (look at what lengths libraries like streamly have to go to make fusion work... and then it easily breaks with a new GHC version) |
| 11:01:38 | <maerwald> | so I don't buy the "better performance with laziness" argument, because you have to specifically engineer for it |
| 11:07:51 | × | nf quits (~n@monade.li) (Quit: Fairfarren.) |
| 11:09:26 | × | anandprabhu quits (~anandprab@87.201.97.214) (Quit: Leaving) |
| 11:10:16 | → | nf joins (~n@monade.li) |
| 11:13:15 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds) |
| 11:16:21 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 11:18:38 | × | sailboat quits (uid503239@id-503239.tinside.irccloud.com) (Quit: Connection closed for inactivity) |
| 11:18:52 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 11:21:45 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:23:15 | × | haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Ping timeout: 245 seconds) |
| 11:24:33 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 272 seconds) |
| 11:24:43 | → | lavaman joins (~lavaman@98.38.249.169) |
| 11:26:49 | → | xkuru joins (~xkuru@user/xkuru) |
| 11:27:11 | × | mjs2600_ quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds) |
| 11:28:17 | <int-e> | so @more should no longer produce that embarrassing `init` error... but it's still broken, because it keeps forgetting the history that it is supposed to be replaying |
| 11:28:59 | ← | bramhaag parts (~bramhaag@134.195.121.39) (The Lounge - https://thelounge.chat) |
| 11:29:05 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 11:35:45 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 264 seconds) |
| 11:41:52 | × | bor0 quits (~boro@user/bor0) (Quit: Leaving) |
| 11:44:29 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:45:22 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 11:45:31 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 11:47:57 | → | teaSlurper joins (~chris@81.96.113.213) |
| 11:49:21 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 11:49:57 | → | zebrag joins (~chris@user/zebrag) |
| 11:50:06 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 264 seconds) |
| 11:51:05 | → | Deide joins (~Deide@user/deide) |
| 11:51:21 | × | hseg quits (~gesh@185.120.126.41) (Ping timeout: 264 seconds) |
| 11:53:32 | <nitrix> | glguy, Do I have to go through you for the cloak on Libera or the staff? |
| 11:53:50 | <[exa]> | nitrix: join #libera or maybe #libera-cloak |
| 11:56:01 | <nitrix> | I can't join #libera-cloak as I'm already cloak with the user unaffiliated one. |
| 11:57:23 | <nitrix> | Yeah, Libera just confirmed the affiliated cloaks go through the respective groups. |
| 11:59:09 | × | TheRAt quits (~TheRAt@user/therat) (Ping timeout: 264 seconds) |
| 12:00:32 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 12:00:40 | <nitrix> | Oh, I just checked my emails, it isn't glguy, sorry for the noise :] |
| 12:01:51 | → | TheRAt joins (~TheRAt@user/therat) |
| 12:02:21 | → | dhil joins (~dhil@195.213.192.47) |
| 12:07:37 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 252 seconds) |
| 12:08:33 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 12:10:33 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds) |
| 12:12:21 | → | jiribenes joins (~jiribenes@rosa.jiribenes.com) |
| 12:12:31 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 12:12:51 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 12:13:26 | → | da39a3ee5e6b4b0d joins (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) |
| 12:14:01 | → | Morrow joins (~MorrowM_@147.161.8.134) |
| 12:15:19 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 12:15:44 | × | Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/) |
| 12:15:49 | × | mikoto-c1 quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-c1) |
| 12:16:04 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 12:16:38 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 12:16:56 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 12:19:21 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 12:19:46 | → | P1RATEZ joins (piratez@user/p1ratez) |
| 12:22:22 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 12:23:44 | × | dunkeln quits (~dunkeln@94.129.65.28) (Quit: leaving) |
| 12:24:11 | → | wennefer0 joins (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) |
| 12:24:27 | → | dhil joins (~dhil@80.208.56.181) |
| 12:25:48 | × | wennefer0 quits (~wennefer0@c-73-69-143-60.hsd1.ma.comcast.net) (Client Quit) |
| 12:27:14 | × | Ranhir quits (~Ranhir@157.97.53.139) (Client Quit) |
| 12:27:39 | → | tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
| 12:27:39 | tremon | is now known as tremon_ |
| 12:29:27 | → | unclechu joins (~unclechu@2001:470:69fc:105::354) |
| 12:31:43 | → | Ranhir joins (~Ranhir@157.97.53.139) |
| 12:32:14 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 12:33:33 | × | Morrow quits (~MorrowM_@147.161.8.134) (Remote host closed the connection) |
| 12:33:50 | → | Morrow joins (~MorrowM_@147.161.8.134) |
| 12:37:10 | → | haltux joins (~haltux@a89-154-181-47.cpe.netcabo.pt) |
| 12:38:18 | × | haltux quits (~haltux@a89-154-181-47.cpe.netcabo.pt) (Remote host closed the connection) |
| 12:42:12 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:46:18 | × | Morrow quits (~MorrowM_@147.161.8.134) (Ping timeout: 252 seconds) |
| 12:46:22 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 12:46:48 | × | leah2 quits (~leah@vuxu.org) (Remote host closed the connection) |
| 12:46:52 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 12:47:12 | → | leah2 joins (~leah@vuxu.org) |
| 12:51:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Ping timeout: 244 seconds) |
| 12:51:29 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 12:58:17 | × | sekun quits (~sekun@180.190.155.195) (Ping timeout: 272 seconds) |
| 12:58:32 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 13:01:16 | → | alx741 joins (~alx741@181.196.69.243) |
| 13:02:04 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 13:02:53 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 252 seconds) |
| 13:04:19 | → | delYsid joins (~user@62-178-101-151.cable.dynamic.surfer.at) |
| 13:04:55 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 245 seconds) |
| 13:05:48 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:08:00 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:09:35 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 13:09:57 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 13:11:26 | → | benin0364 joins (~benin@183.82.205.8) |
| 13:13:29 | × | benin036 quits (~benin@183.82.176.166) (Ping timeout: 272 seconds) |
| 13:13:30 | benin0364 | is now known as benin036 |
| 13:13:46 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 13:14:43 | × | delYsid quits (~user@62-178-101-151.cable.dynamic.surfer.at) (Remote host closed the connection) |
| 13:14:54 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 13:15:13 | → | hendursaga joins (~weechat@user/hendursaga) |
| 13:26:01 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:26:06 | → | lavaman joins (~lavaman@98.38.249.169) |
| 13:26:13 | × | xff0x quits (~xff0x@2001:1a81:53dc:de00:96fb:36f9:fddc:a0cb) (Ping timeout: 272 seconds) |
| 13:27:34 | → | xff0x joins (~xff0x@2001:1a81:53e1:ab00:45af:7b21:1d2b:3d2e) |
| 13:31:13 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 13:33:36 | × | pe200012 quits (~pe200012@120.236.162.19) (Ping timeout: 252 seconds) |
| 13:33:37 | → | pe200012_ joins (~pe200012@58.248.179.150) |
| 13:34:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 13:36:50 | → | mirko1 joins (~mirko@ip1f115d03.dynamic.kabel-deutschland.de) |
| 13:37:20 | ← | mirko1 parts (~mirko@ip1f115d03.dynamic.kabel-deutschland.de) () |
| 13:38:39 | × | Hafydd quits (~Hafydd@2001:41d0:305:2100::31aa) (Changing host) |
| 13:38:39 | → | Hafydd joins (~Hafydd@user/hafydd) |
| 13:46:54 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 13:48:45 | → | hseg joins (~gesh@185.120.126.41) |
| 13:49:35 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 13:54:56 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 245 seconds) |
| 13:56:40 | → | matsurago joins (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) |
| 14:00:33 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 252 seconds) |
| 14:02:51 | → | jespada joins (~jespada@90.254.242.55) |
| 14:04:36 | × | taeaad quits (~taeaad@user/taeaad) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 14:07:11 | → | dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) |
| 14:11:01 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 14:12:26 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 14:14:09 | Solarion_ | is now known as Solarion |
| 14:14:23 | → | iridescent joins (~iridescen@41337027.cst.lightpath.net) |
| 14:14:26 | <iridescent> | has anyone seen this? https://bitemyapp.com/blog/grokking-sums-and-constructors/ |
| 14:14:40 | <iridescent> | i'm having trouble understanding the point of all of this |
| 14:14:56 | <iridescent> | they're wrapping things with value constructors, but can't you just do the exact same thing without them? |
| 14:15:07 | <iridescent> | definitely missing something, but not sure what it is |
| 14:20:03 | × | xkuru quits (~xkuru@user/xkuru) (Remote host closed the connection) |
| 14:20:40 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 14:23:10 | × | thelounge92 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 272 seconds) |
| 14:24:30 | <nitrix> | The article seems to try to introduce some core concepts of the language; it's not really trying to achieve anything special. |
| 14:25:19 | <nitrix> | What is the wrapping you think of and what confuses you? |
| 14:26:43 | <iridescent> | oh hm |
| 14:26:46 | <iridescent> | just like |
| 14:26:53 | <iridescent> | if you don't actually need names for fruits |
| 14:27:08 | <iridescent> | why would you want to have data Apple and data Orange over data Fruit = Apple | Orange |
| 14:27:57 | <nitrix> | Right. I see the confusion now. |
| 14:28:05 | × | da39a3ee5e6b4b0d quits (~textual@2403:6200:8876:2955:1da4:ecb3:1c84:7a5a) (Quit: Textual IRC Client: www.textualapp.com) |
| 14:28:52 | <janus> | if you have them separate, you can use them to parametrize other types |
| 14:29:26 | <janus> | essentially, do you want the distinction at runtime or compile time? |
| 14:29:30 | → | oxide joins (~lambda@user/oxide) |
| 14:29:31 | <nitrix> | iridescent, If you allow me, I think I have an example that makes more sense then theirs to build your intuition. |
| 14:29:39 | <iridescent> | sure why not :) |
| 14:29:40 | → | adanwan_ joins (~adanwan@gateway/tor-sasl/adanwan) |
| 14:29:53 | <iridescent> | also how is this different from dependent types? |
| 14:30:03 | <iridescent> | or is it just a specific instance of that |
| 14:30:04 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Ping timeout: 252 seconds) |
| 14:30:25 | <nitrix> | iridescent, Haskell has two data types, you can have either product types or sum types. I can explain why they're named this way later, but they conceptually are very close to a struct and a tagged union if you're familiar with those. |
| 14:30:26 | → | jaevanko joins (~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34) |
| 14:30:40 | → | Nixkernal joins (~Nixkernal@2a02:1205:34ed:fa00:a5f7:ad7:30d5:9688) |
| 14:30:40 | × | pe200012_ quits (~pe200012@58.248.179.150) (Remote host closed the connection) |
| 14:30:44 | <iridescent> | yeah i get the concept of sum and product types |
| 14:31:07 | → | pe200012_ joins (~pe200012@58.248.179.150) |
| 14:31:18 | <nitrix> | iridescent, So, starting with the product types, a couple examples would be: data Circle = MkCircle Float and data Rectangle = MkRectangle Int Int |
| 14:31:49 | <iridescent> | yep |
| 14:32:14 | <nitrix> | Here, `Circle` and `Rectangle` are the type names, while `MkCircle` and `MkRectangle` are the constructors. They are functions that will accept either a `Float` or two `Int` to eventually create a Circle or a Rectangle. |
| 14:32:37 | → | hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
| 14:32:57 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 14:33:19 | <iridescent> | got it |
| 14:33:40 | <nitrix> | Similarly, you can also have sum types. The syntax is a bit different, the different possible options are separated by a | character. An example would be: data Weekday = Monday | Tuesday | Wednesday | Thirday | Friday. |
| 14:34:30 | <nitrix> | Here, `Monday` is also a constructor, but it doesn't take any argument. Using it immediately creates a `Weekday`. |
| 14:35:49 | <nitrix> | Haskell is said to have algebraic data types, and so, to showcase a bit that "algebra" (which I think is what the article was trying to do), you would combine sum types with product types into a new type. |
| 14:35:51 | × | ubikium quits (~ubikium@2400:2200:3f7:8d39:b162:d489:71fa:a323) (Read error: Connection reset by peer) |
| 14:37:13 | <nitrix> | iridescent, Something like data Shape = TheCircle Circle | TheSquare Square, where `Shape` can be constructed with two different ways, either TheCircle or TheSquare, which accepts a Circle and a Square respectively. |
| 14:37:27 | → | ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
| 14:37:42 | → | bmo joins (~bmo@185.254.75.34) |
| 14:38:09 | → | shapr joins (~user@pool-108-28-144-11.washdc.fios.verizon.net) |
| 14:38:40 | <nitrix> | Does that make sense or I lost you :P ? |
| 14:40:47 | × | hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Quit: Quit) |
| 14:41:44 | → | bleloch_ joins (bleloch@gateway/vpn/protonvpn/bleloch) |
| 14:41:50 | → | hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
| 14:42:14 | <bmo> | What are currently the "best" frameworks (non-static) to write web-applications? It's been a while I used yesod before and servant as well but I wasn't necessarily too convinced of either. |
| 14:42:36 | <bmo> | yesod felt like a very over-kill solution and pretty heavy-weight. |
| 14:43:24 | <bmo> | servant was nice and I liked it quite a bit sometimes, however I recall having to write my own authentication layer which felt wrong |
| 14:43:40 | <bmo> | What do people use nowadays? |
| 14:44:39 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 14:45:20 | × | dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 14:46:31 | → | pavonia joins (~user@user/siracusa) |
| 14:47:41 | → | derelict joins (~derelict@user/derelict) |
| 14:48:04 | <janus> | bmo: i am not sure people that like advanced typing stuff ever stopped using servant |
| 14:48:15 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 14:48:37 | × | gedda quits (~gedda@user/gedda) (Quit: Lost terminal) |
| 14:49:26 | → | Bartosz joins (~textual@24.35.90.211) |
| 14:53:41 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 14:56:37 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 15:01:51 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:03:04 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 15:03:25 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 15:07:29 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 272 seconds) |
| 15:07:32 | <iridescent> | nitrix: think it makes sense, so basically your last example is like <constructor 1 which can take in a lot of arguments> OR <constructor 2 which can take a lot of argumnets>, and the lots of arguments is the product type |
| 15:08:37 | → | gentauro joins (~gentauro@user/gentauro) |
| 15:09:24 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:09:33 | → | rk04 joins (~rk04@user/rajk) |
| 15:09:40 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:11:11 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:11:29 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:11:33 | <nitrix> | iridescent, The sum type gives you a choice between multiple values to construct the type. data Foo = A | B | C, there are 3 possible values of type Foo, the A, B and C. |
| 15:12:53 | <nitrix> | iridescent, Product types combines existing types, so data Bar = F Foo Foo, would construct a Bar with two Foo, that's 9 possible values, F A A, F A B, F A C, F B A, F B B, F B C, F C A, F C B, F C C. |
| 15:13:34 | <nitrix> | I guess that's a little hint as to why they're called sum versus product. |
| 15:14:09 | <nitrix> | Sorry, 6 values x] |
| 15:14:14 | <nitrix> | Two Foo with 3 values each, 2 * 3 = 6. |
| 15:16:28 | <nitrix> | As for the sum, if I did data Bar = F1 Foo | F2 Foo, the possible values would be F1 A, F1 B, F1 C, F2 A, F2 B, F2 C, aka sum type, 3 + 3 = 6. |
| 15:17:00 | <nitrix> | I chose a bad example that both arrives to 6, but you can see how the arithmetic is different :P |
| 15:17:08 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 15:18:04 | <iridescent> | yeah |
| 15:18:05 | <iridescent> | i see |
| 15:19:15 | → | dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) |
| 15:19:40 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 15:22:49 | → | bhrgunatha joins (~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net) |
| 15:23:09 | fendor_ | is now known as fendor |
| 15:24:22 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 15:24:34 | <pavonia> | nitrix: 9 values was correct, it's Foo x Foo |
| 15:25:48 | <nitrix> | Oh, thank god. I was wondering if I was losing it while explaining that, haha. |
| 15:25:48 | × | tv quits (~tv@user/tv) (Read error: Connection reset by peer) |
| 15:26:44 | <nitrix> | So yeah, 3x3=9 vs 3+3=6, as an example of why the product `F Foo Foo` differs from the sum `F1 Foo | F2 Foo`. |
| 15:26:53 | <iridescent> | got it |
| 15:27:00 | <iridescent> | i guess product is like taking combinations |
| 15:27:04 | <nitrix> | Yep. |
| 15:27:29 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:27:55 | × | bleloch_ quits (bleloch@gateway/vpn/protonvpn/bleloch) (Remote host closed the connection) |
| 15:28:40 | × | rk04 quits (~rk04@user/rajk) (Ping timeout: 245 seconds) |
| 15:28:50 | <bmo> | janus, thanks for the response. guess I'll stick to servant then, the auth "issue" might turn out to be none as I am free of requirements there |
| 15:29:02 | <nitrix> | And sum would be enumerating things (which could themselves be combinations). |
| 15:29:48 | <nitrix> | It's all very layman, just to give an intuition. |
| 15:29:52 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 15:30:24 | <iridescent> | yeah i see |
| 15:31:15 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 15:32:12 | → | rk04 joins (~rk04@user/rajk) |
| 15:32:28 | × | rk04 quits (~rk04@user/rajk) (Client Quit) |
| 15:35:02 | → | fizbin joins (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) |
| 15:35:53 | × | dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:36:11 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 15:37:04 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 15:38:11 | × | pe200012_ quits (~pe200012@58.248.179.150) (Remote host closed the connection) |
| 15:38:37 | → | pe200012_ joins (~pe200012@120.236.162.19) |
| 15:39:43 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 15:39:47 | × | fizbin quits (~fizbin@2601:8a:4080:1280:d58e:2782:3061:3fa3) (Ping timeout: 268 seconds) |
| 15:40:30 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit) |
| 15:40:46 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 15:40:58 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit) |
| 15:41:55 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 15:42:00 | → | teaSlurper joins (~chris@81.96.113.213) |
| 15:42:10 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Client Quit) |
| 15:43:51 | → | tv joins (~tv@user/tv) |
| 15:43:57 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 15:45:29 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 15:45:49 | → | Guest9 joins (~Guest9@103.240.169.98) |
| 15:46:33 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
| 15:47:15 | × | mc47 quits (~mc47@xmonad/TheMC47) (Ping timeout: 252 seconds) |
| 15:49:01 | <bmo> | |
| 15:49:21 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 15:50:39 | → | aerona joins (~aerona@2600:6c54:4600:f300:dd2b:2b3b:fbbd:f67) |
| 15:51:29 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 15:52:50 | → | zmt00 joins (~zmt00@user/zmt00) |
| 15:54:21 | <kaol> | "cabal build all" tells me that things are up to date even though I did changes to a source file. How can I give it a nudge? (Short of rm -rf dist-newstyle.) |
| 15:55:08 | → | nerdypepper joins (~nerdypepp@user/nerdypepper) |
| 15:56:13 | <quintasan> | Did anyone manage to produce fully static binary of Scotty + PostgreSQL web app? |
| 15:56:53 | <kaol> | With cabal-install 3.0.0.0. |
| 15:57:21 | × | Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 15:57:23 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer) |
| 15:57:44 | → | teaSlurper joins (~chris@81.96.113.213) |
| 15:57:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:58:28 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 15:58:43 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 15:59:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 15:59:21 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 15:59:43 | <quintasan> | kaol: hmm, any details on how to do this? I tried doing that in an alpine container but never managed to get it working due to missing symbols when linking |
| 16:00:41 | × | Guest9 quits (~Guest9@103.240.169.98) (Ping timeout: 272 seconds) |
| 16:01:03 | <kaol> | quintasan: Sorry for the confusion, I wasn't responding you but adding details to my own question. |
| 16:01:07 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:01:20 | <quintasan> | bah, silly me |
| 16:01:33 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 16:01:55 | <quintasan> | kaol: wouldn't touching the file make cabal think it's time to rebuild? |
| 16:02:30 | <geekosaur> | I've found bugs in cabal < 3.4, might want to upgrade it |
| 16:02:31 | <kaol> | Yes, but it's not happening and I'm trying to figure out why. |
| 16:03:26 | → | Bartosz joins (~textual@24.35.90.211) |
| 16:07:00 | × | BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds) |
| 16:09:05 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 16:09:21 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 16:10:00 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 16:10:53 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 16:12:01 | <kaol> | Does new style cabal even look into source files or does it do checking by package versions only? |
| 16:12:37 | ← | bartavelle parts (~bartavell@2001:41d0:1:744c::1) () |
| 16:13:00 | × | alx741 quits (~alx741@181.196.69.243) (Quit: alx741) |
| 16:13:12 | <geekosaur> | it looks at source files associated with your project, package versions only for dependencies outside of your project |
| 16:13:39 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 16:14:40 | → | alx741 joins (~alx741@181.196.69.243) |
| 16:14:58 | <kaol> | If I have a cabal.project file at the project root and the change is to a package in a subdirectory, does it see changes to its sources? Is it considered "outside of project" for this? |
| 16:16:30 | <geekosaur> | I think it won't look if it's listed as a dependency, as opposed to being directly part of your project |
| 16:18:45 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 16:18:59 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 16:19:37 | <kaol> | I guess I'll just have to reorganize my project and not use packages internally. If that's what it takes to make incremental builds work. |
| 16:20:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 16:22:28 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 16:22:33 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 16:24:50 | <kaol> | This feels like a step down from using sandboxes. |
| 16:28:10 | <maerwald> | I liked them too |
| 16:28:17 | <maerwald> | it's a clean API |
| 16:28:35 | → | Guest9 joins (~Guest9@103.240.169.98) |
| 16:28:37 | <maerwald> | well... s/API/user interface/ |
| 16:28:44 | → | allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 16:28:54 | <maerwald> | doesn't cargo do the same still? |
| 16:29:50 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds) |
| 16:31:30 | → | ozataman joins (~ozataman@71.190.112.58) |
| 16:31:33 | allbery_b | is now known as geekosaur |
| 16:31:41 | <kaol> | I think I'll go with v1 commands for now. I may have to start sending patches if I want to stick to my workflow in a few years. |
| 16:33:52 | → | econo joins (uid147250@user/econo) |
| 16:35:17 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Quit: mikoto-chan) |
| 16:35:34 | × | 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) |
| 16:35:55 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 16:43:07 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 16:43:43 | → | alanz__ joins (~user@host86-135-160-135.range86-135.btcentralplus.com) |
| 16:45:33 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:47:18 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 16:47:32 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 16:50:14 | <teaSlurper> | hey |
| 16:53:15 | × | pe200012_ quits (~pe200012@120.236.162.19) (Ping timeout: 272 seconds) |
| 16:53:32 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 16:53:47 | × | derelict quits (~derelict@user/derelict) (Ping timeout: 268 seconds) |
| 16:55:38 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 16:57:07 | <teaSlurper> | in a haskel, cabal project, what's best way to execute/run individual files? |
| 16:57:21 | <teaSlurper> | right now i have 1 main file under exe folder |
| 16:57:32 | <teaSlurper> | and i used cabal run to execute that |
| 16:58:35 | <Rembane> | teaSlurper: Add another executable section to your cabal file |
| 17:00:03 | → | Guest71 joins (~Guest71@176.232.106.148) |
| 17:01:38 | → | grepcake joins (~artyom@77.234.203.54) |
| 17:02:58 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:03:15 | × | chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 17:05:22 | ← | Guest71 parts (~Guest71@176.232.106.148) () |
| 17:06:03 | → | chexum joins (~chexum@gateway/tor-sasl/chexum) |
| 17:07:34 | × | grepcake quits (~artyom@77.234.203.54) (Quit: Konversation terminated!) |
| 17:12:25 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds) |
| 17:13:11 | → | carr joins (~user@2601:645:4000:db:5c42:3046:45d6:af66) |
| 17:13:29 | × | iridescent quits (~iridescen@41337027.cst.lightpath.net) (Quit: Client closed) |
| 17:13:59 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 17:14:40 | ← | carr parts (~user@2601:645:4000:db:5c42:3046:45d6:af66) () |
| 17:15:06 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:15:15 | × | mc47 quits (~mc47@xmonad/TheMC47) (Client Quit) |
| 17:15:34 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:16:30 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:18:21 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving) |
| 17:18:29 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 17:18:38 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 17:23:55 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 17:24:08 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 17:24:28 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving) |
| 17:24:34 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 17:24:44 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 17:26:51 | × | jasonm quits (~bc817c21@217.29.117.252) (Quit: http://www.okay.uz/ (Session timeout)) |
| 17:26:54 | ← | Obo parts (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (WeeChat 2.8) |
| 17:27:20 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 17:27:23 | → | lavaman joins (~lavaman@98.38.249.169) |
| 17:27:28 | fjmorazan_ | is now known as fjmorazan |
| 17:28:00 | <sm[m]> | bmo: yesod and servant are still the most popular and probably the best out there - one or the other will be a better fit depending on your needs. |
| 17:28:03 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 17:28:03 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:28:18 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 17:28:52 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 17:29:17 | <sm[m]> | though, what do you mean by "non-static" ? If you are building largely client-side apps, miso might be a candidate |
| 17:30:01 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 17:30:27 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 17:30:28 | <jumper149> | Hi, is it possible to somehow derive MonadTrans for a newtype over 2 transformers, for example: `newtype MyT m a = MyT (ExceptT String (ReaderT Int m) a) deriving stock (...) deriving MonadTrans via ???` |
| 17:32:11 | × | aerkenemesis quits (~aerkeneme@c83-252-164-58.bredband.tele2.se) (Quit: Client closed) |
| 17:32:31 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 272 seconds) |
| 17:33:01 | <geekosaur> | what goes wrong if you just derive it normally with GND? |
| 17:33:05 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 17:33:58 | <c_wraith> | I don't think you can GND it, because it's two layers |
| 17:34:22 | <c_wraith> | But you can just write the instance by hand, it's literally lift = MyT . lift . lift |
| 17:34:32 | <jumper149> | yeah GND doesn't work here |
| 17:34:45 | <jumper149> | c_wraith: Surely I can, but it would be neet :p |
| 17:35:26 | <jumper149> | I have it in mind for MonadTransControl too. |
| 17:35:38 | <jumper149> | There it's a bit more cumbersome to write instances |
| 17:35:55 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 17:36:04 | <jumper149> | And this https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#v:defaultLiftWith2 |
| 17:36:11 | <jumper149> | ^ doesn't work anymore with GHC 9 |
| 17:36:16 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:36:20 | × | mc47 quits (~mc47@xmonad/TheMC47) (Client Quit) |
| 17:36:21 | × | hemlock quits (~hemlock@ip72-203-188-10.tu.ok.cox.net) (Ping timeout: 264 seconds) |
| 17:36:43 | <jumper149> | So I was thinking, maybe it's worth to use deriving via |
| 17:37:05 | → | hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
| 17:40:28 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 17:41:43 | × | bhrgunatha quits (~bhrgunath@2001-b011-8011-27f4-086a-6ad6-9ae6-0f90.dynamic-ip6.hinet.net) (Quit: Leaving) |
| 17:42:01 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 17:42:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:46:29 | <jumper149> | I actually just came up with this: http://ix.io/3pQs |
| 17:47:13 | <jumper149> | Would enjoy seeing some opinion on that :) |
| 17:47:32 | → | ent joins (entgod@kapsi.fi) |
| 17:49:20 | → | derelict joins (~derelict@user/derelict) |
| 17:50:11 | × | matsurago quits (~matsurago@nttkyo1618187.tkyo.nt.ngn.ppp.infoweb.ne.jp) (Quit: Leaving) |
| 17:52:03 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 17:53:11 | <jumper149> | and it even works for MonadTransControl http://ix.io/3pQu |
| 17:54:37 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:55:37 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 17:56:09 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 17:56:10 | × | shapr quits (~user@pool-108-28-144-11.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
| 17:57:44 | → | beka joins (~beka@104.193.170-244.PUBLIC.monkeybrains.net) |
| 17:59:02 | × | jaevanko quits (~jaevanko@2600:1700:1330:2bef:d2ba:7480:75b7:9b34) (Quit: Leaving) |
| 18:03:34 | × | evie1 quits (~evie@188.27.66.89) (Quit: WeeChat 2.7.1) |
| 18:08:37 | × | qbt quits (~edun@user/edun) (Ping timeout: 272 seconds) |
| 18:09:04 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 18:09:19 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 18:12:46 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 18:13:22 | × | Guest9 quits (~Guest9@103.240.169.98) (Quit: Connection closed) |
| 18:13:53 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 18:14:17 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 18:14:36 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 18:16:23 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:20:00 | charukiewicz_ | is now known as charukiewicz |
| 18:20:09 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 18:20:48 | → | teaSlurper joins (~chris@81.96.113.213) |
| 18:20:54 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:24:33 | → | wonko joins (~wjc@62.115.229.50) |
| 18:25:06 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
| 18:25:11 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 18:25:11 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 18:28:02 | <dminuoso> | jumper149: Why wouldn't it work with GHC 9 anymor |
| 18:28:04 | × | P1RATEZ quits (piratez@user/p1ratez) () |
| 18:28:40 | <dminuoso> | jumper149: Is that even worth it? What are you saving? |
| 18:28:43 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 18:29:05 | <dminuoso> | It seems to me handrolling the MonadTrans/MonadTransControl instance is less code and clearer. |
| 18:29:24 | → | chaosite joins (~chaosite@user/chaosite) |
| 18:30:46 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:30:53 | <jumper149> | https://github.com/basvandijk/monad-control/issues/52 |
| 18:31:30 | <jumper149> | dminuoso: The reason is simplified subsumption: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption |
| 18:31:35 | <dminuoso> | jumper149: You should be fine with eta-extending it. |
| 18:31:54 | <dminuoso> | The first two arguments, that is. |
| 18:32:01 | <jumper149> | I tried |
| 18:32:05 | <dminuoso> | Both? |
| 18:32:12 | <dminuoso> | Or.. the third actually. Sorry |
| 18:32:24 | <jumper149> | Say exactly what you mean and I'll test it |
| 18:32:35 | <dminuoso> | Try eta-extending each argument. |
| 18:33:19 | <jumper149> | I think the problem lies in the `Run` type alias, which can't be unified with `RunDefault2` |
| 18:34:06 | <jumper149> | dminuoso: I tried pretty hard. But I am not absolutely sure, whether it's really not possible |
| 18:34:17 | <dminuoso> | jumper149: So Im a bit fuzzy on the details, but with the new simplified subsumption, you can make stuff compile again when you eta-expend |
| 18:34:26 | <dminuoso> | I think something along the lines of": |
| 18:34:33 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 264 seconds) |
| 18:34:40 | <dminuoso> | liftWith f = defaultLiftWith2 RecolorXT unRecolorXT (\x -> f x) |
| 18:36:07 | → | jao joins (jao@gateway/vpn/protonvpn/jao) |
| 18:36:25 | × | mc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving) |
| 18:37:22 | <jumper149> | dminuoso: Wow, that actually seems to work |
| 18:37:57 | → | dan joins (~AdminUser@host86-167-185-202.range86-167.btcentralplus.com) |
| 18:41:38 | → | dustingetz joins (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) |
| 18:42:58 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 18:43:15 | × | dan quits (~AdminUser@host86-167-185-202.range86-167.btcentralplus.com) (Ping timeout: 252 seconds) |
| 18:43:52 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving) |
| 18:43:54 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 18:44:08 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 18:44:19 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 18:44:44 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 18:44:44 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 18:44:52 | <jumper149> | dminuoso: Can you explain to me, how you knew, that is the exact place which needed eta-expansion? |
| 18:46:32 | → | fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) |
| 18:46:41 | <dminuoso> | You told me, I just guessed. |
| 18:46:49 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 18:47:06 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 18:48:43 | → | dhil joins (~dhil@80.208.56.181) |
| 18:50:20 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 18:50:46 | <dminuoso> | jumper149: I actually wonder whether `liftWith f = defaultWithWith2 RecolorXT unRecolorXT f` is even enough |
| 18:51:18 | × | fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 264 seconds) |
| 18:51:43 | <jumper149> | dminuoso: http://ix.io/3pQS |
| 18:51:51 | <jumper149> | ^ That's what you get then |
| 18:52:01 | <dminuoso> | Ah hold on I found the relevant part |
| 18:52:11 | <dminuoso> | https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#simplified-subsumption |
| 18:52:15 | <dminuoso> | This seems to be the second example |
| 18:52:20 | <dminuoso> | f' :: (Eq a, Eq b) => a -> b -> b |
| 18:52:23 | <dminuoso> | g' :: (Eq p => p -> Eq q => q -> q) -> Int |
| 18:52:25 | <dminuoso> | etc |
| 18:52:36 | <jumper149> | hm |
| 18:52:38 | <jumper149> | ? |
| 18:53:07 | <dminuoso> | Like I said, Im a bit fuzzy on the details. I have a very sketchy understanding what deep-skolemnization even is. |
| 18:54:02 | × | dustingetz quits (~textual@pool-173-49-123-198.phlapa.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 18:54:44 | <jumper149> | Ah yeah, I see why you think the second example fits right here. Basically the type alias `Run` brings this additional context. |
| 18:54:46 | <jumper149> | @Run |
| 18:54:48 | <lambdabot> | <no location info>: error: not an expression: ‘’ |
| 18:55:00 | <jumper149> | https://hackage.haskell.org/package/monad-control-1.0.2.3/docs/Control-Monad-Trans-Control.html#t:Run |
| 18:55:30 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 18:56:09 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 18:57:08 | <dminuoso> | I guess the confusion is just based on not even understanding how higher rank type inference works. It almost seems as if you have to read SPJs `Practical Type Inference for Arbitrary-Rank Types` |
| 18:57:21 | <dminuoso> | That paper is outside of my reach. |
| 18:58:15 | <dminuoso> | I find it a bit sad that the GHC manual does not elaborate on what "relies on deep skolemization" even means. |
| 18:58:55 | → | Patrick joins (~Patrick@pool-100-36-167-42.washdc.fios.verizon.net) |
| 18:59:18 | <Rembane> | Could that be considered a bug? |
| 18:59:45 | <dminuoso> | A documentation bug, yes. |
| 19:00:31 | Patrick | is now known as Patrick157 |
| 19:01:51 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:02:11 | <dminuoso> | jumper149: https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.0#deep-instantiation |
| 19:02:13 | <dminuoso> | Mmm |
| 19:02:34 | <dminuoso> | jumper149: Or is this a case of deep instantiation? Im beginning to suspect this is the case |
| 19:03:31 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:03:45 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:03:50 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:04:19 | <shapr> | OH SURE |
| 19:04:26 | <shapr> | dmwit: hi, how's life? |
| 19:05:46 | <dmwit> | hi shapr! |
| 19:05:51 | <jumper149> | dminuoso: That may be right. I honestly don't understand it enough to argue for one or the other. |
| 19:06:03 | <dmwit> | Recently I've been being bad at computer vision! It's great. |
| 19:06:13 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:06:17 | <dmwit> | What's life like in shapr-land? |
| 19:06:28 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:07:04 | <shapr> | dmwit: that sounds exciting, are you building some fun projects with computer vision? |
| 19:07:14 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:07:28 | <shapr> | dmwit: just got the second moderna shot, so I can spend time with people again |
| 19:07:29 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:08:00 | <dmwit> | grats! |
| 19:08:17 | → | dispater joins (~dispater@mail.brprice.uk) |
| 19:09:30 | × | dispater quits (~dispater@mail.brprice.uk) (Client Quit) |
| 19:09:35 | <dmwit> | I've been staying quarantined-ish even though I'm vax'd. But I'm hopeful that we get to a point where I feel like we've solved it as a country rather than just personally having solved it. |
| 19:10:45 | <dmwit> | I'm excited for people that are choosing to rejoin society, too. ^_^ |
| 19:10:51 | → | dispater joins (~dispater@mail.brprice.uk) |
| 19:10:57 | <shapr> | yeah, I agree |
| 19:11:23 | <shapr> | last weekend (or the one before?) I learned how to package a simple C application with nix, and then how to add that as an overlay to my system |
| 19:11:34 | <shapr> | this weekend I'm trying to learn how to write a plugin for haskell-language-server |
| 19:11:55 | <dmwit> | oh, I should learn HLS at some point |
| 19:12:01 | <dmwit> | I have like three bookmarks. =P |
| 19:12:07 | <shapr> | at my job it's easy to lose track of which language pragmas are in scope, so I figured I'd try to make a code lens that displays all implicit pragmas at the top of the file |
| 19:12:14 | <maerwald> | dmwit: new hls release is on the way |
| 19:12:17 | <dminuoso> | jumper149: My rough understanding of the change is: GHC used to do this eta-expansion implicitly in order to elaborate said programs into Core. But eta-expansion changes semantics (because in WHNF `\x -> undefined x` will not bottom out, while `undefined` will) |
| 19:12:33 | <shapr> | dmwit: oh if you're not using it, my example file may help some: https://github.com/shapr/hlsexamples/blob/main/src/Examples.hs#L38 |
| 19:12:45 | × | hseg quits (~gesh@185.120.126.41) (Quit: WeeChat 3.1) |
| 19:12:55 | <shapr> | I need to update that example file for hls 1.1 |
| 19:13:09 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 19:13:19 | <shapr> | cdsmith and I were pairing on something yesterday and I got to demonstrate some of the amazing wingman features. |
| 19:13:31 | → | polyphem joins (~polyphem@2a02:810d:640:776c:12c4:e67d:3560:5ad7) |
| 19:13:41 | <dminuoso> | jumper149: So GHC changed the RankNTypes type inference that this would not happen again (avoiding implicitly changing program semantics, and simplifying implementation) - but that means if you still want these things that automatically inferred, you have to do this eta-expansion explicitly (and thus there's no change in semantics anymore) |
| 19:14:11 | <shapr> | anyway, I'm slowly working my way through the hls plugin tutorial, happily a code lens is the first example. |
| 19:14:23 | × | sm2n quits (~sm2n@user/sm2n) (Ping timeout: 268 seconds) |
| 19:14:28 | → | waleee joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 19:14:29 | <shapr> | my mvp is "show all enabled language pragmas" |
| 19:14:53 | <dminuoso> | I admit, this is all very handwaving. |
| 19:15:41 | <shapr> | I have a bunch of other plugin/feature ideas, like "rewrite all imports to implicit on load, rewrite all imports to explicit on save" |
| 19:15:43 | <maerwald> | shapr: I wanted to do a code lens that shows function arity on hover (bc that is important for inlining and can be relevant for memory leaks as well)0000000 |
| 19:15:55 | <shapr> | maerwald: oh that's a cool idea! |
| 19:15:56 | <maerwald> | oops, my qmk config needs fixing |
| 19:16:34 | <jumper149> | dminuoso: The `undefined` example and the fact that it's a change to the type inference with RankNTypes is already quite a bit eye-opening to me :) |
| 19:17:57 | <dminuoso> | jumper149: type system wise, it was exactly 4 parts (covariante of function types, contravariance of function types, deep skolemisation and deep instanstation) that caused this implicit eta-extension. In the GHC proposal these things were just yanked without replacement. |
| 19:18:11 | <shapr> | another idea I have is to use the "find references" feature to look only in the thisproject:test section to run tests that reference a function after the file is saved, and add some kind of syntax highlighting to show the test status. |
| 19:18:20 | <dminuoso> | It's just that I cant match what these exactly mean or when GHC would use them. You'd have to read the paper I cited earlier. |
| 19:19:16 | × | dispater quits (~dispater@mail.brprice.uk) (Quit: ZNC 1.8.1 - https://znc.in) |
| 19:19:38 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving) |
| 19:19:39 | → | dispater joins (~dispater@user/brprice) |
| 19:19:46 | <maerwald> | shapr: I'd want it for right-click->run-tests... "on save" might be a bit excessive, depending on the tests |
| 19:19:53 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:20:09 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:20:24 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:20:31 | <maerwald> | I think some IDEs have visual buttons for "you can run a test here" |
| 19:20:36 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:20:38 | <maerwald> | not sure if that's integratable with hls |
| 19:21:08 | <dminuoso> | jumper149: Luckily, all of this means: Without contra/covariance of function types, deep skolemisation and instanation - you can still make all programs type check if you apply the eta-extension manually in the exact place that GHC would have done it implicitly. Because once you eta-expand, you dont need these 4 things anyhow. |
| 19:21:19 | <maerwald> | first, you'd need *file locations* that can run tests, I guess |
| 19:21:22 | × | dispater quits (~dispater@user/brprice) (Client Quit) |
| 19:21:43 | → | dispater joins (~dispater@user/brprice) |
| 19:21:43 | <maerwald> | and then a way to tell HLS: "run test for this file location" |
| 19:22:18 | esclear | is now known as esclear[m] |
| 19:22:36 | <maerwald> | this might very well be outside of LSP protocol scope... |
| 19:22:45 | esclear[m] | is now known as esclear[i] |
| 19:22:58 | <maerwald> | so clients would need to support it manually |
| 19:23:36 | <janus> | when was (<>) added to prelude? i am having little log googling it |
| 19:24:16 | <janus> | *luck |
| 19:24:43 | <Clint> | was it part of AMP? |
| 19:24:48 | <janus> | the ghc wiki says it was added to base in ghc 8, but that doesn't mean it went directly into the prelude, i imagine |
| 19:24:50 | <davean> | https://hackage.haskell.org/package/base-4.15.0.0/changelog see? |
| 19:25:00 | <davean> | Theres a changelog that lists this specificly |
| 19:25:10 | <janus> | aaah right! i thought it would be older |
| 19:25:30 | <janus> | wait, it says 4.11 from March 2018. so it is quite old |
| 19:25:37 | × | dispater quits (~dispater@user/brprice) (Client Quit) |
| 19:25:55 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:25:55 | <janus> | weird how i am just getting this error now with ghc 9 |
| 19:26:07 | <maerwald> | means you're getting older as well |
| 19:26:58 | → | dispater joins (~dispater@user/brprice) |
| 19:29:13 | <shapr> | maerwald: it'd be interesting to try |
| 19:29:21 | <shapr> | maerwald: certainly blog post worthy |
| 19:29:32 | <shapr> | I still don't understand enough lsp details to know what might not work |
| 19:29:55 | <maerwald> | there are many things where you need to go beyond lsp protocol |
| 19:30:06 | <maerwald> | e.g. "type of expression" isn't currently supported by the protocol |
| 19:30:11 | <maerwald> | but we really want it, right? |
| 19:30:43 | → | lavaman joins (~lavaman@98.38.249.169) |
| 19:31:10 | <maerwald> | https://github.com/microsoft/language-server-protocol/issues/377 |
| 19:31:35 | × | xsperry quits (~as@user/xsperry) (Remote host closed the connection) |
| 19:32:28 | → | xsperry joins (~as@user/xsperry) |
| 19:33:03 | <maerwald> | I think the main thing would be: make it work in VSCode |
| 19:33:43 | <shapr> | I would certainly want to be able to select part of my buffer and get the type of that selection |
| 19:34:08 | <shapr> | I do that manually by factoring out that chunk to its own name and looking at that. |
| 19:34:27 | <shapr> | but most people I've seen try to hover over the end parentheses to get the type of the parens. |
| 19:34:38 | <maerwald> | right, because type computation is hard... I might know what `fmap` is, but not `fmap . fmap . fmap . fmap` :) |
| 19:35:29 | <shapr> | yeah, I have that question often |
| 19:36:57 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: Lost terminal) |
| 19:37:27 | <shapr> | I like that so many things in Haskell are compositional, I just wish laziness weren't the big exception |
| 19:39:32 | × | alanz__ quits (~user@host86-135-160-135.range86-135.btcentralplus.com) (Remote host closed the connection) |
| 19:40:27 | <maerwald> | I haven't made up my mind... I think having Laziness on type level is interesting, but I can't say that I've tried enough Idris to judge the ergonomics |
| 19:40:32 | × | unclechu quits (~unclechu@2001:470:69fc:105::354) (Quit: Reconnecting) |
| 19:40:39 | <davean> | shapr: I'm confused by that statement - it seems laziness is the most compositional |
| 19:40:47 | → | unclechu joins (~unclechu@2001:470:69fc:105::354) |
| 19:40:49 | <maerwald> | davean: you never know when it breaks |
| 19:41:34 | <maerwald> | oh, you accidentially kept a reference for later, now it doesn't fuse and blows up your ram |
| 19:42:30 | <dminuoso> | Before I sketch it out, tyfam application disappear in generics right? |
| 19:42:33 | <dmwit> | Is strict superior there? |
| 19:42:36 | <shapr> | Haskell is still my favorite language by far, but it's good to be aware of the scary bits. |
| 19:42:39 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds) |
| 19:42:49 | <maerwald> | dmwit: no, but what if you had proof of laziness? |
| 19:43:04 | <davean> | maerwald: I think you just explained it as compositional to say it wasn't. I'm confused - what composition rule do you expect? |
| 19:43:07 | <shapr> | I wish the type could somehow describe the laziness of a function. |
| 19:43:28 | <janus> | shapr: did you see how it works in idris? |
| 19:43:33 | <shapr> | janus: I have not! |
| 19:43:45 | <shapr> | does idris express laziness or strictness on the type level? |
| 19:43:46 | <Rembane> | Or that there was some part of compilation or some other static tooling that automatically helped with it. |
| 19:43:49 | <davean> | shapr: the type does, the function is lazy. The question is what will be pulled through when you force it. |
| 19:43:50 | <dminuoso> | shapr: `A -> B` with A having some fields as strict, others not. How would you expect this to be communicated? |
| 19:43:53 | <janus> | shapr: http://docs.idris-lang.org/en/latest/tutorial/typesfuns.html#laziness |
| 19:43:57 | → | P1RATEZ joins (piratez@user/p1ratez) |
| 19:44:13 | <shapr> | hello P1RATEZ, are you learning Haskell? |
| 19:44:23 | <maerwald> | davean: if you combine two lazy functions, they should *generally* fuse. That's not a very formal description, but is easily violated in haskell... very easily. |
| 19:44:25 | <P1RATEZ> | i was a long time ago |
| 19:44:37 | <davean> | maerwald: fusion and laziness are seperate |
| 19:44:38 | <maerwald> | davean: depending on code and even GHC version |
| 19:44:39 | <shapr> | P1RATEZ: aha! so you're back to try the lambda lifestyle again? |
| 19:44:41 | <maerwald> | davean: yes |
| 19:44:48 | <davean> | maerwald: so why are you talking about fusion? |
| 19:44:58 | <maerwald> | davean: it's a way to describe when you broke laziness |
| 19:45:18 | <davean> | I think of fusion as a way of talking about code optimization by replacement |
| 19:45:19 | <shapr> | P1RATEZ: are you using ghcup to install the latest version of the compiler and the lsp plugin? |
| 19:45:31 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 19:45:48 | <P1RATEZ> | i don't have it installed at the moment but i could give it a shot |
| 19:45:56 | <P1RATEZ> | having troubles? |
| 19:46:16 | <shapr> | P1RATEZ: no, just wanting to help someone who's jumping into the lambda lifestyle again |
| 19:46:17 | × | teddyc quits (theodorc@cassarossa.samfundet.no) (Quit: WeeChat 2.3) |
| 19:46:20 | <davean> | maerwald: the problem with fusion is it implicitly runs functions on your code, but thats true of strict *or* lazy |
| 19:46:22 | <maerwald> | davean: well... "purity" was also defined in terms of evaluation strategy equivalence... so I think defining laziness semantics in terms of fusion could be a reasonable attempt |
| 19:46:28 | → | teddyc joins (theodorc@cassarossa.samfundet.no) |
| 19:46:30 | <davean> | maerwald: the fusion issue is entirely independent |
| 19:46:40 | <maerwald> | not independent |
| 19:46:48 | <maerwald> | but there are more problems to fusion than laziness |
| 19:47:34 | <maerwald> | I'm not writing a paper about it :) |
| 19:47:44 | <shapr> | maerwald, davean : perhaps we can make up "Big L notation" that describes the space usage per number of inputs? |
| 19:47:52 | <shapr> | L for laziness? :-) |
| 19:48:31 | <davean> | shapr: so in the worst case you're talking about something the size of computability - but few sane functions will hit that really. |
| 19:49:10 | <davean> | maerwald: So fusion can cause you to force *less* stuff than the non-fused code, but shouldn't allow you to force more for correctly implimented fusion |
| 19:49:54 | <maerwald> | My point is that rules for maintaining laziness are similarly obscure as rules for triggering fusion |
| 19:50:07 | <davean> | But not in terms of bounds |
| 19:50:34 | × | yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Quit: C-x C-c, Shutting down OS...) |
| 19:50:46 | <maerwald> | Most ppl, I'm certain, have no intuition about which of their functions are really properly lazy... and the only time you really develop this intuition is... when you deal with fusion |
| 19:50:59 | <davean> | I do not deal with fusion and I do |
| 19:51:08 | <davean> | so you're very much clearly showing some bias I'm unfamiliar with |
| 19:51:18 | <shapr> | davean: we could run a poll |
| 19:51:31 | × | Xnuk quits (~xnuk@45.76.202.58) (Quit: ZNC - https://znc.in) |
| 19:51:42 | <shapr> | or we could put up a quiz where people see the source code and then say which variables are strict or lazy or whatnot. |
| 19:51:48 | → | Xnuk joins (~xnuk@vultr.xnu.kr) |
| 19:51:49 | <davean> | mmm |
| 19:51:52 | <maerwald> | "understanding laziness" is an effort of fixing memory leaks in your haskell code :p |
| 19:51:56 | → | remedan joins (~remedan@balak.me) |
| 19:51:59 | <davean> | maerwald: no it isn't |
| 19:52:06 | <davean> | maerwald: its an effort to extract performance |
| 19:52:09 | <maerwald> | well, I have very different experience |
| 19:52:10 | <dmwit> | One thing to keep in mind is that if you are using Haskell professionally, there may well be people on the project who are not as intimately familiar with Haskell as we are. |
| 19:52:30 | <shapr> | true that |
| 19:52:41 | <dmwit> | So I agree that there is something to be said for programming in a way that leaves things robust, even if that means you don't use cool language features. |
| 19:52:42 | <davean> | maerwald: laziness lets us do better than the general performance bounds. |
| 19:52:55 | <maerwald> | when you've been paying for 64GB ram amazon instances, because you didn't use StrictData in the right places... then you start to have a somewhat different opinion |
| 19:53:31 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:53:31 | <maerwald> | (and that after you hired expensive haskell consultants, who couldn't find it either) |
| 19:53:38 | <shapr> | I bought a laptop with 128GB ram, so much easier! |
| 19:53:38 | <davean> | I think the largest Haskell programs I have are ~12GiB and thats because I load the entire dataset into memory of a few million node graph for performance. |
| 19:53:45 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 272 seconds) |
| 19:54:03 | → | allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 19:54:31 | <davean> | and even then about 2GiB of it is a cache |
| 19:54:36 | → | kayprish_ joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:54:42 | <shapr> | I've still eaten far more than 128gb when I wrote a space leak. It took twenty seconds to eat my ram, and ten seconds to wait for the kill command to stop the problem. |
| 19:54:45 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds) |
| 19:54:48 | → | kayprish1 joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 19:55:07 | allbery_b | is now known as geekosaur |
| 19:55:26 | <maerwald> | however... I can't say if that platform would have been truly better with "strict by default"... but I can say that debugging laziness issues is very non-trivial in haskell, and I'm wondering if the Idris approach would have helped |
| 19:55:30 | <maerwald> | I'm not sure |
| 19:55:54 | <davean> | maerwald: your experience doesn't at all match mine |
| 19:56:43 | <davean> | But your perspective and take on the problem doesn't either |
| 19:56:50 | <davean> | we clearly come at this from very different directions |
| 19:57:24 | <maerwald> | davean: https://github.com/yesodweb/wai/pull/752#issuecomment-501531386 |
| 19:57:28 | <maerwald> | I agree with Kazu |
| 19:57:47 | <shapr> | I really enjoy laziness for many solutions |
| 19:57:55 | <shapr> | I just wish it were somehow more compositional |
| 19:57:57 | <davean> | maerwald: yah well, lets talk about warp ... |
| 19:58:01 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:58:01 | × | kayprish_ quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:58:01 | × | kayprish1 quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Client Quit) |
| 19:58:06 | <davean> | maerwald: that code base is a mess and I had to fork it |
| 19:58:12 | <maerwald> | :p |
| 19:58:20 | <davean> | It doesn't even manage exceptions! |
| 19:58:27 | <davean> | It doesn't work in production IME |
| 19:58:32 | <maerwald> | davean: guess what... I had to fork `tar`, because it's a broken mess and even after forking doesn't work correctly |
| 19:58:33 | <davean> | but it didn't take long to fix |
| 19:58:41 | <maerwald> | part of it being over-use of "lazy patterns" |
| 19:58:44 | <davean> | maerwald: right, its a mostly-rewrite |
| 19:58:50 | <davean> | maerwald: yes, that is a problem in tar |
| 19:59:00 | <maerwald> | while it should use a proper streaming library |
| 19:59:01 | <davean> | maerwald: thats actually ... yah, tar is a fuckfest |
| 19:59:08 | <davean> | yes, I have a version thatstarts to |
| 19:59:10 | <maerwald> | see, we finally agree :D |
| 19:59:14 | <davean> | this is actually a security bug |
| 19:59:24 | <davean> | tar uses laziness for a dumb reason |
| 19:59:27 | <davean> | and they wouldn't fix it |
| 19:59:30 | <davean> | so now I get to |
| 19:59:39 | <davean> | its better than maintaining my own warp! |
| 19:59:44 | <maerwald> | yes... if you have a 200mb file in the tar archive, you'll get that 200mb file loaded into memory |
| 19:59:50 | <davean> | no, no |
| 19:59:58 | <davean> | you can use tar in constant space for arbitrary files |
| 19:59:58 | <maerwald> | yes |
| 20:00:01 | <davean> | I've done that a lot |
| 20:00:01 | <maerwald> | no |
| 20:00:05 | <davean> | No, I have |
| 20:00:09 | <maerwald> | I don't believe you! |
| 20:00:14 | <davean> | I've streameed tape through it |
| 20:00:24 | <maerwald> | (I'm talking about unpack) |
| 20:00:25 | <davean> | but you can force it to load all the data |
| 20:00:50 | <davean> | Oh unpack? |
| 20:00:51 | <maerwald> | https://github.com/haskell/tar/issues/57 |
| 20:00:55 | <davean> | No you have to use the base combinators |
| 20:00:56 | <maerwald> | yes, it leaks file size |
| 20:01:05 | <davean> | Right |
| 20:01:07 | <davean> | unpack is broken |
| 20:01:14 | <maerwald> | yeah... I fixed it with streamly |
| 20:01:15 | <davean> | You need to use the folds |
| 20:01:29 | <maerwald> | but then I thought... why use tar at all, I'm gonna re-implement it in streamly |
| 20:01:46 | <maerwald> | but then I was too lazy and used `libarchive` |
| 20:02:00 | <maerwald> | which now exposed me to tons of c2hs errors |
| 20:02:10 | <maerwald> | you can't win :) |
| 20:02:31 | <davean> | So you can use the folds interface just fine of tar |
| 20:02:42 | <shapr> | I kinda want to start a hackathon to add more tests to the most used libraries on hackage |
| 20:02:49 | <shapr> | too bad I won't be at zurihac :-( |
| 20:03:04 | <maerwald> | shapr: why not? |
| 20:03:07 | <davean> | shapr: Yah, we actually signed up for the UNIX tests as an OSS project to run the ACTUAL standards tests on tar |
| 20:03:28 | <Rembane> | shapr: If you start a distancehackathon wtih that purpose I'm in! |
| 20:03:55 | <davean> | shapr: you've seen my test coverage :-p |
| 20:03:58 | <shapr> | maerwald: I'm driving to see my family this weekend, emergency things that have to be done |
| 20:04:10 | <davean> | shapr: I tend to give up when I start finding bugs in the linux kernel via my unit tests |
| 20:04:15 | <shapr> | cdsmith showed me hpc yesterday, somehow I've never seen it before! |
| 20:04:28 | <shapr> | I'd like to see hpc coverage for all the libraries, in reverse dependcy order. |
| 20:04:30 | <davean> | shapr: wait, really? No you have |
| 20:04:40 | <davean> | shapr: because you've seen my coverage |
| 20:04:51 | <shapr> | davean: might have been years ago? |
| 20:04:55 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 245 seconds) |
| 20:04:56 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 20:04:58 | <davean> | Sure, it was in like 2018 |
| 20:05:09 | <shapr> | I must have forgotten |
| 20:05:40 | <davean> | I've done coverage with you though when we paired |
| 20:05:48 | shapr | shrugs |
| 20:06:09 | <davean> | shapr: cabal wants hpc to be something it isn't :( |
| 20:06:19 | <davean> | That entire tree is such a mess |
| 20:06:32 | <shapr> | I think it'd be nice to have a tests hackathon |
| 20:07:01 | <davean> | shapr: I know I specificly went over how I did the tests in 'miss' with you BTW |
| 20:07:21 | <davean> | getting a fast test suite with high coverage |
| 20:07:25 | <davean> | I remember that specificly |
| 20:07:36 | → | juhp joins (~juhp@128.106.188.66) |
| 20:07:40 | <davean> | talking about testing methedologies in Haskell |
| 20:07:55 | <davean> | shapr: you know theres laziness testing libraries, right? |
| 20:08:16 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 20:08:25 | <shapr> | davean: I think I've heard of such |
| 20:08:28 | <davean> | actually, maerwald and dminuoso - if you do work with people who don't understand the details, have you tried specifying and using inspection testing? |
| 20:09:08 | × | hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 252 seconds) |
| 20:10:26 | → | hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
| 20:10:50 | <maerwald> | I've not used hpc that extensively |
| 20:11:44 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 20:13:01 | <maerwald> | my real world problem are IO probles (e.g. in ghcup... some file operation blowing up on windows 7, bc some registry key is not set) |
| 20:13:04 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 20:13:11 | <davean> | maerwald: its not very loved. |
| 20:13:17 | <davean> | maerwald: well, thats what hpc is good for though |
| 20:13:33 | <maerwald> | given that you HAVE a windows 7 machine :p |
| 20:13:37 | <davean> | maerwald: I think you may not have read closely enough? hpc is coverage, it tells you what code is used. inspection testing is entirely seperate |
| 20:13:47 | <davean> | maerwald: I mean thats what CI is for? |
| 20:14:02 | <davean> | maerwald: but thats actually not the problem |
| 20:14:07 | <maerwald> | davean: yeah, except half of our runners are broken due to docker right now |
| 20:14:10 | <davean> | not having a W7 machine is what hpc helps with |
| 20:14:13 | <maerwald> | but I'm going offtrack |
| 20:14:19 | <davean> | it shows you *haven't checked that code path on any machine* |
| 20:14:38 | <maerwald> | davean: I'm not sure that would catch it... bc I do run that codepath on Windows 10 |
| 20:14:42 | <maerwald> | it just behaves different there |
| 20:14:56 | <davean> | maerwald: you sure? you sure there isn't a branch not taken on W10? |
| 20:15:30 | <maerwald> | in MY code all paths are taken |
| 20:15:35 | <maerwald> | dependencies, ffi etc, I dunno |
| 20:15:47 | <davean> | Yah well how far you push coverage down is a thing |
| 20:16:01 | <maerwald> | So what I'm more interested in is testing behavior |
| 20:16:03 | <davean> | I've been pushing coverage into the kernel for some of my more important projects, but thats hard with Haskell |
| 20:16:10 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 20:16:23 | <davean> | If I ever figure out a useful setup for that, I should write it up ... |
| 20:16:26 | <davean> | everything I've got is shit |
| 20:16:28 | <maerwald> | when half your code is about IO and file operations, behavior matters more than anything else |
| 20:16:33 | × | alex3 quits (~alex3@BSN-77-82-41.static.siol.net) (Ping timeout: 272 seconds) |
| 20:16:37 | → | ajarmst joins (~user@S01066032b134d205.ed.shawcable.net) |
| 20:16:56 | → | thelounge92 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com) |
| 20:17:20 | → | alex3 joins (~alex3@BSN-77-82-41.static.siol.net) |
| 20:17:31 | <maerwald> | I thought about using freer or whatnot to define all these operations in a DSL, which may give me more flexibility... but this might just be "cool", but not help in any way |
| 20:17:56 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 20:18:05 | <maerwald> | however, you could write interpreters, that simulate e.g. windows 7 |
| 20:18:06 | <davean> | I've used that (with free, not freer) to get cleaner code and faster testing before |
| 20:18:22 | <maerwald> | like simulate file locking, right? |
| 20:18:25 | <maerwald> | that would be cool |
| 20:18:29 | × | reumeth quits (~reumeth@user/reumeth) (Remote host closed the connection) |
| 20:18:34 | <davean> | I actually worked on a FS crash simulator |
| 20:18:40 | <davean> | Need to restart that project |
| 20:18:53 | → | reumeth joins (~reumeth@user/reumeth) |
| 20:18:57 | <davean> | but it cuts off at the FS access level, and produces all legal FS behaviors as a tree |
| 20:18:58 | <maerwald> | linux vs windows is a HUGE difference... mainly due to file locking |
| 20:19:09 | <davean> | File locking was a reason for it |
| 20:19:17 | <davean> | git is ... hard to get right with respect to locks |
| 20:19:37 | <davean> | the design is highly inconsistent |
| 20:19:50 | <davean> | maerwald: why would you choose freer? |
| 20:19:54 | <maerwald> | like... self-updating an exe on linux: just remove it... on windows: 1. uh, try file rename, 2. but oh wait... needs to be atomic... so 3. are we on the same device and 4. make sure it really is atomic |
| 20:20:11 | <maerwald> | davean: becase `eff` isn't ready yet |
| 20:20:18 | <maerwald> | not sure it ever will |
| 20:20:31 | <davean> | You're happy with the freer design though? |
| 20:21:06 | <davean> | I'm much more comfortable with the 'free' approach |
| 20:21:49 | → | benin0366 joins (~benin@183.82.205.8) |
| 20:21:50 | <maerwald> | I dunno... I also looked at polysemy and it wasn't that bad either. But from what I understand they're all slow and may even be unsound |
| 20:22:03 | <davean> | Right, this is why I lean to 'free' over any of them |
| 20:22:15 | × | benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds) |
| 20:22:16 | benin0366 | is now known as benin036 |
| 20:22:26 | <davean> | so I'm curious what your selection approach was |
| 20:22:36 | <maerwald> | "ergonomics", less technical |
| 20:22:52 | <davean> | Hum, the technicalities were critical to me, interesting |
| 20:22:53 | <maerwald> | my code is IO-bound |
| 20:23:04 | <davean> | Its nto about performance |
| 20:23:10 | <davean> | infact, its harder to get performance with 'free' |
| 20:23:15 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 245 seconds) |
| 20:23:16 | <davean> | (though totally possible) |
| 20:23:36 | <maerwald> | Well, this sounds like a good project for zurihac |
| 20:24:07 | <davean> | but things like bracketing and how they behave in 'freer' |
| 20:24:14 | <kayprish> | [A[A |
| 20:24:23 | <kayprish> | [A[A[A |
| 20:24:38 | <kayprish> | trx |
| 20:24:43 | <kayprish> | sat |
| 20:24:49 | <maerwald> | davean: I never went that deep... I just wrote some small stuff... testing it on a real program will surely be more insightful |
| 20:24:59 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 20:25:17 | <davean> | maerwald: Ah, did you not take time to understand the implimentation before using it? |
| 20:25:32 | <maerwald> | hell no |
| 20:25:36 | <davean> | Seriously? |
| 20:26:04 | <kayprish> | apologies guys, my client started messing with me |
| 20:26:16 | <davean> | kayprish: we'll never forgive you but quickly forget |
| 20:26:34 | <maerwald> | davean: from what I read, sometimes the authors don't understand their own implementation ;) |
| 20:26:51 | <davean> | maerwald: yah, which is why I take time to consider them ... |
| 20:27:01 | <davean> | like when reading a paper - redo the proofs |
| 20:27:09 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:27:09 | <davean> | satisfy YOURSELF they're right, don't take the author's word |
| 20:27:19 | <davean> | saves a bunch of time |
| 20:27:20 | → | Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
| 20:27:33 | <maerwald> | that's way too serious for a "lemme see if I can improve this real quick" :) |
| 20:28:24 | <shapr> | davean: have you considered writing blog posts about these not so well known tools? |
| 20:28:24 | → | safinaskar joins (~safinaska@109.252.90.89) |
| 20:28:42 | → | zeenk joins (~zeenk@188.26.30.39) |
| 20:28:51 | <safinaskar> | is there some online haskell compiler with relatively new ghc? |
| 20:29:01 | <davean> | shapr: Yes, though I'd NEVER think hpc wasn't well known. There the performance book over at HF thats comeing together. We had a long debate about how to handle tools. |
| 20:29:07 | <safinaskar> | i tried repl.it and godbolt.org, but they have old ghc versions |
| 20:29:23 | <safinaskar> | for example, -XGHC2021 seems not supported |
| 20:29:38 | <maerwald> | safinaskar: I think repl.it is indeed one of the more updated ones |
| 20:30:53 | <safinaskar> | maerwald: i just checked, -XGHC2021 still gives error there |
| 20:34:05 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 20:34:34 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Quit: leaving) |
| 20:34:46 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 244 seconds) |
| 20:34:53 | → | kayprish joins (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) |
| 20:34:59 | <maerwald> | safinaskar: offline is not an option? |
| 20:35:50 | <safinaskar> | maerwald: of course, it is. i am simply curious whether such site exists. it would speed up my productivity |
| 20:36:24 | × | hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 268 seconds) |
| 20:36:48 | → | hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
| 20:36:51 | <maerwald> | Could be another topic for the HF... |
| 20:37:00 | → | dhil joins (~dhil@195.213.192.47) |
| 20:38:22 | → | jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef) |
| 20:39:35 | → | Obo joins (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) |
| 20:41:09 | → | ddellacosta joins (~ddellacos@89.45.224.48) |
| 20:41:53 | × | beka quits (~beka@104.193.170-244.PUBLIC.monkeybrains.net) (Ping timeout: 272 seconds) |
| 20:42:52 | × | ddellacosta quits (~ddellacos@89.45.224.48) (Remote host closed the connection) |
| 20:43:21 | → | ddellacosta joins (~ddellacos@89.45.224.48) |
| 20:45:30 | → | ddellaco_ joins (~ddellacos@89.45.224.243) |
| 20:46:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 20:47:50 | × | ddellacosta quits (~ddellacos@89.45.224.48) (Ping timeout: 245 seconds) |
| 20:51:03 | → | Guest2 joins (~Guest2@154.21.21.108) |
| 20:51:51 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 20:52:10 | → | beka joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 20:56:31 | × | Obo quits (~roberto@h-46-59-103-134.A498.priv.bahnhof.se) (Quit: WeeChat 2.8) |
| 20:56:45 | → | raehik1 joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 20:57:33 | hrnz | is now known as hrnz[m] |
| 20:57:50 | hrnz[m] | is now known as hrnz |
| 20:58:44 | → | teaSlurper joins (~chris@81.96.113.213) |
| 21:01:30 | × | haskl quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 264 seconds) |
| 21:01:35 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 245 seconds) |
| 21:02:20 | → | haskl joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) |
| 21:03:22 | → | bmo_ joins (~bmo@185.254.75.34) |
| 21:03:30 | → | fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) |
| 21:03:36 | → | allbery_b joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 21:03:59 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 21:04:32 | → | curiousgay_ joins (~quassel@178.217.208.8) |
| 21:04:36 | → | Scotty_Trees2 joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 21:04:37 | × | unclechu quits (~unclechu@2001:470:69fc:105::354) (Read error: Connection reset by peer) |
| 21:04:37 | × | carmysilna quits (~brightly-@2001:470:69fc:105::2190) (Read error: Connection reset by peer) |
| 21:04:37 | × | bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer) |
| 21:04:38 | × | oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer) |
| 21:04:38 | × | kadoban quits (~kadoban@user/kadoban) (Read error: Connection reset by peer) |
| 21:04:38 | × | wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (Read error: Connection reset by peer) |
| 21:04:38 | × | ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer) |
| 21:04:38 | × | unrooted quits (~unrooted@2001:470:69fc:105::a4a) (Read error: Connection reset by peer) |
| 21:04:38 | × | siraben quits (~siraben@user/siraben) (Read error: Connection reset by peer) |
| 21:04:38 | × | MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer) |
| 21:04:38 | × | jaror[m] quits (~jaror@2001:470:69fc:105::265) (Read error: Connection reset by peer) |
| 21:04:38 | × | vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Read error: Connection reset by peer) |
| 21:04:38 | × | autrim64[m] quits (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
| 21:04:38 | × | bitonic quits (~bitonic@2001:470:69fc:105::1812) (Read error: Connection reset by peer) |
| 21:04:38 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Read error: Connection reset by peer) |
| 21:04:38 | × | fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Read error: Connection reset by peer) |
| 21:04:38 | × | tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Read error: Connection reset by peer) |
| 21:04:39 | × | Soft quits (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer) |
| 21:04:39 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer) |
| 21:04:39 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
| 21:04:39 | × | maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
| 21:04:39 | × | jakefromstatefar quits (~jakefroms@2001:470:69fc:105::15ef) (Read error: Connection reset by peer) |
| 21:04:39 | × | cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer) |
| 21:04:39 | × | dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
| 21:04:39 | × | RohitGoswami[m] quits (~rgoswamim@2001:470:69fc:105::16cc) (Read error: Connection reset by peer) |
| 21:04:39 | × | yin[m] quits (~zwromatri@2001:470:69fc:105::1d4) (Read error: Connection reset by peer) |
| 21:04:39 | × | bryan[m] quits (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
| 21:04:39 | × | Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Read error: Connection reset by peer) |
| 21:04:40 | × | ac quits (~aloiscoch@2001:470:69fc:105::65) (Write error: Connection reset by peer) |
| 21:04:40 | × | sm[m] quits (~sm@plaintextaccounting/sm) (Read error: Connection reset by peer) |
| 21:04:40 | × | peddie quits (~peddie@2001:470:69fc:105::25d) (Write error: Connection reset by peer) |
| 21:04:40 | × | jophish quits (~jophish@2001:470:69fc:105::670) (Write error: Connection reset by peer) |
| 21:04:40 | × | adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Write error: Connection reset by peer) |
| 21:04:40 | × | kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Write error: Connection reset by peer) |
| 21:04:40 | × | srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Write error: Connection reset by peer) |
| 21:04:40 | × | Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Write error: Connection reset by peer) |
| 21:04:40 | × | amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Write error: Connection reset by peer) |
| 21:04:40 | × | Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Write error: Connection reset by peer) |
| 21:04:40 | × | thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Write error: Connection reset by peer) |
| 21:04:40 | × | eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Write error: Connection reset by peer) |
| 21:04:40 | × | hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Write error: Connection reset by peer) |
| 21:04:40 | × | cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Write error: Connection reset by peer) |
| 21:04:42 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Read error: Connection reset by peer) |
| 21:04:42 | × | maralorn quits (~maralorn@2001:470:69fc:105::251) (Read error: Connection reset by peer) |
| 21:04:42 | × | the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Read error: Connection reset by peer) |
| 21:04:42 | × | psydroid quits (~psydroidm@user/psydroid) (Read error: Connection reset by peer) |
| 21:04:48 | → | poljar joins (~poljar@93-139-36-109.adsl.net.t-com.hr) |
| 21:04:55 | → | comerijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:05:00 | → | ralu7 joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 21:05:01 | → | lambdap2 joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 21:05:15 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 21:05:18 | → | thedward[m] joins (~thedwardm@2001:470:69fc:105::f79) |
| 21:05:21 | → | waleee-cl joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 21:05:22 | → | bmo__ joins (~bmo@185.254.75.34) |
| 21:05:24 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 21:05:57 | × | jao quits (jao@gateway/vpn/protonvpn/jao) (Ping timeout: 245 seconds) |
| 21:05:57 | × | waleee quits (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Ping timeout: 245 seconds) |
| 21:05:57 | × | pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 245 seconds) |
| 21:05:57 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 245 seconds) |
| 21:05:57 | × | Techcable quits (~Techcable@168.235.93.147) (Read error: Connection reset by peer) |
| 21:05:57 | × | ajarmst quits (~user@S01066032b134d205.ed.shawcable.net) (Ping timeout: 245 seconds) |
| 21:05:57 | × | dispater quits (~dispater@user/brprice) (Ping timeout: 245 seconds) |
| 21:05:57 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 245 seconds) |
| 21:05:57 | × | bmo quits (~bmo@185.254.75.34) (Ping timeout: 245 seconds) |
| 21:05:57 | × | cheater quits (~Username@user/cheater) (Ping timeout: 245 seconds) |
| 21:05:57 | × | td_ quits (~td@94.134.91.38) (Ping timeout: 245 seconds) |
| 21:05:57 | × | dcoutts__ quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 245 seconds) |
| 21:05:57 | → | beka_ joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 21:06:00 | → | teaSlurp_ joins (~chris@81.96.113.213) |
| 21:06:06 | → | ac joins (~aloiscoch@2001:470:69fc:105::65) |
| 21:06:06 | → | siraben joins (~siraben@user/siraben) |
| 21:06:06 | → | sm[m] joins (~sm@plaintextaccounting/sm) |
| 21:06:06 | → | maralorn joins (~maralorn@2001:470:69fc:105::251) |
| 21:06:07 | → | peddie joins (~peddie@2001:470:69fc:105::25d) |
| 21:06:07 | → | fgaz joins (~fgaz@2001:470:69fc:105::842) |
| 21:06:07 | → | fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db) |
| 21:06:07 | → | bb010g joins (~bb010gmat@2001:470:69fc:105::9a5) |
| 21:06:07 | → | psydroid joins (~psydroidm@2001:470:69fc:105::165) |
| 21:06:07 | → | MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22) |
| 21:06:07 | → | Las[m] joins (~lasmatrix@2001:470:69fc:105::74e) |
| 21:06:07 | → | ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a) |
| 21:06:07 | → | the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f) |
| 21:06:07 | → | vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe) |
| 21:06:07 | → | kadoban joins (~kadoban@user/kadoban) |
| 21:06:07 | → | jophish joins (~jophish@2001:470:69fc:105::670) |
| 21:06:08 | → | thelounge923 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com) |
| 21:06:10 | × | beka quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 245 seconds) |
| 21:06:10 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 245 seconds) |
| 21:06:11 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 245 seconds) |
| 21:06:11 | → | shapr` joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 21:06:14 | → | pkkm joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl) |
| 21:06:16 | → | pavonia_ joins (~user@user/siracusa) |
| 21:06:18 | → | srid[m] joins (~sridmatri@2001:470:69fc:105::1c2) |
| 21:06:18 | → | Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0) |
| 21:06:18 | → | maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee) |
| 21:06:18 | → | dualinverter[m] joins (~dualinver@2001:470:69fc:105::16a7) |
| 21:06:18 | → | hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd) |
| 21:06:19 | → | cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3) |
| 21:06:19 | → | unrooted joins (~unrooted@2001:470:69fc:105::a4a) |
| 21:06:19 | → | tomferon[m] joins (~tomferon@2001:470:69fc:105::268) |
| 21:06:19 | → | wallymathieu[m] joins (~wallymath@2001:470:69fc:105::16ae) |
| 21:06:19 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 21:06:19 | → | Drezil joins (~drezilkif@2001:470:69fc:105::7f8) |
| 21:06:19 | → | Soft joins (~soft-matr@2001:470:69fc:105::c75) |
| 21:06:19 | → | kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d) |
| 21:06:19 | → | bryan[m] joins (~bchreekat@2001:470:69fc:105::16b5) |
| 21:06:19 | → | autrim64[m] joins (~autrim64m@2001:470:69fc:105::16a1) |
| 21:06:19 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 21:06:19 | → | amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b) |
| 21:06:19 | → | eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c) |
| 21:06:19 | → | adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d) |
| 21:06:19 | → | RohitGoswami[m] joins (~rgoswamim@2001:470:69fc:105::16cc) |
| 21:06:19 | → | yin[m] joins (~zwromatri@2001:470:69fc:105::1d4) |
| 21:06:19 | → | jakefromstatefar joins (~jakefroms@2001:470:69fc:105::15ef) |
| 21:06:23 | → | carmysilna joins (~brightly-@2001:470:69fc:105::2190) |
| 21:06:27 | → | Techcable joins (~Techcable@168.235.93.147) |
| 21:06:27 | → | cheater joins (~Username@user/cheater) |
| 21:06:34 | → | unclechu joins (~unclechu@2001:470:69fc:105::354) |
| 21:06:34 | → | jaror[m] joins (~jaror@2001:470:69fc:105::265) |
| 21:06:35 | → | cdsmith joins (~cdsmithma@2001:470:69fc:105::284) |
| 21:06:35 | → | oak- joins (~oakuniver@2001:470:69fc:105::fcd) |
| 21:06:35 | → | bitonic joins (~bitonic@2001:470:69fc:105::1812) |
| 21:06:35 | → | ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2) |
| 21:06:36 | × | betelgeuse quits (~john2gb@94-225-47-8.access.telenet.be) (Ping timeout: 245 seconds) |
| 21:06:40 | → | benin0367 joins (~benin@183.82.205.8) |
| 21:06:41 | × | ralu quits (~ralu@static.211.245.203.116.clients.your-server.de) (Read error: Connection reset by peer) |
| 21:06:41 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 21:06:41 | × | jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Quit: Ping timeout (120 seconds)) |
| 21:06:41 | × | dtman34_ quits (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
| 21:06:41 | × | P1RATEZ quits (piratez@user/p1ratez) (Ping timeout: 252 seconds) |
| 21:06:41 | × | lechner quits (~lechner@letbox-vps.us-core.com) (Ping timeout: 252 seconds) |
| 21:06:42 | × | sshine quits (~simon@hubris.eta.solutions) (Ping timeout: 252 seconds) |
| 21:06:43 | → | dispater joins (~dispater@user/brprice) |
| 21:06:48 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 252 seconds) |
| 21:06:48 | × | ozataman quits (~ozataman@71.190.112.58) (Ping timeout: 252 seconds) |
| 21:06:48 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 252 seconds) |
| 21:06:48 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Ping timeout: 252 seconds) |
| 21:06:49 | × | justBull quits (~justache@user/justache) (Ping timeout: 252 seconds) |
| 21:06:49 | × | awth13 quits (~user@user/awth13) (Ping timeout: 252 seconds) |
| 21:06:49 | × | Square quits (~a@178.62.91.8) (Ping timeout: 252 seconds) |
| 21:06:49 | × | asm quits (~alexander@user/asm) (Ping timeout: 252 seconds) |
| 21:06:49 | × | meejah quits (~meejah@rutas.meejah.ca) (Ping timeout: 252 seconds) |
| 21:06:49 | × | urdh quits (~urdh@h88-129-148-132.cust.a3fiber.se) (Ping timeout: 252 seconds) |
| 21:07:03 | → | justBull joins (~justache@user/justache) |
| 21:07:05 | → | awth13 joins (~user@user/awth13) |
| 21:07:21 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 252 seconds) |
| 21:07:21 | × | thelounge92 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (Ping timeout: 252 seconds) |
| 21:07:21 | × | Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 252 seconds) |
| 21:07:22 | × | stefan-_ quits (~cri@42dots.de) (Ping timeout: 252 seconds) |
| 21:07:22 | × | lambdap quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 252 seconds) |
| 21:07:22 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (Ping timeout: 252 seconds) |
| 21:07:25 | × | fendor quits (~fendor@77.119.131.227.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
| 21:07:26 | → | sndr joins (~sander@user/sander) |
| 21:07:32 | → | asm joins (~alexander@burner.asm89.io) |
| 21:07:34 | → | xsarnik joins (xsarnik@lounge.fi.muni.cz) |
| 21:07:34 | → | chaosite_ joins (~chaosite@user/chaosite) |
| 21:07:39 | → | poljar_ joins (~poljar@93-139-36-109.adsl.net.t-com.hr) |
| 21:07:43 | → | lechner joins (~lechner@letbox-vps.us-core.com) |
| 21:08:10 | → | stefan-_ joins (~cri@42dots.de) |
| 21:08:13 | → | saolof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 21:08:21 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:08:28 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 21:08:29 | → | nshepperd29 joins (~nshepperd@li364-218.members.linode.com) |
| 21:08:54 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 21:09:08 | → | GIANTWORLDKEEPR_ joins (~pjetcetal@2.95.204.25) |
| 21:09:09 | → | slowButP1esent joins (~slowButPr@user/slowbutpresent) |
| 21:09:25 | → | gabiruh_ joins (~gabiruh@vps19177.publiccloud.com.br) |
| 21:09:55 | → | seeg- joins (~seeg@2a05:f480:1400:311:5400:1ff:feff:256) |
| 21:10:03 | → | jespada_ joins (~jespada@90.254.242.55) |
| 21:10:12 | → | zeenk2 joins (~zeenk@188.26.30.39) |
| 21:10:18 | → | betelgeuse joins (~john2gb@94-225-47-8.access.telenet.be) |
| 21:10:21 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 21:10:21 | → | aighearach_ joins (~paris@c-71-63-160-210.hsd1.or.comcast.net) |
| 21:10:23 | → | zaquest_ joins (~notzaques@5.128.210.178) |
| 21:10:23 | → | Square joins (~a@178.62.91.8) |
| 21:10:24 | → | sshine joins (~simon@hubris.eta.solutions) |
| 21:10:35 | → | curiousgay__ joins (~quassel@178.217.208.8) |
| 21:10:36 | → | dtman34 joins (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
| 21:10:58 | → | td_ joins (~td@94.134.91.38) |
| 21:10:58 | × | Aighearach quits (~paris@c-71-63-160-210.hsd1.or.comcast.net) (Killed (NickServ (GHOST command used by aighearach_))) |
| 21:11:02 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 21:11:03 | → | charukiewicz_ joins (~quassel@irouteince04.i.subnet.rcn.com) |
| 21:11:05 | → | ralu joins (~ralu@static.211.245.203.116.clients.your-server.de) |
| 21:11:06 | aighearach_ | is now known as Aighearach |
| 21:11:07 | → | ell2 joins (~ellie@user/ellie) |
| 21:11:19 | → | np joins (~nerdypepp@user/nerdypepper) |
| 21:11:21 | → | MidAutumnMoon2 joins (~MidAutumn@user/midautumnmoon) |
| 21:11:22 | → | lambdap joins (~lambdap@static.167.190.119.168.clients.your-server.de) |
| 21:11:27 | → | pierrot_ joins (~pi@user/pierrot) |
| 21:11:31 | → | abhixec_ joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 21:11:37 | → | urdh joins (~urdh@h88-129-148-132.cust.a3fiber.se) |
| 21:11:38 | → | wolfshappen_ joins (~waff@irc.furworks.de) |
| 21:11:51 | → | LambdaDu1k joins (~anka@ksit.fixme.fi) |
| 21:11:51 | → | barrucad1 joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 21:12:01 | → | thaumavorio_ joins (~thaumavor@thaumavor.io) |
| 21:12:10 | → | xerox_ joins (~edi@user/edi) |
| 21:12:14 | → | mjrosenb joins (~mrosenbe@nyc.schrodinger.com) |
| 21:12:18 | → | Shards joins (~Scraeling@user/scraeling) |
| 21:12:23 | → | hpc_ joins (~juzz@ip98-169-35-13.dc.dc.cox.net) |
| 21:12:24 | → | comerijn_ joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:12:25 | → | int-e_ joins (~noone@int-e.eu) |
| 21:12:26 | → | ubuntu_ joins (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) |
| 21:12:33 | → | ptrcmd_ joins (~ptrcmd@user/ptrcmd) |
| 21:12:34 | → | Bartosz joins (~textual@24.35.90.211) |
| 21:12:34 | × | Bartosz quits (~textual@24.35.90.211) (Client Quit) |
| 21:12:35 | → | jneira_ joins (~jneira_@166.red-81-39-172.dynamicip.rima-tde.net) |
| 21:12:48 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 272 seconds) |
| 21:12:48 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 21:12:49 | × | GIANTWORLDKEEPER quits (~pjetcetal@2.95.204.25) (Ping timeout: 272 seconds) |
| 21:12:49 | → | ajarmst` joins (~user@S01066032b134d205.ed.shawcable.net) |
| 21:12:49 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 272 seconds) |
| 21:12:49 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 21:12:49 | × | pavonia quits (~user@user/siracusa) (Ping timeout: 272 seconds) |
| 21:12:49 | × | zaquest quits (~notzaques@5.128.210.178) (Ping timeout: 272 seconds) |
| 21:12:49 | × | poljar1 quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 272 seconds) |
| 21:12:49 | × | allbery_b quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 272 seconds) |
| 21:12:49 | × | bmo_ quits (~bmo@185.254.75.34) (Ping timeout: 272 seconds) |
| 21:12:49 | × | benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds) |
| 21:12:49 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 272 seconds) |
| 21:12:49 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 272 seconds) |
| 21:12:49 | × | BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 272 seconds) |
| 21:12:49 | × | curiousgay quits (~quassel@178.217.208.8) (Ping timeout: 272 seconds) |
| 21:12:49 | × | sander quits (~sander@user/sander) (Ping timeout: 272 seconds) |
| 21:12:49 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 272 seconds) |
| 21:12:50 | sndr | is now known as sander |
| 21:12:50 | benin0367 | is now known as benin036 |
| 21:12:54 | → | dixie_ joins (~dixie@real.wilbury.sk) |
| 21:13:00 | slowButP1esent | is now known as slowButPresent |
| 21:13:08 | → | dy` joins (~dy@user/dy) |
| 21:13:09 | jneira_ | is now known as jneira |
| 21:13:22 | → | meridion_ joins (~meridion@punt.hetgrotebos.org) |
| 21:13:47 | → | xlei_ joins (znc@pool-68-129-84-118.nycmny.fios.verizon.net) |
| 21:13:50 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 21:14:01 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 21:14:03 | → | chkno joins (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) |
| 21:14:11 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 21:14:29 | → | forell_ joins (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) |
| 21:14:37 | → | mniip_ joins (mniip@libera/staff/mniip) |
| 21:14:38 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 268 seconds) |
| 21:14:46 | × | chaosite quits (~chaosite@user/chaosite) (Read error: Connection reset by peer) |
| 21:14:46 | × | curiousgay_ quits (~quassel@178.217.208.8) (Read error: Connection reset by peer) |
| 21:14:46 | × | dy quits (~dy@user/dy) (Ping timeout: 264 seconds) |
| 21:14:46 | × | yahb quits (xsbot@user/mniip/bot/yahb) (Ping timeout: 264 seconds) |
| 21:14:46 | × | xerox quits (~edi@user/edi) (Ping timeout: 264 seconds) |
| 21:14:46 | × | Ekho quits (~Ekho@user/ekho) (Ping timeout: 264 seconds) |
| 21:14:46 | × | wolfshappen quits (~waff@irc.furworks.de) (Read error: Connection reset by peer) |
| 21:14:46 | × | pavonia_ quits (~user@user/siracusa) (Ping timeout: 264 seconds) |
| 21:14:46 | × | shapr` quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 21:14:47 | × | bmo__ quits (~bmo@185.254.75.34) (Ping timeout: 264 seconds) |
| 21:14:47 | × | poljar quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (Ping timeout: 264 seconds) |
| 21:14:47 | × | Scotty_Trees2 quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Ping timeout: 264 seconds) |
| 21:14:47 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds) |
| 21:14:47 | × | MidAutumnMoon quits (~MidAutumn@user/midautumnmoon) (Ping timeout: 264 seconds) |
| 21:14:47 | × | ptrcmd quits (~ptrcmd@user/ptrcmd) (Ping timeout: 264 seconds) |
| 21:14:47 | × | forell quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Ping timeout: 264 seconds) |
| 21:14:47 | × | LambdaDuck quits (~anka@ksit.fixme.fi) (Ping timeout: 264 seconds) |
| 21:14:47 | × | nshepperd2 quits (~nshepperd@li364-218.members.linode.com) (Ping timeout: 264 seconds) |
| 21:14:47 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (Ping timeout: 264 seconds) |
| 21:14:47 | × | superbil quits (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 264 seconds) |
| 21:14:47 | × | bjfs quits (bart@kobayashi.com.pl) (Ping timeout: 264 seconds) |
| 21:14:47 | × | ralu7 quits (~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 264 seconds) |
| 21:14:47 | × | comerijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 21:14:47 | × | zeenk quits (~zeenk@188.26.30.39) (Ping timeout: 264 seconds) |
| 21:14:47 | × | seeg_ quits (~seeg@45.76.32.162) (Ping timeout: 264 seconds) |
| 21:14:47 | × | mjrosenb_ quits (~mrosenbe@104.225.243.2) (Ping timeout: 264 seconds) |
| 21:14:47 | × | ell quits (~ellie@user/ellie) (Ping timeout: 264 seconds) |
| 21:14:47 | × | Guest2041 quits (~ubuntu@ec2-13-49-142-87.eu-north-1.compute.amazonaws.com) (Ping timeout: 264 seconds) |
| 21:14:47 | × | thaumavorio quits (~thaumavor@thaumavor.io) (Ping timeout: 264 seconds) |
| 21:14:47 | × | int-e quits (~noone@int-e.eu) (Ping timeout: 264 seconds) |
| 21:14:47 | × | gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Ping timeout: 264 seconds) |
| 21:14:47 | × | Scraeling quits (~Scraeling@34.84.165.63) (Ping timeout: 264 seconds) |
| 21:14:47 | × | meridion quits (~meridion@punt.hetgrotebos.org) (Ping timeout: 264 seconds) |
| 21:14:47 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds) |
| 21:14:47 | × | lambdap2 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Ping timeout: 264 seconds) |
| 21:14:47 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Ping timeout: 264 seconds) |
| 21:14:47 | × | pierrot quits (~pi@user/pierrot) (Ping timeout: 264 seconds) |
| 21:14:47 | × | acarrico quits (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) (Ping timeout: 264 seconds) |
| 21:14:47 | × | charukiewicz quits (~quassel@irouteince04.i.subnet.rcn.com) (Ping timeout: 264 seconds) |
| 21:14:47 | × | hpc quits (~juzz@98.169.35.13) (Ping timeout: 264 seconds) |
| 21:14:47 | × | dixie quits (~dixie@real.wilbury.sk) (Ping timeout: 264 seconds) |
| 21:14:47 | × | nerdypepper quits (~nerdypepp@user/nerdypepper) (Ping timeout: 264 seconds) |
| 21:14:47 | × | mniip quits (mniip@libera/staff/mniip) (Ping timeout: 624 seconds) |
| 21:14:47 | × | chkno_ quits (~chkno@75-7-2-127.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 21:14:47 | × | xlei quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (Ping timeout: 264 seconds) |
| 21:14:47 | MidAutumnMoon2 | is now known as MidAutumnMoon |
| 21:14:48 | ell2 | is now known as ell |
| 21:14:58 | → | Sgeo_ joins (~Sgeo@ool-18b9875e.dyn.optonline.net) |
| 21:15:11 | → | meejah joins (~meejah@rutas.meejah.ca) |
| 21:15:13 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 21:15:29 | → | poljar joins (~poljar@93-139-36-109.adsl.net.t-com.hr) |
| 21:15:33 | → | yahb joins (xsbot@user/mniip/bot/yahb) |
| 21:15:33 | → | notzmv joins (~zmv@user/notzmv) |
| 21:15:50 | → | acarrico joins (~acarrico@dhcp-68-142-39-249.greenmountainaccess.net) |
| 21:16:02 | → | teaSlurper joins (~chris@81.96.113.213) |
| 21:16:09 | × | waleee-cl quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
| 21:16:09 | → | beka__ joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 21:16:16 | ← | safinaskar parts (~safinaska@109.252.90.89) () |
| 21:16:34 | → | nshepperd2 joins (~nshepperd@li364-218.members.linode.com) |
| 21:17:05 | → | benin0362 joins (~benin@183.82.205.8) |
| 21:17:12 | → | awth13` joins (~user@185.209.196.143) |
| 21:17:18 | → | pavonia joins (~user@user/siracusa) |
| 21:17:22 | × | ham quits (~ham4@user/ham) (Read error: Connection reset by peer) |
| 21:17:40 | → | waleee-cl joins (~waleee@h-98-128-228-119.NA.cust.bahnhof.se) |
| 21:18:02 | → | thelounge9230 joins (~thelounge@cpe-23-240-28-18.socal.res.rr.com) |
| 21:18:14 | → | oxide joins (~lambda@user/oxide) |
| 21:18:39 | → | pkkm2 joins (~pkkm@dgs4.neoplus.adsl.tpnet.pl) |
| 21:18:42 | → | teehemkay_ joins (sid14792@id-14792.tooting.irccloud.com) |
| 21:18:43 | → | wroathe_ joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 21:18:58 | → | Tuplanolla1 joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 21:19:16 | → | iphy_ joins (sid67735@id-67735.tooting.irccloud.com) |
| 21:19:21 | → | chaosite joins (~chaosite@user/chaosite) |
| 21:19:26 | → | ham joins (~ham4@user/ham) |
| 21:19:42 | → | NemesisD_ joins (sid24071@id-24071.tooting.irccloud.com) |
| 21:19:45 | × | teehemkay quits (sid14792@id-14792.tooting.irccloud.com) (Ping timeout: 265 seconds) |
| 21:19:45 | × | acid quits (~acid@user/acid) (Ping timeout: 265 seconds) |
| 21:19:45 | × | iphy quits (sid67735@2001:67c:2f08:4::1:897) (Ping timeout: 265 seconds) |
| 21:19:45 | × | jackhill quits (~jackhill@kalessin.dragonsnail.net) (Ping timeout: 265 seconds) |
| 21:19:45 | × | kmein quits (~weechat@user/kmein) (Ping timeout: 265 seconds) |
| 21:19:45 | × | dwt_ quits (~dwt_@c-98-200-58-177.hsd1.tx.comcast.net) (Ping timeout: 265 seconds) |
| 21:19:45 | × | liskin quits (~liskin@xmonad/liskin) (Ping timeout: 265 seconds) |
| 21:19:45 | × | NemesisD quits (sid24071@2001:67c:2f08:4::5e07) (Ping timeout: 265 seconds) |
| 21:19:45 | × | esclear[i] quits (~esclear@phobos.esclear.de) (Ping timeout: 265 seconds) |
| 21:19:45 | × | koz quits (~koz@121.99.240.58) (Ping timeout: 265 seconds) |
| 21:19:46 | teehemkay_ | is now known as teehemkay |
| 21:19:46 | iphy_ | is now known as iphy |
| 21:19:46 | NemesisD_ | is now known as NemesisD |
| 21:19:49 | → | Techcable_ joins (~Techcable@168.235.93.147) |
| 21:19:54 | → | lisk1n joins (~liskin@xmonad/liskin) |
| 21:19:55 | → | kmein joins (~weechat@user/kmein) |
| 21:20:00 | → | xsarnik3 joins (xsarnik@lounge.fi.muni.cz) |
| 21:20:00 | → | koz- joins (~koz@121.99.240.58) |
| 21:20:03 | koz- | is now known as koz |
| 21:20:14 | → | sndr joins (~sander@user/sander) |
| 21:20:18 | → | slowButP1esent joins (~slowButPr@user/slowbutpresent) |
| 21:20:19 | → | asm_ joins (~alexander@burner.asm89.io) |
| 21:20:24 | → | bcoppens_ joins (~bartcopp@vpn2.bartcoppens.be) |
| 21:20:57 | × | comerijn_ quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 21:21:02 | × | Guest2 quits (~Guest2@154.21.21.108) (Quit: Client closed) |
| 21:21:07 | → | NieDzejkob_ joins (~quassel@195.149.98.3) |
| 21:21:11 | → | Unode_ joins (~Unode@194.94.44.220) |
| 21:21:13 | → | mekeor joins (~user@2001:a61:34b6:5701:f8e2:383b:42a4:84ad) |
| 21:21:22 | → | pie__bnc joins (~pie_bnc@user/pie/x-2818909) |
| 21:21:36 | → | acid joins (~acid@user/acid) |
| 21:21:40 | → | lisq_ joins (~quassel@lis.moe) |
| 21:21:44 | → | esclear[i] joins (~esclear@phobos.esclear.de) |
| 21:21:45 | → | Aleksejs_Home joins (~Aleksejs@haskell.lv) |
| 21:21:54 | × | neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 264 seconds) |
| 21:22:01 | × | NieDzejkob quits (~quassel@195.149.98.3) (Ping timeout: 265 seconds) |
| 21:22:02 | × | fjmorazan quits (~quassel@user/fjmorazan) (Ping timeout: 265 seconds) |
| 21:22:02 | × | bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (Ping timeout: 265 seconds) |
| 21:22:02 | × | Aleksejs quits (~Aleksejs@haskell.lv) (Ping timeout: 265 seconds) |
| 21:22:02 | × | Unode quits (~Unode@194.94.44.220) (Ping timeout: 265 seconds) |
| 21:22:02 | × | pie_bnc quits (~pie_bnc@user/pie/x-2818909) (Ping timeout: 265 seconds) |
| 21:22:02 | × | amir quits (sid22336@user/amir) (Ping timeout: 265 seconds) |
| 21:22:02 | × | c_wraith quits (~c_wraith@adjoint.us) (Ping timeout: 265 seconds) |
| 21:22:02 | × | agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Ping timeout: 265 seconds) |
| 21:22:02 | × | dexterfoo quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 265 seconds) |
| 21:22:02 | × | kaychaks_ quits (sid236345@id-236345.brockwell.irccloud.com) (Ping timeout: 265 seconds) |
| 21:22:02 | Unode_ | is now known as Unode |
| 21:22:04 | × | incertia quits (~incertia@d4-50-26-103.nap.wideopenwest.com) (Ping timeout: 265 seconds) |
| 21:22:04 | × | lisq quits (~quassel@lis.moe) (Ping timeout: 265 seconds) |
| 21:22:04 | × | bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Ping timeout: 265 seconds) |
| 21:22:04 | × | ski quits (~ski@ed-3358-10.studat.chalmers.se) (Ping timeout: 265 seconds) |
| 21:22:04 | × | peutri quits (~peutri@ns317027.ip-94-23-46.eu) (Ping timeout: 265 seconds) |
| 21:22:04 | × | T_S_ quits (sid501726@id-501726.highgate.irccloud.com) (Ping timeout: 265 seconds) |
| 21:22:04 | × | integral quits (sid296274@user/integral) (Ping timeout: 265 seconds) |
| 21:22:06 | → | pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-57-65-92-163-194.dsl.bell.ca) |
| 21:22:06 | → | fjmorazan_ joins (~quassel@user/fjmorazan) |
| 21:22:23 | → | ski joins (~ski@ed-3358-10.studat.chalmers.se) |
| 21:22:30 | × | Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Killed (NickServ (GHOST command used by Tuplanolla1))) |
| 21:22:33 | → | kaychaks_ joins (sid236345@brockwell.irccloud.com) |
| 21:22:33 | Tuplanolla1 | is now known as Tuplanolla |
| 21:22:33 | → | amir joins (sid22336@user/amir) |
| 21:22:42 | × | abrar quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 265 seconds) |
| 21:22:42 | × | adamse quits (sid72084@user/adamse) (Ping timeout: 265 seconds) |
| 21:22:44 | → | dexterfoo joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec) |
| 21:22:45 | → | cheater1__ joins (~Username@user/cheater) |
| 21:22:50 | → | abrar_ joins (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) |
| 21:22:51 | → | peutri joins (~peutri@ns317027.ip-94-23-46.eu) |
| 21:23:00 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 21:23:02 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 21:23:08 | × | Natch quits (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) (Ping timeout: 265 seconds) |
| 21:23:08 | × | pieguy128_ quits (~pieguy128@bas1-montreal02-65-92-163-194.dsl.bell.ca) (Ping timeout: 265 seconds) |
| 21:23:31 | → | T_S_ joins (sid501726@id-501726.highgate.irccloud.com) |
| 21:23:34 | → | integral joins (sid296274@user/integral) |
| 21:23:38 | → | Patternm1ster joins (~georg@li1192-118.members.linode.com) |
| 21:23:40 | → | Ekho- joins (~Ekho@user/ekho) |
| 21:23:42 | → | agander_m joins (sid407952@id-407952.tinside.irccloud.com) |
| 21:23:44 | → | adamse joins (sid72084@user/adamse) |
| 21:23:49 | × | remexre quits (~nathan@user/remexre) (Remote host closed the connection) |
| 21:24:04 | → | remexre joins (~nathan@user/remexre) |
| 21:24:10 | meridion_ | is now known as meridion |
| 21:24:22 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 21:24:23 | → | bbhoss joins (sid18216@id-18216.tinside.irccloud.com) |
| 21:24:48 | → | jackhill joins (~jackhill@kalessin.dragonsnail.net) |
| 21:24:53 | × | zaquest_ quits (~notzaques@5.128.210.178) (*.net *.split) |
| 21:24:53 | × | xlei_ quits (znc@pool-68-129-84-118.nycmny.fios.verizon.net) (*.net *.split) |
| 21:24:53 | × | GIANTWORLDKEEPR_ quits (~pjetcetal@2.95.204.25) (*.net *.split) |
| 21:24:53 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (*.net *.split) |
| 21:24:53 | × | nshepperd29 quits (~nshepperd@li364-218.members.linode.com) (*.net *.split) |
| 21:24:53 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (*.net *.split) |
| 21:24:53 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (*.net *.split) |
| 21:24:53 | × | saolof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (*.net *.split) |
| 21:24:53 | × | stefan-_ quits (~cri@42dots.de) (*.net *.split) |
| 21:24:53 | × | poljar_ quits (~poljar@93-139-36-109.adsl.net.t-com.hr) (*.net *.split) |
| 21:24:53 | × | chaosite_ quits (~chaosite@user/chaosite) (*.net *.split) |
| 21:24:53 | × | xsarnik quits (xsarnik@lounge.fi.muni.cz) (*.net *.split) |
| 21:24:53 | × | asm quits (~alexander@burner.asm89.io) (*.net *.split) |
| 21:24:53 | × | sander quits (~sander@user/sander) (*.net *.split) |
| 21:24:53 | × | awth13 quits (~user@user/awth13) (*.net *.split) |
| 21:24:53 | × | benin036 quits (~benin@183.82.205.8) (*.net *.split) |
| 21:24:53 | × | Techcable quits (~Techcable@168.235.93.147) (*.net *.split) |
| 21:24:53 | × | justBull quits (~justache@user/justache) (*.net *.split) |
| 21:24:53 | × | cheater quits (~Username@user/cheater) (*.net *.split) |
| 21:24:53 | × | pkkm quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (*.net *.split) |
| 21:24:53 | × | thelounge923 quits (~thelounge@cpe-23-240-28-18.socal.res.rr.com) (*.net *.split) |
| 21:24:53 | × | teaSlurp_ quits (~chris@81.96.113.213) (*.net *.split) |
| 21:24:53 | × | beka_ quits (~beka@104-244-27-23.static.monkeybrains.net) (*.net *.split) |
| 21:24:53 | × | xsperry quits (~as@user/xsperry) (*.net *.split) |
| 21:24:53 | × | Sgeo quits (~Sgeo@user/sgeo) (*.net *.split) |
| 21:24:53 | × | tv quits (~tv@user/tv) (*.net *.split) |
| 21:24:53 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (*.net *.split) |
| 21:24:54 | Lord_of_Life_ | is now known as Lord_of_Life |
| 21:24:55 | sndr | is now known as sander |
| 21:24:55 | benin0362 | is now known as benin036 |
| 21:24:55 | xsarnik3 | is now known as xsarnik |
| 21:24:57 | cheater1__ | is now known as cheater |
| 21:25:02 | → | stefan-__ joins (~cri@42dots.de) |
| 21:25:21 | × | Pent quits (sid313808@id-313808.tooting.irccloud.com) (Ping timeout: 265 seconds) |
| 21:25:21 | × | tureba quits (tureba@tureba.org) (Ping timeout: 265 seconds) |
| 21:25:27 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 21:25:34 | → | c_wraith joins (~c_wraith@adjoint.us) |
| 21:25:37 | → | justBull7 joins (~justache@user/justache) |
| 21:25:49 | × | V quits (~v@anomalous.eu) (Ping timeout: 265 seconds) |
| 21:25:49 | × | Patternmaster quits (~georg@li1192-118.members.linode.com) (Ping timeout: 265 seconds) |
| 21:26:00 | → | tv joins (~tv@user/tv) |
| 21:26:18 | → | zaquest_ joins (~notzaques@5.128.210.178) |
| 21:26:23 | → | incertia joins (~incertia@d4-50-26-103.nap.wideopenwest.com) |
| 21:26:25 | lisk1n | is now known as liskin |
| 21:26:26 | slowButP1esent | is now known as slowButPresent |
| 21:26:36 | → | V joins (~v@anomalous.eu) |
| 21:26:36 | → | Pent joins (sid313808@id-313808.tooting.irccloud.com) |
| 21:27:27 | → | xlei joins (znc@pool-68-129-84-118.nycmny.fios.verizon.net) |
| 21:27:40 | wroathe_ | is now known as wroathe |
| 21:27:44 | → | vicfred joins (~vicfred@user/vicfred) |
| 21:27:46 | → | tureba joins (~tureba@tureba.org) |
| 21:27:52 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:28:15 | → | Natch joins (~natch@c-e070e255.014-297-73746f25.bbcust.telenor.se) |
| 21:28:53 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 21:29:17 | → | xsperry joins (~as@user/xsperry) |
| 21:30:10 | × | Megant quits (megant@user/megant) (Ping timeout: 265 seconds) |
| 21:30:34 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Changing host) |
| 21:30:34 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 21:30:39 | → | Megant joins (megant@user/megant) |
| 21:30:53 | → | GIANTWORLDKEEPR_ joins (~pjetcetal@2.95.204.25) |
| 21:35:05 | → | Bartosz joins (~textual@104.192.206.22) |
| 21:35:15 | → | sm2n joins (~sm2n@user/sm2n) |
| 21:36:05 | justBull7 | is now known as justBull |
| 21:36:35 | → | blackbar1 joins (~sv@pool-173-63-177-191.nwrknj.fios.verizon.net) |
| 21:36:43 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:37:12 | × | haskl quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Remote host closed the connection) |
| 21:37:16 | → | haskller joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) |
| 21:37:20 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:b19b:35e2:2fd0:444d) (Quit: Leaving) |
| 21:37:42 | → | superbil joins (~superbil@1-34-176-171.HINET-IP.hinet.net) |
| 21:37:53 | → | bjfs joins (bart@kobayashi.com.pl) |
| 21:38:22 | barrucad1 | is now known as barrucadu |
| 21:38:24 | × | zfnmxt quits (~zfnmxt@user/zfnmxt) (Quit: Bye!) |
| 21:41:55 | × | azeem quits (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 21:43:31 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 21:44:35 | × | fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Remote host closed the connection) |
| 21:47:59 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 21:50:43 | × | bfrk quits (~bfrk@200116b845b21700ca15fbad8d1b9d07.dip.versatel-1u1.de) (Ping timeout: 244 seconds) |
| 21:51:19 | forell_ | is now known as forell |
| 21:53:07 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 21:53:57 | × | chaosite quits (~chaosite@user/chaosite) (Ping timeout: 272 seconds) |
| 21:54:48 | × | Bartosz quits (~textual@104.192.206.22) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 21:54:52 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
| 21:57:07 | × | superbil quits (~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 244 seconds) |
| 21:57:20 | → | warnz joins (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) |
| 21:58:23 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 21:59:22 | → | chaosite joins (~chaosite@user/chaosite) |
| 22:00:29 | → | MQ-17J joins (~MQ-17J@d14-69-206-129.try.wideopenwest.com) |
| 22:00:40 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:01:30 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 268 seconds) |
| 22:02:11 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 22:02:24 | <blackbar1> | Does anyone know of a haskell library that could do something like this (from BOSL2 library for OpenSCAD) https://github.com/revarbat/BOSL2/wiki/walls.scad#module-sparse_strut ? |
| 22:02:43 | → | azeem joins (~azeem@dynamic-adsl-78-13-238-239.clienti.tiscali.it) |
| 22:03:05 | × | ddellaco_ quits (~ddellacos@89.45.224.243) (Remote host closed the connection) |
| 22:03:34 | → | ddellacosta joins (~ddellacos@89.45.224.243) |
| 22:04:21 | × | chaosite quits (~chaosite@user/chaosite) (Ping timeout: 244 seconds) |
| 22:05:04 | → | chaosite joins (~chaosite@user/chaosite) |
| 22:05:37 | → | bontaq joins (~user@ool-18e47f8d.dyn.optonline.net) |
| 22:06:26 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
| 22:06:52 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:07:50 | × | ddellacosta quits (~ddellacos@89.45.224.243) (Ping timeout: 245 seconds) |
| 22:09:44 | × | chaosite quits (~chaosite@user/chaosite) (Ping timeout: 272 seconds) |
| 22:11:05 | × | ajarmst` quits (~user@S01066032b134d205.ed.shawcable.net) (Remote host closed the connection) |
| 22:12:04 | → | taeaad joins (~taeaad@user/taeaad) |
| 22:22:29 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 22:24:07 | → | superbil joins (~superbil@1-34-176-171.HINET-IP.hinet.net) |
| 22:24:13 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:27:54 | × | haskller quits (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) (Ping timeout: 264 seconds) |
| 22:29:03 | <DigitalKiwi> | https://github.com/Haskell-Things/ImplicitCAD |
| 22:29:38 | <DigitalKiwi> | idk if it can do what you want but that's the only haskell openscad library i know of |
| 22:30:46 | → | haskller joins (~haskeller@2601:643:897f:561d:f1b9:73f1:b827:9693) |
| 22:31:02 | × | beka__ quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 252 seconds) |
| 22:31:21 | <DigitalKiwi> | davean: who's hpc? |
| 22:31:32 | → | zfnmxt joins (~zfnmxtzfn@user/zfnmxt) |
| 22:31:57 | × | benin036 quits (~benin@183.82.205.8) (Ping timeout: 272 seconds) |
| 22:32:41 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Ping timeout: 252 seconds) |
| 22:34:29 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 22:35:28 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 22:36:27 | × | russruss quits (~russruss@my.russellmcc.com) (Quit: The Lounge - https://thelounge.chat) |
| 22:37:48 | → | beka__ joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 22:38:37 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net) |
| 22:38:49 | × | jrm quits (~jrm@156.34.187.65) (Quit: ciao) |
| 22:39:10 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 22:39:35 | × | aplainzetakind quits (~johndoe@captainludd.powered.by.lunarbnc.net) (Client Quit) |
| 22:39:57 | → | aplainzetakind joins (~johndoe@captainludd.powered.by.lunarbnc.net) |
| 22:39:58 | → | jrm joins (~jrm@156.34.187.65) |
| 22:40:20 | → | teaSlurper joins (~chris@81.96.113.213) |
| 22:40:56 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 22:43:08 | × | jrm quits (~jrm@156.34.187.65) (Client Quit) |
| 22:43:33 | → | jrm joins (~jrm@156.34.187.65) |
| 22:45:17 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds) |
| 22:46:13 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 22:49:30 | → | Jeanne-Kamikaze joins (~Jeanne-Ka@192.252.212.54) |
| 22:52:34 | × | warnz quits (~warnz@2600:1700:77c0:5610:210a:ba95:5325:60a6) (Remote host closed the connection) |
| 22:52:57 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds) |
| 22:57:20 | × | awth13` quits (~user@185.209.196.143) (Quit: ERC (IRC client for Emacs 27.2)) |
| 22:57:39 | → | awth13 joins (~user@185.209.196.143) |
| 22:58:06 | × | awth13 quits (~user@185.209.196.143) (Client Quit) |
| 22:59:57 | → | awth13 joins (~user@user/awth13) |
| 23:02:05 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) (Remote host closed the connection) |
| 23:02:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:4587:6292:4bfd:4d24) |
| 23:05:01 | × | beka__ quits (~beka@104-244-27-23.static.monkeybrains.net) (Ping timeout: 268 seconds) |
| 23:05:24 | → | beka__ joins (~beka@104-244-27-23.static.monkeybrains.net) |
| 23:06:29 | → | dhil joins (~dhil@80.208.56.181) |
| 23:07:27 | × | jrm quits (~jrm@156.34.187.65) (Quit: ciao) |
| 23:07:51 | → | jrm joins (~jrm@156.34.187.65) |
| 23:08:30 | → | teaSlurper joins (~chris@81.96.113.213) |
| 23:17:20 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:19:40 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 23:20:20 | → | iDead joins (~iDead@254.142.71.148.rev.vodafone.pt) |
| 23:20:27 | → | fendor joins (~fendor@77.119.131.227.wireless.dyn.drei.com) |
| 23:20:27 | × | raehik1 quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 23:21:13 | <iDead> | heyyy, anyone up? need some help with point free notation |
| 23:21:38 | <dminuoso> | @pl \x -> (x,) <$> f x |
| 23:21:38 | <lambdabot> | (line 1, column 9): |
| 23:21:38 | <lambdabot> | unexpected "," |
| 23:21:38 | <lambdabot> | expecting letter or digit, variable, "(", operator or ")" |
| 23:21:39 | <geekosaur> | there's probably a few people here, and there's lambdabot |
| 23:22:02 | × | tremon_ quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 23:22:29 | <DigitalKiwi> | i'm only good at pointless conversation ;( |
| 23:22:36 | <geekosaur> | preferably without things it doesn't parse like tuple sections |
| 23:23:15 | × | jakesyl quits (sid56879@id-56879.stonehaven.irccloud.com) (Ping timeout: 272 seconds) |
| 23:23:48 | <Clint> | you'd think it would have spontaneously learned by now |
| 23:24:03 | <iDead> | ;) i'm working on mutual recursion and catamorphism's* (pardon my french but i'm not native) |
| 23:25:12 | → | jakesyl joins (sid56879@id-56879.stonehaven.irccloud.com) |
| 23:25:56 | <iDead> | can someone help me find a point free notation for the average of a list? |
| 23:26:01 | <DigitalKiwi> | Clint: it took me a minute to realize you meant lambdabot and not me ;( |
| 23:27:18 | <DigitalKiwi> | http://pointfree.io/ does your function fit in the box |
| 23:27:57 | <iDead> | DigitalKiwi very much appreciated :) |
| 23:29:23 | <Clint> | DigitalKiwi: ha |
| 23:29:53 | × | pkkm2 quits (~pkkm@dgs4.neoplus.adsl.tpnet.pl) (Ping timeout: 252 seconds) |
| 23:30:07 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 23:32:23 | <monochrom> | Summing is a catamorphism. Finding length is also a catamorphism. You can also do both at once, computing the tuple (sum, length) is also a catamorphism. These are all good exercises. |
| 23:32:39 | <monochrom> | But I doubt that making them pointfree is a good exercise. |
| 23:34:15 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 244 seconds) |
| 23:34:22 | <zfnmxt> | DigitalKiwi: Do you have any restrictions/allowences aside from just "pointfree"? |
| 23:35:25 | × | kayprish quits (~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Ping timeout: 272 seconds) |
| 23:35:32 | <DigitalKiwi> | i'm not supposed to be fed after midnight |
| 23:36:05 | <zfnmxt> | Oh, sorry. Wrong person. :) |
| 23:36:21 | <zfnmxt> | DigitalKiwi: (if I feed you will you forgive me?) |
| 23:37:03 | <DigitalKiwi> | absolutely |
| 23:37:14 | <monochrom> | They say no water too, but now I wonder about wine, whiskey, rubbing alcohol. >:) |
| 23:37:22 | hpc_ | is now known as hpc |
| 23:37:31 | fjmorazan_ | is now known as fjmorazan |
| 23:37:49 | <Clint> | ammonia |
| 23:38:02 | <DigitalKiwi> | doc said i need to cut back on my rubbing alcohol consumption |
| 23:38:18 | <monochrom> | :) |
| 23:38:47 | × | hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Read error: Connection reset by peer) |
| 23:40:04 | → | hemlock joins (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) |
| 23:40:14 | <monochrom> | I just notice that the topic includes "#matrix bridge should be coming soon". Is it outdated? Maybe I should delete that part. |
| 23:40:30 | <geekosaur> | I think it's still technically in testing? |
| 23:40:34 | <zfnmxt> | I'm using the bridge right now. |
| 23:41:06 | <geekosaur> | it can lag a bit still |
| 23:41:52 | <monochrom> | There ar a lot of "formally still in beta" out there that are, like, tenured beta, so it's as permanent and final as you could get. |
| 23:42:23 | <monochrom> | And it is not like one day they will simply declare "the test has failed, goodbye". |
| 23:43:58 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 23:44:14 | <Clint> | unless it's google |
| 23:44:42 | × | hemlock quits (~hemlock@2600:8804:4c0a:3200:91a4:77db:aed9:3c83) (Ping timeout: 264 seconds) |
| 23:44:49 | <monochrom> | And a lot of standard Haskell packages have "stability: experiment" to this date, for example mtl |
| 23:44:59 | → | hemlock joins (~hemlock@2607:fb90:9618:4bab:bc7a:b402:9e43:cf55) |
| 23:45:12 | → | fizbin joins (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) |
| 23:45:17 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 23:45:44 | <hpc> | stability should just be (version < 1.0.0.0) |
| 23:45:48 | geekosaur | shrugs |
| 23:46:03 | ChanServ | sets mode +o geekosaur |
| 23:46:14 | geekosaur | sets topic to "https://www.reddit.com/r/haskell | Admin: #haskell-ops | Offtopic: #haskell-offtopic | https://downloads.haskell.org | Paste code/errors: https://paste.tomsmeding.com | tunes.org-style logging should be coming soon | Logs: https://ircbrowse.tomsmeding.com/browse/lchaskell" |
| 23:46:18 | <monochrom> | Thanks. |
| 23:46:48 | <dminuoso> | monochrom: Does the stability matter at all? As long as the field has no (de-facto) standardized meaning/patterns of values, it's useless anyhow,. |
| 23:46:53 | <geekosaur> | I wonder about the rest of that because tunes.org was already down (people reporting it requested username/password) while we were still on Freenode |
| 23:47:02 | → | flounders joins (~flounders@173.246.200.33) |
| 23:47:30 | <dminuoso> | Like if I wrote "stable" you would have no way of understanding what that even meant. |
| 23:47:42 | geekosaur | sets mode -o geekosaur |
| 23:47:53 | → | dhil joins (~dhil@195.213.192.47) |
| 23:47:55 | <monochrom> | Yeah I wouldn't touch the tunes.org log part, I know nothing about it. |
| 23:47:56 | <dminuoso> | (Id argue that stability should be removed for that reason alone) |
| 23:47:57 | <DigitalKiwi> | some of my most reliable/well tested software never left "alpha" lol |
| 23:48:29 | <geekosaur> | "there is nothing so permanent as a quick hack" |
| 23:48:57 | <dminuoso> | Yup, we say this a lot at $work |
| 23:49:14 | × | fizbin quits (~fizbin@2601:8a:4080:1280:3d39:470:d12f:3be6) (Ping timeout: 244 seconds) |
| 23:49:18 | <DigitalKiwi> | https://github.com/Kiwi/clyde#readme |
| 23:49:27 | <monochrom> | dminuoso: So I think the stability field was invented before PVP. And in a time when people still hoped that stable API could be attained over time. |
| 23:49:30 | × | hemlock quits (~hemlock@2607:fb90:9618:4bab:bc7a:b402:9e43:cf55) (Ping timeout: 264 seconds) |
| 23:49:52 | <dminuoso> | Does PVP invalidate stability? |
| 23:50:10 | <dminuoso> | PVP does not prevent you from bumping a major version every day.. |
| 23:50:14 | <geekosaur> | it was also borrowed from other package repositories which hadn't yet concluded that "stable" meant "dead" |
| 23:50:25 | <monochrom> | PVP solves the stability question. |
| 23:50:31 | → | ddellacosta joins (~ddellacos@86.106.121.230) |
| 23:50:34 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 23:50:47 | <monochrom> | Every x.y.*.* is stable. |
| 23:50:50 | <hpc> | every version is stable because package uploads are immutable, and you set upper bounds on dependencies right? |
| 23:51:01 | → | hemlock joins (~hemlock@ip72-203-188-10.tu.ok.cox.net) |
| 23:51:17 | <monochrom> | PVP acknoledges the reality that, in general, you have multiple stable states, not just one single stable state. |
| 23:51:25 | <monochrom> | Yes hpc. |
| 23:51:40 | <hpc> | oh, that was "right?" as in "wink wink nudge nudge" |
| 23:51:45 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 272 seconds) |
| 23:51:47 | <hpc> | :P |
| 23:51:53 | <monochrom> | Ah OK, yes I agree :) |
| 23:52:10 | <dminuoso> | hpc: But package metadata can be changed after the fact, no? |
| 23:52:40 | <monochrom> | Just because you have published both 3.2.0.0 and 3.4.0.0 doesn't mean that anything is unstable. |
| 23:53:17 | <monochrom> | But a single field "data Stable = Experimental | Stable | IDon'tKnow" is not going to cut it. |
| 23:53:22 | <hpc> | dminuoso: my understanding is that feature doesn't get used very often |
| 23:53:24 | <dminuoso> | monochrom: All Im saying is, the term "stability" might have different meaning to some people. I would understand stability as a general goal of "when we make modifications to this package, we strive to not break API" |
| 23:53:38 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 23:53:39 | <dminuoso> | (in the sense of, "stable means the author tries to only release patch updates) |
| 23:53:59 | <hpc> | and only to fix when the metadata is truly bad |
| 23:54:05 | <monochrom> | Hrm, OK, interesting. |
| 23:54:11 | <hpc> | like putting breaking changes in a patch release by mistake |
| 23:54:43 | <DigitalKiwi> | fun fact; one of the biggest reasons i gave up on clyde was because libalpm was NOT stable |
| 23:54:58 | × | ddellacosta quits (~ddellacos@86.106.121.230) (Ping timeout: 268 seconds) |
| 23:55:01 | × | awth13 quits (~user@user/awth13) (Read error: Connection reset by peer) |
| 23:55:17 | <DigitalKiwi> | (on an ABI level) |
| 23:57:05 | <hpc> | it has a TODO note in the manpage synopsis |
| 23:57:29 | <DigitalKiwi> | pacman had far more (active, skilled) developers/contributors i just couldn't keep up with all of their changes ;( |
| 23:57:33 | <hpc> | that package might as well say "dead dove, do not eat" :P |
| 23:57:56 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@192.252.212.54) (Ping timeout: 252 seconds) |
All times are in UTC on 2021-06-13.