Logs on 2022-05-02 (liberachat/#haskell)
| 00:03:05 | → | modnar joins (~modnar@shell.sonic.net) |
| 00:04:36 | × | king_gs quits (~Thunderbi@187.201.77.157) (Ping timeout: 272 seconds) |
| 00:04:46 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 00:04:48 | × | gpncarl quits (~gpncarl@120.244.220.254) (Ping timeout: 276 seconds) |
| 00:05:34 | × | tswett quits (~androirc@72.138.180.115) (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
| 00:05:44 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 00:07:06 | × | mmhat quits (~mmh@2001:4090:a242:802a:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5) |
| 00:08:57 | → | Guest41 joins (~Guest41@2607:f140:800:1::15b) |
| 00:09:13 | × | nicbk quits (~nicbk@user/nicbk) (Quit: nicbk) |
| 00:09:48 | → | deadmarshal_ joins (~deadmarsh@95.38.117.99) |
| 00:12:34 | → | xff0x_ joins (~xff0x@om126234061065.16.openmobile.ne.jp) |
| 00:13:59 | × | deadmarshal_ quits (~deadmarsh@95.38.117.99) (Ping timeout: 240 seconds) |
| 00:17:07 | → | zebrag joins (~chris@user/zebrag) |
| 00:17:55 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5) |
| 00:21:25 | → | yauhsien joins (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) |
| 00:22:24 | × | neceve quits (~quassel@2.29.116.221) (Ping timeout: 246 seconds) |
| 00:24:32 | × | kimjetwav quits (~user@2607:fea8:2362:b400:32f6:ad39:28b3:1653) (Remote host closed the connection) |
| 00:24:49 | → | kimjetwav joins (~user@2607:fea8:2362:b400:5938:b414:69d0:3de2) |
| 00:25:54 | × | yauhsien quits (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) (Ping timeout: 246 seconds) |
| 00:32:28 | <sm> | who's having trouble with 9.2 ? I haven't hit any yet |
| 00:32:45 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 276 seconds) |
| 00:34:12 | × | Guest41 quits (~Guest41@2607:f140:800:1::15b) (Ping timeout: 252 seconds) |
| 00:35:19 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 00:36:28 | → | kannon joins (~kannon@74-95-14-193-SFBA.hfc.comcastbusiness.net) |
| 00:38:31 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 00:38:42 | × | kannon quits (~kannon@74-95-14-193-SFBA.hfc.comcastbusiness.net) (Client Quit) |
| 00:39:33 | → | frost joins (~frost@user/frost) |
| 00:43:21 | ellie | is now known as ell |
| 00:44:20 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 00:44:20 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 00:44:20 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:46:33 | <Bulby[m]> | nvim lsp is being mean; it says "no man entry for foo" |
| 00:50:06 | <abastro[m]> | sm: I am having mysterious crashes |
| 00:52:50 | <sm> | on windows ? doing what ? is there an open issue ? |
| 00:55:42 | → | drakonis joins (~drakonis@user/drakonis) |
| 00:59:30 | → | king_gs1 joins (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) |
| 00:59:31 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 00:59:32 | king_gs1 | is now known as king_gs |
| 01:00:18 | → | eggplantade joins (~Eggplanta@108.201.191.115) |
| 01:03:28 | × | vicfred quits (~vicfred@user/vicfred) (Quit: Leaving) |
| 01:05:24 | × | eggplantade quits (~Eggplanta@108.201.191.115) (Ping timeout: 272 seconds) |
| 01:05:42 | → | bogart joins (~e43921@167.224.152.242) |
| 01:06:48 | × | kimjetwav quits (~user@2607:fea8:2362:b400:5938:b414:69d0:3de2) (Remote host closed the connection) |
| 01:07:05 | → | kimjetwav joins (~user@2607:fea8:2362:b400:7bd6:bcaf:2d52:3bbf) |
| 01:08:13 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 01:08:24 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 250 seconds) |
| 01:08:40 | → | stackdroid18 joins (14094@user/stackdroid) |
| 01:08:49 | × | stackdroid18 quits (14094@user/stackdroid) (Client Quit) |
| 01:10:36 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:11 | → | stackdroid18 joins (14094@user/stackdroid) |
| 01:11:13 | × | stackdroid18 quits (14094@user/stackdroid) (Client Quit) |
| 01:13:51 | × | bogart quits (~e43921@167.224.152.242) (Ping timeout: 246 seconds) |
| 01:16:43 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:17:09 | → | eggplantade joins (~Eggplanta@108.201.191.115) |
| 01:25:50 | → | kannon joins (~NK@76.243.126.210) |
| 01:26:14 | <kannon> | hello is this an active channel? |
| 01:27:05 | → | echelon joins (~echelon@gateway/tor-sasl/steerpike) |
| 01:30:01 | ← | echelon parts (~echelon@gateway/tor-sasl/steerpike) () |
| 01:30:18 | <jackdk> | Yes. |
| 01:30:22 | <EvanR> | :cricket: |
| 01:30:38 | <jackdk> | howzat! |
| 01:34:14 | <abastro[m]> | sm: No, on linux. |
| 01:34:29 | <abastro[m]> | sm: it is mysterious and hard to reproduce :/ |
| 01:37:24 | × | wroathe quits (~wroathe@user/wroathe) (Read error: Connection reset by peer) |
| 01:40:18 | → | andrey__ joins (~andrey@p200300dbcf06ad00ac6ace76fcaf9f34.dip0.t-ipconnect.de) |
| 01:42:27 | × | andrey_ quits (~andrey@p200300dbcf3c2800a83cd0cefcf2e84d.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 01:43:02 | → | bitmapper joins (uid464869@id-464869.lymington.irccloud.com) |
| 01:45:41 | → | bogart joins (~e43921@167.224.152.242) |
| 01:46:28 | <Axman6> | kannon: it's as active as any IRC channel ever is - activity comes in fits and spurts |
| 01:52:00 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 01:52:17 | → | img joins (~img@user/img) |
| 01:52:23 | <kannon> | thank you Axman6 |
| 01:52:39 | <kannon> | https://paste.tomsmeding.com/KpdkO4K6 |
| 01:53:05 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 01:53:05 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 01:53:05 | → | wroathe joins (~wroathe@user/wroathe) |
| 01:53:52 | <kannon> | I do not understand the logic in the rule on the last line. also if it can be applied to return a boolean value. |
| 01:54:05 | × | bogart quits (~e43921@167.224.152.242) (Ping timeout: 256 seconds) |
| 01:54:22 | <kannon> | it compiles |
| 01:54:43 | EvanR | mentally inserts rule :: U Bool -> Bool |
| 01:54:48 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 01:55:14 | <Axman6> | looks pretty arbitrary to me, what don;'t you understand about the rule? |
| 01:55:42 | <EvanR> | rule is just looking at 3 bools |
| 01:56:06 | <EvanR> | when combined with Comonad maybe we can see some sparks fly |
| 01:56:40 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 01:58:16 | <kannon> | can we apply the rule in ghci , to return a boolean? |
| 01:59:23 | <EvanR> | it looks to me it has type U Bool -> Bool, so you need a U Bool to apply it |
| 02:01:18 | <EvanR> | given Ham -> Eggs, you could have some Eggs, if you had some Ham |
| 02:02:07 | <kannon> | thank you maybe we could pick this up later I have to go. cheers very appreciative. |
| 02:02:27 | <EvanR> | \o/ |
| 02:03:12 | → | hololeap joins (~hololeap@user/hololeap) |
| 02:03:55 | × | lemonsnicks quits (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 02:07:03 | × | kannon quits (~NK@76.243.126.210) (Ping timeout: 246 seconds) |
| 02:09:43 | → | ajb joins (~ajb@mimas.whatbox.ca) |
| 02:13:50 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
| 02:17:41 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:17:41 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:17:41 | finn_elija | is now known as FinnElija |
| 02:17:44 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:19:08 | → | lemonsnicks joins (~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) |
| 02:23:24 | → | yauhsien joins (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) |
| 02:26:58 | → | AlexNoo_ joins (~AlexNoo@178.34.162.108) |
| 02:30:19 | × | Alex_test quits (~al_test@178.34.160.71) (Ping timeout: 240 seconds) |
| 02:30:19 | × | AlexZenon quits (~alzenon@178.34.160.71) (Ping timeout: 240 seconds) |
| 02:30:21 | × | AlexNoo quits (~AlexNoo@178.34.160.71) (Ping timeout: 256 seconds) |
| 02:30:40 | × | meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 02:30:54 | × | yauhsien quits (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) (Ping timeout: 272 seconds) |
| 02:33:43 | → | kannon joins (~NK@135-180-218-226.fiber.dynamic.sonic.net) |
| 02:34:29 | → | Alex_test joins (~al_test@178.34.162.108) |
| 02:34:39 | → | AlexZenon joins (~alzenon@178.34.162.108) |
| 02:39:25 | <kannon> | cojoin gg . rule |
| 02:39:39 | <kannon> | oh sorry |
| 02:40:41 | <hololeap> | cojoin? is that a comonad thing? |
| 02:41:23 | <kannon> | yes I think it's like unfold |
| 02:41:51 | <kannon> | trying to get this : http://blog.sigfpe.com/2006/12/evaluating-cellular-automata-is.html hololeap |
| 02:42:06 | × | dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 276 seconds) |
| 02:42:38 | <hololeap> | it's called 'duplicate' in the comonad package |
| 02:42:50 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 02:43:09 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 02:45:39 | <kannon> | hmm |
| 02:46:42 | <hololeap> | basically the dual of 'join', so instead of collapsing 'm (m a) -> m a', it does "the opposite": 'm a -> m (m a)' |
| 02:47:37 | <hololeap> | it's fairly abstract but pretty fun when you grasp it. there are examples of people writing conway's game of life using the Store comonad floating around |
| 02:49:04 | <kannon> | hololeap: hey you see this rule at the bottom of my paste? https://paste.tomsmeding.com/KpdkO4K6 |
| 02:49:12 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) (Remote host closed the connection) |
| 02:49:31 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) |
| 02:49:40 | <kannon> | someone said to get it to work by using U (Bool) -> Bool |
| 02:49:52 | <kannon> | but what does it look like? |
| 02:50:00 | <systemfault> | Would be nice if someone would write a nice comonad tutorial/example for dumb people like me. |
| 02:50:36 | <kannon> | I don't understand the type U (Bool) |
| 02:50:55 | <EvanR> | rule has type U Bool -> Bool, a function type |
| 02:51:06 | <systemfault> | Knowing that it's the dual of a monad doesn't give me any intuition of when I should use them |
| 02:51:18 | <EvanR> | U Bool is a type, simply by taking U x you defined earlier and saying x = Bool |
| 02:51:33 | <EvanR> | systemfault, probably never, unless it's advent of code and you want to flex |
| 02:52:05 | <hololeap> | just like how you can string together functions in the form of (a -> m b) with monads, you can string together functions in the form of (m a -> b) with comonads |
| 02:52:06 | <systemfault> | I see, so there are cases when they can be useful but it's not something I will often use in day to day code |
| 02:52:27 | <systemfault> | s/when/where |
| 02:52:39 | <EvanR> | even in cases where it's useful, it's more like "why did I need this category theory" |
| 02:53:18 | <EvanR> | the monad library on the other hand is much more useful |
| 02:53:24 | <EvanR> | comonad barely has a library |
| 02:53:25 | <kannon> | I thought shifting the universes where the "focus" moved by one to left or right, was interesting |
| 02:53:32 | <hololeap> | what it is saying is that you have your little universe and a reference point which is what U represents, and from it you can look around and create a value... in this case Bool |
| 02:54:13 | <hololeap> | however, every you can construct a different U for every value in your original U, which will essentially be a copy but with a different reference point |
| 02:54:28 | <hololeap> | s/every you/you/ |
| 02:54:51 | <systemfault> | Which is why the Game of Life is a good case for showing comonad? |
| 02:54:59 | <hololeap> | so you have a U that focuses on 0, a U that focuses on 1, etc |
| 02:55:32 | <hololeap> | depending on which value U is focusing on determines what the Bool output of 'rule' will be |
| 02:55:52 | × | Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Quit: Leaving) |
| 02:56:07 | <kannon> | so I don't get the use of the rule. what is the data structure U Bool ? |
| 02:56:53 | <hololeap> | so, cojoin essentially creates a new universe for every value, which allows you to apply 'rule' to it, and in the end you get 'U Bool' which is the result of 'rule' for every value |
| 02:57:46 | <hololeap> | each new universe that cojoin creates is focused on the original value and should have the "neighborhood" you would expect. |
| 02:58:47 | × | td_ quits (~td@94.134.91.69) (Ping timeout: 240 seconds) |
| 02:59:20 | <hololeap> | so for cellular automata, like conway's game of life, cojoin would create a new grid for every cell that is focused on that respective cell. this allows you to make a calculation for every cell that takes into account that cell's unique perspective. for instance, how many of its neighbors are alive |
| 02:59:59 | <kannon> | apologies hololeap , what would you type in ghci to implement rule at bottom of paste? https://paste.tomsmeding.com/KpdkO4K6 |
| 03:00:46 | → | td_ joins (~td@94.134.91.43) |
| 03:01:10 | <hololeap> | oh, it would be '(uni =>> rule) :: U Bool' |
| 03:02:45 | <hololeap> | not quite, actually, because uni is 'U Int', and rule seems to want 'U Bool' |
| 03:03:12 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 272 seconds) |
| 03:03:46 | <kannon> | :t (gg =>> rule) |
| 03:03:47 | <lambdabot> | error: |
| 03:03:47 | <lambdabot> | • Variable not in scope: gg |
| 03:03:48 | <lambdabot> | • Perhaps you meant ‘g’ (imported from Debug.SimpleReflect) |
| 03:04:14 | <hololeap> | lambdabot doesn't know any of those definitions |
| 03:04:26 | <kannon> | sorry using irssi . looks just like the interpreter! |
| 03:05:30 | <kannon> | I understand the program, but the rule is confusing me |
| 03:06:11 | <hololeap> | you could write out a logic table for it |
| 03:07:31 | → | cyphase joins (~cyphase@user/cyphase) |
| 03:07:41 | <kannon> | thanks yeah; can you run it or should I comment out the rule ? |
| 03:08:10 | × | xff0x_ quits (~xff0x@om126234061065.16.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 03:08:24 | <hololeap> | not sure what you mean |
| 03:09:30 | <Axman6> | you might find something like this useful: let s b = if b then "T" else " "; putStrLn $ unlines [unwords [s a, s b, s c,"=>", show rule a b c | a <- [False, True], b <- [False, True], c <- [False, True]] |
| 03:09:47 | <hololeap> | the rule seems pretty arbitrary. for instance, giving it (a=True, b=True, c=False) would yield True, as would (a=True, b=True, c=True) and (a=False, b=False, c=False) |
| 03:10:21 | <hololeap> | so it seems like just some rule that was made up for the sake of it |
| 03:10:53 | <Axman6> | % let rule a b c = not (a && b && not c || (a==b)); s b = if b then "T" else " "; in putStrLn $ unlines [unwords [s a, s b, s c,"=>", show rule a b c | a <- [False, True], b <- [False, True], c <- [False, True]] |
| 03:11:12 | <Axman6> | oh no, no yahb! |
| 03:11:51 | <jackdk> | @botsnack at least we still have lambdabot |
| 03:11:51 | <lambdabot> | :) |
| 03:12:32 | <hololeap> | I used comonads to solve this: https://www.hackerrank.com/challenges/the-tree-of-life/problem |
| 03:12:39 | <Axman6> | > let rule a b c = not (a && b && not c || (a==b)); s b = if b then "T" else " " in text $ unlines [unwords [s a, s b, s c,"=>", show (rule a b c) | a <- [False, True], b <- [False, True], c <- [False, True]] |
| 03:12:40 | <lambdabot> | <hint>:1:148: error: parse error on input ‘|’ |
| 03:12:55 | <Axman6> | > let rule a b c = not (a && b && not c || (a==b)); s b = if b then "T" else " " in text $ unlines [unwords [s a, s b, s c,"=>", show (rule a b c)] | a <- [False, True], b <- [False, True], c <- [False, True]] |
| 03:12:56 | <lambdabot> | => False |
| 03:12:56 | <lambdabot> | T => False |
| 03:12:56 | <lambdabot> | T => True |
| 03:13:54 | → | mbuf joins (~Shakthi@171.61.201.63) |
| 03:13:57 | <kannon> | man that is tough. at least I get the cellular automata idea |
| 03:14:19 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 03:17:14 | → | tommd joins (~tommd@97-120-41-123.ptld.qwest.net) |
| 03:17:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 03:19:27 | → | cyphase joins (~cyphase@user/cyphase) |
| 03:20:12 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 03:24:12 | → | xff0x_ joins (~xff0x@om126234061065.16.openmobile.ne.jp) |
| 03:31:07 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 03:31:24 | → | Feuermagier joins (~Feuermagi@user/feuermagier) |
| 03:34:33 | × | julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
| 03:37:10 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 03:37:12 | × | xff0x_ quits (~xff0x@om126234061065.16.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 03:40:14 | <kannon> | thanks for helping everyone |
| 03:41:53 | → | bogart joins (~e43921@167.224.152.242) |
| 03:46:06 | × | bogart quits (~e43921@167.224.152.242) (Ping timeout: 246 seconds) |
| 03:53:13 | → | deadmarshal_ joins (~deadmarsh@95.38.117.99) |
| 04:04:00 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 272 seconds) |
| 04:04:49 | → | uncomfy joins (~uncomfy@103.164.146.133) |
| 04:07:39 | × | kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 240 seconds) |
| 04:08:34 | → | kritzefitz joins (~kritzefit@debian/kritzefitz) |
| 04:09:59 | × | [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 04:13:56 | ← | Buggys parts (~Buggys@185.149.90.52) () |
| 04:14:46 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 272 seconds) |
| 04:14:59 | × | cyphase quits (~cyphase@user/cyphase) (Ping timeout: 240 seconds) |
| 04:17:10 | × | kannon quits (~NK@135-180-218-226.fiber.dynamic.sonic.net) (Quit: leaving) |
| 04:20:16 | → | cyphase joins (~cyphase@user/cyphase) |
| 04:25:00 | × | lawt quits (~lawt@2601:200:8200:6870:dea6:32ff:fea1:adf9) (*.net *.split) |
| 04:25:00 | × | Tisoxin quits (~ikosit@user/ikosit) (*.net *.split) |
| 04:25:00 | × | lagooned quits (~lagooned@108-208-149-42.lightspeed.hstntx.sbcglobal.net) (*.net *.split) |
| 04:25:00 | × | mrkajetanp quits (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) (*.net *.split) |
| 04:25:00 | × | iphy quits (sid67735@id-67735.lymington.irccloud.com) (*.net *.split) |
| 04:25:00 | × | carbolymer quits (~carbolyme@dropacid.net) (*.net *.split) |
| 04:25:00 | × | piele quits (~piele@tbonesteak.creativeserver.net) (*.net *.split) |
| 04:25:00 | × | Clint quits (~Clint@user/clint) (*.net *.split) |
| 04:25:00 | × | barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split) |
| 04:25:00 | × | Vq quits (~vq@90-227-195-41-no77.tbcn.telia.com) (*.net *.split) |
| 04:25:00 | × | dagit quits (~dagit@c-24-21-226-72.hsd1.or.comcast.net) (*.net *.split) |
| 04:25:00 | × | kitzman quits (~kitzman@user/dekenevs) (*.net *.split) |
| 04:25:00 | × | Sqaure quits (~a@user/square) (*.net *.split) |
| 04:25:00 | × | xerox quits (~edi@user/edi) (*.net *.split) |
| 04:25:00 | × | Patternmaster quits (~georg@li1192-118.members.linode.com) (*.net *.split) |
| 04:25:07 | → | Clint joins (~Clint@user/clint) |
| 04:25:12 | → | piele joins (~piele@tbonesteak.creativeserver.net) |
| 04:25:12 | → | Patternmaster joins (~georg@li1192-118.members.linode.com) |
| 04:25:13 | → | carbolymer joins (~carbolyme@dropacid.net) |
| 04:25:15 | → | iphy joins (sid67735@id-67735.lymington.irccloud.com) |
| 04:25:15 | → | xerox joins (~edi@user/edi) |
| 04:25:22 | → | lagooned joins (~lagooned@108-208-149-42.lightspeed.hstntx.sbcglobal.net) |
| 04:25:24 | → | Vq joins (~vq@90-227-195-41-no77.tbcn.telia.com) |
| 04:25:24 | → | barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk) |
| 04:25:33 | → | Square joins (~a@user/square) |
| 04:25:34 | → | mrkajetanp joins (~mrkajetan@2a01:4b00:ea36:6c00:7994:941c:3f5d:2b88) |
| 04:25:40 | → | lawt joins (~lawt@2601:200:8200:6870:dea6:32ff:fea1:adf9) |
| 04:26:14 | → | Tisoxin joins (~ikosit@user/ikosit) |
| 04:26:51 | → | kitzman joins (~kitzman@user/dekenevs) |
| 04:28:28 | × | Deide quits (~deide@user/deide) (*.net *.split) |
| 04:28:28 | × | ishaan[m] quits (~ishaanvma@2001:470:69fc:105::1:fb72) (*.net *.split) |
| 04:28:28 | × | ozataman[m] quits (~ozatamanm@2001:470:69fc:105::1:faa0) (*.net *.split) |
| 04:28:28 | × | vestige[m] quits (~vestigema@2001:470:69fc:105::1:f9dd) (*.net *.split) |
| 04:28:28 | × | Andy[m]12 quits (~anparrama@2001:470:69fc:105::1:6826) (*.net *.split) |
| 04:28:28 | × | Jon quits (jon@dow.land) (*.net *.split) |
| 04:28:29 | × | hendi quits (sid489601@id-489601.lymington.irccloud.com) (*.net *.split) |
| 04:28:29 | × | alanz quits (sid110616@id-110616.uxbridge.irccloud.com) (*.net *.split) |
| 04:28:29 | × | sclv quits (sid39734@haskell/developer/sclv) (*.net *.split) |
| 04:28:29 | × | chessai quits (sid225296@id-225296.lymington.irccloud.com) (*.net *.split) |
| 04:28:29 | × | dyniec quits (~dyniec@mail.dybiec.info) (*.net *.split) |
| 04:28:29 | × | robertm quits (robertm@lattice.rojoma.com) (*.net *.split) |
| 04:28:29 | × | Unhammer quits (~Unhammer@user/unhammer) (*.net *.split) |
| 04:28:29 | × | megeve quits (sid523379@id-523379.hampstead.irccloud.com) (*.net *.split) |
| 04:28:29 | × | hook54321 quits (sid149355@user/hook54321) (*.net *.split) |
| 04:28:29 | × | Christoph[m] quits (~hpotsirhc@2001:470:69fc:105::2ff8) (*.net *.split) |
| 04:28:29 | × | Matthew|m quits (~arathorn@2001:470:69fc:105::1f) (*.net *.split) |
| 04:28:29 | × | jmcantrell quits (~jmcantrel@user/jmcantrell) (*.net *.split) |
| 04:28:29 | × | geoduck quits (~X@71.182.184.253) (*.net *.split) |
| 04:28:29 | × | bcmiller quits (~bm3719@66.42.95.185) (*.net *.split) |
| 04:28:29 | × | df quits (~ben@justworks.xyz) (*.net *.split) |
| 04:28:29 | × | dragestil quits (~znc@user/dragestil) (*.net *.split) |
| 04:28:29 | × | marienz__ quits (~marienz@libera/staff/marienz) (*.net *.split) |
| 04:28:29 | × | tristanC quits (~tristanC@user/tristanc) (*.net *.split) |
| 04:28:29 | × | relrod quits (~relrod@redhat/ansible.staff.relrod) (*.net *.split) |
| 04:28:29 | × | mht-wtf quits (~mht@2a03:b0c0:3:e0::1e2:c001) (*.net *.split) |
| 04:28:39 | → | Jon joins (jon@dow.land) |
| 04:28:39 | → | bcmiller joins (~bm3719@66.42.95.185) |
| 04:28:41 | → | sclv joins (sid39734@haskell/developer/sclv) |
| 04:28:41 | → | df joins (~ben@justworks.xyz) |
| 04:28:42 | → | relrod joins (~relrod@redhat/ansible.staff.relrod) |
| 04:28:43 | → | marienz_ joins (marienz@libera/staff/marienz) |
| 04:28:45 | → | dyniec joins (~dyniec@mail.dybiec.info) |
| 04:28:46 | → | megeve joins (sid523379@id-523379.hampstead.irccloud.com) |
| 04:28:46 | → | chessai joins (sid225296@id-225296.lymington.irccloud.com) |
| 04:28:46 | → | alanz joins (sid110616@id-110616.uxbridge.irccloud.com) |
| 04:28:48 | → | hendi joins (sid489601@id-489601.lymington.irccloud.com) |
| 04:28:51 | → | geoduck joins (~X@71.182.184.253) |
| 04:28:59 | → | tristanC joins (~tristanC@user/tristanc) |
| 04:29:00 | → | robertm joins (robertm@lattice.rojoma.com) |
| 04:29:01 | → | Unhammer joins (~Unhammer@user/unhammer) |
| 04:29:05 | → | mht-wtf joins (~mht@2a03:b0c0:3:e0::1e2:c001) |
| 04:29:19 | → | dragestil joins (~znc@user/dragestil) |
| 04:29:51 | → | hook54321 joins (sid149355@user/hook54321) |
| 04:30:47 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) (Ping timeout: 240 seconds) |
| 04:30:51 | → | jmcantrell joins (~jmcantrel@user/jmcantrell) |
| 04:31:01 | → | Matthew|m joins (~arathorn@2001:470:69fc:105::1f) |
| 04:31:02 | → | Christoph[m] joins (~hpotsirhc@2001:470:69fc:105::2ff8) |
| 04:31:57 | → | Andy[m]12 joins (~anparrama@2001:470:69fc:105::1:6826) |
| 04:32:44 | × | uncomfy quits (~uncomfy@103.164.146.133) (Quit: uncomfy) |
| 04:33:02 | → | [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) |
| 04:33:44 | → | jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
| 04:34:12 | → | vestige[m] joins (~vestigema@2001:470:69fc:105::1:f9dd) |
| 04:34:23 | → | ishaan[m] joins (~ishaanvma@2001:470:69fc:105::1:fb72) |
| 04:34:32 | → | ozataman[m] joins (~ozatamanm@2001:470:69fc:105::1:faa0) |
| 04:34:59 | → | Deide joins (~deide@user/deide) |
| 04:35:28 | → | cdman joins (~dcm@27.2.217.184) |
| 04:35:28 | × | cdman quits (~dcm@27.2.217.184) (Changing host) |
| 04:35:28 | → | cdman joins (~dcm@user/dmc/x-4369397) |
| 04:37:21 | → | coot joins (~coot@213.134.190.95) |
| 04:39:16 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 04:45:26 | → | benin joins (~benin@183.82.204.110) |
| 04:50:42 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds) |
| 04:57:20 | × | jargon quits (~jargon@174-22-206-112.phnx.qwest.net) (Remote host closed the connection) |
| 04:59:04 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 05:02:07 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 05:05:19 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
| 05:05:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 05:06:12 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 240 seconds) |
| 05:07:18 | → | king_gs joins (~Thunderbi@187.201.77.157) |
| 05:08:02 | → | gentauro joins (~gentauro@user/gentauro) |
| 05:15:53 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 05:27:58 | × | king_gs quits (~Thunderbi@187.201.77.157) (Read error: Connection reset by peer) |
| 05:28:53 | → | king_gs joins (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) |
| 05:29:40 | × | king_gs quits (~Thunderbi@2806:103e:29:1f3f:8da7:e5:2a3:824d) (Client Quit) |
| 05:31:51 | → | michalz joins (~michalz@185.246.204.126) |
| 05:33:27 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:38:36 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 05:43:56 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 05:47:09 | → | julian joins (~julian@20.83.116.49) |
| 05:51:03 | <juhp[m]> | Can anyone give me some clues about this cabal build failure: https://download.copr.fedorainfracloud.org/results/petersen/cabal-install/fedora-rawhide-x86_64/04352797-cabal-install/build.log.gz (5kB)? It's been driving me round the bend... |
| 05:52:01 | <juhp[m]> | Basically I am trying to build cabal-install (with cabal-install) and it keeps failing silently on resolv during configure apparently (I can't reproduce it locally) |
| 05:52:33 | <juhp[m]> | I may try with a newer cabal-install version... |
| 05:54:57 | <juhp[m]> | Actually trying again now locally it fails on network for me... |
| 05:55:23 | <juhp[m]> | cabal: Failed to build network-3.1.2.7 (which is required by exe:cabal ... |
| 05:57:13 | <juhp[m]> | What does error 77 mean? |
| 06:02:03 | × | noiobeforebed quits (~noiobefor@2001:470:69fc:105::1:3c2d) (Quit: Reconnecting) |
| 06:02:17 | → | noiobeforebed joins (~noiobefor@2001:470:69fc:105::1:3c2d) |
| 06:05:05 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 06:09:32 | × | inversed quits (~inversed@94.13.111.159) (Quit: Connection error?!) |
| 06:13:20 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
| 06:15:57 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 276 seconds) |
| 06:16:23 | → | inversed joins (~inversed@94.13.111.159) |
| 06:16:25 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 06:20:55 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 260 seconds) |
| 06:32:02 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 06:37:36 | <[exa]> | juhp[m]: the error message is the same when it fails for network? |
| 06:37:58 | <[exa]> | I'm a bit scared by the mention of RPM there |
| 06:38:38 | <juhp[m]> | yes basically the same |
| 06:39:13 | <juhp[m]> | The failure occurred during the configure step. The build process terminated with exit code 77 |
| 06:39:16 | <[exa]> | are there any leftover logs or environment? |
| 06:39:28 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
| 06:39:32 | <[exa]> | would be nice to see what's the python thing doing there |
| 06:39:43 | × | [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 06:39:57 | <juhp[m]> | Even with cabal install -v not much of interest |
| 06:41:03 | → | mmhat joins (~mmh@2001:4090:a242:802a:ee08:6bff:fe09:5315) |
| 06:41:15 | <[exa]> | does 'resolv' build when you try to source it and install it from standalone source? (there you might have better chances to find the offending piece of code) |
| 06:41:43 | <juhp[m]> | Well I think the final python error from mock (that is the chroot tool Fedora uses for building) can be ignored it allows appears when there is a failure - it doesn't provide interesting info :-) |
| 06:41:55 | <juhp[m]> | s/allows/always/ |
| 06:42:17 | <[exa]> | ._. pythons |
| 06:42:25 | <juhp[m]> | Yeah let me try a bit more... |
| 06:42:53 | <juhp[m]> | I just thought maybe someone had run into this before - but not so common perhaps |
| 06:43:04 | <[exa]> | cabal get resolv; cd resolv-...; cabal configure; cabal build |
| 06:43:18 | <[exa]> | I'm not on fedora and it builds awright |
| 06:44:17 | <juhp[m]> | same here on Fedora |
| 06:45:25 | <[exa]> | grep 77 errno.h ---> #define EBADFD 77 /* File descriptor in bad state */ |
| 06:45:26 | <juhp[m]> | I don't think the problem is with resolv or network but some kind of build environment issue |
| 06:45:45 | <juhp[m]> | Let me try with Fedora 35 |
| 06:45:56 | <juhp[m]> | Yea I since found that too |
| 06:46:07 | → | acidjnk joins (~acidjnk@p200300d0c7033b32307b3d9e83ffd4d4.dip0.t-ipconnect.de) |
| 06:46:27 | <juhp[m]> | Appreciate the help :-) |
| 06:47:00 | <[exa]> | how's your /tmp mounted? |
| 06:48:22 | <[exa]> | ah that's by the mock thing |
| 06:49:28 | × | raym quits (~raym@user/raym) (Ping timeout: 248 seconds) |
| 06:50:08 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:aa56:2922:80a8:95ed) |
| 06:50:18 | <[exa]> | btw recovering config.log would help a lot I guess |
| 06:50:56 | <[exa]> | from what's in the configure script, I guess you might either have "C compiler can't make executables" or "can't compute sizeof(struct __res_state)" |
| 06:55:06 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 06:56:24 | × | drdo quits (~drdo@roach0.drdo.eu) (Quit: Ping timeout (120 seconds)) |
| 06:56:30 | × | raoul quits (~raoul@95.179.203.88) (Quit: Ping timeout (120 seconds)) |
| 06:56:32 | × | bbear quits (~znc@21212.s.t4vps.eu) (Quit: ZNC 1.7.4 - https://znc.in) |
| 06:56:35 | → | drdo joins (~drdo@roach0.drdo.eu) |
| 06:56:47 | → | bbear joins (~znc@21212.s.t4vps.eu) |
| 06:56:51 | → | raoul joins (~raoul@95.179.203.88) |
| 06:57:33 | × | thaumavorio quits (~thaumavor@thaumavor.io) (Quit: ZNC 1.8.2 - https://znc.in) |
| 06:57:33 | → | alp_ joins (~alp@user/alp) |
| 06:58:22 | → | thaumavorio joins (~thaumavor@thaumavor.io) |
| 06:59:00 | × | tchakka quits (~tchakkazu@static-47-180-28-65.lsan.ca.frontiernet.net) (Ping timeout: 240 seconds) |
| 06:59:24 | × | df quits (~ben@justworks.xyz) (Ping timeout: 240 seconds) |
| 06:59:24 | × | Logio quits (em@kapsi.fi) (Ping timeout: 240 seconds) |
| 06:59:33 | → | Logio joins (em@kapsi.fi) |
| 06:59:37 | → | df joins (~ben@justworks.xyz) |
| 07:01:06 | → | chele joins (~chele@user/chele) |
| 07:02:37 | → | abastro joins (~abab9579@192.249.26.201) |
| 07:08:55 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 07:10:20 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:16:16 | → | Pickchea joins (~private@user/pickchea) |
| 07:19:45 | → | mncheck joins (~mncheck@193.224.205.254) |
| 07:22:19 | → | ccntrq joins (~Thunderbi@2a01:e34:eccb:b060:2d0b:56d2:55c6:6429) |
| 07:27:38 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:29:45 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 260 seconds) |
| 07:30:39 | × | joeyh quits (joeyh@kitenet.net) (Ping timeout: 260 seconds) |
| 07:30:46 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:33:56 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 07:35:57 | → | raym joins (~raym@user/raym) |
| 07:37:42 | → | coot joins (~coot@213.134.190.95) |
| 07:39:09 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:40:39 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 07:41:00 | × | raym quits (~raym@user/raym) (Remote host closed the connection) |
| 07:47:47 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 07:50:43 | × | sphynx quits (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) (Ping timeout: 260 seconds) |
| 07:52:25 | <hgolden> | the haskell wiki is down. i am working on fixing its configuration. |
| 07:55:57 | → | sphynx joins (~xnyhps@2a02:2770:3:0:216:3eff:fe67:3288) |
| 07:56:22 | → | raym joins (~raym@user/raym) |
| 07:58:20 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 272 seconds) |
| 08:00:33 | × | raym quits (~raym@user/raym) (Ping timeout: 246 seconds) |
| 08:01:07 | × | sprout quits (~quassel@2a02-a467-ccd6-1-c813-76d4-6151-9389.fixed6.kpn.net) (Ping timeout: 240 seconds) |
| 08:01:30 | → | sprout joins (~quassel@2a02-a467-ccd6-1-c813-76d4-6151-9389.fixed6.kpn.net) |
| 08:05:29 | × | mmhat quits (~mmh@2001:4090:a242:802a:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5) |
| 08:05:43 | → | neceve joins (~quassel@2.29.116.221) |
| 08:05:48 | × | tommd quits (~tommd@97-120-41-123.ptld.qwest.net) (Ping timeout: 276 seconds) |
| 08:06:34 | × | sprout quits (~quassel@2a02-a467-ccd6-1-c813-76d4-6151-9389.fixed6.kpn.net) (Ping timeout: 250 seconds) |
| 08:08:10 | → | mmhat joins (~mmh@2001:4090:a242:802a:ee08:6bff:fe09:5315) |
| 08:11:10 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 260 seconds) |
| 08:11:18 | → | abastro joins (~abab9579@192.249.26.201) |
| 08:11:45 | → | raym joins (~raym@user/raym) |
| 08:12:30 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 08:14:12 | → | nut joins (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 08:15:18 | → | Pickchea joins (~private@user/pickchea) |
| 08:19:19 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 08:20:48 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 08:21:40 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 08:23:53 | × | [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Remote host closed the connection) |
| 08:24:45 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 08:24:59 | × | troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 240 seconds) |
| 08:27:17 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:28:05 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 08:31:06 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:31:28 | → | [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) |
| 08:34:38 | → | nschoe joins (~quassel@178.251.84.79) |
| 08:35:01 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 08:35:04 | × | Zemyla quits (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) (Ping timeout: 248 seconds) |
| 08:35:12 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:38:40 | × | eggplantade quits (~Eggplanta@108.201.191.115) (Remote host closed the connection) |
| 08:40:27 | × | shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit) |
| 08:41:58 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 08:42:18 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 08:42:45 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 08:43:13 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 08:46:11 | <juhp[m]> | [exa] right - I got it to build fine on current Fedora 35 - my suspicion is somehow it might be running out of FDs on Fedora 36... hmm |
| 08:46:33 | <juhp[m]> | good point |
| 08:47:23 | <juhp[m]> | anyway ya looks like this is a Fedora issue :( |
| 08:48:10 | → | zeenk joins (~zeenk@2a02:2f04:a004:9b00:1efc:c1cf:378d:8b3d) |
| 08:49:26 | → | mastarija joins (~mastarija@2a05:4f46:e04:6000:b03f:f8ad:9bc1:4a97) |
| 08:50:38 | <mastarija> | is there a way to load module in repl as qualified? |
| 08:50:48 | <mastarija> | e.g. :m + Data.Map as M |
| 08:52:00 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
| 08:52:08 | → | frost joins (~frost@user/frost) |
| 08:53:05 | <Taneb> | mastarija: you can use "import qualified Data.Map as M" in the repl |
| 08:53:15 | <mastarija> | oh... |
| 08:53:28 | <juhp[m]> | [exa]: you are right: checking whether the C compiler works... no |
| 08:53:32 | <mastarija> | I've never tried that |
| 08:53:46 | <Taneb> | mastarija: it didn't use to be the case so if you're using an old guide it might not suggest it |
| 08:57:43 | × | hrdl quits (~hrdl@mail.hrdl.eu) (Quit: leaving) |
| 08:58:29 | <juhp[m]> | juhp: Likely something to do with gcc12 |
| 09:02:20 | → | hrdl joins (~hrdl@mail.hrdl.eu) |
| 09:05:52 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection) |
| 09:06:14 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 09:08:28 | → | troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua) |
| 09:08:40 | × | ajb quits (~ajb@mimas.whatbox.ca) (Remote host closed the connection) |
| 09:12:48 | → | xff0x_ joins (~xff0x@om126234061065.16.openmobile.ne.jp) |
| 09:15:03 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 09:17:57 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 276 seconds) |
| 09:18:37 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 09:19:08 | → | cfricke joins (~cfricke@user/cfricke) |
| 09:20:49 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 09:22:16 | <juhp[m]> | Ah I think it worked it out - some new toolkit stuff in F36 |
| 09:22:17 | <juhp[m]> | toolchain |
| 09:22:53 | <juhp[m]> | probably LTO |
| 09:23:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 09:23:26 | <juhp[m]> | actually dunno what |
| 09:24:29 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 09:24:45 | → | anomal joins (~anomal@87.227.196.109) |
| 09:24:49 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:aa56:2922:80a8:95ed) (Quit: WeeChat 2.8) |
| 09:25:56 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 248 seconds) |
| 09:26:00 | → | gpncarl_ joins (~gpncarl@120.244.220.74) |
| 09:27:32 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.5) |
| 09:28:20 | → | __monty__ joins (~toonn@user/toonn) |
| 09:29:55 | × | acidjnk quits (~acidjnk@p200300d0c7033b32307b3d9e83ffd4d4.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 09:35:30 | × | jespada quits (~jespada@194.37.96.110) (Ping timeout: 276 seconds) |
| 09:35:50 | → | jespada joins (~jespada@146.70.119.87) |
| 09:39:22 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 09:43:42 | → | MajorBiscuit joins (~MajorBisc@145.94.235.5) |
| 09:43:51 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 256 seconds) |
| 09:46:00 | × | werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds) |
| 09:46:40 | × | ridcully quits (~ridcully@pd951f433.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
| 09:51:30 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 09:53:03 | × | gpncarl_ quits (~gpncarl@120.244.220.74) (Ping timeout: 276 seconds) |
| 09:53:24 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds) |
| 09:54:35 | → | ridcully joins (~ridcully@p57b52a1f.dip0.t-ipconnect.de) |
| 09:56:55 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 09:57:06 | → | coot joins (~coot@213.134.190.95) |
| 09:57:26 | <gurkenglas> | How annoying that ~ I have only one neuron for the concept of negation, so I have to split any statement involving multiple negations into parts before I can understand it. |
| 10:00:13 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 10:03:27 | <gurkenglas> | also that "exists forall" is different from "forall exists", so I can't just run pattern recognition on the bag of words in a statement. I think what I do instead is pattern recognition against both of those quoted phrases in parallel, is there some better way? Perhaps a language that replaces them with two separate words. |
| 10:05:24 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 248 seconds) |
| 10:05:49 | <gurkenglas> | i think the desire to do bag-of-words also underlies being drawn towards pointless style |
| 10:07:19 | <gurkenglas> | yeah probably what you do in general is, any time the same bag of words can be assembled into two different things, you name those two things to distinguish them. |
| 10:08:27 | <gurkenglas> | what are some examples of lines of code that can be rearranged for a different meaning? |
| 10:09:41 | <int-e> | natural languages already have the property that order matters |
| 10:10:18 | <int-e> | love triangle (drama). triangle love (nerdy). |
| 10:10:45 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 10:11:20 | <gurkenglas> | natural languages aren't intelligently designed, they descend gradients |
| 10:11:58 | <int-e> | yoda funny also because this of |
| 10:12:26 | <gurkenglas> | and yet understandable because we can pattern-match by bag-of-words |
| 10:12:50 | <int-e> | well, order-dependence isn't a sign of absence of intelligent design |
| 10:12:52 | int-e | shrugs |
| 10:13:15 | <gurkenglas> | jsut as you can raed tihs setnence wihtout too mcuh toruble |
| 10:13:47 | <tdammers> | there's a lot more to natural language than just packing quantifyable objective information into a data stream |
| 10:14:12 | → | Midjak joins (~Midjak@82.66.147.146) |
| 10:14:39 | <gurkenglas> | I'm gonna venture a guess that dyslexics are those who are too far in bag-of-words mode |
| 10:15:00 | <int-e> | aside... if you had the power to process two negations that would be enough for arbitrary boolean circuits... |
| 10:15:13 | <tdammers> | Also: order dependence varies between languages. Word order matters a lot more in English than it does in Latin, for example. |
| 10:15:24 | <gurkenglas> | int-e: I responded with the intelligent-design line because it sounded that you were arguing that order-dependence is good because it is natural |
| 10:16:38 | <int-e> | gurkenglas: I wasn't judging. I'm saying it's not very hard to comprehend because of that... well, assuming your native tongue does that. |
| 10:17:00 | <int-e> | "it" being order-dependence |
| 10:17:05 | <gurkenglas> | I wonder how hard sentences become to understand if we sort their words alphabetically |
| 10:17:15 | <int-e> | (comprehending "it" is hard... I should use "it" less) |
| 10:17:15 | × | efertone quits (~efertone@user/efertone) (Ping timeout: 260 seconds) |
| 10:17:26 | <gurkenglas> | pointfree style! :) |
| 10:18:45 | <gurkenglas> | I agree that brains manage to overcome order-dependence, and argue that we may have a much easier time if we made the need rarer |
| 10:20:11 | <gurkenglas> | Contrived example: (*2) . (+1) vs (+1) . (*2). Are there ones outside arithmetic? |
| 10:20:23 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 10:20:24 | <int-e> | I don't think you can do that with logic. Supporting evidence comes in the form of Ehrenfeucht-Fraisse games, where, obviously, reordering the moves by the different players can easily change the status (winning or losing) of the game. |
| 10:20:53 | <gurkenglas> | I remember that Ehrenfeucht-Fraisse games suck and you try to hide them behind lemmata like with unsafePerformIO |
| 10:20:58 | <gurkenglas> | Perhaps for that reason |
| 10:21:42 | × | mastarija quits (~mastarija@2a05:4f46:e04:6000:b03f:f8ad:9bc1:4a97) (Quit: Leaving) |
| 10:22:00 | <int-e> | I suppose you can do silly things like roman numerals (which /could/ be order-independent except for the weird convention of writing IV for IIII (and IX, XL, etc.) |
| 10:23:03 | <gurkenglas> | I imagine that's because you need to match against IIII in parallel to matching against III in any case, so the IIII might as well be IV |
| 10:23:16 | <tdammers> | You can trivially turn anything into an order-independent representation by assigning an ordinal to every order-dependent step, and then pairing them up |
| 10:23:43 | <gurkenglas> | tdammers: that may well be how brains solve the issue |
| 10:23:57 | <int-e> | Fascinating as this may be, what does this have to do with Haskell anyway? |
| 10:24:32 | <gurkenglas> | The initial despair is one I expect to pop up a lot in the kind of people who code Haskell! |
| 10:24:39 | <gurkenglas> | Boolean blindness is a concept I encountered here |
| 10:25:00 | <int-e> | Haskell is *very* order-dependent. |
| 10:25:00 | × | xff0x_ quits (~xff0x@om126234061065.16.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 10:25:12 | <int-e> | > ((-) 1 2, (-) 2 1) |
| 10:25:13 | <gurkenglas> | Do you have an example less contrived than my arithmetic one? |
| 10:25:14 | <lambdabot> | (-1,1) |
| 10:25:49 | <gurkenglas> | Maybe it'll turn out that non-contrived examples tend to instantiate the words at different types in different orders, so that you can do bag-of-words so long as you equip each word with its type |
| 10:26:26 | <gurkenglas> | which sounds better than ordinals because you don't have to keep repeating it for every offset to call 0 |
| 10:26:28 | <int-e> | Even for composition... f . g != g . f is the normal case, not the exception |
| 10:27:17 | <gurkenglas> | Yes, give some example of that please. I can see reverse . (0:) but that still feels somewhat contrived (though less than the arithmetic one) |
| 10:27:18 | <int-e> | (in many cases where f . g works, g . f isn't even well-typed) |
| 10:27:24 | <__monty__> | Or the difference between `id const` and `const id`. |
| 10:27:32 | → | abastro joins (~abab9579@192.249.26.201) |
| 10:27:33 | <gurkenglas> | That's fine, if one isn't well-typed it won't match the bag |
| 10:28:11 | <gurkenglas> | __monty__: even that I would call fine, because `id const` is just `id` so you wouldn't write it except perhaps to trick someone into seeing `const id` :D |
| 10:28:40 | <__monty__> | id const = const /= id |
| 10:29:11 | <gurkenglas> | um, right, yes. shame on me except at least i saw correctly that it's trivially reducible |
| 10:29:13 | <__monty__> | As your bag of words gets bigger there'll be more and more well typed possible configurations. |
| 10:29:55 | <gurkenglas> | __monty__: I think so too! And yet I can't actually think of a nice small example, which may be a hint that those tend to get names |
| 10:30:37 | <gurkenglas> | And if those tend to get names that you use to reduce larger bags, maybe a good place for the language to be is when every reduced bag has one well-typed configuration |
| 10:31:15 | <int-e> | gurkenglas: https://paste.debian.net/1239661/ |
| 10:31:24 | <gurkenglas> | Compare to associativity, which is a really good property because it lets us do sequence-of-words instead of tree-of-words |
| 10:31:40 | <int-e> | (I was too lazy to tokenize properly, so some small parts are actually intact) |
| 10:32:29 | → | yauhsien joins (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) |
| 10:32:54 | <gurkenglas> | int-e: that sure has a lot of points! |
| 10:33:48 | <gurkenglas> | What is this example trying to show? |
| 10:34:11 | <int-e> | what you get when you treat Haskell as a bag of words |
| 10:34:21 | → | sprout joins (~quassel@2a02-a45f-f170-1-ec22-a3b5-d794-656b.fixed6.kpn.net) |
| 10:34:33 | <gurkenglas> | Oh yeah dangit I just now noticed the similarity to "sort alphabetically" |
| 10:34:51 | <int-e> | it's safe to say that all meaning is lost (except maybe, that it's something with decimal representations of numbers) |
| 10:35:18 | <gurkenglas> | you should have preserved the parenthesis-bubbles |
| 10:35:25 | × | deadmarshal_ quits (~deadmarsh@95.38.117.99) (Ping timeout: 256 seconds) |
| 10:35:41 | <gurkenglas> | you're allowed to move a parentheses-subterm around inside its parent, and its children inside it, but nothing crosses in or out |
| 10:35:42 | <int-e> | so... now you want an unordered tree instead? |
| 10:35:53 | × | sprout quits (~quassel@2a02-a45f-f170-1-ec22-a3b5-d794-656b.fixed6.kpn.net) (Client Quit) |
| 10:36:06 | <gurkenglas> | you can flatten it into a single bag but then you should remove all the parentheses |
| 10:36:08 | <int-e> | anyway, I think I've humored this enough... /me out |
| 10:37:24 | × | yauhsien quits (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) (Ping timeout: 248 seconds) |
| 10:37:40 | <gurkenglas> | While trying to parse your paste at one point I thought you were using some sort of unusual-fix notation :D |
| 10:38:11 | <int-e> | All I did was putStrLn . unwords . sort . words =<< readFile "Foo.hs" |
| 10:38:45 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 260 seconds) |
| 10:39:16 | <int-e> | incidentally, sort . unwords . words would have produced an entirely different result |
| 10:39:17 | <gurkenglas> | makes sense, not your fault words has no special treatment for parentheses |
| 10:39:40 | <gurkenglas> | int-e: yes but fortunately unwords . words is reducible |
| 10:39:53 | <gurkenglas> | (except for that it actually isn't :( ) |
| 10:40:33 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 10:40:37 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 10:42:56 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 10:43:34 | <gurkenglas> | I concede that list manipulation is order-dependent, much like lists. I can only go "lists considered harmful" about it :P |
| 10:45:42 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 276 seconds) |
| 10:45:45 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 10:45:46 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 10:46:21 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 276 seconds) |
| 10:46:29 | <gurkenglas> | (related: language models based on the transformer architecture are an order-independent approach with position-information tacked on! :) ) |
| 10:47:37 | <gurkenglas> | one example of the kind of order-dependence that might be less bad if you tack on type-information: fmap fmap vs. fmap fmap |
| 10:48:27 | Lord_of_Life_ | is now known as Lord_of_Life |
| 10:51:18 | × | frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
| 10:51:35 | → | frost joins (~frost@user/frost) |
| 10:56:45 | × | zyklotomic quits (~ethan@res380d-128-61-87-118.res.gatech.edu) (Ping timeout: 276 seconds) |
| 10:57:57 | → | zyklotomic joins (~ethan@res380d-128-61-86-31.res.gatech.edu) |
| 11:01:35 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 11:06:00 | × | kimjetwav quits (~user@2607:fea8:2362:b400:7bd6:bcaf:2d52:3bbf) (Remote host closed the connection) |
| 11:08:27 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 11:08:54 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 11:09:14 | → | deadmarshal_ joins (~deadmarsh@95.38.117.99) |
| 11:09:57 | <Bulby[m]> | What is the correct way to allow opt in deriving of a class? |
| 11:10:10 | Bulby[m] | sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/636336d321caccde299f06b79cef9525bf0de905 |
| 11:11:34 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 11:11:49 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:13:27 | → | ajb joins (~ajb@mimas.whatbox.ca) |
| 11:15:30 | × | phma quits (~phma@host-67-44-208-94.hnremote.net) (Read error: Connection reset by peer) |
| 11:16:29 | → | phma joins (~phma@2001:5b0:211f:ee08:b696:84bd:7df8:f65) |
| 11:20:49 | → | gpncarl_ joins (~gpncarl@120.244.220.74) |
| 11:21:00 | → | kaph joins (~kaph@net-2-42-128-205.cust.vodafonedsl.it) |
| 11:24:48 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 11:24:58 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:aa56:2922:80a8:95ed) |
| 11:28:41 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:28:47 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 11:30:14 | × | gpncarl_ quits (~gpncarl@120.244.220.74) (Ping timeout: 250 seconds) |
| 11:33:09 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 276 seconds) |
| 11:36:03 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 11:36:11 | → | pretty_d1 joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 11:36:17 | → | arjun joins (~arjun@user/arjun) |
| 11:37:48 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 240 seconds) |
| 11:38:58 | × | pretty_d1 quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Client Quit) |
| 11:44:44 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 11:45:33 | → | notzmv joins (~zmv@user/notzmv) |
| 11:46:19 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 11:49:31 | → | abastro joins (~abab9579@192.249.26.201) |
| 11:52:12 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 11:52:40 | → | Simon75 joins (~Simon@2001:4ca0:0:f237:81a2:7019:2075:ce94) |
| 11:58:37 | → | Pickchea joins (~private@user/pickchea) |
| 12:01:20 | × | frost quits (~frost@user/frost) (Ping timeout: 252 seconds) |
| 12:03:31 | → | odnes joins (~odnes@5-203-165-110.pat.nym.cosmote.net) |
| 12:03:42 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 276 seconds) |
| 12:04:14 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 12:06:44 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:12:00 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 12:12:19 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 256 seconds) |
| 12:13:34 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:17:26 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 12:17:53 | → | joeyh joins (joeyh@kitenet.net) |
| 12:19:44 | → | Guest64 joins (~Guest64@176.89.159.137) |
| 12:20:25 | → | acidjnk joins (~acidjnk@p200300d0c7033b32b80f7c05aa7bf5a6.dip0.t-ipconnect.de) |
| 12:20:32 | × | Guest64 quits (~Guest64@176.89.159.137) (Client Quit) |
| 12:20:59 | → | xaotuk joins (~sasha@2a06:5b00:15fe:9b00::3) |
| 12:22:15 | × | Simon75 quits (~Simon@2001:4ca0:0:f237:81a2:7019:2075:ce94) (Quit: Client closed) |
| 12:25:24 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:26:50 | → | oxide joins (~lambda@user/oxide) |
| 12:27:00 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 250 seconds) |
| 12:28:40 | → | gpncarl_ joins (~gpncarl@120.244.220.74) |
| 12:29:24 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 248 seconds) |
| 12:31:24 | AlexNoo_ | is now known as AlexNoo |
| 12:35:54 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 12:36:56 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 12:37:28 | → | frost joins (~frost@user/frost) |
| 12:37:42 | → | abastro joins (~abab9579@192.249.26.201) |
| 12:41:08 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:42:13 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 12:42:39 | × | arjun quits (~arjun@user/arjun) (Remote host closed the connection) |
| 12:45:11 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 12:45:47 | → | abastro joins (~abab9579@192.249.26.201) |
| 12:47:05 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 12:47:14 | → | zebrag joins (~chris@user/zebrag) |
| 12:48:59 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 12:49:32 | → | coot joins (~coot@213.134.190.95) |
| 12:50:30 | × | perrierjouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Ping timeout: 276 seconds) |
| 13:03:34 | × | mbuf quits (~Shakthi@171.61.201.63) (Quit: Leaving) |
| 13:03:59 | × | frost quits (~frost@user/frost) (Quit: Ping timeout (120 seconds)) |
| 13:05:42 | × | abastro quits (~abab9579@192.249.26.201) (Remote host closed the connection) |
| 13:13:44 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 13:14:09 | × | gpncarl_ quits (~gpncarl@120.244.220.74) (Ping timeout: 246 seconds) |
| 13:18:18 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 13:18:20 | × | acidjnk quits (~acidjnk@p200300d0c7033b32b80f7c05aa7bf5a6.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 13:19:45 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds) |
| 13:22:07 | → | vicfred joins (~vicfred@user/vicfred) |
| 13:24:50 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 13:26:24 | × | vicfred quits (~vicfred@user/vicfred) (Ping timeout: 246 seconds) |
| 13:27:39 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 260 seconds) |
| 13:29:40 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 13:34:58 | → | Zemyla joins (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) |
| 13:35:14 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 13:41:09 | → | bogart joins (~bogart@167.224.152.242) |
| 13:42:08 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 13:44:15 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 260 seconds) |
| 13:44:15 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 13:45:40 | × | bogart quits (~bogart@167.224.152.242) (Ping timeout: 248 seconds) |
| 13:46:08 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 13:47:45 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
| 13:47:54 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:48:24 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 13:48:24 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 13:48:24 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:48:55 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 260 seconds) |
| 13:49:22 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 13:49:30 | × | alp_ quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 13:51:12 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 13:51:41 | → | Guest38 joins (~Guest38@188.147.98.147.nat.umts.dynamic.t-mobile.pl) |
| 13:52:36 | × | Guest38 quits (~Guest38@188.147.98.147.nat.umts.dynamic.t-mobile.pl) (Client Quit) |
| 13:55:22 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 13:57:31 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 13:58:28 | → | bontaq joins (~user@ool-45779fe5.dyn.optonline.net) |
| 13:58:47 | → | abastro joins (~abab9579@192.249.26.201) |
| 14:00:42 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds) |
| 14:01:08 | × | lbseale quits (~quassel@user/ep1ctetus) (Ping timeout: 248 seconds) |
| 14:01:48 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 14:02:48 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 14:02:49 | × | odnes quits (~odnes@5-203-165-110.pat.nym.cosmote.net) (Quit: Leaving) |
| 14:03:22 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 14:05:01 | × | zer0bitz quits (~zer0bitz@2001:2003:f444:8f00:b5b8:3c41:5641:4dcb) (Read error: Connection reset by peer) |
| 14:11:22 | → | lbseale joins (~quassel@user/ep1ctetus) |
| 14:13:38 | × | julian quits (~julian@20.83.116.49) (Killed (NickServ (GHOST command used by tos9_!~tos9@python/site-packages/Julian))) |
| 14:17:34 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:20:09 | → | stevenxl joins (~stevenxl@c-73-72-2-81.hsd1.il.comcast.net) |
| 14:21:26 | → | xff0x_ joins (~xff0x@om126234061065.16.openmobile.ne.jp) |
| 14:24:05 | → | KingoftheHomeles joins (~Kingofthe@89-233-195-143.cust.bredband2.com) |
| 14:26:14 | × | sander quits (~sander@user/sander) (Remote host closed the connection) |
| 14:28:33 | → | sander joins (~sander@user/sander) |
| 14:29:00 | → | shriekingnoise joins (~shrieking@201.231.16.156) |
| 14:30:54 | <KingoftheHomeles> | I'm having woes involving type families and equality constraints, some regression introduced in GHC 9.2: it's essentially the question of being able to deduce `R ~ e ': some_tail` from the constraint `(R ~ e ': F R)` where R, F are type families. The inability to do this has caused a library of mine to break: |
| 14:30:55 | <KingoftheHomeles> | https://github.com/KingoftheHomeless/in-other-words/issues/18 . The funny thing is that introducing the seemingly redundant constraint `r ~ R` allows deduction! I don't want to use that workaround though because introducing a type variable in the contexts my library is working in would require changing the API. My main question is: does anyone |
| 14:30:55 | <KingoftheHomeles> | recognize this bug? |
| 14:30:56 | → | romesrf joins (~romes@185.5.8.134) |
| 14:32:19 | <KingoftheHomeles> | Minimal reproducer: |
| 14:32:19 | <KingoftheHomeles> | ``` |
| 14:32:20 | <KingoftheHomeles> | data Dict (c :: Constraint) where |
| 14:32:20 | <KingoftheHomeles> | Dict :: c => Dict c |
| 14:32:21 | <KingoftheHomeles> | class Foo (e :: Type) (r :: [Type]) |
| 14:32:21 | <KingoftheHomeles> | instance Foo e (e ': r) |
| 14:32:22 | <KingoftheHomeles> | type family R :: [Type] |
| 14:32:22 | <KingoftheHomeles> | type family F (a :: [Type]) :: [Type] |
| 14:32:23 | <KingoftheHomeles> | compiles :: (R ~ Int ': F R, r ~ R) |
| 14:32:23 | <KingoftheHomeles> | => Dict (Foo Int R) |
| 14:32:24 | <KingoftheHomeles> | compiles = Dict |
| 14:32:24 | <KingoftheHomeles> | errors :: (R ~ Int ': F R) |
| 14:32:25 | <KingoftheHomeles> | => Dict (Foo Int R) |
| 14:32:25 | <KingoftheHomeles> | errors = Dict |
| 14:32:26 | <KingoftheHomeles> | ``` |
| 14:32:28 | <KingoftheHomeles> | Oh, no code blocks. Oh well. |
| 14:32:33 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 14:33:17 | <[exa]> | KingoftheHomeles: can you pastebin pls? (IRC really doesn't work well for anything more than ~3 lines, and people get frowny) |
| 14:33:28 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 14:33:40 | <[exa]> | btw if I get it right, it worked before 9.2? |
| 14:34:15 | <KingoftheHomeles> | Sure thing: https://pastebin.com/48BtadYw |
| 14:34:20 | <KingoftheHomeles> | Yes, it works with 9.0.2 |
| 14:34:24 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:34:36 | <KingoftheHomeles> | _wow_ pastebin has garbage haskell highlighting |
| 14:35:02 | <merijn> | Use the one from topic :p |
| 14:35:03 | <[exa]> | it's not very happy about the ' magicks, yes |
| 14:35:23 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:35:23 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:35:35 | <[exa]> | KingoftheHomeles: btw you sure that r~R doesn't place any additional constraints on R? |
| 14:35:47 | <KingoftheHomeles> | I haven't tested the reproducer on 9.0.2 admittedly, it just exhibits the same kind of behavior as the constraints in my library. |
| 14:36:06 | <KingoftheHomeles> | Nnno, it shouldn't. |
| 14:36:26 | <KingoftheHomeles> | Notably, there is no PolyKinds involved, which I know the type checker can get tripped up on. |
| 14:43:21 | <[exa]> | ok wow |
| 14:43:55 | → | Pickchea joins (~private@user/pickchea) |
| 14:45:18 | → | cosimone joins (~user@2001:b07:ae5:db26:81ac:79ad:125a:4a01) |
| 14:46:28 | × | abastro quits (~abab9579@192.249.26.201) (Ping timeout: 248 seconds) |
| 14:47:34 | <abastro[m]> | ... |
| 14:48:04 | <KingoftheHomeles> | Can confirm the reproducer works on GHC 9.0.2 |
| 14:48:05 | <abastro[m]> | Meh matrix bug.. :/ |
| 14:50:35 | <janus> | KingoftheHomeles: default language is GHC2021 now, this means PolyKinds is enabled when you think it isn't |
| 14:50:41 | <[exa]> | KingoftheHomeles: maybe the out-of-scope note here would match the problem? https://downloads.haskell.org/ghc/latest/docs/html/users_guide/9.2.1-notes.html#language |
| 14:51:11 | <KingoftheHomeles> | janus PolyKinds being enabled or not doesn't matter in this case. All kinds involved are monomorphic. |
| 14:51:12 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 14:51:23 | → | abiss27 joins (~abiss27@user/abiss) |
| 14:51:32 | <KingoftheHomeles> | Which is why I say it isn't involved. |
| 14:51:44 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 14:54:28 | → | stackdroid18 joins (~stackdroi@user/stackdroid) |
| 14:54:31 | <KingoftheHomeles> | Remade the reproducer with complete imports and extensions on that better pastebin: https://paste.tomsmeding.com/Zcpe15sL |
| 14:54:34 | <janus> | ooh ok, i understand |
| 14:54:55 | <janus> | i thought you referred to PolyKinds as in the extension |
| 14:56:12 | <KingoftheHomeles> | Unless they addressed the type issues the type checker had with PolyKinds by the way I'm surprised it became enabled by default in GHC2021 |
| 14:57:24 | <abastro[m]> | discharging to `r` hmm |
| 14:59:16 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 15:00:44 | <KingoftheHomeles> | [exa] I don't see how it would apply. |
| 15:01:49 | <janus> | KingoftheHomeles: i was not aware of those issues, do you know where i can read more? |
| 15:02:28 | → | worldhelloworld1 joins (uid543174@id-543174.helmsley.irccloud.com) |
| 15:03:44 | × | abiss27 quits (~abiss27@user/abiss) (Quit: hasta la vista... tchau!) |
| 15:03:52 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 250 seconds) |
| 15:04:11 | <janus> | KingoftheHomeles: it seems stupid, but have you tried giving kind signatures? because this resolved an issue in swagger2: https://github.com/GetShopTV/swagger2/pull/232/files |
| 15:04:16 | <KingoftheHomeles> | The PolyKinds issue? It's more something I've experience of encountering . You can get fun stuff like "couldn't deduce 'A b' from the context 'A b'" from it. Let me see if I can cook up an example real quick. |
| 15:04:46 | <KingoftheHomeles> | janus The reproducer uses kind signatures liberally, or are you talking about polykinds again? |
| 15:05:30 | <janus> | well i am just still worried about whether PolyKinds includes something that isn't actually strictly for poly-kinds |
| 15:05:46 | <janus> | but i guess since the Reproducer fails even with -XNoPolyKinds, that shouldn't be the case |
| 15:06:39 | <janus> | i am way outta my dept :O looking forward to reading the ghc bug report though :) |
| 15:07:11 | <KingoftheHomeles> | The PolyKinds issues I've had are indeed solved through kind signatures. My issue with it is that it gives rise to extremely weird error messages that give you no direction what to do, like "couldn't deduce 'A b' from the context 'A b'". But yeah, those are not related to *this* issue. |
| 15:07:58 | <janus> | right, ok |
| 15:08:15 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds) |
| 15:09:46 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 15:12:05 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 15:14:12 | × | neceve quits (~quassel@2.29.116.221) (Ping timeout: 246 seconds) |
| 15:15:15 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 260 seconds) |
| 15:15:33 | × | Patternmaster quits (~georg@li1192-118.members.linode.com) (Changing host) |
| 15:15:33 | → | Patternmaster joins (~georg@user/Patternmaster) |
| 15:15:39 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 15:16:45 | → | xkuru joins (~xkuru@user/xkuru) |
| 15:17:45 | × | xkuru quits (~xkuru@user/xkuru) (Remote host closed the connection) |
| 15:18:09 | → | xkuru joins (~xkuru@user/xkuru) |
| 15:20:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 15:22:59 | → | hololeap joins (~hololeap@user/hololeap) |
| 15:24:02 | × | pooryorick quits (~pooryoric@87-119-174-173.tll.elisa.ee) (Quit: Lost terminal) |
| 15:24:21 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds) |
| 15:25:34 | <abastro[m]> | Instead of monadic effect handling, there could have been categorical effect handling right? |
| 15:26:32 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 15:26:50 | <dolio> | What does that mean? |
| 15:26:58 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:aa56:2922:80a8:95ed) (Quit: WeeChat 2.8) |
| 15:26:58 | → | coot joins (~coot@213.134.190.95) |
| 15:28:44 | <abastro[m]> | Using Kleisli category instead of Monad |
| 15:30:03 | → | alp_ joins (~alp@user/alp) |
| 15:31:38 | Square | is now known as Sqaure |
| 15:32:18 | <dolio> | That doesn't seem like it significantly changes anything. |
| 15:32:34 | <c_wraith> | it doesn't change anything, because we have <=< |
| 15:33:40 | <abastro[m]> | Well, by using general categories one could generalize it for many stuffs |
| 15:34:11 | <abastro[m]> | Alike arrows without `arr` |
| 15:35:23 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 15:36:00 | → | yauhsien joins (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) |
| 15:37:13 | <abastro[m]> | `{ from :: a -> IO b, to :: b -> IO a }` could be one such category |
| 15:38:14 | <c_wraith> | If you make categories the primary interface, you do have the issue that you're basically requiring everything to be done point-free |
| 15:38:27 | → | Guest38 joins (~Guest38@188.147.101.242.nat.umts.dynamic.t-mobile.pl) |
| 15:39:04 | ← | Guest38 parts (~Guest38@188.147.101.242.nat.umts.dynamic.t-mobile.pl) () |
| 15:41:06 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 15:41:12 | <abastro[m]> | I think one might introduce points as syntax sugar/convenience feature |
| 15:41:30 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds) |
| 15:41:47 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 15:42:00 | × | anomal quits (~anomal@87.227.196.109) (Remote host closed the connection) |
| 15:42:17 | <c_wraith> | depending on how you do that, you're either inventing something like proc notation, or restricting your interface to be only Kleisli categories |
| 15:42:30 | <c_wraith> | and proc notation is a nightmare |
| 15:42:59 | × | cdman quits (~dcm@user/dmc/x-4369397) (Quit: Leaving) |
| 15:43:27 | <dolio> | There's no point in introducing such syntax for arbitrary categories, because they have almost no structure. |
| 15:43:42 | <dolio> | All there is is composition of arrows. |
| 15:43:53 | → | dvdrw joins (~dvdrw@user/dvdrw) |
| 15:44:15 | <c_wraith> | like, at least Kleisli arrows guarantee you've got a function of some sort |
| 15:44:16 | <abastro[m]> | Oh, arbitrary category might indeed be too simple |
| 15:44:43 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 15:44:54 | <abastro[m]> | I think e.g. Choice arrow and Product arrow exists for reason |
| 15:45:17 | <KingoftheHomeles> | Created the GHC issue: https://gitlab.haskell.org/ghc/ghc/-/issues/21473 |
| 15:45:17 | <c_wraith> | it really does seem like you're trying to reinvent Arrow and proc notation, and there's a reason that those are nearly unused |
| 15:45:21 | → | econo joins (uid147250@user/econo) |
| 15:45:49 | <abastro[m]> | Arrow notation is nightmare, isn't it |
| 15:46:06 | <abastro[m]> | I think one could do state bookkeeping tho |
| 15:46:07 | <geekosaur> | the notation is fine, arr is the nightmare |
| 15:46:29 | <abastro[m]> | Oh, is the notation fine? |
| 15:47:07 | <geekosaur> | some people want cdhanges to it, but my understanding is that's mostly generalizing it |
| 15:47:13 | <geekosaur> | (talk to Cale) |
| 15:47:39 | → | geranim0 joins (~geranim0@modemcable242.171-178-173.mc.videotron.ca) |
| 15:47:45 | <geekosaur> | but having arr as a "backdoor" kills its usefulness |
| 15:48:02 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 15:49:30 | <abastro[m]> | Indeed, I can not think of good arrow usage with `arr` |
| 15:49:45 | <abastro[m]> | If you have `arr`, it would already be too powerful |
| 15:49:59 | × | benin quits (~benin@183.82.204.110) (Quit: The Lounge - https://thelounge.chat) |
| 15:50:17 | <geekosaur> | actually arr weakens it. arr is most uesful when you can inspect an arrow, but arr injects black boxes |
| 15:50:30 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 15:51:02 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:51:13 | <abastro[m]> | Right, I mean it depends on perspective |
| 15:51:57 | <abastro[m]> | Too powerful for users, too weak for implementors (hard to implement) |
| 15:52:15 | × | cosimone quits (~user@2001:b07:ae5:db26:81ac:79ad:125a:4a01) (Remote host closed the connection) |
| 15:52:43 | × | KingoftheHomeles quits (~Kingofthe@89-233-195-143.cust.bredband2.com) (Quit: Client closed) |
| 15:53:44 | × | xff0x_ quits (~xff0x@om126234061065.16.openmobile.ne.jp) (Read error: Connection reset by peer) |
| 15:55:52 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Read error: Connection reset by peer) |
| 15:56:22 | → | mikoto-chan joins (~mikoto-ch@213.177.151.239) |
| 15:57:01 | <albet70> | what's an "arrow"? |
| 15:58:22 | <geekosaur> | which part of that conversation do you mean? Arrows in the Haskell sense are defined by Control.Arrow |
| 15:58:37 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 15:58:50 | <geekosaur> | there was also a mention of categorical arrows, which… being categorical, are somewhat difficult to characterize :) |
| 15:59:27 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 15:59:32 | <albet70> | Control.Arrow |
| 15:59:53 | <albet70> | what's its purpose? |
| 16:00:18 | <geekosaur> | you could say it's an abstraction looking for a purpose :) |
| 16:00:49 | <geekosaur> | but as designed… like c_wraith said above, there's a reason it's nearly unused |
| 16:01:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 16:01:05 | <Rembane> | It has been looking for a very long time now, and every time there seems to be a good fit something else that actually works well shows up. |
| 16:03:22 | <Cale> | abastro[m], geekosaur: It's not so much the existence of arr, but the reliance on it in order to route results around between computations which makes it so bad. If you add in some other bits, then arr can *mostly* be avoided (except when you really do want to do some arbitrary computation), and that tends to be good enough. |
| 16:04:20 | <Cale> | Though, it really does belong in its own class. The rest of the stuff in Arrow is basically the setup for a symmetric monoidal category (with (,) as the product on objects). |
| 16:04:31 | <geekosaur> | ^ albet70 here's who you really want to talk to if you want to know about Arrows |
| 16:04:35 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 16:04:49 | <Cale> | There are better realizations of that idea on Hackage now, though the proc/do syntax never got updated to work with any of them. |
| 16:06:21 | → | Sinbad joins (~Sinbad@user/sinbad) |
| 16:06:27 | → | tromp joins (~textual@77.249.230.40) |
| 16:09:02 | → | CiaoSen joins (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
| 16:10:06 | <abastro[m]> | Is bookkeeping intermediate "state" an option |
| 16:10:12 | × | raym quits (~raym@user/raym) (Ping timeout: 248 seconds) |
| 16:11:09 | <Cale> | You mean in the same sense as the State monad? |
| 16:11:16 | <Cale> | (then yes) |
| 16:11:26 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 16:11:42 | <abastro[m]> | Similar as State monad, yea |
| 16:11:59 | <abastro[m]> | But instead it is categorical |
| 16:12:01 | <Cale> | Though, I would want Arrow to have laws which would forbid that instance :) |
| 16:12:19 | <Cale> | (but it explicitly doesn't) |
| 16:12:53 | <abastro[m]> | Like composing... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/8ede47d8f4f464ddccbcac3cea6c141e0fe0d8c5) |
| 16:12:57 | <Cale> | Specifically, it's fairly essential for being able to reason about what's going on in an Arrow computation that (f >>> g) *** (h >>> k) = (f *** h) >>> (g *** k) |
| 16:13:02 | <abastro[m]> | Each `si` serves as an intermediate state |
| 16:13:33 | <Cale> | newtype StateA s a b = StateA { runStateA :: (s,a) -> (s,b) } |
| 16:13:48 | <abastro[m]> | Oh I do not mean StateA |
| 16:14:12 | <abastro[m]> | (Tho I guess it is sad how StateA is unlawful) |
| 16:15:39 | <abastro[m]> | I was thinking of how to use categories more ergonomically |
| 16:15:48 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 250 seconds) |
| 16:17:32 | → | arjun joins (~arjun@user/arjun) |
| 16:18:32 | <Cale> | Oh, yeah... the best experiment I've seen in that direction is Conal's "concat" |
| 16:18:57 | <Cale> | https://github.com/conal/concat |
| 16:19:18 | × | nschoe quits (~quassel@178.251.84.79) (Ping timeout: 246 seconds) |
| 16:19:48 | × | nut quits (~haskellfi@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.5) |
| 16:20:21 | <Cale> | Where you can basically write Haskell code (lambdas, etc.) and have it translated into code that works in an arbitrary category that satisfies a bunch of constraints that depend on what features you used. |
| 16:20:32 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 16:23:54 | <abastro[m]> | Hmm, sounds quite ambitious |
| 16:24:24 | <abastro[m]> | I wonder if it would work well |
| 16:24:43 | × | CiaoSen quits (~Jura@p200300c95732ec002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 16:25:02 | <Cale> | Yeah, I wouldn't be comfortable trying to put it into production yet, but the idea seems quite solid. |
| 16:25:19 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 16:25:54 | <EvanR> | you got your code, which is simply a sentence in a language. Then you got your interpretation. In programming you don't immediately learn that they are different xD |
| 16:26:09 | <EvanR> | and can even be mixed and matched |
| 16:27:10 | → | eternalforms joins (~obsrwr@46.101.168.131) |
| 16:27:47 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 240 seconds) |
| 16:28:41 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 248 seconds) |
| 16:30:50 | → | raym joins (~raym@user/raym) |
| 16:31:10 | × | MajorBiscuit quits (~MajorBisc@145.94.235.5) (Quit: WeeChat 3.4) |
| 16:32:24 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 16:32:25 | × | Sinbad quits (~Sinbad@user/sinbad) (Ping timeout: 256 seconds) |
| 16:34:45 | → | coot joins (~coot@213.134.190.95) |
| 16:38:45 | → | neceve joins (~quassel@2.29.116.221) |
| 16:39:25 | → | x_kuru joins (~xkuru@user/xkuru) |
| 16:42:45 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 260 seconds) |
| 16:43:11 | × | alp_ quits (~alp@user/alp) (Ping timeout: 260 seconds) |
| 16:47:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 16:47:25 | → | Sinbad joins (~Sinbad@user/sinbad) |
| 16:47:34 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 16:51:47 | × | x_kuru quits (~xkuru@user/xkuru) (Ping timeout: 240 seconds) |
| 16:52:50 | → | Tuplanolla joins (~Tuplanoll@91-159-68-39.elisa-laajakaista.fi) |
| 16:56:16 | <Bulby[m]> | how do you debug where an app crashed |
| 16:56:52 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 16:58:36 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 260 seconds) |
| 17:00:18 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 260 seconds) |
| 17:02:03 | <Bulby[m]> | i see the people on discord use "dumpcore" |
| 17:05:34 | → | werneta joins (~werneta@137.79.197.49) |
| 17:05:46 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 17:08:26 | <EvanR> | in its purest form, you read the message printed out during the crash |
| 17:08:33 | <EvanR> | if any |
| 17:08:44 | <Bulby[m]> | there is no message |
| 17:08:59 | <EvanR> | my sympathies |
| 17:12:33 | <EvanR> | as a pessimistic programmer I'm hyper paranoid about stuff like that, so any place I intentionally cause a crash, I put a message. |
| 17:12:59 | <Bulby[m]> | right |
| 17:13:00 | Bulby[m] | sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/90a36f3a354783143c8487b37d9d7207778c8a7b |
| 17:13:18 | <EvanR> | for code I didn't write, a review what kind of exceptions it can throw, or even check for flagrant non totalities |
| 17:13:19 | <Bulby[m]> | i should use pactl, not pamixer |
| 17:17:58 | <Bulby[m]> | are there regexs for haskell |
| 17:18:10 | <Bulby[m]> | output of pactl is not nice |
| 17:18:29 | → | wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com) |
| 17:18:29 | × | wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host) |
| 17:18:29 | → | wroathe joins (~wroathe@user/wroathe) |
| 17:18:37 | <Rembane> | Bulby[m]: There are regexen for Haskell, but we prefer parser combinators |
| 17:19:00 | <Bulby[m]> | that's what I figured |
| 17:19:11 | <dminuoso> | If you're curious, the least offending regexp library I have found so far is pcre-heavy |
| 17:19:47 | <dminuoso> | While parser combinators are certainly far more robust and feature rich, sometimes its convenient to just have a one-liner do "the morally right thing" |
| 17:19:51 | <Bulby[m]> | well i already know how to write parser combinator stuff |
| 17:20:08 | <Bulby[m]> | the morally right thing? |
| 17:20:46 | <gabriel_sevecek> | Hey, I'm experimenting with twain and I'm wondering what do you haskellers use for auto rebuild of the dev server? |
| 17:21:11 | <dminuoso> | Well, it's certainly convenient to quickly cook up a regular expression. It takes a few seconds to write, might have some rare-or-will-never-trigger edge case, will probably perform not as nicely, backtracking introduces certain DoS angles - but honestly most of the time these are just philosophical issues. |
| 17:21:20 | × | x88x88x quits (~x88x88x@2001:19f0:5:39a8:5400:3ff:feb6:73cb) (Remote host closed the connection) |
| 17:21:41 | <dminuoso> | gabriel_sevecek: You can trivially use ghcid to that effect. |
| 17:21:44 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 17:22:02 | <dminuoso> | Note, you will have to go a bit further than the default (which just compiles it with ghci) |
| 17:22:59 | <dminuoso> | I think this is one of the things that prevents adoption of Haskell - the lack of general tools to do simple and common tasks easily. |
| 17:23:09 | <gabriel_sevecek> | I tried 'ghcid --command "cabal run thething"', that did not work |
| 17:23:22 | <gabriel_sevecek> | But I will investigate more |
| 17:23:25 | <gabriel_sevecek> | Thanks dminuoso |
| 17:23:30 | <dminuoso> | gabriel_sevecek: https://binarin.ru/post/auto-reload-threepenny-gui/ |
| 17:23:34 | <dminuoso> | Might give you some helpful pointers |
| 17:24:23 | <gabriel_sevecek> | Cool |
| 17:25:51 | <dminuoso> | In Python, you are exposed to simple tools to just do data crunching. Cooking up a program to take some text encoded data, and extract/process it, takes way less effort than in Haskell. I mean yes, to some degree it's not scalable and more brittle |
| 17:25:58 | <dminuoso> | But sometimes that's perfectly fine |
| 17:27:38 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 17:32:24 | × | tromp quits (~textual@77.249.230.40) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:35:15 | <Bulby[m]> | solution to that issue: don't change code, just install pamixer 😄 |
| 17:35:50 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 17:36:05 | <Bulby[m]> | wait my wireless isn't down |
| 17:36:11 | × | ccntrq quits (~Thunderbi@2a01:e34:eccb:b060:2d0b:56d2:55c6:6429) (Remote host closed the connection) |
| 17:36:45 | → | pgib joins (~textual@173.38.117.66) |
| 17:39:06 | <gabriel_sevecek> | dminuoso: Was pretty easy with the link you've posted, thanks again |
| 17:45:36 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 276 seconds) |
| 17:49:36 | Frinasa[m] | is now known as Frikraaa[m] |
| 17:49:37 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 17:51:38 | × | worldhelloworld1 quits (uid543174@id-543174.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:51:39 | → | acidjnk joins (~acidjnk@p200300d0c7033b32e85f61ca0273fe05.dip0.t-ipconnect.de) |
| 17:53:11 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 17:53:32 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 17:55:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 17:58:00 | × | irfan quits (~irfan@user/irfan) (Quit: leaving) |
| 17:58:21 | → | hololeap joins (~hololeap@user/hololeap) |
| 17:59:47 | <danso> | is there a conventional way to get a 3-bit integer, like a data type (an enum) with 8 constructors? |
| 18:00:42 | <dminuoso> | You can use just that, a data type with 8 constructors. |
| 18:01:12 | <dminuoso> | And that's the idiomatic way as well. |
| 18:01:30 | <dminuoso> | Or a newtype hidden Word8 with smart constructors |
| 18:01:38 | <dminuoso> | Depends a bit on what you want to do with it |
| 18:02:37 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:04:47 | × | TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 256 seconds) |
| 18:07:10 | → | TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker) |
| 18:07:28 | → | coot joins (~coot@213.134.190.95) |
| 18:07:51 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 18:08:17 | × | Sinbad quits (~Sinbad@user/sinbad) (Quit: WeeChat 3.5) |
| 18:13:20 | → | jgeerds joins (~jgeerds@d53604b0.access.ecotel.net) |
| 18:17:05 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 18:18:07 | <EvanR> | also, Three Bool xD |
| 18:18:21 | → | alp_ joins (~alp@user/alp) |
| 18:19:38 | → | Pickchea joins (~private@user/pickchea) |
| 18:19:46 | <EvanR> | also Maybe (Maybe (Maybe (Maybe (Maybe (Maybe (Maybe ())))))) |
| 18:20:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 18:20:08 | <monochrom> | Unfortunately, for now 3 bools take up 8*3 bytes. |
| 18:20:36 | <exarkun> | at least it's not 28*3 bytes |
| 18:20:38 | <EvanR> | that's an improvement |
| 18:21:07 | <EvanR> | GHC 10 will make 3 bools = 3 bits |
| 18:21:14 | <EvanR> | GHC 11 will make 3 bools = 2 bits |
| 18:21:28 | <exarkun> | Can't wait for GHC 12 then |
| 18:21:34 | × | ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 18:21:43 | <monochrom> | onoes |
| 18:22:08 | <monochrom> | GHC 12 will do quantum computing by the holographic principle, I guess. |
| 18:22:28 | <monochrom> | And GHC 13 will prove P=NP. |
| 18:22:28 | <EvanR> | compression tech can't go beyond 2 bits, sorry |
| 18:22:39 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds) |
| 18:22:39 | <exarkun> | _Current_ compression tech, EvanR |
| 18:22:58 | <monochrom> | Yeah understood, it stops at the holographic principle >:) |
| 18:23:19 | <EvanR> | GHC 13 runs on a black hole |
| 18:23:37 | → | ChaiTRex joins (~ChaiTRex@user/chaitrex) |
| 18:24:51 | → | hololeap joins (~hololeap@user/hololeap) |
| 18:25:54 | <monochrom> | 3bools1bit --- like 3blue1brown but computer science >:) |
| 18:27:14 | <monochrom> | "here is a visual analogy of the curry-howard isomorphism" |
| 18:30:42 | <Bulby[m]> | 3 bool? |
| 18:30:52 | <Bulby[m]> | Three Bool |
| 18:31:36 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds) |
| 18:33:13 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::aa1d) |
| 18:40:50 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 18:45:29 | × | arjun quits (~arjun@user/arjun) (Remote host closed the connection) |
| 18:52:21 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:58:20 | → | seydar joins (~seydar@154-27-113-252.starry-inc.net) |
| 18:58:50 | → | dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net) |
| 19:00:17 | × | neceve quits (~quassel@2.29.116.221) (Remote host closed the connection) |
| 19:02:16 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 19:03:56 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 19:04:35 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 19:11:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 19:14:23 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:14:51 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
| 19:17:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:18:51 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:19:28 | → | julian joins (~julian@20.83.116.49) |
| 19:19:54 | <seydar> | decoding images seems... kinda tough |
| 19:22:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 19:22:53 | <seydar> | i'm gonna use the juicy pixels library -- is that the crowd favorite? |
| 19:25:00 | <EvanR> | juicy pixels is great |
| 19:25:07 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 260 seconds) |
| 19:25:37 | → | hololeap joins (~hololeap@user/hololeap) |
| 19:25:53 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 19:26:32 | <EvanR> | it hits a sweet spot where the type system is guiding you without being over the top |
| 19:27:36 | <Bulby[m]> | I LOVE THE TYPE SYSTEM |
| 19:28:35 | ← | janus parts (janus@anubis.0x90.dk) () |
| 19:30:21 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 256 seconds) |
| 19:34:15 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 19:34:37 | <seydar> | i suppose i shouldn't be shocked at how complex it is to read an image |
| 19:34:44 | <seydar> | these formats are not for the faint of heart |
| 19:35:02 | <dolio> | bmp is probably easy, right? |
| 19:40:20 | <dolio> | Oh no, ppm is the easy one. |
| 19:41:24 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 19:41:25 | → | eggplantade joins (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
| 19:42:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 19:42:14 | × | oxide quits (~lambda@user/oxide) (Quit: oxide) |
| 19:42:39 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 246 seconds) |
| 19:42:39 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 19:42:58 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Remote host closed the connection) |
| 19:43:06 | → | metabulation joins (~wootehfoo@user/wootehfoot) |
| 19:43:52 | <EvanR> | truevision targa for life xD |
| 19:44:50 | <dolio> | That one looks more complicated. |
| 19:45:35 | <seydar> | I'm trying to do a DCT on an image (implementing blurhash as an exercise), but i'm kinda... stuck, type-wise. I get `Either String DynamicImage`, but I'm unable to figure out how to get a DynamicImage into a CArray for use with the FFT library |
| 19:45:55 | × | eggplantade quits (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 19:46:11 | <EvanR> | case analysis on DynamicImage to recover the true data, which you may find to be impossible because it's not in your expected format |
| 19:46:41 | <EvanR> | react accordingly |
| 19:47:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 19:47:05 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds) |
| 19:47:23 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 19:48:57 | <EvanR> | once you have the vector of encoded pixels you'll probably have to copy them into the structure needed by FFT, types unlikely to exactly match |
| 19:51:12 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 19:56:56 | <seydar> | EvanR: ah! i found convertRGBA16! this feels like step one |
| 19:57:21 | <seydar> | that gets me out of DyanmicImage, and hopefully i can use the `toListOf imagePixels` curried function |
| 19:57:46 | <EvanR> | conversion? I guess |
| 19:57:58 | <EvanR> | list? I'm pretty skeptical |
| 19:58:35 | <EvanR> | like I said the basic way to consume a DynamicImage is with case analysis |
| 19:58:35 | → | anomal joins (~anomal@87.227.196.109) |
| 19:58:47 | <seydar> | https://github.com/phadej/JuicyPixels-scale-dct/blob/6ea69ac4baf4777f1129dbb7e5a7d8e3739dae4e/src/Codec/Picture/ScaleDCT.hs#L125 |
| 20:00:23 | × | dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 256 seconds) |
| 20:00:38 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:01:57 | <danso> | i'm using Parsec on a ByteString stream. is it weird that the Stream instance reads the bytestring Char-by-Char instead of Word8-by-Word8 ? i feel like you might get surprising results with binary data. |
| 20:02:34 | <danso> | for now i'm changing my Stream type to [Word8] and passing in a `ByteString.unpack`ed version instead |
| 20:02:48 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:05:00 | × | alp_ quits (~alp@user/alp) (Ping timeout: 240 seconds) |
| 20:05:15 | <EvanR> | it just depends what reading Chars from a bytestring means |
| 20:05:56 | <EvanR> | if it's binary data, it sounds wrong regardless xD |
| 20:06:12 | <tomsmeding> | danso: have you considered using attoparsec |
| 20:07:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:07:14 | <tomsmeding> | it's like parsec, but on bytestrings :p |
| 20:08:48 | <seydar> | EvanR: okay turns out `toListOf` is a function from that file i linked that is based on lenses and i could not possibly derive it myself |
| 20:09:28 | × | deadmarshal_ quits (~deadmarsh@95.38.117.99) (Ping timeout: 260 seconds) |
| 20:10:18 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:11:16 | → | alp_ joins (~alp@user/alp) |
| 20:12:06 | <danso> | i will now tomsmeding, thanks. i have heard of it before but didn't realize it was basically made for my use-case |
| 20:13:23 | <EvanR> | seydar, the payloads of the various DynamicImage results contain vectors, which are arrays of pixels. Which sounds like what you need |
| 20:13:34 | <EvanR> | as well as image width and height |
| 20:13:42 | × | yauhsien quits (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) (Remote host closed the connection) |
| 20:13:48 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 20:14:29 | → | yauhsien joins (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) |
| 20:16:05 | <seydar> | EvanR: yep yep, seeing that now. granted, they're packed lines, so i'm trying to decide the best way to grapple with them. given that i'm ultimately seeking a CArray, and I don't want to use the lens stuff that the sample code is using, i'm looking for more intuitive and less efficient ways to get the pixels into a CArray |
| 20:16:20 | × | anomal quits (~anomal@87.227.196.109) (Ping timeout: 252 seconds) |
| 20:16:51 | <EvanR> | what's a CArray |
| 20:17:03 | <EvanR> | other than the obvious |
| 20:18:18 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:18:29 | <tomsmeding> | seydar: can't you use pixelAt https://hackage.haskell.org/package/JuicyPixels-3.3.7/docs/Codec-Picture.html#v:pixelAt |
| 20:18:57 | <tomsmeding> | convertRGB16 gives you an 'Image PixelRGB16' |
| 20:18:58 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 20:19:00 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 276 seconds) |
| 20:19:15 | × | yauhsien quits (~yauhsien@61-231-62-54.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
| 20:20:40 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 20:21:03 | <tomsmeding> | and PixelRGB16 implements that Pixel class |
| 20:21:06 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 20:21:44 | <EvanR> | or just convert the array directly |
| 20:21:54 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:22:08 | <EvanR> | whatever CArray is, it probably has a thing to load raw data |
| 20:22:29 | <tomsmeding> | EvanR: I think seydar means 'Ptr Char' |
| 20:22:49 | <EvanR> | no no nonoono |
| 20:23:22 | <tomsmeding> | ah no it seems to be this thing https://hackage.haskell.org/package/carray-0.1.6.8/docs/Data-Array-CArray-Base.html#t:CArray |
| 20:23:39 | <EvanR> | nicer |
| 20:23:49 | <tomsmeding> | so 'ForeignPtr (Complex r)', not too far off :p |
| 20:23:54 | <tomsmeding> | https://hackage.haskell.org/package/fft-0.1.8.7/docs/Math-FFT.html |
| 20:24:38 | <EvanR> | fastest fourier transform in the west. China has something better? |
| 20:25:42 | <tomsmeding> | presumably what seydar wants is to undo the row padding that juicypixels probably adds |
| 20:25:59 | <tomsmeding> | but 'fft' is not super clear on its input format, and I'm too lazy to look up the fftw docs again :p |
| 20:26:23 | <seydar> | EvanR, tomsmeding: i'm a simple man: just trying to use this https://hackage.haskell.org/package/fft-0.1.8.7/docs/Math-FFT.html |
| 20:26:37 | <tomsmeding> | seydar: so I guessed correctly |
| 20:27:56 | <seydar> | tomsmeding: whoops, missed it. yes, you did |
| 20:28:14 | → | segfaultfizzbuzz joins (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) |
| 20:28:48 | <segfaultfizzbuzz> | okay, theory-ish question here: |
| 20:28:48 | <EvanR> | I have not noticed juicy pixels adding any row padding |
| 20:29:05 | <EvanR> | if anything it would unadd row padding if that is what the file format uses |
| 20:29:10 | <segfaultfizzbuzz> | is it "hard" to (automatically) prove the equivalence of functions? |
| 20:29:11 | <seydar> | "Internally pixel data is stored as consecutively packed lines from top to bottom, scanned from left to right within individual lines, from first to last color component within each pixel." |
| 20:29:23 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 20:30:05 | <EvanR> | it's a 1D array expressing a 2D grid of pixels |
| 20:30:06 | <segfaultfizzbuzz> | so i have function f, and somebody hands me function g. the question is, can f and g be interchanged. if you like we can talk about pure functions to keep things simpler to begin with |
| 20:30:23 | <tomsmeding> | seydar: looking at the definition of pixelAt for PixelRGBA16 (and PixelRGB16, too) it seems the pixel data is just packed tightly as one would expect: row-major order, two bytes r, two bytes g, two bytes b, two bytes a, next pixel etc. |
| 20:30:24 | <seydar> | okay, so I was afraid of the word "packed" for no good reason |
| 20:30:49 | <tomsmeding> | so I mean you could hand-write the conversion to Complex if you don't like to use pixelAt for some reason |
| 20:31:26 | <tomsmeding> | segfaultfizzbuzz: in general impossible, if we may assume nothing about the domain and codomain types of the functions |
| 20:31:57 | <dminuoso> | segfaultfizzbuzz: Intrinsic or extrinsic equivalence? |
| 20:31:58 | <tomsmeding> | in fact the 'functional extensionality' axiom describes the ability to do just that, and it's usually _not_ assumed (but sometimes is) |
| 20:32:04 | <tomsmeding> | but yes that |
| 20:32:06 | <dminuoso> | The former is trivial, but not necessarily useful |
| 20:32:19 | <segfaultfizzbuzz> | i don't know the difference between intrinsic and extrinsic equivalence |
| 20:32:27 | <EvanR> | prove equivalence... decide equivalence... ? |
| 20:32:28 | <tomsmeding> | black boxes or do you have the implementation |
| 20:32:35 | <dminuoso> | intrinsic equivalence is about the internals, whether the implementation is the same. |
| 20:33:00 | <segfaultfizzbuzz> | i suppose i am interested in both questions |
| 20:33:24 | <EvanR> | if someone hands you two concrete functions you maybe can prove something, another question is if a program could take two functions as input and spit out a proof |
| 20:33:34 | <dminuoso> | extrinsitic equivalence can of course be tested, in case of a finite domain this is easy, in case of an infinite domain you can only hope to find a counter example. |
| 20:33:42 | × | x88x88x quits (~x88x88x@149.28.53.172) (Remote host closed the connection) |
| 20:33:46 | <tomsmeding> | I mean, are 'return 42' and 'if collatzCounterExampleExists then return 42 else return 10' equal :p |
| 20:33:49 | <segfaultfizzbuzz> | that being said i would probably be interested in "reasonable" restrictions. for example, we may assume a finite number of bits are involved (and a fixed maximum if necessary) |
| 20:34:00 | <dminuoso> | Then you can simply try them all out. |
| 20:34:08 | <segfaultfizzbuzz> | right but age of universe blah blah |
| 20:34:21 | <EvanR> | the size of the function isn't as important as the size of the input space |
| 20:34:43 | <tomsmeding> | there is some wonkyness even with infinite types though: http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/ |
| 20:34:44 | <segfaultfizzbuzz> | right, we can bound the size of the input (and output) space in number of bits |
| 20:35:01 | <tomsmeding> | if the input type is [Bool], then you can _still_ decide equality, IF you assume that your functions are total |
| 20:35:07 | <EvanR> | this question is getting more and more contrived xD |
| 20:35:22 | <EvanR> | let's say the functions can only operate on C ints |
| 20:35:27 | <geekosaur> | you pretty much have to contrive it to say anything about it |
| 20:35:28 | <EvanR> | on a pentium 2 |
| 20:35:32 | <geekosaur> | other than "mu" |
| 20:35:50 | <[exa]> | segfaultfizzbuzz: in the infinite memory case, rice theorem shows the incomparability pretty well. In the finite case you often get a testing time very exponential in the size of available storage, which gets prohibitive (note that for testing all of 256bit storage you need to burn all electrons in observable universe) |
| 20:36:12 | <dminuoso> | tomsmeding: of course, but thats getting into manual labor territory now. |
| 20:36:17 | <segfaultfizzbuzz> | by storage you mean the number of input bits to the function is 256 bits? |
| 20:36:18 | <tomsmeding> | :p |
| 20:36:48 | <dminuoso> | I recall a haskell library giving us equality on functions over finite domains |
| 20:36:48 | <EvanR> | are we headed for classical logic or finitism, can't tell |
| 20:36:51 | <dminuoso> | What was that library called? |
| 20:36:52 | → | brooke2k joins (~brooke2k@128.226.162.210) |
| 20:36:55 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 20:37:05 | <[exa]> | segfaultfizzbuzz: no, literally all available storage (you need to track internal state to see whether the function has diverged or not) |
| 20:37:22 | <geekosaur> | @hackage universe |
| 20:37:22 | <lambdabot> | https://hackage.haskell.org/package/universe |
| 20:37:30 | <dminuoso> | That's the one, cheers geekosaur |
| 20:37:53 | <segfaultfizzbuzz> | okay here is another way of looking at this question: |
| 20:38:23 | <EvanR> | so that package answers segfaultfizzbuzz's question directly |
| 20:38:24 | <segfaultfizzbuzz> | are there "reasonable restrictions" on f and g such that we can prove equivalence (in a reasonable amount of time, such as an hour or a day on a ~$1000 computer) |
| 20:38:51 | <[exa]> | segfaultfizzbuzz: yes, many. For example the simply typed subset of lambda calculus |
| 20:38:54 | <segfaultfizzbuzz> | for example, f maps 64 bits to 64 bits, as does g, and we have access to their definitions |
| 20:39:32 | <segfaultfizzbuzz> | "simply typed" ? |
| 20:39:49 | <[exa]> | precisely as in https://en.wikipedia.org/wiki/Simply_typed_lambda_calculus |
| 20:40:08 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 20:40:48 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 20:41:49 | → | y04nn joins (~y04nn@2001:ac8:28:93::a15e) |
| 20:42:01 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 20:42:35 | → | x88x88x joins (~x88x88x@149.28.53.172) |
| 20:43:19 | × | riatre quits (~quassel@2001:310:6000:f::5198:1) (Ping timeout: 240 seconds) |
| 20:43:23 | <[exa]> | (actually, wait, the STLC allows you to dodge infinity problems, but you can still encode numbers in it, allowing the programs to take exponential time to compute) |
| 20:43:23 | <tomsmeding> | segfaultfizzbuzz: no, let f () = 'if collatzCounterExampleExists then return 1 else return 0' |
| 20:43:27 | <tomsmeding> | f :: () -> Bit |
| 20:43:29 | → | riatre joins (~quassel@2001:310:6000:f::5198:1) |
| 20:44:11 | <tomsmeding> | okay that one is not STLC, so use collatzCounterExampleExistsBelowN with some arbitrarily large number, takes arbitrarily long time (probably) |
| 20:44:31 | <[exa]> | +1 ^ |
| 20:44:59 | <EvanR> | what is this finitist nonsense |
| 20:45:00 | × | dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 276 seconds) |
| 20:45:15 | × | brooke2k quits (~brooke2k@128.226.162.210) (Quit: Client closed) |
| 20:45:21 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 20:45:21 | <dminuoso> | segfaultfizzbuzz: By the way, without restrictions, this problem is equivalent to the halting problem. A general algorithm that determines the extrinsic equivalent for any two functions cannot exist. |
| 20:45:22 | <EvanR> | you're ruining my theoretical purity |
| 20:45:44 | <dminuoso> | (See rice's theorem) |
| 20:45:48 | <[exa]> | EvanR: no worries our finitism is infinitely extensible |
| 20:45:58 | <EvanR> | ok good |
| 20:46:34 | <dminuoso> | Is there tooling to quickly list all licenses of a dependency closure? |
| 20:46:56 | <dminuoso> | Or does cabal have some mechanisms to validate whether a given license is compatible with dependencies? |
| 20:47:25 | <geekosaur> | https://hackage.haskell.org/package/licensor ? |
| 20:47:39 | <tomsmeding> | sounds not too hard to use cabal-plan to get transitive dependency tree, 'ghc-pkg describe' to get the fields, and get the license identifier from there |
| 20:47:51 | <geekosaur> | cabal itself does not. I don't think SPDX considers license compatibility |
| 20:48:02 | <segfaultfizzbuzz> | ah equivalence to halting is interesting |
| 20:48:45 | <dminuoso> | Ahh thanks |
| 20:49:02 | <dminuoso> | geekosaur: That link let me to some more links, and then some. Then I found a note that cabal-plan can do this. |
| 20:49:14 | <segfaultfizzbuzz> | so then we might add the restriction that f and g are both known to be total |
| 20:49:15 | <dminuoso> | With flag license-report it has the command license-report |
| 20:49:31 | <dminuoso> | cabal-dependency-licenses also appears to exist. |
| 20:49:52 | <geekosaur> | but seemed somewhat old and I think pre-SPDX which should simplify things |
| 20:49:52 | <dminuoso> | But given that I have cabal-plan everywhere anyway, I guess Ill just rebuild that with that flag |
| 20:50:14 | <[exa]> | segfaultfizzbuzz: totality only gives you a certain, but basically unrestricted upper bound on how long the check takes |
| 20:50:43 | <tomsmeding> | [exa]: doesn't it only give you the upper bound of "not infinite" |
| 20:50:46 | <geekosaur> | ackermann function is total, but for most inputs takes longer than the lifetime of the universe |
| 20:51:02 | <tomsmeding> | which is not a particularly useful bound in practice :p |
| 20:51:11 | <[exa]> | tomsmeding: yes |
| 20:51:33 | <segfaultfizzbuzz> | hmm, so f and g have fixed wallclock maximum execution time? |
| 20:51:34 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 20:51:35 | → | MoY joins (~MoY@139.59.225.128) |
| 20:51:40 | <[exa]> | segfaultfizzbuzz: in short, general programs are evil. |
| 20:52:04 | <segfaultfizzbuzz> | is there a more uh "strict" restriction than totality? |
| 20:52:33 | <tomsmeding> | why are you asking? :p |
| 20:53:02 | <dminuoso> | EvanR | this question is getting more and more contrived xD |
| 20:53:10 | <segfaultfizzbuzz> | so i can understand what a function is. but i can stop polluting the room if you like |
| 20:53:21 | <[exa]> | segfaultfizzbuzz: any smaller complexity classes help, e.g. just PSPACE (usually simple to reach for many algorithms) restricts your program to NP-like running time |
| 20:53:31 | <tomsmeding> | segfaultfizzbuzz: a mathematical function or a Haskell program? |
| 20:53:43 | <[exa]> | ( segfaultfizzbuzz: we can migrate to #-offtopic if required ) |
| 20:53:48 | <dminuoso> | We can also talk about intrinsic equivalence, because even that has shades of grey. |
| 20:54:02 | <dminuoso> | We can have equivalence up to any number of isomorphisms. |
| 20:54:19 | <EvanR> | the goal post is taking the form of an atomic orbital |
| 20:54:36 | → | hololeap joins (~hololeap@user/hololeap) |
| 20:55:01 | <sclv> | there's a beautiful branch of math known as recursion theory and a whole collection of hierarchies of strength |
| 20:55:13 | <segfaultfizzbuzz> | if you want a better question, here is my attempt: "what are the minimal (known?) restrictions on f and g such that my computer can probably prove they are equivalent?" |
| 20:55:16 | <sclv> | one of the most basic places to start is primitive recursive functions https://en.wikipedia.org/wiki/Primitive_recursive_function |
| 20:55:24 | <dminuoso> | "probably"? |
| 20:55:42 | → | anomal joins (~anomal@87.227.196.109) |
| 20:55:46 | <EvanR> | greater than 50 50 chance |
| 20:55:58 | <dminuoso> | Oh, so now we want a probability algorithm? |
| 20:56:05 | <dminuoso> | I cant fathom how we got here |
| 20:56:23 | <segfaultfizzbuzz> | ok, sounds like the room is unhappy, i will move to offtopic. thanks for indulging folks |
| 20:56:46 | <[exa]> | I guess we meant "provably" ? |
| 20:57:19 | <segfaultfizzbuzz> | see #haskell-offtopic, thanks folks |
| 20:57:40 | <EvanR> | probability does come up in some examples of non computable numbers, functions |
| 20:57:51 | <EvanR> | somehow |
| 20:57:55 | <dminuoso> | If we just want a probalistic algorithm, I can give you one |
| 20:58:05 | <dminuoso> | equivalent f g = False |
| 20:58:21 | <dminuoso> | I guarantee, for a truly random choice of `f` and `g`, this will most of the time be right. |
| 20:58:27 | × | MoY quits (~MoY@139.59.225.128) (Quit: Client closed) |
| 20:58:27 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds) |
| 21:02:07 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 21:03:18 | → | abrantesasf joins (~abrantesa@179.217.49.34) |
| 21:03:57 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 21:06:23 | × | jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
| 21:06:47 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 21:16:17 | × | romesrf quits (~romes@185.5.8.134) (Quit: WeeChat 3.4.1) |
| 21:18:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:18:16 | → | vicfred joins (~vicfred@user/vicfred) |
| 21:19:08 | × | michalz quits (~michalz@185.246.204.126) (Remote host closed the connection) |
| 21:21:00 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:25:23 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 21:25:33 | × | stevenxl quits (~stevenxl@c-73-72-2-81.hsd1.il.comcast.net) (Ping timeout: 246 seconds) |
| 21:30:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 21:34:17 | → | hololeap joins (~hololeap@user/hololeap) |
| 21:34:36 | × | mikoto-chan quits (~mikoto-ch@213.177.151.239) (Ping timeout: 240 seconds) |
| 21:36:12 | <tdammers> | given that there are infinitely many functions out there, for a truly random choice, it will *always* be right |
| 21:36:36 | <tdammers> | (fsvo of "infinite", "truly", "random", "choice", and "always") |
| 21:36:53 | → | deadmarshal_ joins (~deadmarsh@95.38.228.138) |
| 21:37:10 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 21:37:32 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 21:39:04 | × | mmhat quits (~mmh@2001:4090:a242:802a:ee08:6bff:fe09:5315) (Quit: WeeChat 3.5) |
| 21:41:25 | × | deadmarshal_ quits (~deadmarsh@95.38.228.138) (Ping timeout: 260 seconds) |
| 21:43:19 | <dminuoso> | Ill let Cantor sort out the details. |
| 21:44:10 | <dminuoso> | tdammers: Since this is Haskell code, and the universe inside the cosmic horizon is finite in terms of matter that we can use to build a computer from, there's only a finite number of functions we can represent and thus test. |
| 21:44:37 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:45:58 | × | dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.4.1) |
| 21:46:17 | <monochrom> | I might just run Quickcheck for probable checks. |
| 21:47:15 | <monochrom> | I think I understand the meaning and motivation of the original question, but it was worded poorly. |
| 21:47:57 | <monochrom> | But there is a pun opportunity for s/I think I/I probably/ heh |
| 21:51:12 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 21:56:54 | × | stackdroid18 quits (~stackdroi@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 21:58:48 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:04:16 | × | jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
| 22:04:37 | → | jpds joins (~jpds@gateway/tor-sasl/jpds) |
| 22:06:15 | × | machinedgod quits (~machinedg@24.105.81.50) (Ping timeout: 276 seconds) |
| 22:07:05 | × | dsrt^ quits (~dsrt@50.227.69.228) (Ping timeout: 260 seconds) |
| 22:10:36 | × | y04nn quits (~y04nn@2001:ac8:28:93::a15e) (Ping timeout: 240 seconds) |
| 22:11:34 | → | dsrt^ joins (~dsrt@50.227.69.228) |
| 22:16:23 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 22:23:08 | → | perrierjouet joins (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) |
| 22:23:17 | × | seydar quits (~seydar@154-27-113-252.starry-inc.net) (Quit: leaving) |
| 22:25:50 | × | dvdrw quits (~dvdrw@user/dvdrw) (Quit: leaving) |
| 22:27:02 | × | finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer) |
| 22:27:14 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:27:41 | → | finsternis joins (~X@23.226.237.192) |
| 22:30:27 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:31:37 | → | gpncarl joins (~gpncarl@120.244.220.74) |
| 22:33:26 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection) |
| 22:34:07 | × | acidjnk quits (~acidjnk@p200300d0c7033b32e85f61ca0273fe05.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 22:34:57 | → | machinedgod joins (~machinedg@24.105.81.50) |
| 22:35:48 | × | gpncarl quits (~gpncarl@120.244.220.74) (Ping timeout: 248 seconds) |
| 22:36:31 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 22:45:06 | <EvanR> | for every math question answered with a physics answer god defenetrates a kitten |
| 22:46:31 | <monochrom> | :( |
| 22:46:47 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 22:49:38 | × | cynomys quits (~cynomys@user/cynomys) (Quit: leaving) |
| 22:54:42 | <monochrom> | Ah, is the number of kittens defenestrated this way bounded or unbounded? Is this a math question or a physics question? >:) |
| 22:55:19 | <EvanR> | or is it a sports question |
| 22:55:31 | <monochrom> | heh |
| 22:56:09 | <hpc> | does answering a physics question with math refenestrate the kitten? |
| 22:56:36 | <EvanR> | that's the standard account for where kittens come from |
| 22:57:38 | <EvanR> | (refenestration sounds like a plausible jargon for something in DSP) |
| 22:59:27 | <hpc> | hah |
| 23:04:04 | × | hololeap quits (~hololeap@user/hololeap) (Ping timeout: 240 seconds) |
| 23:04:06 | × | abrantesasf quits (~abrantesa@179.217.49.34) (Remote host closed the connection) |
| 23:06:44 | × | werneta quits (~werneta@137.79.197.49) (Ping timeout: 248 seconds) |
| 23:07:05 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 23:07:19 | → | hololeap joins (~hololeap@user/hololeap) |
| 23:09:12 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Remote host closed the connection) |
| 23:10:56 | × | segfaultfizzbuzz quits (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds) |
| 23:11:14 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 23:25:20 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Remote host closed the connection) |
| 23:27:20 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 23:31:27 | → | pavonia joins (~user@user/siracusa) |
| 23:32:09 | → | werneta joins (~werneta@137.79.197.49) |
| 23:36:40 | × | elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Remote host closed the connection) |
| 23:37:09 | × | werneta quits (~werneta@137.79.197.49) (Ping timeout: 246 seconds) |
| 23:38:39 | → | elkcl joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) |
| 23:40:21 | → | segfaultfizzbuzz joins (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) |
| 23:40:53 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 23:42:27 | → | stackdroid18 joins (14094@user/stackdroid) |
| 23:45:05 | × | jgeerds quits (~jgeerds@d53604b0.access.ecotel.net) (Ping timeout: 260 seconds) |
| 23:49:36 | × | segfaultfizzbuzz quits (~segfaultf@135-180-12-202.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds) |
| 23:52:25 | → | kimjetwav joins (~user@2607:fea8:2362:b400:6a2:6a50:da38:4a87) |
| 23:53:47 | × | ec quits (~ec@gateway/tor-sasl/ec) (Quit: ec) |
| 23:54:02 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 23:54:07 | → | werneta joins (~werneta@137.79.215.173) |
| 23:54:16 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::aa1d) (Ping timeout: 250 seconds) |
| 23:56:02 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 23:56:13 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 23:57:27 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 23:57:58 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 23:58:05 | × | ec quits (~ec@gateway/tor-sasl/ec) (Client Quit) |
| 23:58:28 | → | ec joins (~ec@gateway/tor-sasl/ec) |
All times are in UTC on 2022-05-02.