Logs on 2025-05-12 (liberachat/#haskell)
| 00:01:52 | → | sajenim joins (~sajenim@user/sajenim) |
| 00:02:20 | <EvanR> | I'm probably wrong about my observation, but using your example I'll show what I mean, (\x y -> x + y) y z, evaluate x+y in environment [x=>y, y=>z], y + z. I'll see if I can fix the example |
| 00:03:04 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 00:04:55 | <EvanR> | (\x y -> \z -> x) z |
| 00:06:09 | <EvanR> | yields an identity function instead of a constant function |
| 00:07:27 | <EvanR> | so when you convert from debruijn back to named variables you better use unique names |
| 00:08:32 | <EvanR> | (in the first example one of the y and in this example the z are free so wouldn't get IDs afaiui) |
| 00:08:41 | → | j1n37- joins (~j1n37@user/j1n37) |
| 00:09:28 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 272 seconds) |
| 00:18:05 | × | xff0x quits (~xff0x@2405:6580:b080:900:9d68:c704:b1b0:2e99) (Ping timeout: 260 seconds) |
| 00:18:44 | → | xff0x joins (~xff0x@2405:6580:b080:900:d755:12f8:638d:5cf9) |
| 00:21:30 | × | xff0x quits (~xff0x@2405:6580:b080:900:d755:12f8:638d:5cf9) (Client Quit) |
| 00:21:36 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:27:33 | <monochrom> | Environment is also a way to be invulnerable. |
| 00:28:55 | <monochrom> | The mistake happens if you really do what you tell beginners: substitute. :) |
| 00:31:57 | <monochrom> | The pros do one of. They do one of: numbering, environment, alpha-convert lambdas to fresh vars before substitute (e.g., rewrite (\x y -> x + y) to (\uuid1934 uuid3141 -> uuid1934 + uuid3141)) |
| 00:32:23 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 00:32:29 | <monochrom> | I think Scheme hygienic macros use the alpha-convert way. |
| 00:34:34 | → | califax joins (~califax@user/califx) |
| 00:35:14 | → | xff0x joins (~xff0x@2405:6580:b080:900:42e0:bce1:22f1:2695) |
| 00:38:31 | <EvanR> | it seems to me that environment is real solution only if stuff in the environment doesn't have free variables, like in eager evaluation |
| 00:39:31 | <EvanR> | so ghc must do none of the above |
| 00:42:05 | → | meinside joins (uid24933@id-24933.helmsley.irccloud.com) |
| 00:45:55 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 01:01:11 | × | siliconcritters quits (~siliconcr@syn-068-188-168-151.res.spectrum.com) (Quit: siliconcritters) |
| 01:05:13 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 01:06:59 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 01:11:49 | × | xff0x quits (~xff0x@2405:6580:b080:900:42e0:bce1:22f1:2695) (Ping timeout: 276 seconds) |
| 01:38:05 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 01:48:44 | × | hughjfch1 quits (~hughjfche@vmi2417424.contaboserver.net) (Quit: WeeChat 4.4.3) |
| 01:49:14 | → | hughjfchen joins (~hughjfche@vmi2417424.contaboserver.net) |
| 01:49:41 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 248 seconds) |
| 01:50:26 | → | j1n37 joins (~j1n37@user/j1n37) |
| 01:53:23 | <EvanR> | I'm wrong, since the environment would have first class functions with their own environment in a closure |
| 01:54:49 | → | j1n37- joins (~j1n37@user/j1n37) |
| 01:56:40 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds) |
| 02:07:53 | → | xff0x joins (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) |
| 02:13:00 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 02:13:24 | → | califax joins (~califax@user/califx) |
| 02:16:37 | → | tavare joins (~tavare@150.129.88.189) |
| 02:16:37 | × | tavare quits (~tavare@150.129.88.189) (Changing host) |
| 02:16:37 | → | tavare joins (~tavare@user/tavare) |
| 02:19:18 | × | td_ quits (~td@i53870935.versanet.de) (Ping timeout: 272 seconds) |
| 02:19:23 | × | tavare quits (~tavare@user/tavare) (Remote host closed the connection) |
| 02:20:45 | → | td_ joins (~td@i53870921.versanet.de) |
| 02:37:54 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 02:40:15 | → | aditya_an1l joins (~aditya_an@user/aditya-an1l:63825) |
| 02:56:24 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 03:00:00 | × | Taneb0 quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Quit: I seem to have stopped.) |
| 03:00:54 | × | hughjfchen quits (~hughjfche@vmi2417424.contaboserver.net) (Quit: WeeChat 4.4.3) |
| 03:01:10 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 03:02:25 | → | hughjfchen joins (~hughjfche@vmi2417424.contaboserver.net) |
| 03:18:32 | → | weary-traveler joins (~user@user/user363627) |
| 03:22:59 | <monochrom> | :) |
| 03:27:18 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 03:27:43 | → | weary-traveler joins (~user@user/user363627) |
| 03:28:03 | <EvanR> | true or false, to have a working fixed point construct for recursion, you need some kind of lazy evaluation |
| 03:28:34 | <EvanR> | or else evaluating fix f necessarily freezes |
| 03:36:21 | <monochrom> | True. |
| 03:38:16 | <EvanR> | how do all these languages get recursion without lazy evaluation |
| 03:39:33 | <ski> | fix :: ((a -> b) -> (a -> b)) -> (a -> b) |
| 03:39:36 | <monochrom> | Even in call-by-value languages, lambdas are lazy in bodies, or at least delayed, i.e., "\x -> undefined" does not cause that undefined to be evaluated, only application "(\x -> undefined) 5" does. That little delay is leveraged to make fixed point combinators and emulation of laziness. |
| 03:39:40 | <ski> | fix f = (\t -> t t) (\t x -> f (t t) x) |
| 03:41:15 | <monochrom> | So you cannot make "fix (0 :) = 0 : 0 : ..." like in Haskell, but you can still make "fix (\f -> \n -> ... fibonacci ...)" |
| 03:41:48 | <EvanR> | is that the Z combinator ski |
| 03:42:06 | <ski> | it's the by-value fixed point combinator |
| 03:43:00 | <EvanR> | I see |
| 03:44:20 | <ski> | (note the eta-expansion) |
| 03:44:51 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 03:45:43 | <monochrom> | Y is (\t -> t t) (\t -> f (t t)). For call-by-value languages we eta expand to (\t x -> f (t t) x) so one more argument is needed for evaluation so there is the delay I said we need. |
| 03:47:01 | <monochrom> | So it is missing out on fix (0 :) = 0 : 0 : ... but it's OK, call-by-value languages don't have lazy lists in the first place. :) |
| 03:47:33 | → | michalz joins (~michalz@185.246.207.203) |
| 03:47:42 | <EvanR> | I found this on some page Z = \f -> (\x -> (f (\v -> (x x v)))) (\x -> (f (\v -> (x x v)))) |
| 03:48:04 | <EvanR> | but yours is more explainable |
| 03:49:03 | <ski> | yea, i prefer adding in `(\t -> t t)' for the first part, no need to repeat something longer |
| 03:50:16 | <EvanR> | \f -> (\t -> t t) (\x -> f (\v -> (x x v))) |
| 03:50:26 | <EvanR> | I probably messed up |
| 03:50:41 | <monochrom> | It is correct. :) |
| 03:52:27 | <EvanR> | ok but the point of a fix construct is so you don't have to munge these nuts combinators, and so they can have a type |
| 03:53:03 | <EvanR> | does the by value version need a different evaluation strategy |
| 03:53:41 | <monochrom> | No, it's designed to be compatible with by-value evaluation. |
| 03:53:53 | <EvanR> | uhg |
| 03:54:28 | <ski> | # let fix f = (fun t -> t t) (fun t x -> f (t t) x);; |
| 03:54:33 | <ski> | val fix : (('a -> 'b) -> 'a -> 'b) -> 'a -> 'b = <fun> |
| 03:54:43 | <ski> | # fix (fun fib n -> match n with 0 -> 0 | 1 -> 1 | n -> fib (n - 1) + fib (n - 2)) 12;; |
| 03:54:46 | <ski> | - : int = 144 |
| 03:56:11 | <EvanR> | alright let me think |
| 03:56:29 | <monochrom> | Wait, how does that accept that "t t" is typeable? |
| 03:57:06 | <EvanR> | this is some fun t business |
| 03:57:08 | <ski> | # let omega x = x x;; |
| 03:57:10 | <ski> | val omega : ('a -> 'b as 'a) -> 'b = <fun> |
| 03:57:33 | <EvanR> | it's an infinite type |
| 03:57:41 | <monochrom> | Oh God it does equi-recursive types?! |
| 03:57:50 | <ski> | `ocaml -rectypes' does, yes |
| 03:58:04 | <monochrom> | OK that's deep magic. |
| 03:58:15 | <ski> | without `-rectypes', it only allows such cycles, if they go through at least one object type |
| 04:01:09 | <ski> | (this is useful for "binary methods" and "clone methods / functional update". see <https://ocaml.org/manual/5.3/objectexamples.html#s:functional-objects> and <https://ocaml.org/manual/5.3/objectexamples.html#s:binary-methods>) |
| 04:03:44 | <ski> | # let omega : 'o -> 'a as 'o = fun x -> x x;; |
| 04:03:47 | <ski> | val omega : 'b -> 'a as 'b = <fun> |
| 04:03:57 | <ski> | ^ shorter way to express the same type |
| 04:04:51 | <ski> | `omega :: o where o = o -> a' in Haskellish terms |
| 04:06:04 | <EvanR> | ...) -> a) -> a) -> a) -> a |
| 04:06:51 | <ski> | indeed |
| 04:07:40 | <EvanR> | it's turtles all the way down |
| 04:09:49 | <ski> | newtype Santa a = MkSanta {runSanta :: Santa a -> a} |
| 04:10:06 | <ski> | fix :: (a -> a) -> a |
| 04:10:20 | <ski> | fix f = t `runSanta` t |
| 04:10:25 | <ski> | where |
| 04:10:41 | <ski> | t = Santa (\t -> f (t `runSanta` t)) |
| 04:11:11 | <ski> | er, s/t = Santa/t = MkSanta/ |
| 04:11:30 | <EvanR> | is this by value santa |
| 04:11:57 | <ski> | by-name |
| 04:12:27 | <EvanR> | oh it's the Y combinator smuggled into haskell |
| 04:12:51 | ski | . o O ( <https://en.wikipedia.org/wiki/L%C3%B6b's_paradox> ) |
| 04:13:06 | <ski> | using type-level recursion, rather than value-level recursion, yes |
| 04:13:31 | <EvanR> | what is the character between L and b my client exploded |
| 04:13:47 | <ski> | it's an "ö" |
| 04:13:55 | <ski> | "o" with diaresis |
| 04:14:33 | <ski> | (percent-encoded in this case. however, <https://en.wikipedia.org/wiki/Curry's_paradox> also works) |
| 04:15:09 | × | jmcantrell quits (~weechat@user/jmcantrell) (Ping timeout: 252 seconds) |
| 04:16:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 04:16:41 | <EvanR> | got it |
| 04:16:59 | <ski> | using iso-recursive types, rather than equi-recursive |
| 04:17:06 | → | takuan joins (~takuan@d8D86B601.access.telenet.be) |
| 04:17:19 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:18:24 | <ski> | (Löb's paradox has an extra "provable" modality indirection, though .. `loeb : [] ([] a -> a) -> [] a' .. but if you ignore that, it's basically `fix') |
| 04:19:30 | → | j1n37 joins (~j1n37@user/j1n37) |
| 04:19:33 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 04:24:15 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 04:26:23 | <ski> | ((lambda (lambda) `(,lambda ',lambda)) '(lambda (lambda) `(,lambda ',lambda))) |
| 04:26:26 | <ski> | and |
| 04:26:32 | <ski> | (let ((let '`(let ((let ',let)) ,let))) `(let ((let ',let)) ,let)) |
| 04:27:02 | <ski> | are two quines based on the same idea |
| 04:28:17 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 04:30:02 | × | aditya_an1l quits (~aditya_an@user/aditya-an1l:63825) (Quit: WeeChat 4.6.2) |
| 04:33:47 | → | aditya_an1l joins (~aditya_an@user/aditya-an1l:63825) |
| 04:39:27 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 04:40:22 | → | j1n37- joins (~j1n37@user/j1n37) |
| 04:41:10 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 260 seconds) |
| 04:43:38 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 04:46:06 | × | aditya_an1l quits (~aditya_an@user/aditya-an1l:63825) (Quit: WeeChat 4.6.2) |
| 04:46:44 | → | aditya_an1l joins (~aditya_an@user/aditya-an1l:63825) |
| 04:48:51 | × | aditya_an1l quits (~aditya_an@user/aditya-an1l:63825) (Client Quit) |
| 05:15:07 | × | carbolymer quits (~carbolyme@dropacid.net) (Remote host closed the connection) |
| 05:16:17 | → | carbolymer joins (~carbolyme@dropacid.net) |
| 05:23:57 | → | peterbecich1 joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 05:25:10 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 244 seconds) |
| 05:25:10 | peterbecich1 | is now known as peterbecich |
| 05:31:48 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 05:35:00 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 272 seconds) |
| 05:35:44 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 05:39:45 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 265 seconds) |
| 05:41:36 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 05:43:29 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 05:44:01 | × | sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 05:47:41 | → | sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 05:48:37 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 05:57:17 | × | sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 05:59:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:00:49 | → | sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 06:04:00 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
| 06:05:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 06:11:22 | → | tromp joins (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) |
| 06:11:43 | → | j1n37 joins (~j1n37@user/j1n37) |
| 06:12:42 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
| 06:15:33 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 06:16:11 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:29:32 | × | weary-traveler quits (~user@user/user363627) (Ping timeout: 265 seconds) |
| 06:31:17 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 06:32:09 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds) |
| 06:32:16 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 276 seconds) |
| 06:33:17 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 06:38:06 | → | weary-traveler joins (~user@user/user363627) |
| 06:39:14 | → | halloy5771 joins (~halloy577@71-212-10-118.tukw.qwest.net) |
| 06:41:42 | → | user363627 joins (~user@user/user363627) |
| 06:42:49 | × | tromp quits (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 06:43:25 | × | weary-traveler quits (~user@user/user363627) (Ping timeout: 252 seconds) |
| 06:44:08 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 06:44:26 | → | euleritian joins (~euleritia@77.23.248.100) |
| 06:44:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 06:46:14 | × | halloy5771 quits (~halloy577@71-212-10-118.tukw.qwest.net) (Quit: halloy5771) |
| 06:47:08 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 06:47:27 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 06:51:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 06:54:32 | × | ft quits (~ft@p3e9bc106.dip0.t-ipconnect.de) (Quit: leaving) |
| 06:56:04 | × | chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection) |
| 06:56:58 | → | acidjnk joins (~acidjnk@p200300d6e71c4f20419b0c7401f54203.dip0.t-ipconnect.de) |
| 06:58:15 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 06:58:30 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 06:59:40 | × | user363627 quits (~user@user/user363627) (Remote host closed the connection) |
| 07:00:04 | × | caconym7 quits (~caconym@user/caconym) (Quit: bye) |
| 07:00:49 | → | caconym7 joins (~caconym@user/caconym) |
| 07:01:16 | × | euleritian quits (~euleritia@77.23.248.100) (Ping timeout: 244 seconds) |
| 07:02:05 | → | chiselfuse joins (~chiselfus@user/chiselfuse) |
| 07:02:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 07:03:13 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 07:05:57 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 07:07:01 | → | CiaoSen joins (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) |
| 07:07:14 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 07:07:56 | × | p3n quits (~p3n@217.198.124.246) (Quit: ZNC 1.9.1 - https://znc.in) |
| 07:12:53 | → | p3n joins (~p3n@217.198.124.246) |
| 07:13:12 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 07:13:21 | × | CiaoSen quits (~Jura@2a02:8071:64e1:da0:5a47:caff:fe78:33db) (Ping timeout: 252 seconds) |
| 07:15:07 | → | tromp joins (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) |
| 07:17:12 | → | __monty__ joins (~toonn@user/toonn) |
| 07:19:37 | × | emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir) |
| 07:19:47 | × | gmg quits (~user@user/gehmehgeh) (Remote host closed the connection) |
| 07:20:33 | → | gmg joins (~user@user/gehmehgeh) |
| 07:22:45 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 07:24:00 | × | werneta quits (~werneta@syn-071-083-160-242.res.spectrum.com) (Ping timeout: 252 seconds) |
| 07:32:54 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 245 seconds) |
| 07:39:46 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 07:40:04 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 07:40:59 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 07:46:21 | → | Square joins (~Square4@user/square) |
| 07:50:46 | → | merijn joins (~merijn@77.242.116.146) |
| 07:54:06 | × | merijn quits (~merijn@77.242.116.146) (Client Quit) |
| 07:54:21 | → | merijn joins (~merijn@77.242.116.146) |
| 07:55:27 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds) |
| 07:56:34 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 07:57:13 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 07:59:50 | <hololeap> | Hey, just wondering if anyone knows of any examples on gitghub of haskell packages that have a functioning benchmark setup and a way to measure PRs against the main branch? |
| 08:13:27 | × | Square quits (~Square4@user/square) (Ping timeout: 265 seconds) |
| 08:15:37 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 08:15:58 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 08:16:28 | → | kh0d joins (~kh0d@89.216.103.150) |
| 08:16:34 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Client Quit) |
| 08:19:31 | <merijn> | hololeap: I don't think anyone does that |
| 08:19:49 | <merijn> | Because it seems unlikely the github runner infrastructure is deterministic enough |
| 08:20:33 | <hololeap> | you mean in terms of speed? |
| 08:20:36 | <merijn> | yeah |
| 08:20:50 | <hololeap> | fair enough |
| 08:20:52 | <merijn> | I can imagine the available CPU scales with current load of their github action system |
| 08:21:27 | <hololeap> | that makes sense |
| 08:21:29 | <hololeap> | ty |
| 08:29:59 | × | hellwolf quits (~user@5345-cb48-715e-41e3-0f00-4d40-07d0-2001.sta.estpak.ee) (Ping timeout: 252 seconds) |
| 08:32:14 | → | fp1 joins (~Thunderbi@87-92-254-11.rev.dnainternet.fi) |
| 08:32:33 | × | tromp quits (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:35:52 | → | hellwolf joins (~user@01f7-65aa-cc2f-39a8-0f00-4d40-07d0-2001.sta.estpak.ee) |
| 08:36:12 | × | califax quits (~califax@user/califx) (Ping timeout: 264 seconds) |
| 08:36:30 | → | califax joins (~califax@user/califx) |
| 08:38:50 | × | tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz) |
| 08:42:13 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 252 seconds) |
| 08:50:55 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Read error: Connection reset by peer) |
| 08:51:28 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 08:53:54 | × | kh0d quits (~kh0d@89.216.103.150) (Quit: Leaving...) |
| 09:05:52 | → | Square joins (~Square4@user/square) |
| 09:06:42 | → | tromp joins (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) |
| 09:11:46 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:11:50 | <tomsmeding> | I have some personal experience with benchmarking on github actions, and indeed the answer is: don't do that, performance is unpredictable |
| 09:12:19 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:17:03 | <__monty__> | Are there any benchmarking techniques that are independent(ish, at least) of the capacity of the underlying hardware? |
| 09:24:03 | <Hecate> | __monty__: well, that would mean doing a bunch, bunch of benchmark runs, and then averaging them out per hardware characteristics :D |
| 09:24:31 | <Hecate> | __monty__: in other words, you will get completely different results according to the cache of the CPU, the quality of RAM, etc |
| 09:25:02 | <Hecate> | you're not getting any kind of useful metrics from abstracting that away, there's no "ethereal" or "ideal" computer on which your program runs |
| 09:25:36 | <__monty__> | I'm thinking of things like benchmarking before and after a change. To get an estimation of the relative improvement of the change. |
| 09:26:26 | × | zdercti^ quits (~zdercti@50.168.231.214) (Ping timeout: 265 seconds) |
| 09:26:32 | <Hecate> | __monty__: yes that's what benchmarking does, but your change might have completely different effects on different architectures! |
| 09:26:50 | → | zdercti^ joins (~zdercti@50.168.231.214) |
| 09:26:53 | <__monty__> | It's not perfect but I suspect it's a step in the right direction. |
| 09:27:36 | <Hecate> | __monty__: just so we're clear, you want to mesure change against something that is not a real computer or has no real hardware characteristics, despite your program running on actual computers with actual hardware? |
| 09:28:22 | <Hecate> | then I'm not sure what you want to measure, actually |
| 09:28:57 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 09:29:20 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 09:30:08 | <__monty__> | I'm more interested in a statistic that says something about hardware representative of what the software runs on on average. Without having to know the exact distribution of hardware characteristics and without requiring a stable representative of that distribution. |
| 09:34:45 | → | prdak joins (~Thunderbi@user/prdak) |
| 09:37:06 | × | fp1 quits (~Thunderbi@87-92-254-11.rev.dnainternet.fi) (Ping timeout: 252 seconds) |
| 09:41:09 | <Hecate> | __monty__: so, you want an average of your program's runtime platforms |
| 09:41:31 | <Hecate> | __monty__: looks like you may want to look into telemetry, or download statistics for pre-built binaries |
| 09:44:41 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection) |
| 09:44:59 | → | sord937 joins (~sord937@gateway/tor-sasl/sord937) |
| 09:47:00 | × | manwithluck quits (~manwithlu@104.28.210.121) (Ping timeout: 252 seconds) |
| 09:47:14 | → | manwithluck joins (~manwithlu@2a09:bac1:5b80:20::38a:2d) |
| 09:51:21 | × | tromp quits (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:51:21 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Read error: Connection reset by peer) |
| 09:52:53 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 09:54:41 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 09:58:25 | → | comerijn joins (~merijn@77.242.116.146) |
| 09:59:09 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 245 seconds) |
| 09:59:14 | → | tromp joins (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) |
| 10:00:49 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 248 seconds) |
| 10:00:56 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 10:01:04 | <__monty__> | No, that's not actually what I want. |
| 10:01:27 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 10:02:27 | <__monty__> | This is more of an inquiry for theoretical results. I find it hard to believe that there's *nothing* you can measure independently from a specific hardware configuration. |
| 10:07:48 | × | sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 10:11:15 | → | sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 10:12:29 | <Hecate> | __monty__: there's not "nothing", but there's few things. Useful things are still bound to the laws of physics |
| 10:13:58 | <tomsmeding> | __monty__: the optimisations that a compiler does to your code are instruction-set architecture dependent |
| 10:14:03 | <tomsmeding> | there is no such thing as hardware-independent performance |
| 10:14:38 | <tomsmeding> | somewhat related, though: if you accept hardware-bound results, you can strongly reduce noise effects by not measuring time but number of instructions executed |
| 10:14:48 | <tomsmeding> | modern CPUs have counters for this |
| 10:15:48 | <tomsmeding> | only computational complexity has a chance of being hardware-independent, though I wouldn't be surprised if you can come up with edge cases where a compiler is able to e.g. optimise a loop away to a constant operation on one architecture but not on another |
| 10:16:02 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 10:17:05 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 244 seconds) |
| 10:23:00 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 260 seconds) |
| 10:28:13 | × | tromp quits (~textual@2001:1c00:3487:1b00:ecd3:a00f:e9d8:9bf6) (Ping timeout: 276 seconds) |
| 10:28:57 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 10:29:32 | → | merijn joins (~merijn@77.242.116.146) |
| 10:30:13 | × | xff0x quits (~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp) (Ping timeout: 244 seconds) |
| 10:34:06 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 10:35:24 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds) |
| 10:36:04 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 10:39:07 | → | merijn joins (~merijn@77.242.116.146) |
| 10:51:46 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Read error: Connection reset by peer) |
| 10:53:21 | → | vgtw_ joins (~vgtw@user/vgtw) |
| 10:54:18 | × | vgtw quits (~vgtw@user/vgtw) (Ping timeout: 276 seconds) |
| 11:03:36 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 11:18:14 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 260 seconds) |
| 11:20:49 | → | xff0x joins (~xff0x@ai099192.d.east.v6connect.net) |
| 11:21:22 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 11:28:27 | × | chexum_ quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 11:28:47 | → | chexum joins (~quassel@gateway/tor-sasl/chexum) |
| 11:28:59 | × | td_ quits (~td@i53870921.versanet.de) (Quit: waking up from the american dream ...) |
| 11:40:34 | → | td_ joins (~td@i53870921.versanet.de) |
| 11:52:18 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 12:08:09 | → | j1n37- joins (~j1n37@user/j1n37) |
| 12:08:48 | → | comerijn joins (~merijn@77.242.116.146) |
| 12:09:37 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 276 seconds) |
| 12:11:44 | × | merijn quits (~merijn@77.242.116.146) (Ping timeout: 265 seconds) |
| 12:21:06 | → | jespada joins (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) |
| 12:26:20 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 12:30:05 | × | xff0x quits (~xff0x@ai099192.d.east.v6connect.net) (Quit: xff0x) |
| 12:35:07 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 12:35:18 | → | xff0x joins (~xff0x@2405:6580:b080:900:7188:fe4c:4162:a20) |
| 12:37:11 | × | jespada quits (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) (Quit: Textual IRC Client: www.textualapp.com) |
| 12:37:35 | → | jespada joins (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) |
| 12:40:44 | × | xff0x quits (~xff0x@2405:6580:b080:900:7188:fe4c:4162:a20) (Ping timeout: 265 seconds) |
| 12:41:30 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 12:41:58 | → | xff0x joins (~xff0x@ai099192.d.east.v6connect.net) |
| 12:52:01 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 272 seconds) |
| 12:55:48 | × | Square quits (~Square4@user/square) (Ping timeout: 272 seconds) |
| 12:56:49 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 12:57:04 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 12:57:22 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 13:01:30 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 272 seconds) |
| 13:03:37 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 13:05:22 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 13:07:56 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 252 seconds) |
| 13:11:45 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 248 seconds) |
| 13:12:25 | → | AlexNoo_ joins (~AlexNoo@178.34.161.121) |
| 13:14:53 | × | AlexZenon quits (~alzenon@5.139.233.9) (Ping timeout: 252 seconds) |
| 13:16:15 | × | AlexNoo quits (~AlexNoo@5.139.233.9) (Ping timeout: 260 seconds) |
| 13:19:09 | → | AlexZenon joins (~alzenon@178.34.161.121) |
| 13:20:53 | → | prdak joins (~Thunderbi@user/prdak) |
| 13:22:03 | × | _xor quits (~xor@ip-50-5-4-25.dynamic.fuse.net) (Read error: Connection reset by peer) |
| 13:23:23 | → | _xor joins (~xor@ip-50-5-4-25.dynamic.fuse.net) |
| 13:25:14 | → | APic joins (apic@apic.name) |
| 13:25:58 | ← | roconnor parts (~quassel@rocq/roconnor) () |
| 13:30:22 | AlexNoo_ | is now known as AlexNoo |
| 13:31:01 | → | ystael joins (~ystael@user/ystael) |
| 13:31:03 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 13:32:35 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 13:49:45 | → | weary-traveler joins (~user@user/user363627) |
| 13:50:06 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 252 seconds) |
| 13:51:05 | → | j1n37 joins (~j1n37@user/j1n37) |
| 13:51:40 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 276 seconds) |
| 13:54:54 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 13:55:14 | → | j1n37- joins (~j1n37@user/j1n37) |
| 13:56:34 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Quit: ljdarj) |
| 13:56:37 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
| 13:57:03 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 14:08:08 | → | Square joins (~Square4@user/square) |
| 14:21:35 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Ping timeout: 260 seconds) |
| 14:23:31 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 14:23:51 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 272 seconds) |
| 14:26:14 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 14:30:04 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Ping timeout: 268 seconds) |
| 14:31:25 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 14:35:54 | → | gorignak joins (~gorignak@user/gorignak) |
| 14:42:23 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 14:43:13 | → | Guest35 joins (~Guest1@2001:b07:ad4:844e:4ce8:2039:fe59:e726) |
| 14:44:16 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 14:50:05 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 14:50:55 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Read error: Connection reset by peer) |
| 14:51:40 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 14:56:18 | → | harveypwca joins (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) |
| 14:58:20 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Ping timeout: 260 seconds) |
| 15:00:36 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 15:00:54 | → | euleritian joins (~euleritia@77.23.248.100) |
| 15:03:17 | × | Guest35 quits (~Guest1@2001:b07:ad4:844e:4ce8:2039:fe59:e726) (Quit: Client closed) |
| 15:07:01 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 15:12:59 | → | ljdarj joins (~Thunderbi@user/ljdarj) |
| 15:24:06 | → | sim590 joins (~simon@209-15-185-101.resi.cgocable.ca) |
| 15:47:26 | × | zdercti^ quits (~zdercti@50.168.231.214) (Ping timeout: 252 seconds) |
| 15:47:52 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 15:48:09 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 15:51:10 | × | simplystuart quits (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) (Ping timeout: 265 seconds) |
| 15:56:25 | → | simplystuart joins (~simplystu@c-75-75-152-164.hsd1.pa.comcast.net) |
| 15:57:53 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 15:58:09 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 15:58:26 | × | euleritian quits (~euleritia@77.23.248.100) (Ping timeout: 252 seconds) |
| 15:59:29 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 16:01:23 | × | harveypwca quits (~harveypwc@2601:246:d080:f6e0:27d6:8cc7:eca9:c46c) (Quit: Leaving) |
| 16:07:36 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Ping timeout: 265 seconds) |
| 16:11:04 | → | ttybitnik joins (~ttybitnik@user/wolper) |
| 16:12:47 | → | zdercti^ joins (~zdercti@50.168.231.214) |
| 16:15:09 | → | yin joins (~z@user/zero) |
| 16:18:13 | × | zdercti^ quits (~zdercti@50.168.231.214) (Remote host closed the connection) |
| 16:18:48 | → | j1n37 joins (~j1n37@user/j1n37) |
| 16:20:10 | × | j1n37- quits (~j1n37@user/j1n37) (Ping timeout: 265 seconds) |
| 16:23:20 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 16:23:35 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 16:25:11 | × | comerijn quits (~merijn@77.242.116.146) (Ping timeout: 252 seconds) |
| 16:29:32 | → | jmcantrell joins (~weechat@user/jmcantrell) |
| 16:35:26 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 16:41:11 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
| 16:41:44 | → | j1n37 joins (~j1n37@user/j1n37) |
| 16:44:47 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 16:45:01 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 16:55:32 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 16:55:51 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 16:57:30 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 244 seconds) |
| 17:02:13 | → | ft joins (~ft@p3e9bc106.dip0.t-ipconnect.de) |
| 17:02:40 | walt | is now known as ggVGC |
| 17:02:43 | ggVGC | is now known as ggVGc |
| 17:04:02 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 17:06:38 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 17:06:41 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) (Client Quit) |
| 17:17:22 | × | jespada quits (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 17:17:35 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 17:20:00 | → | jespada joins (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) |
| 17:22:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:22:31 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 17:23:22 | × | sp1ff` quits (~user@c-67-160-173-55.hsd1.wa.comcast.net) (Read error: Connection reset by peer) |
| 17:23:44 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 17:24:02 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 17:25:38 | → | sprotte24 joins (~sprotte24@p200300d16f0e680010976ce20a20e5ec.dip0.t-ipconnect.de) |
| 17:27:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 17:27:50 | × | gorignak quits (~gorignak@user/gorignak) (Ping timeout: 265 seconds) |
| 17:31:46 | → | gorignak joins (~gorignak@user/gorignak) |
| 17:32:11 | → | Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) |
| 17:35:15 | × | jespada quits (~jespada@r179-24-29-12.dialup.adsl.anteldata.net.uy) (Ping timeout: 260 seconds) |
| 17:37:53 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:38:49 | → | jespada joins (~jespada@r179-25-209-21.dialup.adsl.anteldata.net.uy) |
| 17:40:41 | → | tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net) |
| 17:42:29 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 17:45:06 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 17:45:21 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 17:47:42 | × | sajenim quits (~sajenim@user/sajenim) (Ping timeout: 252 seconds) |
| 17:47:55 | × | sabathan2 quits (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 17:48:15 | → | sabathan2 joins (~sabathan@amarseille-159-1-12-107.w86-203.abo.wanadoo.fr) |
| 17:53:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 17:56:18 | JuanDaugherty | is now known as ColinRobinson |
| 17:59:55 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 18:00:15 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 18:00:21 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 18:02:56 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Remote host closed the connection) |
| 18:03:36 | → | SlackCoder joins (~SlackCode@64-94-63-8.ip.weststar.net.ky) |
| 18:11:40 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:16:44 | × | ColinRobinson quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 18:16:54 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 18:22:41 | → | aditya_an1l joins (~aditya_an@user/aditya-an1l:63825) |
| 18:23:27 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 18:23:41 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 18:35:13 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 18:35:32 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 18:37:49 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 18:37:52 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:39:32 | → | califax joins (~califax@user/califx) |
| 18:42:42 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 18:43:14 | → | zennit joins (~Ascyii@user/jonas2) |
| 18:49:03 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 18:49:17 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 18:50:15 | × | zennit quits (~Ascyii@user/jonas2) (Quit: WeeChat 4.4.3) |
| 18:53:22 | → | econo_ joins (uid147250@id-147250.tinside.irccloud.com) |
| 18:53:41 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 18:54:41 | → | zennit joins (~Ascyii@user/jonas2) |
| 18:58:27 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 18:59:19 | → | notzmv joins (~daniel@user/notzmv) |
| 19:00:02 | × | caconym7 quits (~caconym@user/caconym) (Quit: bye) |
| 19:00:27 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 19:00:38 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 19:00:41 | → | caconym7 joins (~caconym@user/caconym) |
| 19:01:37 | → | Square2 joins (~Square@user/square) |
| 19:02:20 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 19:02:35 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 19:04:49 | × | Square quits (~Square4@user/square) (Ping timeout: 244 seconds) |
| 19:07:04 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Ping timeout: 245 seconds) |
| 19:09:26 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 19:09:28 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:10:05 | <[exa]> | so I see there's dear-imgui package for haskells. Is there any (convenient) way to run that atop a gloss app? |
| 19:13:11 | <c_wraith> | gloss can render a bitmap. |
| 19:13:28 | <c_wraith> | but thta doesn't exactly make it convenient. |
| 19:13:36 | <EvanR> | or efficient |
| 19:14:07 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 19:14:31 | <[exa]> | like, in Cs I was normally just injecting an extra commandbuffer from imgui at the end of render (of basically anything) and it worked, kinda hoped that gloss would have some support for that |
| 19:14:37 | <EvanR> | sometimes separate openGL codes can be slammed together in primitive fashion to both work with under the same context, but one of them has to avoid opening its own (global) context |
| 19:14:45 | × | notzmv quits (~daniel@user/notzmv) (Remote host closed the connection) |
| 19:14:47 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 19:15:11 | <EvanR> | I'm not sure this is filed under "convenient" moresorather than "mad science" |
| 19:16:57 | → | notzmv joins (~daniel@user/notzmv) |
| 19:17:26 | <[exa]> | it's convenient in C :D |
| 19:17:45 | <[exa]> | anyway yeah imgui is literally built to allow this |
| 19:17:50 | <c_wraith> | I mean, a big part of it is that gloss is not |
| 19:18:07 | <c_wraith> | Gloss is mostly built to be self-contained |
| 19:18:24 | <c_wraith> | even rendering a bitmap is stretching what it's built for |
| 19:18:39 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 268 seconds) |
| 19:18:40 | ljdarj1 | is now known as ljdarj |
| 19:19:00 | <[exa]> | as in, there's an imgui memory editor project that you can dynamically load into any running opengl program with some gdb help, add a little bit of a call at the right place, and it will just render |
| 19:19:09 | <[exa]> | not sure if gloss will be immune |
| 19:19:13 | <[exa]> | let's see |
| 19:19:59 | <EvanR> | yeeeeah that's still mad science |
| 19:21:42 | <[exa]> | yeah that one qualifies easily |
| 19:25:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:28:39 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 19:28:56 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 19:30:25 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 19:36:25 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 19:37:19 | × | machinedgod quits (~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 252 seconds) |
| 19:39:32 | × | takuan quits (~takuan@d8D86B601.access.telenet.be) (Read error: Connection reset by peer) |
| 19:39:45 | → | takuan joins (~takuan@d8D86B601.access.telenet.be) |
| 19:41:04 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 19:43:02 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 19:46:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 19:48:06 | → | __monty__ joins (~toonn@user/toonn) |
| 19:52:31 | × | aditya_an1l quits (~aditya_an@user/aditya-an1l:63825) (Quit: WeeChat 4.6.2) |
| 19:53:51 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:55:27 | → | euleritian joins (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) |
| 19:56:50 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:01:31 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 20:06:34 | → | JuanDaugherty joins (~juan@user/JuanDaugherty) |
| 20:11:35 | × | natto17 quits (~natto@129.154.243.159) (Ping timeout: 260 seconds) |
| 20:12:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:16:28 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 20:17:40 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 20:17:53 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 20:18:52 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 20:19:06 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 20:19:32 | → | rvalue- joins (~rvalue@user/rvalue) |
| 20:19:45 | × | rvalue quits (~rvalue@user/rvalue) (Ping timeout: 260 seconds) |
| 20:24:19 | rvalue- | is now known as rvalue |
| 20:24:41 | → | natto17 joins (~natto@129.154.243.159) |
| 20:28:24 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:29:19 | × | euleritian quits (~euleritia@dynamic-176-006-133-103.176.6.pool.telefonica.de) (Read error: Connection reset by peer) |
| 20:29:36 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 20:31:48 | × | JuanDaugherty quits (~juan@user/JuanDaugherty) (Quit: praxis.meansofproduction.biz (juan@acm.org)) |
| 20:33:22 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 20:38:23 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Remote host closed the connection) |
| 20:38:39 | → | JeremyB99 joins (~JeremyB99@172.87.18.1) |
| 20:40:31 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 20:41:18 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 20:42:05 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 20:42:24 | × | JeremyB99 quits (~JeremyB99@172.87.18.1) (Read error: Connection reset by peer) |
| 20:43:45 | × | Square2 quits (~Square@user/square) (Ping timeout: 268 seconds) |
| 20:44:12 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 20:46:36 | <EvanR> | everybody knows that if you make an algebraic data type to represent the actions and string them together with lambdas in just the right way you're doing the free monad. Now what is this called |
| 20:48:00 | → | JeremyB99 joins (~JeremyB99@2607:fb91:10e0:5b80:95fd:7897:b476:7002) |
| 20:48:00 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 20:48:01 | <EvanR> | instead of doing step :: VM -> IO VM, do step :: Monad m => (Char -> m ()) -> (m Char) -> VM -> m VM and now your algorithm is parameterized by all monads ever |
| 20:48:46 | <EvanR> | (and I'm not even sure what the consequences are, unless you pick m = IO) |
| 20:48:51 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 20:49:45 | → | sw4n joins (~sw4n@2605:59c0:413f:3110:831:13fb:a2fa:9c07) |
| 20:50:15 | × | sw4n quits (~sw4n@2605:59c0:413f:3110:831:13fb:a2fa:9c07) (Remote host closed the connection) |
| 20:51:02 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 20:51:03 | × | JeremyB99 quits (~JeremyB99@2607:fb91:10e0:5b80:95fd:7897:b476:7002) (Remote host closed the connection) |
| 20:51:11 | → | JeremyB99 joins (~JeremyB99@2607:fb91:10e0:5b80:95fd:7897:b476:7002) |
| 20:53:00 | × | jespada quits (~jespada@r179-25-209-21.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 20:54:06 | → | jespada joins (~jespada@r179-25-209-21.dialup.adsl.anteldata.net.uy) |
| 20:55:03 | <monochrom> | You can do mock testing by picking something else for m. If you pick the free monad for m, then write one interpreter for IO, another interpreter for mock testing. |
| 20:55:52 | <monochrom> | Now, what is that called? Answer: Dependency injection. >:) |
| 20:58:39 | <EvanR> | testing, interesting theory |
| 20:59:03 | <monochrom> | Or you may like: Explicit dictionary passing. Because you can imagine you had "class Monad m => MonadVM m where foo :: Char -> m (); bar :: m Char" so step was "step :: MonadVM m => VM -> m VM", but then you decided to delete the class and pass the two methods as arguments. |
| 21:01:05 | × | euleritian quits (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer) |
| 21:01:21 | <EvanR> | by generalizing from IO to m we restricted what this function could possibly do, seems like a general property of polymorphism |
| 21:01:38 | × | JeremyB99 quits (~JeremyB99@2607:fb91:10e0:5b80:95fd:7897:b476:7002) (Read error: Connection reset by peer) |
| 21:02:09 | → | euleritian joins (~euleritia@ip4d17f864.dynamic.kabel-deutschland.de) |
| 21:02:11 | <EvanR> | this is haskell, we can do less |
| 21:02:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:02:50 | <Rembane> | Laziness is a thing |
| 21:03:47 | <Rembane> | A good thing |
| 21:07:12 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 21:16:33 | × | takuan quits (~takuan@d8D86B601.access.telenet.be) (Ping timeout: 248 seconds) |
| 21:17:37 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:21:59 | × | peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds) |
| 21:22:34 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 21:27:13 | <monochrom> | Parametric polymorphism restricts the function (e.g., it has to do the same thing for all monads), therefore users find the function more predictable. |
| 21:31:08 | <monochrom> | BTW even with the production version, even if you're doing IO, you may still like to generalize so that you can swap out one UI for another. In fact, if you switch over to a "don't call us, we'll call you" GUI framework, you may need m = ContT r IO or Codensity IO and then pull the reinvent-control trick: |
| 21:31:10 | <monochrom> | http://blog.sigfpe.com/2011/10/quick-and-dirty-reinversion-of-control.html |
| 21:31:22 | <monochrom> | err, s/reinvent/reinvert/ |
| 21:33:21 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:34:37 | <EvanR> | ok it was testing now it's a GUI |
| 21:35:29 | <monochrom> | There are multiple benefits! |
| 21:35:46 | <monochrom> | Or one benefit that has multiple manifestations. |
| 21:36:59 | <EvanR> | I was going to say, what does it even mean if you put a random monad like Cont in for m but then you retrocausally are saying that's something useful |
| 21:38:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 21:38:35 | <monochrom> | :) |
| 21:46:20 | <EvanR> | not to be confused with a random monad, for getting random numbers |
| 21:49:10 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 21:54:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 272 seconds) |
| 21:59:45 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 244 seconds) |
| 22:02:29 | × | acidjnk quits (~acidjnk@p200300d6e71c4f20419b0c7401f54203.dip0.t-ipconnect.de) (Ping timeout: 248 seconds) |
| 22:04:06 | × | notzmv quits (~daniel@user/notzmv) (Ping timeout: 244 seconds) |
| 22:04:57 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:06:54 | × | foul_owl quits (~kerry@94.156.149.92) (Ping timeout: 260 seconds) |
| 22:09:15 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:10:05 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 244 seconds) |
| 22:12:26 | × | sprotte24 quits (~sprotte24@p200300d16f0e680010976ce20a20e5ec.dip0.t-ipconnect.de) (Quit: Leaving) |
| 22:13:23 | → | prdak joins (~Thunderbi@user/prdak) |
| 22:13:37 | → | acidjnk joins (~acidjnk@p200300d6e71c4f20419b0c7401f54203.dip0.t-ipconnect.de) |
| 22:15:19 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 22:17:50 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 265 seconds) |
| 22:21:06 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:23:58 | × | target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving) |
| 22:27:46 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 22:31:37 | → | machinedgod joins (~machinedg@d108-173-18-100.abhsia.telus.net) |
| 22:35:46 | <EvanR> | do unix signals have anything to do with async exceptions (by default) |
| 22:39:08 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:41:32 | → | foul_owl joins (~kerry@94.156.149.92) |
| 22:41:53 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 22:42:58 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 22:43:14 | Lord_of_Life_ | is now known as Lord_of_Life |
| 22:44:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 22:48:17 | × | foul_owl quits (~kerry@94.156.149.92) (Ping timeout: 265 seconds) |
| 22:55:16 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 22:58:10 | → | YuutaW joins (~YuutaW@2404:f4c0:f9c3:502::100:17b7) |
| 23:00:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
| 23:00:41 | × | SlackCoder quits (~SlackCode@64-94-63-8.ip.weststar.net.ky) (Quit: Leaving) |
| 23:02:07 | → | foul_owl joins (~kerry@94.156.149.92) |
| 23:03:09 | → | prdak joins (~Thunderbi@user/prdak) |
| 23:07:34 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 260 seconds) |
| 23:10:00 | → | peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com) |
| 23:10:38 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:11:58 | × | acidjnk quits (~acidjnk@p200300d6e71c4f20419b0c7401f54203.dip0.t-ipconnect.de) (Ping timeout: 276 seconds) |
| 23:12:29 | × | ttybitnik quits (~ttybitnik@user/wolper) (Quit: Fading out...) |
| 23:13:30 | → | weary-traveler joins (~user@user/user363627) |
| 23:16:10 | × | jespada quits (~jespada@r179-25-209-21.dialup.adsl.anteldata.net.uy) (Quit: My Mac has gone to sleep. ZZZzzz…) |
| 23:20:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:31:19 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:32:38 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
| 23:33:13 | → | Frostillicus joins (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) |
| 23:36:02 | <monochrom> | By default, only SIGINT is translated by GHC RTS to UserInterrupt :: AsyncException. |
| 23:36:30 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 23:38:40 | → | notzmv joins (~daniel@user/notzmv) |
| 23:41:00 | × | weary-traveler quits (~user@user/user363627) (Remote host closed the connection) |
| 23:42:49 | <EvanR> | cool |
| 23:46:31 | → | j1n37- joins (~j1n37@user/j1n37) |
| 23:46:42 | × | j1n37 quits (~j1n37@user/j1n37) (Ping timeout: 244 seconds) |
| 23:47:03 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 23:48:16 | × | notzmv quits (~daniel@user/notzmv) (Remote host closed the connection) |
| 23:52:05 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 23:52:43 | → | prdak joins (~Thunderbi@user/prdak) |
| 23:53:00 | × | Frostillicus quits (~Frostilli@pool-71-174-119-56.bstnma.fios.verizon.net) (Read error: Connection reset by peer) |
| 23:54:02 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 23:55:11 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 23:57:17 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds) |
| 23:57:53 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 265 seconds) |
| 23:57:53 | ljdarj1 | is now known as ljdarj |
All times are in UTC on 2025-05-12.