Home liberachat/#haskell: Logs Calendar

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.