Logs on 2022-08-01 (liberachat/#haskell)
| 00:01:50 | × | haritz quits (~hrtz@user/haritz) (Quit: ZNC 1.8.2+deb2 - https://znc.in) |
| 00:01:52 | <pavonia> | Yeah, good point |
| 00:02:32 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
| 00:02:42 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 00:03:18 | <Axman6> | and if you know the numbers will always be larger than an Int, then you could use its underlying BigNat https://hackage.haskell.org/package/integer-gmp-1.0.3.0/docs/GHC-Integer-GMP-Internals.html#t:BigNat |
| 00:04:38 | <Axman6> | hmm, perhaps not, there's no Num instance, which is probably sensible |
| 00:07:05 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 00:08:09 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 00:08:29 | → | haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 00:08:29 | × | haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 00:08:29 | → | haritz joins (~hrtz@user/haritz) |
| 00:14:37 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 00:18:50 | × | stilgart quits (~Christoph@chezlefab.net) (Remote host closed the connection) |
| 00:24:42 | <EvanR> | Natural hypothetically is optimized for positive only or that's actually a thing? |
| 00:26:03 | <Axman6> | Integer is basically Natural + sign, so every Integer operation needs to branch on sign. it's not a huge cost but if it's unnecessary you might as well avoid it |
| 00:26:44 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 00:26:52 | × | Jeanne-Kamikaze quits (~Jeanne-Ka@142.147.89.203) (Quit: Leaving) |
| 00:28:00 | <hpc> | is that what libgmp does? |
| 00:28:07 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 00:28:19 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 00:29:39 | <Axman6> | actually that's a good point, I can't remember what happens when using GHP |
| 00:29:41 | <Axman6> | GMP* |
| 00:30:08 | <hpc> | hmm, seems to be that's what it does |
| 00:30:11 | <hpc> | https://github.com/sethtroisi/libgmp/blob/master/mpz/aors_ui.h |
| 00:30:37 | <hpc> | except not quite branching on sign, but (x + y) branches on if x and y are the same sign or different signs |
| 00:31:16 | <hpc> | also a bunch of checks for if it has to grow the integer's memory |
| 00:31:48 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 00:31:54 | <Axman6> | I wish we had mutable Integers, the algorithm pavonia is working on could very easily reuse storage |
| 00:35:42 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 00:39:56 | <EvanR> | IOInteger, STInteger xD |
| 00:40:15 | <EvanR> | LinearInteger |
| 00:40:21 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 00:41:21 | <monochrom> | Uh then you will also need LinearNatural... |
| 00:43:31 | <hpc> | we need a type system that's like that new state of matter they made last week, with two time dimensions |
| 00:43:38 | <hpc> | we can call it euclidean types instead of linear types |
| 00:44:07 | <hpc> | useful applications to be determined later :D |
| 00:44:09 | <monochrom> | >_< |
| 00:45:30 | <hpc> | actually hmm... would that be useful in some way? |
| 00:45:43 | <EvanR> | instead of time crystals it'll be type crystals? |
| 00:47:02 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:50:15 | <pavonia> | Axman6: What algorithm am I working on? :p |
| 00:58:12 | <Axman6> | well you were wortking on fermat factorisation |
| 00:59:19 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 01:02:07 | × | xff0x quits (~xff0x@ap007189.d.east.v6connect.net) (Ping timeout: 245 seconds) |
| 01:02:42 | <pavonia> | Ah right, but I moved forward to Lehman's optimization, and now I'm looking at Shank's algorithm |
| 01:04:04 | <pavonia> | Also I read through the paper for fast square root finding, but it seems to be a bit to compilcated |
| 01:05:52 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 01:06:00 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 01:06:20 | → | califax joins (~califax@user/califx) |
| 01:06:28 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 01:07:12 | → | Batzy_ joins (~quassel@user/batzy) |
| 01:07:37 | × | Batzy_ quits (~quassel@user/batzy) (Client Quit) |
| 01:08:08 | → | Batzy joins (~quassel@user/batzy) |
| 01:10:52 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 01:17:07 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 01:18:13 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 244 seconds) |
| 01:24:19 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 01:24:25 | ← | Guest3 parts (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) () |
| 01:30:39 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 01:31:08 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 01:31:46 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 01:31:54 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 01:32:23 | → | noteness joins (~noteness@user/noteness) |
| 01:32:37 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 01:38:36 | × | sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 268 seconds) |
| 01:38:48 | <mon_aaraj> | so I have something like this: ``[ max (show x) (y <> z) | x <- [1..100] | y <- cycle ["","","Fizz"] | z <- cycle ["","","","","Buzz"] ]`` any idea how i'd only specify `cycle` once for both of the lists to cycle? It reminds me of the ``on`` function, but this isn't a zip, this is only a list comprehension |
| 01:40:34 | → | xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 01:42:47 | × | ystael quits (~ystael@user/ystael) (Ping timeout: 252 seconds) |
| 01:43:25 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 01:46:19 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 01:46:26 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host) |
| 01:46:26 | → | Guest3 joins (~textual@user/polo) |
| 01:47:35 | × | Guest3 quits (~textual@user/polo) (Client Quit) |
| 01:47:51 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 01:50:26 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host) |
| 01:50:26 | → | Guest3 joins (~textual@user/polo) |
| 01:50:27 | Guest3 | is now known as Polo |
| 01:58:08 | <[Leary]> | mon_aaraj: Looks like a zip to me: (zipWith3 (\x y z -> ...) [1..100] `on` cycle) [...] [...] |
| 01:58:44 | <mon_aaraj> | yep, i had that, though it was longer.. this is sort of a golf |
| 01:59:57 | <mon_aaraj> | i suppose i just need a readable way to shorten ``\x y z -> max (show x) (y <> z)`` |
| 02:02:55 | × | lemonsni- quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:04:44 | <mon_aaraj> | maybe the `cycle` with the lists empty strings are also long, but i think i might know a way to get it shorter |
| 02:06:41 | × | Dashkal quits (~dashkal@user/dashkal) (Ping timeout: 255 seconds) |
| 02:12:58 | → | mokee joins (~mokee@37.228.215.83) |
| 02:20:12 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:22:43 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:22:43 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:22:43 | finn_elija | is now known as FinnElija |
| 02:23:32 | → | mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) |
| 02:25:39 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 02:28:05 | <Axman6> | yeah I didn't like it much as a paper, I wanted to see code, I have a feeling a lot of the formulae would actually be straight forward code. I hate it when papers which are definitely software related opt to use only maths - it may be universal but it also usually misses the optimisations in the algorithm |
| 02:31:35 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 02:32:38 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 240 seconds) |
| 02:32:47 | × | zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer) |
| 02:33:02 | → | zebrag joins (~chris@user/zebrag) |
| 02:33:12 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:33:32 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 02:35:27 | × | geekosaur quits (~geekosaur@xmonad/geekosaur) (Ping timeout: 245 seconds) |
| 02:37:16 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
| 02:37:32 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
| 02:37:50 | × | Polo quits (~textual@user/polo) (Quit: Textual IRC Client: www.textualapp.com) |
| 02:37:50 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 240 seconds) |
| 02:38:46 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 02:39:57 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 02:40:19 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Changing host) |
| 02:40:19 | → | Guest3 joins (~textual@user/polo) |
| 02:40:25 | Guest3 | is now known as Gambino |
| 02:40:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 02:41:22 | × | Gambino quits (~textual@user/polo) (Client Quit) |
| 02:42:32 | × | td_ quits (~td@94.134.91.252) (Ping timeout: 245 seconds) |
| 02:42:38 | → | geekosaur joins (~geekosaur@xmonad/geekosaur) |
| 02:42:44 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 02:44:18 | → | td_ joins (~td@muedsl-82-207-238-015.citykom.de) |
| 02:44:43 | → | jargon joins (~jargon@184.101.188.251) |
| 02:45:27 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 02:48:41 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 02:53:57 | × | Me-me quits (~me-me@user/me-me) (Remote host closed the connection) |
| 02:54:44 | → | Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net) |
| 02:59:03 | <onosendi> | "Couldn't match type ‘t0 a0 -> Char -> [Char]" - What's the difference between [Char] and Char? |
| 02:59:12 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 02:59:18 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds) |
| 03:00:12 | <mon_aaraj> | ``[Char]`` is a list of ``Char``, ``[Char]`` is just ``String`` |
| 03:00:50 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 260 seconds) |
| 03:00:52 | <mon_aaraj> | huh.. i found this piece of code from 10 years ago: ``[ maybe (show x) id $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]``, and it supposedly worked? it uses monad comprehensions.. I can't figure out how to get it to work though |
| 03:03:42 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 03:03:56 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 03:04:23 | <onosendi> | I just did a fizzbuzz :P |
| 03:04:46 | → | frost joins (~frost@user/frost) |
| 03:05:46 | <pavonia> | > [ maybe (show x) id $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ] |
| 03:05:48 | <lambdabot> | error: |
| 03:05:48 | <lambdabot> | • Couldn't match expected type ‘[[Char]] -> Maybe String’ |
| 03:05:48 | <lambdabot> | with actual type ‘[[Char]]’ |
| 03:05:52 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds) |
| 03:06:36 | <pavonia> | > [ maybe (show x) id $ listToMaybe [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ] |
| 03:06:38 | <lambdabot> | error: |
| 03:06:38 | <lambdabot> | • Couldn't match expected type ‘Maybe [Char]’ |
| 03:06:38 | <lambdabot> | with actual type ‘[[Char]]’ |
| 03:06:49 | <pavonia> | > [ maybe (show x) id $ listToMaybe $ [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ] |
| 03:06:51 | <lambdabot> | ["1","2","fizz","4","buzz","fizz","7","8","fizz","buzz","11","fizz","13","14... |
| 03:16:24 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 03:16:30 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 03:21:35 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 03:29:50 | × | mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 240 seconds) |
| 03:30:43 | → | mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) |
| 03:35:32 | → | frost joins (~frost@user/frost) |
| 03:43:47 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) () |
| 03:50:25 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 03:53:52 | × | lechner quits (lechner@debian/lechner) (Quit: WeeChat 3.5) |
| 03:54:47 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 03:57:12 | × | lbseale quits (~quassel@user/ep1ctetus) (Client Quit) |
| 03:59:11 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 03:59:35 | → | noteness joins (~noteness@user/noteness) |
| 03:59:47 | → | Inst joins (~Inst@2601:6c4:4080:3f80:e980:509e:df5:6868) |
| 04:02:10 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in) |
| 04:02:30 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 04:04:35 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 04:07:03 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 04:07:28 | → | noteness joins (~noteness@user/noteness) |
| 04:10:13 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 04:13:22 | → | Dashkal joins (~dashkal@user/dashkal) |
| 04:17:13 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 04:19:33 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 268 seconds) |
| 04:20:10 | × | Batzy quits (~quassel@user/batzy) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 04:20:27 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 04:20:40 | → | Batzy joins (~quassel@user/batzy) |
| 04:24:51 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 252 seconds) |
| 04:31:12 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 04:32:37 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 04:33:47 | × | mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds) |
| 04:33:47 | × | lbseale quits (~quassel@user/ep1ctetus) (Read error: Connection reset by peer) |
| 04:35:39 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 04:37:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 04:44:07 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 04:49:47 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 04:50:23 | → | vglfr joins (~vglfr@194.9.14.33) |
| 04:51:43 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 04:53:49 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 04:54:09 | → | mbuf joins (~Shakthi@122.165.55.71) |
| 04:54:33 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 04:54:39 | → | vglfr joins (~vglfr@194.9.14.33) |
| 04:58:57 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 252 seconds) |
| 04:59:08 | → | vglfr joins (~vglfr@194.9.14.33) |
| 05:03:25 | <mon_aaraj> | ah, nice! thank you |
| 05:05:48 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 268 seconds) |
| 05:07:04 | → | gmg joins (~user@user/gehmehgeh) |
| 05:10:54 | → | notzmv joins (~zmv@user/notzmv) |
| 05:12:31 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 252 seconds) |
| 05:13:40 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 05:19:15 | → | elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 05:21:07 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 272 seconds) |
| 05:21:07 | elkcl_ | is now known as elkcl |
| 05:23:10 | → | trillp joins (~trillp@69.233.98.238) |
| 05:24:12 | <mon_aaraj> | hmm, though it seems to misbehave a bit. is there a way to make it so that without listToMaybe, ``[ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ]``, would never return a Char? because it seems GHC thinks there's a char here for whatever reason. My guess is because on empty cases, it would return one empty character or some such. |
| 05:24:48 | <mon_aaraj> | fwiw, the piece of code i am trying is ``[ max (show x) $ [ "fizz" | rem x 3 < 1 ] <> [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]`` |
| 05:29:47 | → | acidjnk joins (~acidjnk@p200300d6e705867880cba01054dd5d6a.dip0.t-ipconnect.de) |
| 05:30:05 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 05:31:57 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 05:34:19 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Client Quit) |
| 05:34:50 | → | johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 05:36:06 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 05:36:41 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 05:42:33 | → | elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 05:43:55 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 272 seconds) |
| 05:43:56 | elkcl_ | is now known as elkcl |
| 05:44:12 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 05:49:35 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 268 seconds) |
| 05:50:49 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 268 seconds) |
| 05:52:16 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 05:53:05 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 05:53:25 | → | yin joins (~yin@user/zero) |
| 06:02:45 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 06:02:57 | → | vglfr joins (~vglfr@194.9.14.33) |
| 06:05:49 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 06:10:02 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 06:12:36 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 06:12:53 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 06:15:27 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 06:16:26 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 06:17:40 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 06:22:04 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Read error: Connection reset by peer) |
| 06:22:04 | × | noteness quits (~noteness@user/noteness) (Remote host closed the connection) |
| 06:22:04 | × | califax quits (~califax@user/califx) (Read error: Connection reset by peer) |
| 06:22:04 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 06:22:04 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 06:22:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Read error: Connection reset by peer) |
| 06:22:04 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 06:22:25 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 06:22:45 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 06:22:51 | → | noteness joins (~noteness@user/noteness) |
| 06:22:55 | → | gmg joins (~user@user/gehmehgeh) |
| 06:22:56 | → | califax joins (~califax@user/califx) |
| 06:22:57 | × | mokee quits (~mokee@37.228.215.83) (Ping timeout: 245 seconds) |
| 06:23:03 | × | gmg quits (~user@user/gehmehgeh) (Client Quit) |
| 06:23:21 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 06:23:39 | × | trillp quits (~trillp@69.233.98.238) (Ping timeout: 252 seconds) |
| 06:23:48 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 06:24:56 | → | mokee joins (~mokee@37.228.215.83) |
| 06:26:29 | → | michalz joins (~michalz@185.246.204.97) |
| 06:26:42 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 06:32:32 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 06:32:48 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 06:32:51 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:93dd:6a2f:9b9:59b0) |
| 06:33:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 06:34:07 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 06:36:27 | × | mokee quits (~mokee@37.228.215.83) (Ping timeout: 268 seconds) |
| 06:38:01 | → | mokee joins (~mokee@37.228.215.83) |
| 06:38:27 | × | Digit quits (~user@user/digit) (*.net *.split) |
| 06:38:27 | × | nibelungen quits (~asturias@2001:19f0:7001:638:5400:3ff:fef3:8725) (*.net *.split) |
| 06:38:27 | × | glider quits (~glider@user/glider) (*.net *.split) |
| 06:38:27 | × | CAT_S quits (apic@brezn3.muc.ccc.de) (*.net *.split) |
| 06:38:27 | × | wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (*.net *.split) |
| 06:38:27 | × | jakalx quits (~jakalx@base.jakalx.net) (*.net *.split) |
| 06:38:27 | × | acro quits (~acro@user/acro) (*.net *.split) |
| 06:38:27 | × | nonzen quits (~nonzen@user/nonzen) (*.net *.split) |
| 06:38:27 | × | _\_ quits (~o@user/offon) (*.net *.split) |
| 06:38:27 | × | degraafk quits (sid71464@id-71464.lymington.irccloud.com) (*.net *.split) |
| 06:38:27 | × | glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (*.net *.split) |
| 06:38:27 | × | edwtjo quits (~edwtjo@fsf/member/edwtjo) (*.net *.split) |
| 06:38:27 | × | Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (*.net *.split) |
| 06:38:27 | × | sooch_ quits (sid533113@id-533113.hampstead.irccloud.com) (*.net *.split) |
| 06:38:27 | × | xnbya quits (~xnbya@2a01:4f8:c17:cbdd::1) (*.net *.split) |
| 06:38:27 | × | laman quits (~laman@rego.ai) (*.net *.split) |
| 06:38:27 | × | dispater quits (~dispater@user/brprice) (*.net *.split) |
| 06:38:27 | × | siers quits (~ij@user/ij) (*.net *.split) |
| 06:38:27 | × | Unhammer quits (~Unhammer@user/unhammer) (*.net *.split) |
| 06:38:27 | × | mvanderhallen[m] quits (~mvanderha@2001:470:69fc:105::2:3a88) (*.net *.split) |
| 06:38:27 | × | Teacup quits (~teacup@user/teacup) (*.net *.split) |
| 06:38:27 | × | mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (*.net *.split) |
| 06:38:27 | × | welterde quits (welterde@thinkbase.srv.welterde.de) (*.net *.split) |
| 06:38:27 | × | Guest585 quits (~mike@2406:d501::79ae:5f3e) (*.net *.split) |
| 06:38:27 | × | krjst quits (~krjst@2604:a880:800:c1::16b:8001) (*.net *.split) |
| 06:38:27 | × | nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (*.net *.split) |
| 06:38:27 | × | berberman quits (~berberman@user/berberman) (*.net *.split) |
| 06:38:27 | × | arkeet quits (arkeet@moriya.ca) (*.net *.split) |
| 06:38:27 | × | rodental quits (~rodental@38.146.5.222) (Remote host closed the connection) |
| 06:38:34 | → | xnbya joins (~xnbya@2a01:4f8:c17:cbdd::1) |
| 06:38:37 | → | arkeet joins (arkeet@moriya.ca) |
| 06:38:38 | → | sooch_ joins (sid533113@id-533113.hampstead.irccloud.com) |
| 06:38:38 | → | glowcoil joins (sid3405@id-3405.tinside.irccloud.com) |
| 06:38:38 | → | CAT_S joins (apic@brezn3.muc.ccc.de) |
| 06:38:39 | → | degraafk joins (sid71464@id-71464.lymington.irccloud.com) |
| 06:38:41 | → | Noinia joins (~Frank@77-162-168-71.fixed.kpn.net) |
| 06:38:44 | → | Teacup joins (~teacup@user/teacup) |
| 06:38:44 | → | wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de) |
| 06:38:45 | → | edwtjo joins (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) |
| 06:38:59 | → | Unhammer joins (~Unhammer@2a01:799:61:c500::237) |
| 06:38:59 | → | nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
| 06:39:01 | × | edwtjo quits (~edwtjo@h-109-228-137-133.A213.priv.bahnhof.se) (Changing host) |
| 06:39:01 | → | edwtjo joins (~edwtjo@fsf/member/edwtjo) |
| 06:39:02 | → | Guest585 joins (~mike@2406:d501::79ae:5f3e) |
| 06:39:07 | → | nibelungen joins (~asturias@2001:19f0:7001:638:5400:3ff:fef3:8725) |
| 06:39:07 | → | laman joins (~laman@rego.ai) |
| 06:39:10 | × | Unhammer quits (~Unhammer@2a01:799:61:c500::237) (Signing in (Unhammer)) |
| 06:39:10 | → | Unhammer joins (~Unhammer@user/unhammer) |
| 06:39:11 | × | Guest585 quits (~mike@2406:d501::79ae:5f3e) (Signing in (Guest585)) |
| 06:39:11 | → | Guest585 joins (~mike@user/feetwind) |
| 06:39:15 | → | dispater joins (~dispater@user/brprice) |
| 06:39:21 | → | welterde joins (welterde@thinkbase.srv.welterde.de) |
| 06:39:29 | → | _\_ joins (~o@user/offon) |
| 06:39:29 | → | acro joins (~acro@user/acro) |
| 06:39:30 | → | siers joins (~ij@user/ij) |
| 06:39:32 | → | mrkajetanp joins (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) |
| 06:39:32 | → | nonzen joins (~nonzen@user/nonzen) |
| 06:39:34 | → | berberman joins (~berberman@user/berberman) |
| 06:39:46 | → | glider joins (~glider@user/glider) |
| 06:40:31 | → | krjst joins (~krjst@2604:a880:800:c1::16b:8001) |
| 06:41:59 | → | Digit joins (~user@user/digit) |
| 06:41:59 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 06:42:18 | × | acidjnk quits (~acidjnk@p200300d6e705867880cba01054dd5d6a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 06:42:34 | × | nshepperd quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Client Quit) |
| 06:42:42 | → | nshepperd joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) |
| 06:43:07 | → | mvanderhallen[m] joins (~mvanderha@2001:470:69fc:105::2:3a88) |
| 06:43:34 | → | vglfr joins (~vglfr@194.9.14.33) |
| 06:47:57 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 06:48:26 | → | vglfr joins (~vglfr@194.9.14.33) |
| 06:50:55 | → | ccntrq joins (~Thunderbi@exit-3.office.han.de.mhd.medondo.com) |
| 06:50:57 | × | goran[m] quits (~goranoour@2001:470:69fc:105::2:1b44) (*.net *.split) |
| 06:50:57 | × | bjobjo quits (~bjobjo@user/bjobjo) (*.net *.split) |
| 06:50:57 | × | even4void[m] quits (~even4void@2001:470:69fc:105::2:4b9c) (*.net *.split) |
| 06:50:57 | × | entheogenesis[m] quits (~entheogen@2001:470:69fc:105::1:e7c4) (*.net *.split) |
| 06:50:57 | × | Yumemi quits (~Yumemi@chamoin.net) (*.net *.split) |
| 06:50:57 | × | dragestil quits (~znc@user/dragestil) (*.net *.split) |
| 06:50:57 | × | hongminhee quits (sid295@id-295.tinside.irccloud.com) (*.net *.split) |
| 06:50:57 | × | megeve quits (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split) |
| 06:50:57 | × | sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (*.net *.split) |
| 06:50:57 | × | scav quits (sid309693@user/scav) (*.net *.split) |
| 06:50:57 | × | nrr____ quits (sid20938@id-20938.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | jocke-l quits (jocke-l@a.x0.is) (*.net *.split) |
| 06:50:57 | × | nisstyre quits (wes@user/nisstyre) (*.net *.split) |
| 06:50:57 | × | liskin quits (~liskin@xmonad/liskin) (*.net *.split) |
| 06:50:57 | × | eternalforms quits (~obsrwr@46.101.168.131) (*.net *.split) |
| 06:50:57 | × | df quits (~ben@justworks.xyz) (*.net *.split) |
| 06:50:57 | × | sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (*.net *.split) |
| 06:50:57 | × | ysh_ quits (sid6017@id-6017.ilkley.irccloud.com) (*.net *.split) |
| 06:50:57 | × | macabre quits (~m@161.35.15.236) (*.net *.split) |
| 06:50:57 | × | tolt quits (~weechat-h@li219-154.members.linode.com) (*.net *.split) |
| 06:50:57 | × | jamestmartin quits (~james@jtmar.me) (*.net *.split) |
| 06:50:57 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (*.net *.split) |
| 06:50:57 | × | steve[m] quits (~stevetrou@2001:470:69fc:105::e0b) (*.net *.split) |
| 06:50:57 | × | chessai quits (sid225296@id-225296.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | philpax_ quits (sid516926@id-516926.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | mesaoptimizer quits (sid546676@user/PapuaHardyNet) (*.net *.split) |
| 06:50:57 | × | dyniec_ quits (~dyniec@mail.dybiec.info) (*.net *.split) |
| 06:50:57 | × | immae1 quits (~immae@2a01:4f8:141:53e7::) (*.net *.split) |
| 06:50:57 | × | cjay quits (cjay@nerdbox.nerd2nerd.org) (*.net *.split) |
| 06:50:57 | × | bw quits (sid2730@user/betawaffle) (*.net *.split) |
| 06:50:57 | × | agander_m_ quits (sid407952@id-407952.tinside.irccloud.com) (*.net *.split) |
| 06:50:57 | × | Boarders__ quits (sid425905@id-425905.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | kevinsjoberg quits (sid499516@id-499516.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | jmct quits (sid160793@id-160793.tinside.irccloud.com) (*.net *.split) |
| 06:50:57 | × | gonz______ quits (sid304396@id-304396.lymington.irccloud.com) (*.net *.split) |
| 06:50:57 | × | wallymathieu quits (sid533252@id-533252.uxbridge.irccloud.com) (*.net *.split) |
| 06:50:58 | × | brprice quits (~brprice@user/brprice) (*.net *.split) |
| 06:50:58 | × | bah quits (~bah@l1.tel) (*.net *.split) |
| 06:50:58 | × | xerox quits (~edi@user/edi) (*.net *.split) |
| 06:50:58 | × | LambdaDuck quits (~anka@ksit.fixme.fi) (*.net *.split) |
| 06:50:58 | × | Ristovski quits (~Ristovski@hellomouse/perf/ristovski) (*.net *.split) |
| 06:50:58 | × | davl_ quits (~davl@207.154.228.18) (*.net *.split) |
| 06:50:58 | × | Hafydd quits (~Hafydd@user/hafydd) (*.net *.split) |
| 06:50:58 | × | dka_ quits (~code-is-a@ns3059207.ip-193-70-33.eu) (*.net *.split) |
| 06:50:58 | × | ringo__ quits (~ringo@157.230.117.128) (*.net *.split) |
| 06:50:58 | × | mht-wtf quits (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split) |
| 06:50:58 | × | relrod quits (~relrod@redhat/ansible.staff.relrod) (*.net *.split) |
| 06:51:04 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 06:51:06 | → | jamestmartin joins (~james@jtmar.me) |
| 06:51:06 | → | ysh_ joins (sid6017@id-6017.ilkley.irccloud.com) |
| 06:51:07 | → | scav joins (sid309693@user/scav) |
| 06:51:07 | → | sa1 joins (sid7690@id-7690.ilkley.irccloud.com) |
| 06:51:07 | → | LambdaDuck joins (~anka@ksit.fixme.fi) |
| 06:51:09 | → | dka joins (~code-is-a@ns3059207.ip-193-70-33.eu) |
| 06:51:10 | → | mesaoptimizer joins (sid546676@user/PapuaHardyNet) |
| 06:51:11 | → | df joins (~ben@justworks.xyz) |
| 06:51:11 | → | hongminhee joins (sid295@id-295.tinside.irccloud.com) |
| 06:51:12 | → | sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) |
| 06:51:13 | → | bah joins (~bah@l1.tel) |
| 06:51:13 | → | xerox joins (~edi@user/edi) |
| 06:51:13 | → | eternalforms joins (~obsrwr@46.101.168.131) |
| 06:51:13 | → | dyniec_ joins (~dyniec@mail.dybiec.info) |
| 06:51:15 | → | philpax_ joins (sid516926@id-516926.lymington.irccloud.com) |
| 06:51:21 | → | chessai joins (sid225296@id-225296.lymington.irccloud.com) |
| 06:51:23 | → | cjay joins (cjay@nerdbox.nerd2nerd.org) |
| 06:51:24 | → | jmct joins (sid160793@id-160793.tinside.irccloud.com) |
| 06:51:28 | → | liskin joins (~liskin@ackle.nomi.cz) |
| 06:51:28 | → | Hafydd joins (jc@owlchat.newnet.net) |
| 06:51:30 | → | nrr____ joins (sid20938@id-20938.lymington.irccloud.com) |
| 06:51:30 | → | immae1 joins (~immae@2a01:4f8:141:53e7::) |
| 06:51:31 | → | nisstyre joins (wes@2600:3c00::f03c:91ff:fe69:7f3d) |
| 06:51:32 | → | mht-wtf joins (~mht@2a03:b0c0:3:e0::1e2:c001) |
| 06:51:35 | → | jocke-l joins (jocke-l@a.x0.is) |
| 06:51:37 | → | relrod joins (~relrod@redhat/ansible.staff.relrod) |
| 06:51:37 | → | tolt joins (~weechat-h@li219-154.members.linode.com) |
| 06:51:39 | → | macabre joins (~m@161.35.15.236) |
| 06:51:45 | → | gonz______ joins (sid304396@id-304396.lymington.irccloud.com) |
| 06:51:49 | → | wallymathieu joins (sid533252@id-533252.uxbridge.irccloud.com) |
| 06:51:50 | → | kevinsjoberg joins (sid499516@id-499516.lymington.irccloud.com) |
| 06:51:50 | × | liskin quits (~liskin@ackle.nomi.cz) (Changing host) |
| 06:51:50 | → | liskin joins (~liskin@xmonad/liskin) |
| 06:51:50 | → | agander_m_ joins (sid407952@id-407952.tinside.irccloud.com) |
| 06:51:52 | → | megeve joins (sid523379@id-523379.hampstead.irccloud.com) |
| 06:51:53 | → | Boarders__ joins (sid425905@id-425905.lymington.irccloud.com) |
| 06:52:07 | → | bw joins (sid2730@user/betawaffle) |
| 06:52:14 | → | brprice joins (~brprice@user/brprice) |
| 06:52:19 | → | Ristovski joins (~Ristovski@hellomouse/perf/ristovski) |
| 06:52:27 | → | dragestil joins (~znc@user/dragestil) |
| 06:52:28 | → | Yumemi joins (~Yumemi@chamoin.net) |
| 06:52:29 | → | davl joins (~davl@207.154.228.18) |
| 06:52:42 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 06:52:47 | → | ringo__ joins (~ringo@157.230.117.128) |
| 06:52:59 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 06:54:09 | → | steve[m] joins (~stevetrou@2001:470:69fc:105::e0b) |
| 06:54:28 | → | entheogenesis[m] joins (~entheogen@2001:470:69fc:105::1:e7c4) |
| 06:54:53 | → | even4void[m] joins (~even4void@2001:470:69fc:105::2:4b9c) |
| 06:54:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 06:55:35 | → | goran[m] joins (~goranoour@2001:470:69fc:105::2:1b44) |
| 06:56:12 | → | bjobjo joins (~bjobjo@user/bjobjo) |
| 07:00:29 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:02:37 | → | coot joins (~coot@213.134.190.95) |
| 07:06:57 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 244 seconds) |
| 07:09:56 | → | chele joins (~chele@user/chele) |
| 07:16:03 | → | gurkenglas joins (~gurkengla@p548ac71b.dip0.t-ipconnect.de) |
| 07:16:05 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Ping timeout: 252 seconds) |
| 07:18:33 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 07:20:27 | × | lagash quits (lagash@2605:6400:20:b4:9c76:1538:3398:ce71) (Quit: ZNC - https://znc.in) |
| 07:20:27 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 07:20:39 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 07:27:03 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:27:48 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 07:37:14 | → | mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) |
| 07:48:01 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 07:48:52 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:52:01 | → | benin0 joins (~benin@183.82.177.174) |
| 07:55:52 | → | machined1od joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 07:56:23 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 07:59:09 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 08:01:03 | → | yin joins (~yin@user/zero) |
| 08:02:14 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 08:03:28 | × | GoldsteinQ quits (~goldstein@goldstein.rs) (Ping timeout: 268 seconds) |
| 08:05:27 | × | mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds) |
| 08:20:36 | → | mncheck joins (~mncheck@193.224.205.254) |
| 08:23:09 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 08:27:49 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 08:29:50 | → | eod|fserucas joins (~eod|fseru@83.223.235.72) |
| 08:30:00 | × | eod|fserucas quits (~eod|fseru@83.223.235.72) (Client Quit) |
| 08:30:19 | → | fserucas joins (~fserucas@83.223.235.72) |
| 08:32:28 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 08:32:57 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 08:35:24 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:37:24 | → | yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) |
| 08:37:58 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 08:38:02 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:39:40 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 08:39:54 | → | __monty__ joins (~toonn@user/toonn) |
| 08:40:46 | cyphase | is now known as cyphase_eviltwin |
| 08:47:59 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 08:49:37 | × | __monty__ quits (~toonn@user/toonn) (Ping timeout: 245 seconds) |
| 08:49:52 | → | __monty__ joins (~toonn@user/toonn) |
| 08:50:13 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 08:50:22 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 08:55:27 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 08:56:36 | → | MajorBiscuit joins (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) |
| 08:57:55 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 08:58:07 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 09:01:51 | × | yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 09:03:54 | → | yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) |
| 09:05:39 | → | sandydoo joins (~sandydoo@185.209.196.136) |
| 09:05:46 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
| 09:06:08 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:07:34 | → | acidjnk joins (~acidjnk@p200300d6e70586787d91d659871fc0c4.dip0.t-ipconnect.de) |
| 09:07:55 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 252 seconds) |
| 09:08:42 | → | Colere joins (~colere@about/linux/staff/sauvin) |
| 09:11:05 | → | Furor joins (~colere@about/linux/staff/sauvin) |
| 09:11:29 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 09:14:28 | × | Colere quits (~colere@about/linux/staff/sauvin) (Ping timeout: 268 seconds) |
| 09:14:53 | × | ridcully_ quits (~ridcully@p508ac7ad.dip0.t-ipconnect.de) (Ping timeout: 252 seconds) |
| 09:16:14 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds) |
| 09:16:37 | → | mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) |
| 09:17:05 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 09:17:50 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:17:51 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 09:19:13 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 09:20:11 | → | zaquest joins (~notzaques@5.130.79.72) |
| 09:21:48 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 268 seconds) |
| 09:22:19 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 09:22:19 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 09:22:33 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 09:23:20 | Furor | is now known as Colere |
| 09:24:40 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:25:01 | → | ridcully joins (~ridcully@p57b5218b.dip0.t-ipconnect.de) |
| 09:26:59 | × | jargon quits (~jargon@184.101.188.251) (Remote host closed the connection) |
| 09:27:17 | → | jargon joins (~jargon@184.101.188.251) |
| 09:29:45 | → | vglfr joins (~vglfr@194.9.14.33) |
| 09:33:31 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds) |
| 09:35:14 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 09:37:35 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 09:39:40 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 09:43:22 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:52:05 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 09:55:12 | × | mncheck quits (~mncheck@193.224.205.254) (Remote host closed the connection) |
| 09:57:24 | × | bilegeek quits (~bilegeek@2600:1008:b008:7f81:14bd:cb07:613d:3322) (Quit: Leaving) |
| 09:58:35 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:02:38 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 10:09:37 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 245 seconds) |
| 10:10:41 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:11:43 | × | xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 252 seconds) |
| 10:25:10 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 10:26:32 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 10:28:14 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
| 10:28:54 | → | vglfr joins (~vglfr@194.9.14.33) |
| 10:32:32 | × | yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 10:35:15 | × | mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 10:38:37 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 10:40:05 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 10:40:16 | × | tcard quits (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) (Remote host closed the connection) |
| 10:40:31 | → | tcard joins (~tcard@p945242-ipngn9701hodogaya.kanagawa.ocn.ne.jp) |
| 10:43:30 | → | yaroot_ joins (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) |
| 10:43:41 | → | mikoto-chan joins (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) |
| 10:44:07 | × | yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 272 seconds) |
| 10:44:07 | yaroot_ | is now known as yaroot |
| 10:48:37 | → | stilgart joins (~Christoph@chezlefab.net) |
| 10:51:36 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:51:50 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 10:52:13 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 10:52:57 | × | mikoto-chan quits (~mikoto-ch@85-76-82-245-nat.elisa-mobile.fi) (Ping timeout: 245 seconds) |
| 10:54:06 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 10:54:47 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Write error: Connection reset by peer) |
| 10:54:47 | × | noteness quits (~noteness@user/noteness) (Write error: Connection reset by peer) |
| 10:54:47 | × | jpds1 quits (~jpds@gateway/tor-sasl/jpds) (Write error: Connection reset by peer) |
| 10:54:47 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer) |
| 10:54:47 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 10:55:21 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 10:55:26 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 10:55:45 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 10:56:05 | → | noteness joins (~noteness@user/noteness) |
| 10:57:29 | → | Midjak joins (~Midjak@82.66.147.146) |
| 10:58:58 | → | jpds1 joins (~jpds@gateway/tor-sasl/jpds) |
| 11:05:56 | → | xff0x joins (~xff0x@2405:6580:b080:900:66f:76f7:bef0:7fa2) |
| 11:16:15 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 11:20:55 | → | mncheck joins (~mncheck@193.224.205.254) |
| 11:29:19 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection) |
| 11:33:22 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 11:38:07 | × | rembo10 quits (~rembo10@main.remulis.com) (Quit: ZNC 1.8.2 - https://znc.in) |
| 11:40:32 | → | rembo10 joins (~rembo10@main.remulis.com) |
| 11:41:39 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:42:57 | → | Tuplanolla joins (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi) |
| 11:43:04 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.6) |
| 11:43:23 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 11:46:36 | → | mncheckm joins (~mncheck@193.224.205.254) |
| 11:49:02 | × | mncheck quits (~mncheck@193.224.205.254) (Ping timeout: 240 seconds) |
| 11:52:26 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 11:52:44 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Remote host closed the connection) |
| 11:53:59 | <perrierjouet> | stack install pandoc ... no setup information found |
| 11:54:25 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 11:55:16 | × | kaskal- quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Ping timeout: 268 seconds) |
| 11:56:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 11:56:56 | → | Pickchea joins (~private@user/pickchea) |
| 11:59:06 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:00:31 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:05:13 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 12:05:17 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 268 seconds) |
| 12:07:26 | × | acidjnk quits (~acidjnk@p200300d6e70586787d91d659871fc0c4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 12:07:38 | → | acidjnk joins (~acidjnk@p200300d6e70586787c323b0967d8caa3.dip0.t-ipconnect.de) |
| 12:08:16 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 12:08:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 12:11:11 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 12:13:15 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 12:14:37 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 245 seconds) |
| 12:15:02 | → | vglfr joins (~vglfr@194.9.14.33) |
| 12:15:53 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 12:18:20 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Client Quit) |
| 12:19:49 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 12:25:06 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:27:50 | <chreekat> | mon_aaraj: the Char is from the Strings `"fizz"` and `"buzz"` :) |
| 12:30:24 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 12:33:26 | × | lbseale quits (~quassel@user/ep1ctetus) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 12:34:24 | <mon_aaraj> | huh, how come? i mean, in all cases they should always return strings |
| 12:34:33 | <mon_aaraj> | it's a moand comprehension after all |
| 12:34:58 | <mon_aaraj> | wait... i think i might understand... the `[]` is the monad, so GHC infers `Char` to be the actual type, is that the case |
| 12:36:03 | → | coot joins (~coot@213.134.190.95) |
| 12:39:40 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:42:54 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 268 seconds) |
| 12:44:44 | <mon_aaraj> | Well, Identity functor, here we go! |
| 12:45:51 | <geekosaur> | that code is very confused |
| 12:46:15 | <mon_aaraj> | i agree! the resources that exist on monad comprehensions are about non-existent |
| 12:46:43 | <merijn> | mon_aaraj: Have you checked the GHC User Guide on them? |
| 12:46:43 | × | Vajb quits (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) (Read error: Connection reset by peer) |
| 12:46:51 | <mon_aaraj> | yep, i have |
| 12:47:12 | <mon_aaraj> | it's really the only maybe-kind-of decent resource i can find |
| 12:47:21 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) |
| 12:48:08 | jpds1 | is now known as jpds |
| 12:48:08 | → | tdkilus^ joins (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) |
| 12:49:11 | ggVGc | does not really know anything about monad comprehensions at all |
| 12:49:31 | <merijn> | ggVGc: List comprehensions, but for monads other than list :p |
| 12:49:56 | <ggVGc> | oh, well, that makes sense I guess |
| 12:50:14 | <ggVGc> | I really don't use list comprehensions as much as I probably should |
| 12:50:15 | <ggVGc> | not sure why |
| 12:50:28 | <mon_aaraj> | yeah, they used to exist 10 years ago but then were removed for weird reasons then added back, which is generally why all the resources you can find are probably outdated by now |
| 12:51:13 | <ggVGc> | I also want to get into using applicative and ApplicativeDo more |
| 12:51:18 | <ggVGc> | but old habits die hard |
| 12:51:20 | <mon_aaraj> | one other thing i know people would be surprised: TransformListComp exists! it really surprised me when i first saw it |
| 12:51:56 | <merijn> | ggVGc: tbh, in practice most people rarely use list comprehensions |
| 12:52:05 | <merijn> | function composition usually composes better |
| 12:52:18 | <ggVGc> | yeah I guess that's why I mostly don't end up using it |
| 12:52:30 | <ggVGc> | also, I generally have the attitude, in any language, to just use as few things as possible |
| 12:52:36 | <ggVGc> | and Haskell has... too many things |
| 12:55:59 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 252 seconds) |
| 12:56:09 | <mon_aaraj> | yeah, using as few things may be the most productive way to do things. i like to do things the best way possible, and that generally causes me to hurt my productivity a lot |
| 12:57:04 | <mon_aaraj> | i think, after toying with list comprehensions via ParallelListComp, TransformListComp, MonadComprehensions... I can safely say I prefer ``zipWith`` over list comprehensions whenever possible :P |
| 12:57:12 | <chreekat> | mon_aaraj: I don't think you are using monad comprehensions. It's just a list there |
| 12:57:31 | <mon_aaraj> | ``[ "fizz" | rem x 3 < 1 ]`` |
| 12:57:49 | <mon_aaraj> | GHC itself thinks (rightfully so) I am using monad comprehensions in these cases |
| 12:58:12 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 12:58:28 | <chreekat> | hm ok I was looking at the examples with `... x <- [1..100] ]` |
| 12:58:32 | <mon_aaraj> | though I don't really know any good replacements for monad comprehensions that are short-hand and simple other than good ole do notation, and also Idris 2's bang notation |
| 12:59:05 | → | Guest3 joins (~textual@user/polo) |
| 12:59:15 | <mon_aaraj> | which I suppose isn't a replacement for monad comprehensions, it's just a very short and readable way to get a value from inside a monad which makes things shorter and easier to read |
| 13:01:09 | Guest3 | is now known as Polo |
| 13:02:23 | <chreekat> | what value are you expected from `["fizz" | rem x 3 < 1]` ? |
| 13:02:29 | <chreekat> | *expecting |
| 13:06:25 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:07:16 | <geekosaur> | @undo ["fizz" | rem x 3 < 1] |
| 13:07:16 | <lambdabot> | if rem x 3 < 1 then ["fizz"] else [] |
| 13:09:05 | × | frost quits (~frost@user/frost) (Quit: Client closed) |
| 13:09:33 | → | szkl joins (uid110435@id-110435.uxbridge.irccloud.com) |
| 13:10:03 | <mon_aaraj> | chreekat: i honestly don't know myself. the way it was used in the wild 10 years ago was ``[ max (show x) $ [ "fizz" | rem x 3 < 1 ] [ "buzz" | rem x 5 < 1 ] | x <- [1..100] ]``, which didn't make sense to me |
| 13:10:41 | <mon_aaraj> | fwiw, here's the exact comment: https://www.codefugue.com/fizzbuzz-in-haskell/#comment-1381730105 |
| 13:10:54 | <ggVGc> | that's pretty confusing to me (["fizz" | rem x 3 < 1]) |
| 13:10:59 | <ggVGc> | the expanded form is much clearer |
| 13:11:06 | <ggVGc> | and I'd probably disagree with the former in a core review |
| 13:11:10 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 13:11:11 | <ggVGc> | code* |
| 13:11:31 | × | Polo quits (~textual@user/polo) (Quit: Textual IRC Client: www.textualapp.com) |
| 13:11:46 | <ggVGc> | it adds a lot of mental overhead for barely any syntactical gain |
| 13:11:57 | <mon_aaraj> | i really like how ``["fizz" | rem x 2 == 0 ]`` reads, personally, and also how it functions because it kind of resembles sending events |
| 13:12:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 13:13:14 | <ggVGc> | well, is the "I think it reads nicely" worth it relative the overhead it adds, in the context of working with others, project growing in complexity, ageing, being taken over by someone else etc. |
| 13:13:33 | <naso> | using `Debug.trace x` we can print a message immediately before x was evaluated. is there somehow we can also get a message immediately AFTER x is evaluated? |
| 13:13:33 | <ggVGc> | or "myself at 4am doing a quickfix" |
| 13:13:51 | <naso> | that should be ... `Debug.trace "msg" x` |
| 13:14:13 | <ggVGc> | naso: for this reason I usually use these, https://gist.github.com/e127758549621bbe189211c9500eafde |
| 13:15:27 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 245 seconds) |
| 13:15:43 | <ggVGc> | ah, wait, I misunderstood |
| 13:15:44 | <ggVGc> | sorry :( |
| 13:16:14 | <ggVGc> | or...maybe not, not sure what you meant I think |
| 13:17:02 | <ggVGc> | debug = flip trace allows: (some expression) `debug` "Title:" |
| 13:17:12 | <naso> | not sure i understand what tracef does |
| 13:17:26 | <ggVGc> | it allows a transformation before tracing |
| 13:17:28 | <mon_aaraj> | ggVGc: I think for this case, it very much is worth it for everything you were talking about... if it's a case that fits nicely for monad comprehensions, monad comprehensions are readable enough and easy to understand and maintain, that i think it's overall a plus. but that's just my opinion and the FP people I'm usually around with |
| 13:19:20 | <ggVGc> | naso: sometimes I'm not interested in the actual Show instance of the thing I am printing (or it doesn't have one). So I then use debugf like something `debugf` ("Some property", \something -> show (property something)) |
| 13:19:40 | <naso> | ggVGc: maybe it helps if i explain why i want this. often there is an exception in my program but i dont know where it is, so i use a Debug.trace. If I see the trace message i confirm that the exception occurs later in the evaluation, but i dont know how much later. In particularm if I do `Debug.trace msg x` I don't know if it was x that caused the exception. If I could also have a message immediately after evaluting x, i could get im |
| 13:19:40 | <naso> | mediate feedback if x is the problem |
| 13:19:43 | <ggVGc> | in a case where "something" might not have a show instance, but I want to trace the value of "property" |
| 13:20:20 | <geekosaur> | naso, sounds to me like you want -prof and +RTS -xc |
| 13:20:23 | <ggVGc> | naso: sounds like you need to trace the thing that uses the result then, rather than the value itself |
| 13:20:48 | <naso> | ggVGc: this is the actual function i use to trace https://paste.tomsmeding.com/c1t0IOBG |
| 13:20:55 | <ggVGc> | print debugging Haskell is... intersting, compared to other languages |
| 13:21:40 | <merijn> | naso: FYI, you can get stack traces from exceptions :p |
| 13:21:55 | <ggVGc> | also, yeah, maybe try to get rid of the code that produces exceptions also :) |
| 13:22:09 | <ggVGc> | And use HasCallstack to get stack traces from functions that crash |
| 13:22:21 | <ggVGc> | HasCallstack has made my haskell experience a lot better |
| 13:22:31 | <naso> | any good guides to learn about this? |
| 13:22:33 | <mon_aaraj> | oh, ``debugf`` is interesting. i always had the problem of not wanting to implement show instance because they'd be useless or are frusturating to create (in the context of Trees That Grow), so I wondered if there was something to inspect types without having the show instance |
| 13:22:52 | <ggVGc> | naso: maybe read through this, https://maksbotan.github.io/posts/2021-01-20-callstacks.html |
| 13:22:57 | <merijn> | naso: See geekosaur's comments. A profile binary with +RTS -xc will log callstacks to stderr |
| 13:23:06 | <naso> | mon_aaraj: anythingToString is good for that too |
| 13:23:08 | <merijn> | naso: The GHC User's Guide has a bunch of info |
| 13:23:25 | <mon_aaraj> | that's the first time i've heard about anythingToString |
| 13:23:57 | <ggVGc> | mon_aaraj: yeah it's a simple little helper :) It basically allows for defining local Show implementations for logging things |
| 13:24:00 | <naso> | merijn: geekosaur: thanks i was aware of that but it requires a recompile right? i usually go for that when i can't solve the problem quickly with tracing |
| 13:24:35 | <geekosaur> | with exceptions what you really want is a backtrace of the exception itself. it'd be nice if that didn't require a profiling executable, but… |
| 13:24:41 | <ggVGc> | merijn: HasCallstack is a much more pleasant experience than doing the profiling dance, imo |
| 13:25:04 | <merijn> | ggVGc: Only works if you can change the code throwing the exception |
| 13:25:13 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 13:25:17 | <merijn> | if the exception is thrown in some library that doesn't use HasCallstack, it doesn't work |
| 13:25:20 | <ggVGc> | sure, but most of the time we can, for use-cases like this, I think? |
| 13:25:27 | <ggVGc> | At leat that's the case for me |
| 13:25:31 | <ggVGc> | but I don't work in industry :) |
| 13:25:38 | <ggVGc> | ah, right, that's true |
| 13:25:47 | <ggVGc> | well, don't use libraries that throw. Simple. |
| 13:26:48 | <mon_aaraj> | i don't know how to find where anythingToString is defined, it isn't in hoogle |
| 13:26:52 | <geekosaur> | like base? |
| 13:27:07 | <ggVGc> | yeah, don't use base |
| 13:27:09 | <ggVGc> | who needs it |
| 13:27:31 | <naso> | mon_aaraj: https://hackage.haskell.org/package/recover-rtti |
| 13:28:28 | → | kuribas joins (~user@ptr-17d51eouctrvjmo29s7.18120a2.ip6.access.telenet.be) |
| 13:28:38 | → | lisbeths joins (uid135845@id-135845.lymington.irccloud.com) |
| 13:28:55 | <mon_aaraj> | would've been nice if that was in base |
| 13:29:43 | <ggVGc> | naso: Imo this is the issue with logging in haskell through Debug.Trace. We get logs backwards, since the last thing you'll see is what was last evaluated, not what triggered the evaluation of that thing. Which is not what we're used to from other platforms. Hence the proper way is to do logging through a monad I reckon |
| 13:30:56 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 268 seconds) |
| 13:32:24 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 13:32:41 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 13:33:33 | <naso> | it would be nice if the breakpoint functionality was integrated into HLS somehow |
| 13:34:06 | <naso> | i don;t want to have to change my type signatures for debugging |
| 13:36:40 | → | dualnygma_ joins (~dualnygma@2601:152:100:b460:1bb6:449a:fb92:4b09) |
| 13:38:48 | <ggVGc> | I've never used a breakpoint in haskell |
| 13:39:39 | <ggVGc> | actually, the only times I've ever used them is ages ago when doing game development in C++ and wanting to inspect memory at certain times (since memory corruption is a real risk always looming :) ) |
| 13:39:51 | <ggVGc> | when do you use breakpoints during haskell development? |
| 13:40:59 | <naso> | i've never actually used it, i just recently read about it (https://downloads.haskell.org/~ghc/7.4.1/docs/html/users_guide/ghci-debugger.html) and it sounds potentially useful but kind of clunky using it from the repl |
| 13:41:57 | <ggVGc> | If you're referring to HasCallstack, I don't use it as a temporary thing when debugging. Rather, whever a crash pops up in my program, I add a chain of HasCallstack that lets me get enough information from where the crash originated, or try to remove the thing that caused it in the first place. This is prefixed by habitually adding a HasCallstack to any function which uses `error` or some other |
| 13:41:59 | <ggVGc> | non-total function (like fromJust for example) |
| 13:43:49 | <naso> | ggVGc: i was referring to the logging through the monad. The HasCallStack looks helpful, thanks. So if I add that constraint to every function that uses `error` that should be helpful? |
| 13:44:23 | → | ystael joins (~ystael@user/ystael) |
| 13:45:23 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 13:49:37 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:49:54 | × | mikail quits (~mikail@2a02:c7f:bc47:8c00:5aa7:b193:11e3:d108) (Remote host closed the connection) |
| 13:52:12 | <naso> | but in the guide you linked, we also need HasCallStack on the function `bar` which doesnt itself ues error (it calls `foo` that uses `error`). Is there anywhere where it is bad to put `HasCallStack`? if not why is it not on by default |
| 13:52:32 | × | sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 245 seconds) |
| 13:52:59 | <geekosaur> | it causes overhead |
| 13:53:12 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Ping timeout: 268 seconds) |
| 13:53:48 | <naso> | compilation time? performance? |
| 13:53:50 | hasbae | is now known as hippoid |
| 13:53:54 | <merijn> | naso: performance overhead |
| 13:55:07 | <naso> | in that case, it would be nice if there was a compilation flag to globall switch on/off HasCallStack for everything ? |
| 13:55:17 | <ggVGc> | yeah, but as long as the program runs well enough for the use-case I personally can live with that |
| 13:55:40 | <naso> | because performance is important to me, i need an easy way to switch it off... |
| 13:56:14 | × | acidjnk quits (~acidjnk@p200300d6e70586787c323b0967d8caa3.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:56:14 | <ggVGc> | naso: what I do is I put it on the level where I know there'a a risk of a crash, and if it happens I add it to where it was called from (as far up as I deem necessary). The good thing is you'll always know one step, so you can easily decide how far you want to go |
| 13:56:21 | <ggVGc> | this all relies on being able to reproduce the issue though |
| 13:56:43 | <ggVGc> | but the upside is that eventuelly your codebase will be structured so that when issues happen in the wild you get decent traces |
| 13:57:15 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection) |
| 13:58:17 | <ggVGc> | naso: performance is important to everyone, but there's a tradeoff to be made between wanting good error traces without needing to recompile and re-run, and faster runtime |
| 13:58:20 | → | bitdex_ joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:58:33 | <ggVGc> | the latter can be measured and then decided if it's acceptable or not |
| 13:58:38 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 13:58:50 | <ggVGc> | for my use-cases HasCallstack has not added any noticable overhead |
| 13:59:12 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 14:00:06 | <ggVGc> | meanwhile I've gained something I always wanted from haskell, e.g the ability to actually use non-total functions where I really think they should be safe, and having an informative trace when my expection breaks |
| 14:01:06 | <naso> | ggVGc: cool, sounds like good advice thanks. i'll experiment with it. yes in what i'm doing i have partial functions all over the place |
| 14:01:45 | <[exa]> | ggVGc: I think you can alias HasCallStack for a trivial constraint to switch off the performance overhead (like #ifdef DEBUG in Cs) |
| 14:01:58 | <geekosaur> | there isn't a ghc issue to decorate all functions but there's one to decorate all partial functions |
| 14:02:27 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 14:04:21 | <naso> | https://gitlab.haskell.org/ghc/ghc/-/issues/13360 |
| 14:05:04 | × | bitdex_ quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 14:05:04 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:05:33 | <naso> | "Thanks for sharing the benchmarks. They seem to be reporting a 50-250% slowdown with HasCallstack. My hunch is that the slowdown is linear wrt the depth of the call-stack. Will need to do some benchmarking to be sure of this." |
| 14:05:38 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 14:06:38 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 14:06:53 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
| 14:07:05 | × | dualnygma_ quits (~dualnygma@2601:152:100:b460:1bb6:449a:fb92:4b09) (Ping timeout: 255 seconds) |
| 14:07:40 | × | sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 14:08:50 | → | sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) |
| 14:12:31 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 14:12:33 | <geekosaur> | read on |
| 14:12:38 | <merijn> | naso: That flag exists, it's called --profile ;) |
| 14:13:12 | <merijn> | naso: basically, the profiling infrastructure needs callstacks for profiling purposes, which is why you can always get stack traces for profiled executables |
| 14:13:50 | <geekosaur> | there's a difference, profiling has a pretty high overhead, HasCallStack a fairly low one when not triggered |
| 14:14:24 | <geekosaur> | also HasCallStack doesn't force you to compile every other module with it also |
| 14:14:47 | <geekosaur> | whereas you can't mix profiled and non-profiled ways |
| 14:16:34 | → | sandydoo joins (~sandydoo@185.209.196.136) |
| 14:18:06 | <merijn> | geekosaur: Sure, but his original question was "I wanna enable HasCallStack everywhere with a flag" |
| 14:19:43 | <naso> | merijn: when i compile with the profiling flag, like this: `cabal run --enable-profiling project-exe --ghc-options="-fprof-auto -rtsopts -O2 -optc-O3" -- +RTS -xc` , it recompiles all my dependencie and takes like half an hour. |
| 14:20:28 | <naso> | (is this the correct command by the way? i've made notes of several different commands like this but not 100% sure about it all) |
| 14:22:26 | <geekosaur[m]> | -optc-O3 does nothing |
| 14:23:10 | <geekosaur[m]> | ghc hasn't compiled via C in almost a decade |
| 14:23:43 | <geekosaur[m]> | Also profiling mostly disables optimization |
| 14:23:57 | <merijn> | naso: Yeah, I normally compile without -O2 for profiling |
| 14:24:23 | <merijn> | I generally just do "cabal build --enable-profiling" and run the result, but that cabal run should work too |
| 14:24:36 | <merijn> | naso: It should only recompile your dependencies the first time, though |
| 14:24:48 | <naso> | geekosaur[m]: thanks, must have got that from an out of date guide |
| 14:24:51 | <merijn> | naso: After that they're already available |
| 14:24:59 | <naso> | ok |
| 14:25:36 | <merijn> | naso: If you don't normally build with profiling enabled you only install unprofiled dependencies, so the first time you build with profiling it has to compile the profiled versions too, but that should only happen once (unless your dependencies change, obv) |
| 14:26:02 | <naso> | merijn: ahh i see |
| 14:26:15 | → | GoldsteinQ joins (~goldstein@goldstein.rs) |
| 14:27:00 | <merijn> | After that it should only recompile your own code for profiling |
| 14:27:47 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 14:28:07 | → | dualnygma_ joins (~dualnygma@2601:152:100:b460:9acb:38e3:4e54:496f) |
| 14:29:51 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 14:30:19 | <ggVGc> | naso: the thing is, it's not really a direct comparison. HasCallstack and profile builds give different things. Debugging issues by recompiling and rerunning allows you to avoid the overhead of HasCallstack, but it makes it harder to debug issues that are difficult to reproduce (like ones from users that are not yourself). On the other hand HasCallstack gives the long-term benefit of giving good |
| 14:30:21 | <ggVGc> | information on the first occurance, with the cost of some overhead. I really think that "overhead" is not something that should be avoided at all costs, in any environment, and I think it's a mistake many developers make. The fact is that the vast majority of functionality in the vast majority of software doesn't need to be that fast |
| 14:30:44 | <ggVGc> | and the parts that need to be fast can be found through profiling and handled on a case-by-case basis |
| 14:31:08 | <ggVGc> | In the end we're using a garbage collected language so there's already tradeoffs being made |
| 14:31:56 | <ggVGc> | or using type classes which might result in dynamic dispatch rather than doing things manually with a lot more code |
| 14:32:00 | <ggVGc> | etc. |
| 14:32:01 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 14:32:03 | × | tdkilus^ quits (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) (Ping timeout: 268 seconds) |
| 14:32:17 | <naso> | ggVGc: agreed |
| 14:33:22 | × | dualnygma_ quits (~dualnygma@2601:152:100:b460:9acb:38e3:4e54:496f) (Ping timeout: 244 seconds) |
| 14:34:44 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 14:34:44 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 14:36:04 | × | tubogram44 quits (~tubogram@user/tubogram) (Ping timeout: 240 seconds) |
| 14:36:41 | → | tubogram44 joins (~tubogram@user/tubogram) |
| 14:37:11 | → | acidjnk joins (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) |
| 14:37:42 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 14:39:09 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:41:24 | → | CiaoSen joins (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 14:43:27 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 14:44:50 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 14:46:08 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 14:47:17 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 14:48:00 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 14:48:37 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 14:49:02 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 14:51:26 | × | acidjnk quits (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 14:52:32 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 14:59:19 | × | ccntrq quits (~Thunderbi@exit-3.office.han.de.mhd.medondo.com) (Quit: ccntrq) |
| 15:03:13 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 15:04:04 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 15:04:22 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 15:05:58 | × | kuribas quits (~user@ptr-17d51eouctrvjmo29s7.18120a2.ip6.access.telenet.be) (Ping timeout: 268 seconds) |
| 15:07:00 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:93dd:6a2f:9b9:59b0) (Quit: WeeChat 2.8) |
| 15:07:07 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 245 seconds) |
| 15:07:35 | <albet70> | how can I config parameter for Main.hs in my-project.cabal? |
| 15:07:59 | <albet70> | just in main-is : Main.hs parameter? |
| 15:09:12 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:10:45 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 15:10:46 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 15:11:19 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 15:11:19 | <merijn> | albet70: Not quite sure what you mean? |
| 15:12:22 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 15:12:44 | → | yin joins (~yin@user/zero) |
| 15:13:00 | → | albet70_ joins (~user@114.250.139.224) |
| 15:14:10 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 15:14:52 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 15:14:57 | <geekosaur> | you can't specify parameters in the cabal file; the whole point of parameters is they're specifies by the user. are you sure you don't want a parameter parser that supports defaults? |
| 15:15:16 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 15:15:18 | <geekosaur> | cmdargs and optparse-applicative come to mins |
| 15:15:41 | <geekosaur> | *specified |
| 15:16:09 | → | sandy_doo joins (~sandydoo@185.209.196.136) |
| 15:17:15 | <albet70_> | yes, I found it out I can use `cabal v2-run my-project parameter` to do it |
| 15:17:32 | × | yin quits (~yin@user/zero) (Ping timeout: 245 seconds) |
| 15:17:57 | <merijn> | You can just run instead of v2-run (and if you can't, your using a cabal-install that's too old :p) |
| 15:18:04 | <geekosaur> | you may need to watch out for parameters with leading dashes, which will be eaten by cabal. cabal v2-run -- my-project --whatever |
| 15:18:14 | <geekosaur> | (the -- is important in that case) |
| 15:18:18 | × | sandydoo quits (~sandydoo@185.209.196.136) (Ping timeout: 268 seconds) |
| 15:19:31 | <albet70_> | geekosaur what -- does there? |
| 15:20:08 | <albet70_> | merijn: cabal v3's command usage are same as v2? |
| 15:20:26 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 15:20:27 | × | sandy_doo quits (~sandydoo@185.209.196.136) (Ping timeout: 245 seconds) |
| 15:20:30 | <geekosaur> | it tells cabal (or stack) to stop reading parameters starting with - for itself, so they go to your program |
| 15:20:33 | <geekosaur> | as I just said |
| 15:21:00 | <geekosaur> | cabal v3 defaults to the v2-commands, you have to use v1-… to get the old commands |
| 15:22:01 | <geekosaur> | so in cabal v3 `cabal run` is the same as `cabal v2-run`, whereas in cabal 2 `cabal run` is the same as `cabal v1-run` |
| 15:25:26 | <albet70_> | there're `my-code arg1 arg2` and `my-code --arg1 value1 --arg2 value2` two ways to pass parameter to code, cabal can do the second way with --? |
| 15:25:35 | <albet70_> | sorry, my English is not good |
| 15:25:50 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
| 15:26:00 | <merijn> | albet70_: v2 isn't about cabal versions, it's about the UI version (which only has 2) |
| 15:26:20 | <geekosaur> | albet70_, yes |
| 15:26:36 | <albet70_> | merijn: cabal is a cmd line tool IIRC, since when it had a UI? |
| 15:26:50 | <c_wraith> | text is still a user interface |
| 15:26:53 | <geekosaur> | without the `--` cabal will consume all options of the form `--*` itself, you need the bare `--` to tell it to stop |
| 15:26:57 | <yushyin> | cli is a UserInterface |
| 15:27:13 | <albet70_> | c_wraith: is that called TUI nowdays? |
| 15:27:29 | <albet70_> | nowaday |
| 15:28:17 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:28:19 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 15:28:37 | <geekosaur> | often, yes |
| 15:28:47 | → | zebrag joins (~chris@user/zebrag) |
| 15:28:50 | <yushyin> | strange how the v2- stuff confuses people rather than helps ^^ |
| 15:28:50 | <geekosaur> | but even so you can have more than one TUI. |
| 15:29:23 | <geekosaur> | not that strange, text user interfaces are rather limited in that area |
| 15:29:27 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 15:30:38 | <geekosaur> | tbh I think I'd have just made all the undecorated commands errors and forced users to say v1-xxx or v2-xxx |
| 15:31:21 | <geekosaur> | clearer that way, instead of switching what xxx means. (people still follow cabal v1 instructions from a decade ago and get confused when using it with cabal 3.x) |
| 15:32:32 | × | jespada quits (~jespada@45.162.228.187) (Read error: Connection reset by peer) |
| 15:32:45 | → | jespada_ joins (~jespada@45.162.228.187) |
| 15:33:38 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 15:34:20 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Ping timeout: 268 seconds) |
| 15:34:27 | × | phma quits (~phma@host-67-44-208-130.hnremote.net) (Read error: Connection reset by peer) |
| 15:35:17 | → | motherfsck joins (~motherfsc@user/motherfsck) |
| 15:36:12 | → | phma joins (phma@2001:5b0:212a:9df8:d7c:fd9f:422b:bc91) |
| 15:36:48 | × | benin0 quits (~benin@183.82.177.174) (Quit: The Lounge - https://thelounge.chat) |
| 15:37:07 | <yushyin> | i don't have a problem with non-versioned commands, but for tutorials or instructions, perhaps the versioned commands should be used? but what is the plan? are the v1- to be removed at some point? because then it almost doesn't matter whether you are faced with the problem that at some point there is no longer a v1- or that the commands no longer do what they are supposed to do. and instructions |
| 15:37:09 | <yushyin> | and tutorials on the internet become obsolete/outdated at some point anyway |
| 15:38:06 | × | lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity) |
| 15:38:27 | <geekosaur> | supposedly they'll be gone in cabal 4.x |
| 15:39:20 | <geekosaur> | they want to make sure that all use cases for the v1 commands are covered by v2 commands |
| 15:39:29 | <sm> | cabal doesn't have enough leadership to make good UI decisions |
| 15:40:34 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 15:40:52 | <albet70_> | lack of users? |
| 15:41:23 | <sm> | no, it has a ton of users |
| 15:41:43 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Quit: _) |
| 15:41:56 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 15:42:31 | → | acidjnk joins (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) |
| 15:44:31 | → | sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl) |
| 15:45:36 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:46:51 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 252 seconds) |
| 15:47:28 | → | yin joins (~yin@user/zero) |
| 15:48:34 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 15:49:03 | <sclv> | i think its more just that switching underlying behavior seamlessly is a hard thing, and there are a lot of options and opinions and also its technically fiddly |
| 15:49:25 | <sclv> | especially when there's a large established user base |
| 15:50:09 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 15:50:56 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 15:51:13 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 15:52:39 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) (Remote host closed the connection) |
| 15:53:46 | → | naso joins (~naso@193-116-244-197.tpgi.com.au) |
| 15:54:15 | <sm> | yes, and pushing through all that is almost impossible unless there's a someone or a group of people with the mandate/power/will to make impactful UI decisions |
| 15:54:19 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Client Quit) |
| 15:55:39 | <sm> | it needs a bit of ruthlessness |
| 15:55:46 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 15:56:11 | × | haritz quits (~hrtz@user/haritz) (Read error: Connection reset by peer) |
| 15:56:28 | <sm> | along with deep expertise and insight and taste. Not so easy |
| 15:56:58 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 15:59:36 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 16:01:11 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:01:21 | <sm> | as you're saying, it's not at all just a matter of UI; many UI difficulties are a manifestation of structural/architectural difficulties, whether in cabal or Cabal or ghc or ... |
| 16:01:31 | <sclv> | i mean its almost certain that if another set of decisions had been made people would have been unhappy with that set too. there's no way to change stuff without people feeling frustrated about the process of the change, and about having to learn new things |
| 16:02:15 | <yushyin> | ^ |
| 16:02:19 | <sm> | this is why some people like stack, it made a big contribution here |
| 16:02:36 | <sclv> | the main issue that is underattended in UI is a good workflow for cabal env files imho. the ball was dropped there. but less so with the versioning deprecation story which is pretty well worked out and sorted through, tho not necessarily the same plan others would have picked. |
| 16:03:10 | → | zxx7529 joins (~Thunderbi@user/zxx7529) |
| 16:04:20 | <sm> | that's right, we will complain about any change. Ideally good changes get made anyway.. and before long most of complainers realise they are good and we all move on |
| 16:04:38 | × | michalz quits (~michalz@185.246.204.97) (Ping timeout: 240 seconds) |
| 16:04:55 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:05:02 | × | sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds) |
| 16:05:52 | → | michalz joins (~michalz@185.246.204.75) |
| 16:05:54 | × | kaskal quits (~kaskal@213-225-33-152.nat.highway.a1.net) (Quit: ZNC - https://znc.in) |
| 16:06:24 | <[itchyjunk]> | Hi, wanted to make sure i understand why my code works here : https://bpa.st/CNRA |
| 16:06:26 | <sm> | backwards compatibility is generally good, but there needs to be a strategy and plan for evolution and cleanup |
| 16:07:02 | <sm> | (not saying cabal devs didn't have those, I'm sure they did.. executing them successfully is a whole nother kettle of worms) |
| 16:07:11 | <[itchyjunk]> | for `addList [1..5] [5..10]`, its going 1:2:3:4, then it hits the addList [] yes case. |
| 16:07:41 | <[itchyjunk]> | and ys is 5:6:7:8:9:10:[] |
| 16:07:43 | → | kaskal joins (~kaskal@213-225-33-152.nat.highway.a1.net) |
| 16:07:44 | <[itchyjunk]> | oops i forgot a 5 |
| 16:07:50 | <[itchyjunk]> | but that's basically why this works right? |
| 16:08:20 | → | sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl) |
| 16:08:47 | <[itchyjunk]> | i.e i end up with `1:2:3:4:5:5:6:7:8:9:10:[]` |
| 16:08:47 | <sclv> | i mean there is literally an executed plan for evolution and cleanup of v1 to v2 to onwards |
| 16:09:12 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:09:24 | <geekosaur> | [itchyjunk], yes |
| 16:09:55 | <[itchyjunk]> | nice! |
| 16:10:06 | × | CiaoSen quits (~Jura@p200300c9570ffb002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds) |
| 16:10:38 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 16:10:50 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 16:15:19 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 16:16:20 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 16:16:44 | → | werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) |
| 16:16:47 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 16:17:48 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 16:20:32 | × | nisstyre quits (wes@2600:3c00::f03c:91ff:fe69:7f3d) (Changing host) |
| 16:20:32 | → | nisstyre joins (wes@user/nisstyre) |
| 16:20:35 | × | MajorBiscuit quits (~MajorBisc@wlan-145-94-167-213.wlan.tudelft.nl) (Ping timeout: 268 seconds) |
| 16:22:26 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 16:23:26 | × | sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds) |
| 16:26:39 | × | naso quits (~naso@193-116-244-197.tpgi.com.au) () |
| 16:27:18 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 16:27:46 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 16:28:44 | → | sonologico joins (~raphael@dhcp-077-251-118-129.chello.nl) |
| 16:31:50 | × | yin quits (~yin@user/zero) (Ping timeout: 240 seconds) |
| 16:32:07 | <hippoid> | is there a guide for using lambdabot? I want to import a module into it like import Text.ParserCombinators.Parsec and then do :t many |
| 16:33:01 | <[exa]> | hippoid: you might have better luck with yahb, that behaves pretty much as a normal ghci |
| 16:33:05 | <geekosaur> | that's generally best done in local ghci |
| 16:33:11 | <[exa]> | +1 ^ |
| 16:33:55 | <geekosaur> | this reminds me though that I still haven't PRed my updated help docs |
| 16:34:09 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 16:34:46 | <hippoid> | ok, when I do 'import Text.ParserCombinators.Parsec; :t many' I get many :: Text.Parsec.Prim.ParsecT s u m a -> Text.Parsec.Prim.ParsecT s u m [a] |
| 16:35:13 | <geekosaur> | you'd get the same from lambdabot, why would you expect otherwise? |
| 16:35:29 | × | albet70_ quits (~user@114.250.139.224) (Remote host closed the connection) |
| 16:35:42 | → | albet70_ joins (~user@114.250.139.224) |
| 16:35:46 | <hippoid> | well I didn't get that with lambdabot. I got something about Alternative |
| 16:36:08 | <geekosaur> | without parsec imported, yes, you'd get the Alternative version of `many` |
| 16:36:10 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 240 seconds) |
| 16:36:22 | <hippoid> | but my question is about the type Text.Parsec.Prim.ParsecT. What's the long . separated type name? |
| 16:36:29 | → | haritz joins (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) |
| 16:36:29 | × | haritz quits (~hrtz@2a02:8010:65b5:0:6009:6384:e3cb:2220) (Changing host) |
| 16:36:29 | → | haritz joins (~hrtz@user/haritz) |
| 16:36:29 | <geekosaur> | parsec provides an optimized version |
| 16:36:59 | <geekosaur> | you probably want the haddocks |
| 16:37:05 | <geekosaur> | @haddock ParsecT |
| 16:37:05 | <lambdabot> | Unknown command, try @list |
| 16:37:14 | <geekosaur> | @hoogle ParsecT |
| 16:37:14 | <lambdabot> | Text.Parsec data ParsecT s u m a |
| 16:37:14 | <lambdabot> | Text.Parsec.Prim data ParsecT s u m a |
| 16:37:14 | <lambdabot> | Text.Megaparsec data ParsecT e s m a |
| 16:37:18 | <geekosaur> | derp |
| 16:37:26 | <geekosaur> | hoogle.haskell.org |
| 16:37:28 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 16:37:50 | × | sonologico quits (~raphael@dhcp-077-251-118-129.chello.nl) (Ping timeout: 240 seconds) |
| 16:38:00 | <hippoid> | import Text.ParserCombinators.Parsec |
| 16:38:05 | <hippoid> | :t many |
| 16:38:07 | <lambdabot> | Alternative f => f a -> f [a] |
| 16:38:29 | <geekosaur> | @let import Text.ParserCombinators.Parsec |
| 16:38:30 | <lambdabot> | /sandbox/tmp/.L.hs:142:1: error: |
| 16:38:30 | <lambdabot> | Text.ParserCombinators.Parsec: Can't be safely imported! |
| 16:38:30 | <lambdabot> | The package (parsec-3.1.14.0) the module resides in isn't trusted. |
| 16:38:37 | <geekosaur> | ah, well |
| 16:38:41 | <hippoid> | lol |
| 16:38:48 | <geekosaur> | % import Text.ParserCombinators.Parsec |
| 16:38:48 | <yahb2> | <no output> |
| 16:38:53 | <geekosaur> | % :t many |
| 16:38:53 | <yahb2> | many ; :: Text.Parsec.Prim.ParsecT s u m a ; -> Text.Parsec.Prim.ParsecT s u m [a] |
| 16:39:48 | <ggVGc> | is anyone here working professionally with Haskell, and in that case, what auto-formatter do you use? |
| 16:39:49 | <geekosaur> | anyway, parsec internally carries around a state, a user defined value you can use for anything you need, and an underlying monad (which is usually but not always IO) |
| 16:40:00 | <hippoid> | how should I understand Text.Parsec.Prim.ParsecT. like why is it such a long period delimited type name? |
| 16:40:03 | <ggVGc> | My impression is that ormolu is trying to be the industry standard, but not sure what the reality is |
| 16:40:11 | <geekosaur> | because that module isn't imported |
| 16:40:20 | <geekosaur> | % import Text.Parsec.Prim |
| 16:40:20 | <yahb2> | <no output> |
| 16:40:25 | <geekosaur> | :t many |
| 16:40:26 | <lambdabot> | Alternative f => f a -> f [a] |
| 16:40:41 | <geekosaur> | hm |
| 16:41:18 | <geekosaur> | % import Text.ParserCombinators.Parsec |
| 16:41:18 | <yahb2> | <no output> |
| 16:41:21 | <geekosaur> | :t many |
| 16:41:22 | <lambdabot> | Alternative f => f a -> f [a] |
| 16:41:30 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 16:41:33 | <hippoid> | oh. so we imported the module Text.ParserCombinators.Parsec, which imported many, but not all the types that many is comprised of? |
| 16:41:51 | <geekosaur> | yes, so it fully qualifies the missing types |
| 16:41:56 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 16:41:57 | <geekosaur> | in ghci (but not ghc) that works |
| 16:42:11 | <hippoid> | wild |
| 16:42:24 | <hippoid> | thanks for clarifying |
| 16:45:03 | <geekosaur> | (also the name "Text.ParserCombinators.Parsec" has been deprecated for a long time; it's just "Text.Parsec" these days_ |
| 16:45:05 | <geekosaur> | ) |
| 16:45:58 | <geekosaur> | that was the hierarchy parsec v1 used. nobody likes typing such a long name, so parsec v2 and later dropped the "ParserCombinators" part |
| 16:46:28 | × | fserucas quits (~fserucas@83.223.235.72) (Quit: Leaving) |
| 16:46:41 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:47:25 | albet70_ | is now known as tmp_away |
| 16:48:07 | <pavonia> | Is there a way to do something like `_ | even i && (Just j <- foo) -> ...` in one case alternative? |
| 16:48:25 | × | tmp_away quits (~user@114.250.139.224) (Quit: ERC (IRC client for Emacs 26.3)) |
| 16:48:48 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 16:50:56 | × | mbuf quits (~Shakthi@122.165.55.71) (Quit: Leaving) |
| 16:51:26 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 16:52:07 | <dolio> | `even i, Just j <- foo` |
| 16:52:39 | × | jespada_ quits (~jespada@45.162.228.187) (Ping timeout: 268 seconds) |
| 16:52:39 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 16:52:54 | <dolio> | You can mix boolean and pattern guards, comma separated. |
| 16:53:11 | <dolio> | It's equivalent to the conjunction of them. |
| 16:53:32 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 16:53:47 | <pavonia> | Excellent, thanks |
| 16:54:38 | × | machined1od quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 16:56:17 | → | jespada joins (~jespada@45.162.228.190) |
| 16:58:56 | → | tmp_away joins (~user@114.250.139.224) |
| 16:59:31 | <tmp_away> | how to turn a char to text char? |
| 16:59:48 | <tmp_away> | like "\123" to a text char |
| 17:00:08 | <[exa]> | the "\123" is a String? |
| 17:00:39 | <geekosaur> | do you mean you want the actual display character, or a value of type Text? |
| 17:00:50 | × | zxx7529 quits (~Thunderbi@user/zxx7529) (Quit: zxx7529) |
| 17:01:07 | <hippoid> | who does the T at the end of ParsecT signal? |
| 17:01:15 | <geekosaur> | "transformer" |
| 17:01:17 | × | lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 255 seconds) |
| 17:01:24 | <hippoid> | monad transformer? |
| 17:01:34 | <geekosaur> | it means the "m" in the type is another monad, which ParsecT transforms into a parser |
| 17:01:39 | <geekosaur> | yes |
| 17:01:47 | <tmp_away> | for example, there is text "\123 whatever msg", now I want to filter that "\123" |
| 17:02:03 | <tmp_away> | remove it |
| 17:03:01 | <geekosaur> | > filter (/= '\123') "\123 whatever msg" |
| 17:03:03 | <lambdabot> | " whatever msg" |
| 17:03:22 | <tmp_away> | [exa]: a string is [Char], what Text is? |
| 17:03:24 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:03:31 | <tmp_away> | [Text-Char]? |
| 17:03:50 | <merijn> | tmp_away: Text is Text |
| 17:03:50 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds) |
| 17:04:24 | <tmp_away> | merijn: 'a' is a Text, "ab" is a Text? |
| 17:04:58 | <merijn> | tmp_away: Neither of those are Text |
| 17:05:01 | <geekosaur> | 'a' is a Char, "a" aka ('a':[]) is a Strikg aka [Char], Text is a different type entirely representing an optimized representation for strings |
| 17:05:59 | <geekosaur> | because String is a really wasteful representation for strings, unless you're processing them in a streaming fashion which means the list is never even constructed |
| 17:06:08 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 17:06:16 | <geekosaur> | for most things you probably want Text |
| 17:06:40 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 17:07:42 | <tmp_away> | geekosaur then when haskell would remove String out? |
| 17:08:02 | <geekosaur> | probably never since all the core APIs are defined in terms of String |
| 17:08:02 | <merijn> | tmp_away: Never? Why would you do that? |
| 17:08:07 | <geekosaur> | it's an ongoing argument |
| 17:08:20 | <tmp_away> | lots of Text.pack and unpack and -XOverloadedStrings |
| 17:08:24 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 17:08:28 | <merijn> | geekosaur: I don't see it going away even when APIs are reformulated, it's just to convenient |
| 17:09:20 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
| 17:12:19 | → | ski joins (~ski@ext-1-213.eduroam.chalmers.se) |
| 17:13:58 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 17:14:38 | → | Pickchea joins (~private@user/pickchea) |
| 17:22:13 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 17:22:15 | → | gmg joins (~user@user/gehmehgeh) |
| 17:24:01 | <albet70> | would there be haskell-2020? |
| 17:24:24 | <albet70> | just like haskell-98 and haskell-2010 |
| 17:26:05 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 17:26:19 | <dsal> | There's GHC2021 which is close enough. |
| 17:26:47 | <sm> | https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/control.html#extension-GHC2021 |
| 17:27:01 | <albet70> | dsal , but why they are haskell-xx, this is GHC2021? |
| 17:27:08 | <merijn> | dsal: It's really not |
| 17:27:25 | <merijn> | dsal: In fact, GHC2021 isn't remotely *close* to a Haskell20XX |
| 17:27:41 | <merijn> | dsal: It doesn't do any of the actual important (but hard) bits |
| 17:27:43 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 17:27:50 | <geekosaur> | albet70, the haskell language committee is waiting for someone to formalize at least some of the extensions that have been made to haskell2010 |
| 17:27:55 | <sm> | not enough demand for a new language report right now, a common set of GHC extensions was much easier |
| 17:28:07 | <geekosaur> | nothing has been done about this, or documenting how various extensions interact, etc. |
| 17:28:10 | → | econo joins (uid147250@user/econo) |
| 17:28:37 | <albet70> | merijn , then what's the point of GHC2021? |
| 17:28:37 | <merijn> | geekosaur: Or more importantl, what they SHOULD do and how they SHOULD interact (as opposed to how they *happen* to interact) |
| 17:28:51 | <merijn> | albet70: People dislike writing 20 extensions into their files |
| 17:28:56 | <merijn> | That's the sole point of it |
| 17:29:04 | geekosaur | does wonder how much of this is also that nobody wants to properly document how base haskell does 🙂 |
| 17:29:30 | × | AlexZenon quits (~alzenon@178.34.150.131) (Ping timeout: 268 seconds) |
| 17:29:30 | × | Alex_test quits (~al_test@178.34.150.131) (Ping timeout: 268 seconds) |
| 17:30:05 | <geekosaur> | (go look at the one sentence that describes standard Haskell's type system…) |
| 17:30:40 | <geekosaur> | one suspects they'd need to expand it in order to fit e.g. type families into it |
| 17:30:52 | × | AlexNoo quits (~AlexNoo@178.34.150.131) (Ping timeout: 245 seconds) |
| 17:31:02 | × | lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 240 seconds) |
| 17:31:19 | → | AlexNoo joins (~AlexNoo@178.34.150.131) |
| 17:35:06 | × | tmp_away quits (~user@114.250.139.224) (Quit: ERC (IRC client for Emacs 26.3)) |
| 17:37:19 | → | Alex_test joins (~al_test@178.34.150.131) |
| 17:38:24 | → | AlexZenon joins (~alzenon@178.34.150.131) |
| 17:38:48 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 17:38:56 | <albet70> | import qualified lots of modules is also annoying |
| 17:39:35 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 17:40:12 | <albet70> | and all the type signature is like X.Y |
| 17:40:57 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:43:08 | <sm> | VS Code + HLS helps with that a bit |
| 17:43:12 | <yushyin> | it's a common pattern to import the types not qualified but only the functions |
| 17:43:30 | <sm> | it makes adding imports easy. I don't think it adds type signatures for you yet. |
| 17:43:47 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 17:51:13 | <albet70> | yushyin , but when functions have same names? |
| 17:51:49 | <geekosaur> | but it's a single click |
| 17:52:01 | <geekosaur> | as for qualification, last I checked it had a code action for that |
| 17:54:24 | <albet70> | which module id or const come from? |
| 17:54:49 | <albet70> | since it works on arbitrary type |
| 17:55:47 | <geekosaur> | hls knows what the type is and can do what ghc refuses to: type directed name resolution |
| 17:59:09 | <geekosaur> | not saying that it does, but it seems to offer that option |
| 18:01:29 | → | Guest|74 joins (~Guest|74@KH42117.karlshof.wh.tu-darmstadt.de) |
| 18:01:57 | × | Guest|74 quits (~Guest|74@KH42117.karlshof.wh.tu-darmstadt.de) (Client Quit) |
| 18:03:56 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 18:04:12 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 18:06:37 | Lord_of_Life_ | is now known as Lord_of_Life |
| 18:15:52 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 245 seconds) |
| 18:17:53 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:21:45 | <sm> | geekosaur, did you say there's a single click to add a type signature ? |
| 18:22:10 | <geekosaur> | it shows a type signature above anything missing one. click it and it gets inserted |
| 18:23:22 | <geekosaur> | (I found that by accident, and it caused my program to not compile because it needed 2 additional imports it didn't bother to add…) |
| 18:23:41 | <geekosaur> | (so it's not quite perfect as yet) |
| 18:25:20 | → | mikoto-chan joins (~mikoto-ch@85-76-162-130-nat.elisa-mobile.fi) |
| 18:29:00 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 18:30:52 | × | son0p quits (~ff@181.136.122.143) (Ping timeout: 245 seconds) |
| 18:31:52 | × | stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 268 seconds) |
| 18:36:52 | × | mikoto-chan quits (~mikoto-ch@85-76-162-130-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 18:37:35 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: Leaving) |
| 18:38:38 | → | mikoto-chan joins (~mikoto-ch@85-76-118-24-nat.elisa-mobile.fi) |
| 18:39:02 | → | Midjak joins (~Midjak@82.66.147.146) |
| 18:40:36 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 18:42:26 | × | Midjak quits (~Midjak@82.66.147.146) (Client Quit) |
| 18:48:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 18:48:17 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 18:50:17 | × | Tuplanolla quits (~Tuplanoll@91-159-68-204.elisa-laajakaista.fi) (Quit: Leaving.) |
| 18:51:13 | → | stiell_ joins (~stiell@gateway/tor-sasl/stiell) |
| 18:53:01 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 18:59:12 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
| 19:03:14 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 268 seconds) |
| 19:04:10 | → | vglfr joins (~vglfr@194.9.14.33) |
| 19:10:10 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
| 19:16:48 | × | doelie quits (~tom@c-73-17-195-134.hsd1.ma.comcast.net) (Ping timeout: 268 seconds) |
| 19:18:48 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 19:19:03 | → | vglfr joins (~vglfr@194.9.14.33) |
| 19:20:02 | × | mikoto-chan quits (~mikoto-ch@85-76-118-24-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 19:22:12 | → | Guest3 joins (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) |
| 19:23:35 | → | mikoto-chan joins (~mikoto-ch@85-76-40-9-nat.elisa-mobile.fi) |
| 19:24:08 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Write error: Connection reset by peer) |
| 19:24:08 | × | gmg quits (~user@user/gehmehgeh) (Read error: Connection reset by peer) |
| 19:24:08 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Read error: Connection reset by peer) |
| 19:24:33 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 19:25:09 | → | gmg joins (~user@user/gehmehgeh) |
| 19:25:26 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 19:26:23 | × | vglfr quits (~vglfr@194.9.14.33) (Read error: Connection reset by peer) |
| 19:26:38 | × | Guest3 quits (~textual@pool-100-11-18-203.phlapa.fios.verizon.net) (Client Quit) |
| 19:27:00 | <ggVGc> | Can someone help correct my thinking here? :( https://gist.github.com/d3234983e9bf086e62378979e6a9890a |
| 19:27:16 | → | vglfr joins (~vglfr@194.9.14.33) |
| 19:28:10 | <ggVGc> | The whole thing doesn't make much sense I guess |
| 19:28:49 | <merijn> | ggVGc: Do you have GADTs enabled? |
| 19:28:55 | <ggVGc> | yes |
| 19:29:37 | <merijn> | ggVGc: oh, wait, you don't actually have a 'def' value, so assuming getName needs an actual value, you're screwed |
| 19:29:43 | <ggVGc> | Basically, I want to have a Def class, from which I can create Refs (which hold the Def as a phantom param), and later on be able to get the name of the Def from a Ref |
| 19:30:14 | <ggVGc> | I feel like this should be achievable without resorting to carrying an instance of Def with each Ref? |
| 19:30:28 | → | VictorHugenay joins (~jh@user/VictorHugenay) |
| 19:30:30 | <ggVGc> | Since a Ref is statically associated with a Def through the type... |
| 19:30:30 | <geekosaur> | I think if it's phantom then all you have is the type, not something you can call getName on |
| 19:30:41 | <ggVGc> | yeah, the getName part is what's wrong I think |
| 19:31:01 | × | mokee quits (~mokee@37.228.215.83) (Quit: off) |
| 19:31:03 | <ggVGc> | I need to do it through some other mechanism than a class, but I'm not able to figure out how |
| 19:31:05 | <geekosaur> | unless you can somehow move the name into the type level, but that probably means a whole new level of pain |
| 19:31:35 | <ggVGc> | Making Refs have to carry instances of Def also adds some levels of pain for me ;( |
| 19:33:23 | → | sandy_doo joins (~sandydoo@2a03:1b20:6:f011::a07e) |
| 19:33:54 | <ggVGc> | wait, my mistake is making getName require a dummy value... I don't actually ever need that |
| 19:34:03 | <ggVGc> | tired and sloppy |
| 19:34:34 | <geekosaur> | don't you need it to make the typeclass resolve? |
| 19:35:05 | <geekosaur> | unless you enable AllowAmbiguousTypes and use a TypeApplication |
| 19:35:21 | <merijn> | geekosaur: I think he just realised he doesn't need 'a -> String' |
| 19:35:27 | <merijn> | geekosaur: But can use 'Proxy a -> String' |
| 19:36:05 | <ggVGc> | I mean... I didn't, haha :( Yes, the typeclass resolution is the issue and why I had it from the start |
| 19:37:57 | × | mikoto-chan quits (~mikoto-ch@85-76-40-9-nat.elisa-mobile.fi) (Ping timeout: 245 seconds) |
| 19:38:59 | <geekosaur> | @ask int-e COMMANDS seems to no longer be a part of lambdabot (I don't rven remember what used to point to it). Is there somewhere for my replacement to fit, aside from doc/ ? |
| 19:39:00 | <lambdabot> | Consider it noted. |
| 19:39:14 | <mrianbloom> | Is it possible to hold a constraint dictionary in a datatype so that anywhere I deconstruct the datatype I can use the constraint? |
| 19:39:18 | <geekosaur> | "rven". I can type 😛 |
| 19:39:34 | <geekosaur> | mrianbloom, that sounds like a GADT to me |
| 19:40:16 | <mrianbloom> | I see. |
| 19:40:47 | <ski> | mrianbloom : yes, `data Foo ... = C a => MkFoo ...' or `data Foo ... :: ... where MkFoo :: C a => ... -> Foo ...' (with optional `forall a.') |
| 19:41:09 | <ski> | (first is `GADTs', second is `ExistentialQuantification') |
| 19:41:17 | <ski> | (er .. other way around) |
| 19:42:13 | <mrianbloom> | I see, so far I haven't been able to really use existential quantification to good effect. I think part of the problem is, I'm using type families. |
| 19:43:14 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3ad-40.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 19:43:26 | × | vglfr quits (~vglfr@194.9.14.33) (Ping timeout: 240 seconds) |
| 19:45:37 | <ski> | (this is not really existential quantification, but the corresponding "constraint provision" part. also, `ExistentialQuantification' is arguably a misnomer (since it doesn't enable a syntax like `exists a. C a *> ..a..' .. iirc LHC did allow `exists a. ..a..', albeit only in contravariant position (iow to the left of function arrows, in argument types))) |
| 19:46:44 | → | Vajb joins (~Vajb@n1zigc3rgo9mpde2w-1.v6.elisa-mobile.fi) |
| 19:48:21 | <geekosaur> | doesn't UHC have `exists`? |
| 19:48:32 | <merijn> | geekosaur: I think so? |
| 19:48:36 | <ski> | maybe it was UHC i was thinking about |
| 19:48:38 | <geekosaur> | granting that nobody outside of Utrecht uses it |
| 19:48:42 | <dolio> | You can't use it with constraints, though. |
| 19:48:47 | <dolio> | As I recall. |
| 19:49:08 | <ski> | (imho, something like `ExistentialDataConstructors' or `ExistentialConstructors', or maybe `ExistentialDataTypes', would be a better name for what the extension actually does .. although, maybe to properly indicate the context provision part, one could imagine something like `BundledConstructors' .. although that may need more work to not sound as vague) |
| 19:49:52 | × | VictorHugenay quits (~jh@user/VictorHugenay) (Quit: Konversation terminated!) |
| 19:50:24 | <ski> | (bundling a data constructor with types ior constraints, not visible from the outside, i.e.) |
| 19:58:06 | <ggVGc> | I'm confused again... https://gist.github.com/d3234983e9bf086e62378979e6a9890a |
| 19:58:38 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Remote host closed the connection) |
| 19:58:53 | → | yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) |
| 20:00:29 | <ggVGc> | Adding the HasDefName constraint as suggested yields this instead: https://gist.github.com/d3234983e9bf086e62378979e6a9890a |
| 20:01:43 | <geekosaur> | don't you actually have to match on the (value) Ref to get at the enclosed HasDefName? |
| 20:03:26 | <hippoid> | is there an example of a commonly used Functor which is not also a Monad? |
| 20:03:53 | <ski> | yes, you have to match |
| 20:03:55 | <ggVGc> | I mean, I'm not entirely sure what I'm doing :) Hence why I am failing... I just feel there should be a way to get the name from Def instances without making a Ref carry a Def value |
| 20:04:58 | × | yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 20:05:45 | <ski> | hippoid : `Coyoneda f' maybe ? (e.g. `Coyoneda IORef' is basically `data ReadIORef a = forall b. MkReadIORef (b -> a) (IORef b)') |
| 20:05:49 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 20:06:13 | <ski> | .. i don't recall if we determined `ZipList' to actually satisfy the monad laws or not |
| 20:06:28 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:08:52 | <hippoid> | ski: according to this, it does not https://www.reddit.com/r/haskell/comments/nfyvy/instance_monad_ziplist_where/ |
| 20:09:01 | <ski> | ggVGc : hm, looking closer at your code (i guess you replace the middle paste by the last one, so i can't see the middle one), it looks like `getName' for `Def (Ref def)' can't call `getName' for `Def def', without you getting hold of a `Ref def' (which contains the provided/bundled `Def def' instance) there |
| 20:09:10 | → | yvan-sraka joins (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) |
| 20:09:16 | <merijn> | ski: It can't, at least not as newtype |
| 20:09:36 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:10:18 | <merijn> | ski: Simple counter example "foo >>= return" cannot be equivalent to foo |
| 20:10:32 | <merijn> | because return doesn't know how many initial elements you had |
| 20:10:52 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 20:11:24 | <merijn> | The applicative uses "pure = repeat" |
| 20:11:41 | <ski> | i'm not seeing why that would fail |
| 20:11:50 | <merijn> | But "ZipList [1] >>= return" would produce an infinite ZipList of 1s |
| 20:11:51 | <ggVGc> | ski: yeah, I gave up and made Refs hold a Def instance for now... https://gist.github.com/4d208a6751919aa39e088605fa7a5a7d (I guess that's what you meant?) |
| 20:11:55 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:12:18 | <merijn> | ski: Whereas monad laws dictate that "ZipList [1] >>= return" = "ZipList [1] |
| 20:12:35 | <ski> | merijn : why ? .. you `map repeat', then take the diagonal |
| 20:13:01 | <monochrom> | Hey that's a much simpler problem than what I ran into :) I ran into associativity problems with join... |
| 20:13:21 | <ski> | yea, iirc, last i was thinking about it, i was unsure about associativity |
| 20:13:35 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-d0dd-a126-3a7b-298c.res6.spectrum.com) (Remote host closed the connection) |
| 20:13:35 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 20:13:46 | <merijn> | ski: You do "map repeat" on what? |
| 20:13:52 | <ski> | (istr i was thinking by making it appropriately partial, one could possibly get associativity) |
| 20:13:57 | <ski> | merijn : on `foo' |
| 20:14:01 | <merijn> | monochrom: I had to think of an example on the fly and I'm dumb, so I can only conceive simple examples |
| 20:14:16 | <merijn> | ski: How does that work out in my example of "ZipList [1] >>= return"? |
| 20:14:19 | <ski> | `foo >>= repeat = diag (map repeat foo)' |
| 20:14:45 | <ski> | so you get `diag [repeat 1]', which is `[1]' |
| 20:14:46 | <merijn> | What does diag do? |
| 20:15:28 | <ski> | takes 0th element of 0th list, 1st element of 1st list, &c., until some diagonal element fails to exist, at which point we end the list |
| 20:15:31 | <merijn> | hmmm |
| 20:15:49 | <ski> | (it's the proper `join' to try with `repeat' as `return'/`pure') |
| 20:15:49 | <monochrom> | diag [xs0, xs1, xs2, ...] = [xs0 !! 0, xs1 !! 1, xs2 !! 2, ...] |
| 20:16:03 | → | TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) |
| 20:16:21 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 20:16:23 | <ski> | (`join' is not `concat', in this case) |
| 20:16:36 | <dolio> | Making it partial doesn't help. I've tried. |
| 20:16:41 | → | pavonia joins (~user@user/siracusa) |
| 20:16:50 | <ski> | associativity still fails ? |
| 20:16:51 | × | cosimone quits (~user@93-44-186-171.ip98.fastwebnet.it) (Read error: Connection reset by peer) |
| 20:17:03 | <dolio> | Yes. |
| 20:17:18 | <ski> | nice. i'll have to check it in detail |
| 20:17:38 | <dolio> | I think the only way you can make it associative is to use something like codensity to force a canonical associativity of the entire computation. |
| 20:18:00 | <ski> | mhm .. might be interesting to work out what the resulting behaviour of that would be |
| 20:18:02 | <monochrom> | Well, stopping early vs bottoming early is only a difference between [] and _|_ that doesn't really matter... |
| 20:18:11 | → | yauhsien joins (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) |
| 20:18:17 | <ski> | (well, i guess it'll just right-associate the `(>>=)'s) |
| 20:19:03 | <ski> | istr thinking one could run into problems with diagonal element happening to exist with one way to squash the cube, but not the other way around |
| 20:20:03 | <dolio> | Right. |
| 20:20:36 | <dolio> | The essential problem is that you can't really tell what to do with a slice just by looking at a slice. It depends on all the slices involved. |
| 20:22:02 | <dolio> | E.G. if your strategy is to fill in with bottoms, you don't know how many bottoms to fill without knowing the dimensions of all slices. |
| 20:23:10 | <ski> | mhm |
| 20:23:33 | × | yauhsien quits (~yauhsien@118-167-41-184.dynamic-ip.hinet.net) (Ping timeout: 268 seconds) |
| 20:24:04 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 20:24:06 | <dolio> | And without that global information, you'll end up with different results depending on which direction you slice things. |
| 20:24:29 | <ski> | yea |
| 20:25:53 | <monochrom> | The good news is that diagonalling works for infinite lists :) |
| 20:26:22 | → | vglfr joins (~vglfr@194.9.14.33) |
| 20:26:35 | <monochrom> | It's when you want to truncate that you have inconsistent truncations. |
| 20:26:50 | <dolio> | Yeah, any fixed size works. |
| 20:27:19 | <dolio> | Then you do know how big every cube is. |
| 20:27:52 | <monochrom> | The beautiful correspondences between "it's always 5 items" and SetOf5->a, and between infinite list and Natural->a |
| 20:28:38 | <ski> | (bag ?) |
| 20:28:39 | <monochrom> | (I learned it the hard way!) |
| 20:28:47 | <ski> | (what was the hard way ?) |
| 20:29:15 | <monochrom> | OK so one day I wondered how to make "data Two a = Two a a" a monod. |
| 20:29:18 | <monochrom> | err, monad. |
| 20:29:27 | <merijn> | ski: going over every single natural to check |
| 20:29:30 | <ggVGc> | Sweet, I got it working :) Now I can make typechecked connections between "things" based on the range of values that inputs and outputs accept: https://gist.github.com/c20c3a04d2516b61db5f8a82e875a162 |
| 20:29:33 | <ski> | hehe |
| 20:30:16 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 268 seconds) |
| 20:30:19 | <monochrom> | So I said "OK this is the composition of two adjoint functors, there is a formula for join = what happens to composing two adjoint functors, let me shut up and calculate..." |
| 20:30:23 | <ggVGc> | I still feel I shouldn't need that Def value in each Ref instance, but can't figure it out any other way... |
| 20:30:48 | × | yvan-sraka quits (~yvan-srak@209.red-2-139-126.dynamicip.rima-tde.net) (Remote host closed the connection) |
| 20:30:51 | <monochrom> | Two hours later I got the correct answer. Then I hopped in here to report my achievement. |
| 20:31:00 | <ggVGc> | SInce the result of getName for each Def doesn't rely on a runtime value, but is a static string based on the type |
| 20:31:08 | <monochrom> | Then someone bursted the bubble with "dude that's (->) Bool" |
| 20:31:37 | <monochrom> | (I'm paraphrasing. They didn't say "dude", they were much nicer heh) |
| 20:32:07 | <geekosaur> | ggVGc, as I mentioned earlier, that puts you into the realm of type level strings (Symbols). you can use the singletons library to get there, if you dare |
| 20:32:21 | <ggVGc> | yeah, that's what I figured... |
| 20:32:23 | <ski> | ggVGc : `State' ? |
| 20:32:38 | <monochrom> | On the bright side, I turned it into many exam questions. :) |
| 20:32:44 | <ggVGc> | and I do not dare... I think, at least for now. I value my time |
| 20:32:46 | → | zeenk joins (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) |
| 20:32:48 | → | cosimone joins (~user@93-44-186-171.ip98.fastwebnet.it) |
| 20:33:40 | <darkling> | Good exam questions are good to find. :) |
| 20:33:41 | <ski> | ggVGc : how's `HasDefName' and `Pin' defined ? |
| 20:33:52 | <ski> | merijn : nice :) |
| 20:34:13 | <ski> | er .. monochrom ^ |
| 20:34:32 | <ggVGc> | ski: you mean to keep the state of the bound instances? Yeah, that's the future plan. Actually, I already have all that working right now (and have been using this software for a few years making music stuff). It's the same idea with defs and refs and input/outputs inside a State monad. But I am trying to transition most of the range checking from runtime to compile-time. So, this is the prototype |
| 20:34:33 | <ggVGc> | for what I will then gradually sneak into my existing State monad |
| 20:35:04 | <ski> | mhm |
| 20:35:41 | <ggVGc> | ski: https://gist.github.com/8b7f276ec0b6b877960bb342e1adf06f |
| 20:36:19 | <ski> | ok, so no constraint in `Pin' |
| 20:37:06 | <monochrom> | Whoever invented/discovered representable functors should have named their paper "the next 700 functors" :) |
| 20:37:22 | <ski> | there's a difference betweem `NonZeroPos' and `Positive' ? you're using french convention for "positive" ? and "negative" ? (or assembler / machine code notion of "positive" ?) |
| 20:37:32 | <ggVGc> | I don't need it, for now. Since I never extract anything out of it. Pin is just to tie a def to some range, and produce a runtime value which I then use for code generation (spitting out C++) |
| 20:38:25 | <ggVGc> | I never care about negative numbers, at least not for now. But I do care specifically about non-negative ones, and I do care about non-zero ones :) |
| 20:38:29 | <ski> | ggVGc : trying to figure out how `HasDefName' get (presumably) used in `connectionTest' |
| 20:39:09 | <ski> | just saying that it's common for "positive" to already be taken to exclude zero .. unless in the two contexts i mentioned, that i know of |
| 20:39:22 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 20:39:53 | <ggVGc> | ski: this is the whole thing: https://gist.github.com/66e360b02ac2a894b06b26a220f0a61b |
| 20:40:10 | ski | 's been disassembling and trying to grok a piece of software, from 1986, lately |
| 20:40:31 | <ggVGc> | ah, yeah, for lack of better terminology I use Positive to include zero, since I care about the non-zero positive case specifically |
| 20:40:32 | <ski> | (more specifically, a Prolog implementation for the Commodore 64) |
| 20:41:08 | <monochrom> | That's some feat. 64KB does not look like enough for Prolog... |
| 20:41:33 | <ggVGc> | It's outrageous to me the software that was made for C64s and amigas |
| 20:41:49 | <ggVGc> | or.. even Amiga OS itself |
| 20:42:08 | <monochrom> | Next thing you know "ghc -fllvm" works on C64 too. |
| 20:43:27 | <ski> | (i would use a kind signature for `SRangeType') |
| 20:43:45 | <ski> | hehe |
| 20:44:16 | <ggVGc> | there are definitely tons of improvements I could make. I am using this as a chance to get out of my "writing Haskell like a toddler" zone a bit |
| 20:44:36 | <ggVGc> | while still having the goal of making it practically useful for myself in a near future |
| 20:45:17 | <ggVGc> | Even after having used Haskell for many years, I never really did much type-level stuff |
| 20:45:50 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 20:48:13 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Ping timeout: 268 seconds) |
| 20:48:45 | <ski> | it's a very basic Prolog .. has only basic Edinburgh compatibility (put/1,get0/1,get/1,see/1,seeing/1,seen/0,tell/1,telling/1,told/1,clause/2,arg/3,(no setarg/3),functor/2,...,(is)/2,basic arithmetic operations and relations, equality and identity checks (negation is indicated with `/', since C64 doesn't have a `\' sign) .. also, no floats, and integers only `0' through `8191' .. relatively low limits on |
| 20:48:51 | <ski> | arity, number of goals in a rule, number of variables in a clause or query, or in use at the same time (it seems to use a substitution model, rather than using update-in-place). there's some machine specific predicates for graphics (including Turtle), sound, randomness) .. also, i'd like to add Last/Tail Call optimization, and mutatis mutandis for failures rather than successes) |
| 20:50:17 | <ski> | anyway, the code itself is only 12 K. stack is a bit over 32 K, and heap is 8 K |
| 20:50:24 | <ggVGc> | haha, "integers only `0' through `8191'" |
| 20:50:26 | <ggVGc> | beautiful |
| 20:50:54 | <ski> | they're stored in-word (16 bits), with a few bits used for tagging |
| 20:51:36 | <ski> | there is firmware (KERNAL ROM) routines for floating-point (an unusual 5-byte one), which i'm thinking about employing |
| 20:53:02 | × | machinedgod quits (~machinedg@d172-219-86-154.abhsia.telus.net) (Ping timeout: 240 seconds) |
| 20:56:11 | → | sts-q joins (~sts-q@2a01:41e1:239e:8600:5ca9:a95b:5e06:aaf8) |
| 20:56:50 | <ski> | i started with figuring out the format of the symbol table, then the representation for the predicate clauses (some built-in predicates are primitives, defined by a machine code routine, some are defined by Prolog clauses, which are stored as lists of terms). next i figured out the bank-switching (between firmware BASIC ROM, which it reuses a little bit of, for tokens i think. it also uses KERNAL for I/O, |
| 20:56:56 | <ski> | and the screen editor), and start-up code. then i found the primitive routine table, and now i'm looking at the corresponding routines, and some various other ones |
| 20:58:55 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:00:10 | → | causal joins (~user@50.35.83.177) |
| 21:00:35 | <ski> | (trying to make an assembler source which will assemble to the same as the original file .. then i'll try to think about enhancements, and modifications .. also, there was a few bugs/misfeatures i was looking to improve upon .. but i may need to add some more bank-switching, if i need to use more memory for the code .. and it looks like my assembler (an inline/in-memory one, not offline/to-disk) can't hold |
| 21:00:41 | <ski> | all the required source, and the object code, in memory at the same time, so i'll need to split and figure out how to resolve the symbol/label interdependencies) |
| 21:02:42 | <ski> | monochrom : years ago, i was thinking about trying to do a combinator-based architecture on it (for an FPL), inspired by Philip Koopman's Ph. D. thesis ("TIGRE") |
| 21:02:57 | <ski> | (graph reduction, i.e.) |
| 21:06:23 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:06:47 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 21:08:09 | × | pavonia quits (~user@user/siracusa) (Read error: Connection reset by peer) |
| 21:09:49 | × | Raito_Bezarius quits (~Raito@wireguard/tunneler/raito-bezarius) (Max SendQ exceeded) |
| 21:10:52 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 245 seconds) |
| 21:11:27 | → | Raito_Bezarius joins (~Raito@wireguard/tunneler/raito-bezarius) |
| 21:13:18 | → | pavonia joins (~user@user/siracusa) |
| 21:13:59 | → | coot joins (~coot@213.134.190.95) |
| 21:20:59 | × | Inoperable quits (~PLAYER_1@fancydata.science) (Quit: All your buffer are belong to us!) |
| 21:21:06 | <EvanR> | ggVGc, arguably, "useful for myself" and "type level stuff" are orthogonal xD |
| 21:22:36 | <EvanR> | ski, do I dare ask what mutatis mutandis is or do I need to go to wizard school |
| 21:23:26 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds) |
| 21:25:11 | <ski> | "changing what needs to be changed" |
| 21:25:26 | × | acidjnk quits (~acidjnk@p200300d6e70586786c92b9403fbc0a82.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 21:26:10 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 21:31:19 | × | noteness quits (~noteness@user/noteness) (Ping timeout: 268 seconds) |
| 21:31:27 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 21:32:25 | <ski> | proper tail calls amount to eta-reducing, or rather, not uselessly eta-expanding, the continuation. so `jmp last_call' in place of `jsr last_call' followed by `rts'. in case of logic programming, with backtracking, we have two levels of continuations (`ContT o (ContT p m)'), success continuations and failure continuations (the former takes one of the latter as a parameter, called "redo"). if you say "Last |
| 21:32:31 | <ski> | Call" (discovered in LP independently of "Tail Call" in FP), you typically mean wrt the success continuations, so calling the last predicate (if no more clauses, and no new choice points are still extant) will reuse (the memory of) the current frame. "tail failure", for failure continuations, means that it doesn't uselessly try to find (the non-existent) clause after the last one, and that there is also no |
| 21:32:37 | <ski> | choice-point for the last disjunct in a disjunction. so it's reusing the failure continuation (as well), for the last alternative, just like reusing the success continuation, for the last conjunct in a conjunction |
| 21:33:12 | <ski> | @unmtl ContT o (ContT p m) a |
| 21:33:12 | <lambdabot> | (a -> (o -> m p) -> m p) -> (o -> m p) -> m p |
| 21:33:56 | → | noteness joins (~noteness@user/noteness) |
| 21:34:33 | <EvanR> | makes sense |
| 21:34:42 | <ski> | the first argument is the success continuation, the second is the failure continuation. the success continuation also takes a failure/redo continuation, which tells it where to retry (it amounts to the choice-point), if something later (in the sequence of conjuncts in the conjunction) fails, and we have to backtrack, reversing normal order of execution |
| 21:36:43 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 21:37:47 | <ski> | (of course, at assembler level, `p' would basically be `Void', so no "final return/answer/result". when encoding backtracking with functions, it's possible (e.g. i've seen this in lambdaProlog (Terzo interpreter),Lolli) to use the implicit continuations in the host language as failure continuations, only having the success continuations as explicit callback function parameters. in that case, the function |
| 21:37:53 | <ski> | calls its callback deeper, on success, and fails by returning normally. disjunction becomes doing one call after the other has returned, and conjunction is nesting inside the callbacks) |
| 21:39:17 | <ski> | (both those implementations were written in SML, so could provide an initial success continuation which used side-effects to print out the top-level answer to a query) |
| 21:39:43 | → | tired- joins (~tired@user/tired) |
| 21:39:50 | → | caubert_ joins (~caubert@user/caubert) |
| 21:40:04 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:40:17 | <ski> | (hm .. also commit to a solution (avoid generating more) was implemented by throwing a host language exception) |
| 21:40:30 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 21:40:51 | → | terrorjack5 joins (~terrorjac@2a01:4f8:1c1e:509a::1) |
| 21:41:02 | → | alinab_ joins (sid468903@id-468903.helmsley.irccloud.com) |
| 21:41:03 | → | teehemkay__ joins (sid14792@id-14792.lymington.irccloud.com) |
| 21:41:04 | → | aristid_ joins (sid1599@id-1599.uxbridge.irccloud.com) |
| 21:41:04 | → | alanz_ joins (sid110616@id-110616.uxbridge.irccloud.com) |
| 21:41:04 | → | conjunctive_ joins (sid433686@id-433686.helmsley.irccloud.com) |
| 21:41:05 | → | lightandlight_ joins (sid135476@id-135476.helmsley.irccloud.com) |
| 21:41:05 | → | taktoa[c]_ joins (sid282096@id-282096.tinside.irccloud.com) |
| 21:41:05 | → | sclv_ joins (sid39734@haskell/developer/sclv) |
| 21:41:06 | → | NemesisD_ joins (sid24071@id-24071.lymington.irccloud.com) |
| 21:41:14 | → | another-axel-bee joins (~axel-bee@alexbenishek.com) |
| 21:41:21 | → | dmj`_ joins (sid72307@id-72307.hampstead.irccloud.com) |
| 21:41:38 | × | micro quits (~micro@user/micro) (Ping timeout: 255 seconds) |
| 21:41:55 | → | jludwig89 joins (~justin@li657-110.members.linode.com) |
| 21:42:08 | → | danso_o joins (~danso@danso.ca) |
| 21:42:14 | <EvanR> | all you need are exceptions |
| 21:42:24 | × | Jon quits (jon@dow.land) (Ping timeout: 268 seconds) |
| 21:42:40 | → | kawen_ joins (~quassel@static.208.191.216.95.clients.your-server.de) |
| 21:42:47 | → | koz_ joins (~koz@121.99.240.58) |
| 21:42:50 | × | robertm quits (robertm@lattice.rojoma.com) (Ping timeout: 244 seconds) |
| 21:42:50 | × | Hobbyboy quits (Hobbyboy@hobbyboy.co.uk) (Ping timeout: 244 seconds) |
| 21:43:01 | × | Rembane quits (~Rembane@li346-36.members.linode.com) (Ping timeout: 268 seconds) |
| 21:43:02 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 21:43:15 | → | eldritch_ joins (~eldritch@user/eldritch) |
| 21:43:18 | × | mrmonday quits (~robert@what.i.hope.is.not.a.tabernaevagant.es) (Ping timeout: 264 seconds) |
| 21:43:18 | × | statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 264 seconds) |
| 21:43:18 | × | dexter1 quits (dexter@2a01:7e00::f03c:91ff:fe86:59ec) (Ping timeout: 264 seconds) |
| 21:43:25 | × | jocke-l quits (jocke-l@a.x0.is) (Ping timeout: 272 seconds) |
| 21:43:44 | → | haveo_ joins (~haveo@sl35.iuwt.fr) |
| 21:43:47 | → | aweinsto1k joins (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) |
| 21:43:47 | → | hpc_ joins (~juzz@ip98-169-32-242.dc.dc.cox.net) |
| 21:43:58 | → | funsafe_ joins (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) |
| 21:44:03 | → | _koolazer joins (~koo@user/koolazer) |
| 21:44:10 | → | rush joins (~sloorush@52.187.184.81) |
| 21:44:12 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 21:44:18 | → | anderson_ joins (~ande@user/anderson) |
| 21:44:31 | → | Patternm1ster joins (~georg@li1192-118.members.linode.com) |
| 21:44:33 | → | heartbur1 joins (~gass@2a00:d880:3:1::b1e4:b241) |
| 21:44:41 | → | fryguybo1 joins (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) |
| 21:45:03 | → | walt joins (~ggVGc@a.lowtech.earth) |
| 21:45:03 | → | ddb1 joins (~ddb@ipv6two.tilde.club) |
| 21:45:19 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 21:46:05 | <ski> | i might try to implement my goal-implications idea (arbitrary left-nested implications, also goal-universals .. not assuming implications (like lambdaProlog,Lolli), but generate&test .. but better than `forall(A,S)' / `\+ (A,\+ S)' in Prolog, which can't export information (instantiations) on success, due to being based on negation-as-failure .. there's also a foreach/2, but it doesn't interleave the |
| 21:46:11 | <ski> | execution. basically it generates as many copies of the succedent as there's solutions to the antecedent (also messing up possible variable aliasing, and attributes, due to copying)) |
| 21:46:34 | → | nate4 joins (~nate@98.45.169.16) |
| 21:46:41 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 21:47:11 | → | Square2 joins (~a@user/square) |
| 21:47:17 | <ski> | .. but that's more advanced stuff. i'll see how far i get, even with last call/clause, and before that, basic understanding of the system and how it might be extended |
| 21:47:41 | → | adamCS_ joins (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) |
| 21:48:16 | × | notzmv quits (~zmv@user/notzmv) (*.net *.split) |
| 21:48:16 | × | funsafe quits (~funsafe@2601:1c1:4200:9ac:84cb:185c:2a3c:c92c) (*.net *.split) |
| 21:48:16 | × | terrorjack quits (~terrorjac@2a01:4f8:1c1e:509a::1) (*.net *.split) |
| 21:48:16 | × | anderson quits (~ande@user/anderson) (*.net *.split) |
| 21:48:16 | × | andjjj23_ quits (~irc@107.170.228.47) (*.net *.split) |
| 21:48:16 | × | axel-bee quits (~axel-bee@alexbenishek.com) (*.net *.split) |
| 21:48:16 | × | arahael quits (~arahael@203.220.205.108) (*.net *.split) |
| 21:48:16 | × | koolazer quits (~koo@user/koolazer) (*.net *.split) |
| 21:48:16 | × | haveo quits (~haveo@sl35.iuwt.fr) (*.net *.split) |
| 21:48:16 | × | Patternmaster quits (~georg@user/Patternmaster) (*.net *.split) |
| 21:48:16 | × | fryguybob quits (~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (*.net *.split) |
| 21:48:16 | × | kawen quits (~quassel@static.208.191.216.95.clients.your-server.de) (*.net *.split) |
| 21:48:16 | × | Square quits (~a@user/square) (*.net *.split) |
| 21:48:16 | × | tired quits (~tired@user/tired) (*.net *.split) |
| 21:48:16 | × | aweinstock quits (~aweinstoc@cpe-74-76-189-75.nycap.res.rr.com) (*.net *.split) |
| 21:48:16 | × | APic quits (apic@apic.name) (*.net *.split) |
| 21:48:16 | × | alinab quits (sid468903@id-468903.helmsley.irccloud.com) (*.net *.split) |
| 21:48:16 | × | sektor[m] quits (~sektor@2001:470:69fc:105::2:3f60) (*.net *.split) |
| 21:48:16 | × | hpc quits (~juzz@ip98-169-32-242.dc.dc.cox.net) (*.net *.split) |
| 21:48:16 | × | lambdabot quits (~lambdabot@haskell/bot/lambdabot) (*.net *.split) |
| 21:48:17 | × | eldritch quits (~eldritch@user/eldritch) (*.net *.split) |
| 21:48:17 | × | sloorush quits (~sloorush@52.187.184.81) (*.net *.split) |
| 21:48:17 | × | danso quits (danso@danso.ca) (*.net *.split) |
| 21:48:17 | × | caubert quits (~caubert@user/caubert) (*.net *.split) |
| 21:48:17 | × | jludwig quits (~justin@li657-110.members.linode.com) (*.net *.split) |
| 21:48:17 | × | ddb quits (~ddb@ipv6two.tilde.club) (*.net *.split) |
| 21:48:17 | × | bastelfreak quits (bastelfrea@libera/staff/VoxPupuli.bastelfreak) (*.net *.split) |
| 21:48:17 | × | alanz quits (sid110616@id-110616.uxbridge.irccloud.com) (*.net *.split) |
| 21:48:17 | × | NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (*.net *.split) |
| 21:48:17 | × | sclv quits (sid39734@haskell/developer/sclv) (*.net *.split) |
| 21:48:17 | × | lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (*.net *.split) |
| 21:48:17 | × | dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (*.net *.split) |
| 21:48:17 | × | conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (*.net *.split) |
| 21:48:17 | × | taktoa[c] quits (sid282096@id-282096.tinside.irccloud.com) (*.net *.split) |
| 21:48:17 | × | teehemkay_ quits (sid14792@id-14792.lymington.irccloud.com) (*.net *.split) |
| 21:48:17 | × | aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (*.net *.split) |
| 21:48:17 | × | koz quits (~koz@121.99.240.58) (*.net *.split) |
| 21:48:17 | × | bu99ed[m] quits (~bu99edm4t@2001:470:69fc:105::1:bd9e) (*.net *.split) |
| 21:48:17 | × | adamCS quits (~adamCS@ec2-34-207-160-255.compute-1.amazonaws.com) (*.net *.split) |
| 21:48:17 | × | ggVGc quits (~ggVGc@a.lowtech.earth) (*.net *.split) |
| 21:48:17 | × | heartburn quits (~gass@2a00:d880:3:1::b1e4:b241) (*.net *.split) |
| 21:48:17 | aristid_ | is now known as aristid |
| 21:48:17 | anderson_ | is now known as anderson |
| 21:48:17 | teehemkay__ | is now known as teehemkay_ |
| 21:48:17 | jludwig89 | is now known as jludwig |
| 21:48:17 | terrorjack5 | is now known as terrorjack |
| 21:48:17 | alinab_ | is now known as alinab |
| 21:48:17 | lightandlight_ | is now known as lightandlight |
| 21:48:17 | eldritch_ | is now known as eldritch |
| 21:48:17 | adamCS_ | is now known as adamCS |
| 21:48:17 | sclv_ | is now known as sclv |
| 21:48:17 | alanz_ | is now known as alanz |
| 21:48:17 | taktoa[c]_ | is now known as taktoa[c] |
| 21:48:18 | NemesisD_ | is now known as NemesisD |
| 21:48:18 | dmj`_ | is now known as dmj` |
| 21:48:18 | conjunctive_ | is now known as conjunctive |
| 21:49:34 | → | lambdabot joins (~lambdabot@silicon.int-e.eu) |
| 21:49:34 | × | lambdabot quits (~lambdabot@silicon.int-e.eu) (Changing host) |
| 21:49:34 | → | lambdabot joins (~lambdabot@haskell/bot/lambdabot) |
| 21:50:59 | <ski> | (i prototyped the goal-implication idea, years ago, in Haskell. basic idea for doing LP and (typed) logic variables (using update-in-place) was inspired by a paper by Silvija Seres & Mike Spivey, and a response to that by Koen Claessen. but i dreamed up the main goal-implication idea when attempting to port a Common Lisp implementation of Sudoku to Prolog, and getting side-tracked with expressing general |
| 21:51:05 | <ski> | utility predicates for multi-dimensional arrays -- banging my head into limitations or misunderstandings regarding setarg/3 (mutation) (and friend predicates) in SWI-Prolog ..) |
| 21:52:17 | <ski> | (.. anyway, the core of it is a way to "backtrack backtracking" (possibly nested more times), and a way of flipping between logic variables and skolems on polarity shift (implication antecedent, negation)) |
| 21:52:32 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 21:52:54 | × | zer0bitz quits (~zer0bitz@2001:2003:f748:2000:98f8:2cf6:f3d:5610) (Ping timeout: 264 seconds) |
| 21:54:29 | → | APic joins (apic@apic.name) |
| 21:55:14 | → | arahael joins (~arahael@203.220.205.108) |
| 21:55:47 | → | andjjj23_ joins (~irc@107.170.228.47) |
| 21:55:54 | → | bastelfreak joins (bastelfrea@libera/staff/VoxPupuli.bastelfreak) |
| 21:57:27 | → | bu99ed[m] joins (~bu99edm4t@2001:470:69fc:105::1:bd9e) |
| 21:59:45 | → | sektor[m] joins (~sektor@2001:470:69fc:105::2:3f60) |
| 22:00:34 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 22:01:05 | × | tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:05:51 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 268 seconds) |
| 22:07:58 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 22:09:00 | × | sandy_doo quits (~sandydoo@2a03:1b20:6:f011::a07e) (Ping timeout: 268 seconds) |
| 22:09:37 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 22:15:17 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 22:16:18 | → | JannisO joins (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) |
| 22:18:27 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 22:24:23 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 22:24:29 | × | bontaq quits (~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection) |
| 22:24:39 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 22:27:21 | → | codaraxis joins (~codaraxis@user/codaraxis) |
| 22:36:52 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 22:40:18 | → | mikoto-chan joins (~mikoto-ch@85-76-107-45-nat.elisa-mobile.fi) |
| 22:40:25 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 272 seconds) |
| 22:41:14 | × | yaroot quits (~yaroot@p3374048-ipngn8502souka.saitama.ocn.ne.jp) (Remote host closed the connection) |
| 22:43:32 | → | yaroot joins (~yaroot@2400:4052:ac0:d900:680e:dbff:fe1e:4953) |
| 22:45:33 | → | tdkilus^ joins (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) |
| 22:48:47 | × | nate4 quits (~nate@98.45.169.16) (Ping timeout: 245 seconds) |
| 22:49:29 | × | jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 22:49:46 | → | jonathanx_ joins (~jonathan@h-178-174-176-109.a357.priv.bahnhof.se) |
| 22:52:00 | → | Guest55 joins (~Guest55@c-71-198-235-211.hsd1.ca.comcast.net) |
| 22:52:33 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:53:11 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 22:55:47 | × | tdkilus^ quits (~tdkilus@c-73-237-117-119.hsd1.ga.comcast.net) (Remote host closed the connection) |
| 22:57:25 | → | jinsun__ joins (~jinsun@user/jinsun) |
| 22:57:25 | × | jinsun quits (~jinsun@user/jinsun) (Killed (zinc.libera.chat (Nickname regained by services))) |
| 22:57:25 | jinsun__ | is now known as jinsun |
| 23:03:30 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 23:03:49 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 244 seconds) |
| 23:05:39 | → | Jon joins (jon@dow.land) |
| 23:06:07 | → | off^ joins (~off@c-73-237-117-119.hsd1.ga.comcast.net) |
| 23:07:26 | × | JannisO quits (~JannisO@dyndsl-089-166-213-108.ewe-ip-backbone.de) (Ping timeout: 268 seconds) |
| 23:08:12 | → | micro joins (~micro@user/micro) |
| 23:09:40 | → | dexter1 joins (dexter@2a01:7e00::f03c:91ff:fe86:59ec) |
| 23:10:29 | → | Katarushisu7 joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) |
| 23:10:30 | × | Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 23:10:30 | Katarushisu7 | is now known as Katarushisu |
| 23:10:37 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 23:12:31 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 268 seconds) |
| 23:13:45 | × | micro quits (~micro@user/micro) (Ping timeout: 268 seconds) |
| 23:14:22 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 23:14:35 | → | robertm joins (robertm@lattice.rojoma.com) |
| 23:15:01 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 23:15:26 | → | Hobbyboy joins (Hobbyboy@hobbyboy.co.uk) |
| 23:16:01 | × | TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 252 seconds) |
| 23:17:33 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 23:18:07 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:18:33 | → | statusfailed joins (~statusfai@statusfailed.com) |
| 23:19:15 | → | Rembane joins (~Rembane@li346-36.members.linode.com) |
| 23:19:24 | → | micro joins (~micro@user/micro) |
| 23:21:09 | × | off^ quits (~off@c-73-237-117-119.hsd1.ga.comcast.net) (Ping timeout: 268 seconds) |
| 23:22:07 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 245 seconds) |
| 23:22:15 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds) |
| 23:24:51 | × | mikoto-chan quits (~mikoto-ch@85-76-107-45-nat.elisa-mobile.fi) (Ping timeout: 268 seconds) |
| 23:25:20 | × | jackhill quits (~jackhill@kalessin.dragonsnail.net) (Remote host closed the connection) |
| 23:25:34 | → | notzmv joins (~zmv@user/notzmv) |
| 23:25:41 | → | jocke-l joins (jocke-l@a.x0.is) |
| 23:28:49 | × | jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer) |
| 23:29:07 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-09a8-af8b-6907-6e05.res6.spectrum.com) |
| 23:29:55 | → | jinsun joins (~jinsun@user/jinsun) |
| 23:30:49 | → | jackhill joins (~jackhill@kalessin.dragonsnail.net) |
| 23:31:03 | × | statusfailed quits (~statusfai@statusfailed.com) (Ping timeout: 252 seconds) |
| 23:31:15 | → | statusfailed joins (~statusfai@statusfailed.com) |
| 23:33:49 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:37:38 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 23:39:00 | → | machinedgod joins (~machinedg@d172-219-86-154.abhsia.telus.net) |
| 23:39:35 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 268 seconds) |
| 23:41:05 | × | zeenk quits (~zeenk@2a02:2f04:a311:2d00:6865:d863:4c93:799f) (Quit: Konversation terminated!) |
| 23:41:05 | → | John_Ivan joins (~John_Ivan@user/john-ivan/x-1515935) |
| 23:47:02 | × | mon_aaraj quits (~MonAaraj@user/mon-aaraj/x-4416475) (Ping timeout: 240 seconds) |
| 23:48:30 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 23:49:01 | × | jespada quits (~jespada@45.162.228.190) (Ping timeout: 252 seconds) |
| 23:49:15 | → | mon_aaraj joins (~MonAaraj@user/mon-aaraj/x-4416475) |
| 23:50:51 | → | matthewmosior joins (~matthewmo@173.170.253.91) |
| 23:52:28 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 23:53:59 | → | jespada joins (~jespada@177.67.80.187) |
| 23:54:37 | × | gurkenglas quits (~gurkengla@p548ac71b.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 23:55:14 | × | matthewmosior quits (~matthewmo@173.170.253.91) (Ping timeout: 255 seconds) |
All times are in UTC on 2022-08-01.