2021/09/01

2021-09-01 00:09:01 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 00:09:18 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 00:13:20 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-01 00:15:54 +0200benin0369323(~benin@183.82.24.161)
2021-09-01 00:17:28 +0200sjb0(~stephen@2001:8004:5100:2960:eb63:6877:c6aa:5d94) (Quit: Leaving.)
2021-09-01 00:18:46 +0200benin036932(~benin@183.82.24.161) (Ping timeout: 244 seconds)
2021-09-01 00:18:46 +0200benin0369323benin036932
2021-09-01 00:22:20 +0200fendor(~fendor@77.119.206.17.wireless.dyn.drei.com) (Read error: Connection reset by peer)
2021-09-01 00:22:49 +0200acidjnk_new(~acidjnk@p200300d0c7203039d576453b109ce99e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-01 00:23:25 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 00:23:42 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 00:27:20 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-09-01 00:28:07 +0200yaroot(~yaroot@6.3.30.125.dy.iij4u.or.jp)
2021-09-01 00:32:12 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 00:32:29 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 00:33:14 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 00:34:16 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 244 seconds)
2021-09-01 00:35:19 +0200michalz(~michalz@185.246.204.40) (Remote host closed the connection)
2021-09-01 00:37:14 +0200infinity0(~infinity0@occupy.ecodis.net) (Remote host closed the connection)
2021-09-01 00:37:53 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2021-09-01 00:39:28 +0200azeem(~azeem@62.19.37.175)
2021-09-01 00:39:57 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 00:41:27 +0200infinity0(~infinity0@occupy.ecodis.net)
2021-09-01 00:43:41 +0200sm2n_sm2n
2021-09-01 00:48:22 +0200Guest27(~Guest27@188.71.213.184)
2021-09-01 00:50:00 +0200Guest27(~Guest27@188.71.213.184) (Client Quit)
2021-09-01 00:50:19 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 00:54:55 +0200azeem(~azeem@62.19.37.175)
2021-09-01 00:56:43 +0200Topsi(~Tobias@dyndsl-095-033-019-089.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-09-01 00:57:30 +0200Topsi(~Tobias@dyndsl-095-033-019-089.ewe-ip-backbone.de)
2021-09-01 00:58:24 +0200SystemFFan(~SystemFFa@188.71.213.184)
2021-09-01 00:59:07 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-01 01:01:39 +0200Topsi(~Tobias@dyndsl-095-033-019-089.ewe-ip-backbone.de) (Ping timeout: 244 seconds)
2021-09-01 01:02:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 01:02:59 +0200dextaa(~DV@user/dextaa) (Ping timeout: 250 seconds)
2021-09-01 01:03:24 +0200amk(~amk@109.255.169.126) (Read error: Connection reset by peer)
2021-09-01 01:04:18 +0200dextaa(~DV@user/dextaa)
2021-09-01 01:13:45 +0200sjb0(~stephen@1.145.22.171)
2021-09-01 01:16:03 +0200kayprish(~kayprish@cable-188-2-229-172.dynamic.sbb.rs) (Remote host closed the connection)
2021-09-01 01:16:59 +0200Topsi(~Tobias@dyndsl-091-249-082-194.ewe-ip-backbone.de)
2021-09-01 01:17:25 +0200sjb0(~stephen@1.145.22.171) ()
2021-09-01 01:24:33 +0200amk(~amk@109.255.169.126)
2021-09-01 01:29:47 +0200Guest2602(~user@2601:644:8500:8350::cc04)
2021-09-01 01:30:11 +0200 <Guest2602> Constraint solving library for a beginner?
2021-09-01 01:30:26 +0200 <Guest2602> So far, I'm aware of Holmes (backed by propagators)
2021-09-01 01:31:50 +0200 <Guest2602> Or is it best to implement ad hoc SLD resolution via the List monad and do the rest from scratch as if it were Prolog?
2021-09-01 01:37:04 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 01:38:57 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de) (Ping timeout: 250 seconds)
2021-09-01 01:41:46 +0200 <arahael> out of curiosity, does ghc have a way to test for physical equality? (for writing optimised code)
2021-09-01 01:42:17 +0200 <arahael> eg, no need to re-render a data structure if it is the same object as a previous structure.
2021-09-01 01:43:44 +0200 <davean> arahael: isn't htat safeCoerve?
2021-09-01 01:43:57 +0200 <davean> *safe coerce
2021-09-01 01:46:33 +0200 <monochrom> GHC.Prim.reallyUnsafePtrEquality#
2021-09-01 01:46:44 +0200Topsi(~Tobias@dyndsl-091-249-082-194.ewe-ip-backbone.de) (Read error: Connection reset by peer)
2021-09-01 01:47:18 +0200 <monochrom> "Warning: this can fail with an unchecked exception."
2021-09-01 01:52:17 +0200dajoer(~david@user/gvx)
2021-09-01 01:53:01 +0200 <arahael> davean: will check that out!
2021-09-01 01:53:14 +0200 <arahael> monochrom: can that be caught?
2021-09-01 01:53:56 +0200Ae(~Ae@122-56-197-231.mobile.spark.co.nz)
2021-09-01 01:54:08 +0200Ae(~Ae@122-56-197-231.mobile.spark.co.nz) (Remote host closed the connection)
2021-09-01 01:54:39 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-09-01 01:54:46 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 01:56:42 +0200 <arahael> davean: how would i use unsafeCoerce in this way?
2021-09-01 01:58:22 +0200 <davean> I didn't say unsafe, I said safe
2021-09-01 01:58:42 +0200 <davean> The representation is the same
2021-09-01 01:59:04 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-01 02:00:02 +0200zopsi(~zopsi@irc.dir.ac) (Quit: Oops)
2021-09-01 02:00:09 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi)
2021-09-01 02:00:39 +0200 <arahael> davean: from the registry package?
2021-09-01 02:00:41 +0200 <monochrom> Catching exceptions without IO will be very tricky and fragile. Note that reallyUnsafePtrEquality does not involve IO.
2021-09-01 02:00:53 +0200zopsi(zopsi@2600:3c00::f03c:91ff:fe14:551f)
2021-09-01 02:01:10 +0200 <arahael> monochrom: in IO would be fine.
2021-09-01 02:01:15 +0200 <davean> arahael: no, from base
2021-09-01 02:01:28 +0200 <arahael> davean: it does not show up in hoogle!
2021-09-01 02:01:42 +0200 <monochrom> But I suppose "evaluate (reallyUnsafePtrEquality x y)" may improve.
2021-09-01 02:01:43 +0200 <davean> arahael: Why use hoogle? https://hackage.haskell.org/package/base-4.15.0.0/docs/Data-Coerce.html
2021-09-01 02:02:03 +0200 <monochrom> However, I have never tried it, I have zero confidence this does anything at all.
2021-09-01 02:02:05 +0200 <arahael> davean: because i didnt know it was in Data.Coerce.
2021-09-01 02:02:31 +0200 <davean> arahael: Neither did I
2021-09-01 02:02:46 +0200adam_(uid515807@id-515807.tooting.irccloud.com)
2021-09-01 02:03:22 +0200 <arahael> ok, just looked at the sig, it is basically a-> b. how would i use that?
2021-09-01 02:03:26 +0200 <adam_> #haskell beginners
2021-09-01 02:03:36 +0200 <arahael> i want a -> a -> Bool
2021-09-01 02:03:51 +0200 <arahael> ie, "are these the same object?"
2021-09-01 02:04:12 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-01 02:04:24 +0200desantra(~skykanin@user/skykanin)
2021-09-01 02:04:33 +0200 <davean> arahael: It does it at the type level
2021-09-01 02:04:40 +0200 <arahael> davean: not what i want.
2021-09-01 02:04:50 +0200 <davean> ah, ok
2021-09-01 02:04:52 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-01 02:04:56 +0200 <myShoggoth> Haskell Foundation August Update: https://discourse.haskell.org/t/haskell-foundation-august-update/3006
2021-09-01 02:05:18 +0200 <davean> arahael: then how are you processing these different forms?
2021-09-01 02:05:45 +0200 <arahael> davean: "if the object is different, re-render the display".
2021-09-01 02:06:19 +0200 <yushyin> Merch Shop? oO :D
2021-09-01 02:06:43 +0200 <davean> oh wait, you want to know if the binary representation, in memory, is equal?
2021-09-01 02:06:48 +0200 <davean> I do not tihnk this will do what you want
2021-09-01 02:06:58 +0200 <arahael> davean: indeed. exact physical equality.
2021-09-01 02:07:17 +0200 <davean> arahael: That doesn't make sense in Haskell
2021-09-01 02:07:28 +0200 <davean> That doesn't tell you if its the same object or not
2021-09-01 02:07:44 +0200 <arahael> davean: why not?
2021-09-01 02:08:06 +0200 <davean> arahael: for example, because the GC reorganised memory while you were looking
2021-09-01 02:08:22 +0200 <arahael> davean: then they wont be equal, thats fine.
2021-09-01 02:08:26 +0200 <davean> So now its components have different values but its the same one
2021-09-01 02:08:37 +0200 <arahael> so it'll just redraw.
2021-09-01 02:08:46 +0200 <davean> arahael: address equality is better, or equality is better
2021-09-01 02:08:53 +0200 <davean> address equality is also far faster
2021-09-01 02:09:14 +0200 <davean> like, thousands of times faster
2021-09-01 02:09:16 +0200 <arahael> address equality is usually how most languages do this.
2021-09-01 02:09:32 +0200 <davean> Because its saner
2021-09-01 02:09:43 +0200 <davean> But thats not the same thing is bit equality
2021-09-01 02:10:15 +0200 <arahael> i think we are getting hung up on semantics a bit.
2021-09-01 02:10:59 +0200 <arahael> unless you are suggesting that the bits can change quite often in normal use cases?
2021-09-01 02:11:02 +0200 <davean> With IORef neither bit equality or address equality would reprent if it had changed
2021-09-01 02:11:08 +0200 <davean> arahael: Of course they do!
2021-09-01 02:11:17 +0200 <davean> Constantly
2021-09-01 02:11:40 +0200 <arahael> oh? doesnt a new object get created whenever updating a structure?
2021-09-01 02:11:46 +0200 <davean> Every GC for sure, if its not unpacked
2021-09-01 02:12:47 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 02:12:54 +0200 <davean> Plus bit-wise comparison is just SUPER slow
2021-09-01 02:13:04 +0200 <arahael> Ah, so I'd best introduce a tag of my own or something that I update whenever I want to say "this has changed".
2021-09-01 02:13:09 +0200 <arahael> So I could check the revision tag.
2021-09-01 02:13:17 +0200 <arahael> (brb - short meeting)
2021-09-01 02:14:00 +0200 <davean> well if you keep a reference to the last version, and you do pointer equality, and you don't have any refs in your datastructure, you're pretty good
2021-09-01 02:14:23 +0200 <davean> You can also get a stable name if you HAVE to avoid the ref
2021-09-01 02:16:36 +0200 <davean> I'd keep a ref to the old one, make sure my display function wasn't in IO/ST so it couldn't deref an (IO/ST)Ref/MVar/TVar/Etc, and use unsafe pointer equality
2021-09-01 02:26:40 +0200napping(~brandon@65.128.58.64) ()
2021-09-01 02:26:42 +0200desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.2)
2021-09-01 02:37:22 +0200Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-09-01 02:37:28 +0200renzhi(~xp@2607:fa49:6500:3d00::d986) (Quit: WeeChat 2.3)
2021-09-01 02:39:20 +0200renzhi(~xp@2607:fa49:6500:3d00::d986)
2021-09-01 02:45:41 +0200 <arahael> Ok, just finished up that meeting. Ah, that's an intriguing option, so it sounds like there are a bunch of options I would have to explore.
2021-09-01 02:46:13 +0200 <arahael> And a ref to the old and current ones would work well.
2021-09-01 02:52:44 +0200favonia(~favonia@user/favonia)
2021-09-01 02:55:20 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-01 02:57:52 +0200opac(~opac@ip-28-56.sn2.clouditalia.com) (Quit: Going offline, see ya! (www.adiirc.com))
2021-09-01 02:58:19 +0200alx741(~alx741@186.178.108.235)
2021-09-01 03:03:05 +0200SystemFFan(~SystemFFa@188.71.213.184) (Remote host closed the connection)
2021-09-01 03:04:54 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 256 seconds)
2021-09-01 03:11:20 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 03:12:39 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2021-09-01 03:13:24 +0200favonia(~favonia@user/favonia) (Ping timeout: 244 seconds)
2021-09-01 03:13:46 +0200albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2021-09-01 03:14:57 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2021-09-01 03:15:37 +0200thyriaen(~thyriaen@x4db7e539.dyn.telefonica.de)
2021-09-01 03:16:02 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 03:16:36 +0200neurocyte6(~neurocyte@45.93.108.142)
2021-09-01 03:16:36 +0200neurocyte6(~neurocyte@45.93.108.142) (Changing host)
2021-09-01 03:16:36 +0200neurocyte6(~neurocyte@user/neurocyte)
2021-09-01 03:18:24 +0200motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2021-09-01 03:18:49 +0200neurocyte(~neurocyte@user/neurocyte) (Ping timeout: 252 seconds)
2021-09-01 03:18:49 +0200neurocyte6neurocyte
2021-09-01 03:19:06 +0200azeem(~azeem@62.19.37.175)
2021-09-01 03:19:56 +0200motherfsck(~motherfsc@user/motherfsck)
2021-09-01 03:20:22 +0200meinside_meinside
2021-09-01 03:21:06 +0200thyriaen(~thyriaen@x4db7e539.dyn.telefonica.de) (Quit: Leaving)
2021-09-01 03:24:16 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Ping timeout: 252 seconds)
2021-09-01 03:27:34 +0200ouroboros(~ouroboros@user/ouroboros) (Ping timeout: 252 seconds)
2021-09-01 03:28:03 +0200bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2021-09-01 03:32:27 +0200favonia(~favonia@user/favonia)
2021-09-01 03:34:29 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 03:34:40 +0200xff0x(~xff0x@2001:1a81:52bb:c200:954e:ca7f:9978:3e44) (Ping timeout: 240 seconds)
2021-09-01 03:34:43 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 03:36:35 +0200xff0x(~xff0x@2001:1a81:52f2:5d00:a43c:729f:4397:fe8e)
2021-09-01 03:37:01 +0200ouroboros(~ouroboros@user/ouroboros)
2021-09-01 03:41:47 +0200 <zzz> let bindings are irrefutable by ddfault, right? so is there any difference between `let [a,b] = ... in ...` and `let ~[a,b] = ... in ...` ?
2021-09-01 03:42:14 +0200azeem(~azeem@62.19.37.175)
2021-09-01 03:42:18 +0200ormaajormaaj2
2021-09-01 03:42:48 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
2021-09-01 03:44:24 +0200dsrt^(~dsrt@wsip-98-188-244-188.mc.at.cox.net) (Ping timeout: 244 seconds)
2021-09-01 03:48:59 +0200Neuromancer(~Neuromanc@user/neuromancer)
2021-09-01 03:51:26 +0200selve(~selve@bas2-montreal28-70-53-241-238.dsl.bell.ca)
2021-09-01 03:52:26 +0200 <Cale> zzz: Nope, those are the same
2021-09-01 03:54:13 +0200favonia(~favonia@user/favonia) (Ping timeout: 244 seconds)
2021-09-01 03:54:22 +0200_xor(~xor@74.215.232.67)
2021-09-01 03:58:22 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-09-01 03:58:55 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds)
2021-09-01 04:04:43 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2021-09-01 04:06:39 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-01 04:07:46 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 04:13:49 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 252 seconds)
2021-09-01 04:15:31 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-09-01 04:24:11 +0200td_(~td@94.134.91.147) (Ping timeout: 244 seconds)
2021-09-01 04:26:08 +0200td_(~td@94.134.91.219)
2021-09-01 04:30:16 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-01 04:33:04 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2)
2021-09-01 04:35:46 +0200mceldeen(~igloo@174-16-163-16.hlrn.qwest.net)
2021-09-01 04:36:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 04:36:09 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 04:36:09 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 04:36:37 +0200selve(~selve@bas2-montreal28-70-53-241-238.dsl.bell.ca) ()
2021-09-01 04:38:54 +0200mceldeen(~igloo@174-16-163-16.hlrn.qwest.net) (Remote host closed the connection)
2021-09-01 04:40:17 +0200sleblanc(~sleblanc@user/sleblanc)
2021-09-01 04:40:18 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-01 04:40:43 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-01 04:40:43 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 04:41:16 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 04:53:42 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 256 seconds)
2021-09-01 04:55:11 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 04:55:28 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 04:56:43 +0200benin036932(~benin@183.82.24.161) (Ping timeout: 252 seconds)
2021-09-01 04:58:59 +0200favonia(~favonia@user/favonia)
2021-09-01 05:06:09 +0200alx741(~alx741@186.178.108.235) (Quit: alx741)
2021-09-01 05:06:37 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 05:06:54 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 05:08:13 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be) (Ping timeout: 252 seconds)
2021-09-01 05:11:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-01 05:11:27 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 05:12:35 +0200otto_s(~user@p5de2f66c.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-09-01 05:14:32 +0200otto_s(~user@p5de2f920.dip0.t-ipconnect.de)
2021-09-01 05:16:15 +0200gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-09-01 05:17:04 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 05:17:21 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 05:17:34 +0200gehmehgeh(~user@user/gehmehgeh)
2021-09-01 05:21:19 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-09-01 05:24:25 +0200fjmorazan(~quassel@user/fjmorazan) (Quit: fjmorazan)
2021-09-01 05:25:02 +0200fjmorazan(~quassel@user/fjmorazan)
2021-09-01 05:30:36 +0200favonia(~favonia@user/favonia) (Remote host closed the connection)
2021-09-01 05:31:21 +0200favonia(~favonia@user/favonia)
2021-09-01 05:31:40 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 240 seconds)
2021-09-01 05:31:40 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 240 seconds)
2021-09-01 05:31:57 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 05:33:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:4859:a541:745f:7f0e) (Remote host closed the connection)
2021-09-01 05:37:58 +0200renzhi(~xp@2607:fa49:6500:3d00::d986) (Ping timeout: 252 seconds)
2021-09-01 05:38:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 05:38:22 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 05:38:22 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 05:39:13 +0200Guest4294(~Guest42@223.18.154.68)
2021-09-01 05:40:02 +0200TranquilEcho(~grom@user/tranquilecho) (Quit: WeeChat 2.8)
2021-09-01 05:56:33 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 05:56:47 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2021-09-01 06:00:40 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 240 seconds)
2021-09-01 06:03:01 +0200oxide(~lambda@user/oxide)
2021-09-01 06:04:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 06:06:37 +0200oxide_(~lambda@user/oxide)
2021-09-01 06:12:26 +0200hololeap_(~hololeap@user/hololeap)
2021-09-01 06:12:38 +0200zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-09-01 06:12:41 +0200oxide(~lambda@user/oxide) (Ping timeout: 244 seconds)
2021-09-01 06:12:48 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-01 06:19:42 +0200hololeap_hololeap
2021-09-01 06:21:25 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 06:22:19 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 06:25:49 +0200oxide_(~lambda@user/oxide) (Quit: oxide_)
2021-09-01 06:26:03 +0200oxide(~lambda@user/oxide)
2021-09-01 06:29:34 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-01 06:34:10 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 06:37:55 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 06:38:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 240 seconds)
2021-09-01 06:44:12 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 06:44:25 +0200azeem(~azeem@62.19.37.175)
2021-09-01 06:48:40 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 240 seconds)
2021-09-01 06:49:23 +0200azeem(~azeem@62.19.37.175)
2021-09-01 06:53:18 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 06:53:52 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 06:54:24 +0200azeem(~azeem@62.19.37.175)
2021-09-01 06:56:48 +0200betelgeuse(~betelgeus@94-225-47-8.access.telenet.be)
2021-09-01 07:00:27 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2021-09-01 07:01:10 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 240 seconds)
2021-09-01 07:01:29 +0200azeem(~azeem@62.19.37.175)
2021-09-01 07:10:44 +0200Sgeo_(~Sgeo@user/sgeo)
2021-09-01 07:10:46 +0200slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-09-01 07:12:57 +0200Sgeo(~Sgeo@user/sgeo) (Ping timeout: 245 seconds)
2021-09-01 07:22:28 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
2021-09-01 07:24:22 +0200kimjetwav(~user@2607:fea8:235f:9730:5f39:722f:3a32:7c97)
2021-09-01 07:24:57 +0200Guest4294(~Guest42@223.18.154.68) (Ping timeout: 256 seconds)
2021-09-01 07:24:59 +0200aegon(~mike@174.127.249.180) (Quit: leaving)
2021-09-01 07:25:10 +0200_xor(~xor@74.215.232.67) (Quit: brb)
2021-09-01 07:26:19 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 07:26:21 +0200vysn(~vysn@user/vysn)
2021-09-01 07:29:05 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 250 seconds)
2021-09-01 07:29:49 +0200qbt(~edun@user/edun)
2021-09-01 07:30:47 +0200qbt(~edun@user/edun) (Remote host closed the connection)
2021-09-01 07:36:43 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 07:37:14 +0200azeem(~azeem@62.19.37.175)
2021-09-01 07:40:37 +0200peterhil(~peterhil@dsl-hkibng32-54fb52-57.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-01 07:51:06 +0200 <arahael> what's that ~ for?
2021-09-01 07:58:33 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 07:59:19 +0200 <opqdonut> lazy pattern
2021-09-01 07:59:26 +0200 <opqdonut> aka irrefutable pattern
2021-09-01 08:00:20 +0200 <pavonia> > let yay ~(x,y) = "yay"; nay (x,y) = "nay" in (yay undefined, nay undefined)
2021-09-01 08:00:21 +0200 <lambdabot> ("yay","*Exception: Prelude.undefined
2021-09-01 08:01:44 +0200 <arahael> opqdonut: Thanks - that give sme some keywords :D
2021-09-01 08:02:01 +0200 <Christoph[m]> https://wiki.haskell.org/Keywords#.7E
2021-09-01 08:05:19 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-01 08:11:00 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 08:11:39 +0200azeem(~azeem@62.19.37.175)
2021-09-01 08:13:47 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-09-01 08:15:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 08:15:52 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 08:15:52 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 08:18:14 +0200favonia(~favonia@user/favonia) (Ping timeout: 244 seconds)
2021-09-01 08:19:23 +0200max22-(~maxime@2a01cb08833598001c2c73c755058a4b.ipv6.abo.wanadoo.fr)
2021-09-01 08:20:27 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-09-01 08:22:53 +0200michalz(~michalz@185.246.204.55)
2021-09-01 08:23:31 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-01 08:28:14 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de)
2021-09-01 08:29:47 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-01 08:30:07 +0200son0p(~ff@181.136.122.143) (Ping timeout: 244 seconds)
2021-09-01 08:30:33 +0200oxide(~lambda@user/oxide)
2021-09-01 08:35:00 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 08:35:29 +0200 <taeaad> What is the relationship between a DAG and lambda calculus? Are the nodes in the graph states? Or are the domains and codomains? I've known for a while that Excel for example uses a DAG in the backend, and generally that there is a connection to functional programming, but just realised that I wouldn't be able to write out what the connection is.
2021-09-01 08:37:00 +0200 <taeaad> Or from another perspectve, in the category Hask, is the appropriate DAG simply the generated by morphisms of Hask?
2021-09-01 08:37:08 +0200 <taeaad> *the one
2021-09-01 08:39:12 +0200 <taeaad> Hmm, I see Hask is not cartesian closed and doesn't have products or coproducts. So, should we think of "plantonic Hask" instead?
2021-09-01 08:42:52 +0200Sgeo_(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-09-01 08:43:04 +0200phma_(~phma@host-67-44-208-4.hnremote.net)
2021-09-01 08:43:40 +0200phma(phma@2001:0:c38c:c38c:2cd8:e4d3:bcd3:2ffb) (Ping timeout: 240 seconds)
2021-09-01 08:46:42 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 245 seconds)
2021-09-01 08:48:42 +0200jonathanx_(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-09-01 08:50:04 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-09-01 08:53:56 +0200mei(~mei@user/mei)
2021-09-01 08:55:26 +0200 <[exa]> taeaad: excel uses the graphs for dependency tracking, no need for that in the "normal" lambda calculus unless you jump into specific implementations of lazy evaluation
2021-09-01 08:55:27 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 245 seconds)
2021-09-01 08:56:30 +0200azeem(~azeem@62.19.37.175)
2021-09-01 08:57:12 +0200dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-09-01 09:00:14 +0200Guest2602(~user@2601:644:8500:8350::cc04) (Quit: ERC (IRC client for Emacs 27.2))
2021-09-01 09:02:13 +0200phma_phma
2021-09-01 09:09:23 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 09:09:40 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 09:10:06 +0200slavaqq(~slavaqq@sdmail.sdserver.cz)
2021-09-01 09:10:30 +0200nschoe(~quassel@178.251.84.79)
2021-09-01 09:12:18 +0200azeem(~azeem@62.19.37.175)
2021-09-01 09:18:54 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 256 seconds)
2021-09-01 09:20:55 +0200azeem(~azeem@62.19.37.175)
2021-09-01 09:22:12 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 09:30:57 +0200acidjnk_new(~acidjnk@p200300d0c7203039d576453b109ce99e.dip0.t-ipconnect.de)
2021-09-01 09:36:25 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk)
2021-09-01 09:40:36 +0200aman(~aman@user/aman)
2021-09-01 09:40:44 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 09:40:50 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-01 09:43:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 09:45:21 +0200desophos(~desophos@c-24-14-63-128.hsd1.il.comcast.net)
2021-09-01 09:45:38 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2ef4:e718:7f42:663c)
2021-09-01 09:46:03 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-01 09:49:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 09:51:58 +0200shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-09-01 09:54:55 +0200oxide(~lambda@user/oxide) (Quit: oxide)
2021-09-01 09:56:59 +0200hololeap_(~hololeap@user/hololeap)
2021-09-01 09:57:42 +0200hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-01 09:59:20 +0200sus(zero@user/zeromomentum) (Quit: the lounge - https://webirc.envs.net)
2021-09-01 09:59:48 +0200sus(zero@user/zeromomentum)
2021-09-01 10:00:43 +0200ellie(~ellie@user/ellie)
2021-09-01 10:02:48 +0200dsrt^(~dsrt@wsip-98-188-244-188.mc.at.cox.net)
2021-09-01 10:05:21 +0200hendursaga(~weechat@user/hendursaga)
2021-09-01 10:08:33 +0200leplep-
2021-09-01 10:09:24 +0200hendursa1(~weechat@user/hendursaga) (Ping timeout: 276 seconds)
2021-09-01 10:09:28 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-09-01 10:09:29 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-09-01 10:10:03 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2021-09-01 10:10:24 +0200lep-lep
2021-09-01 10:10:26 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-01 10:12:21 +0200 <taeaad> [exa]: Why wouldn't you need tracking in lambda calculus?
2021-09-01 10:12:55 +0200 <taeaad> Because you don't evaluate?
2021-09-01 10:13:07 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl)
2021-09-01 10:13:27 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2021-09-01 10:13:50 +0200hiepph[m](~hiepphmat@2001:470:69fc:105::e3a8)
2021-09-01 10:15:40 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 10:16:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 10:16:40 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 10:16:40 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 10:16:52 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-01 10:19:42 +0200neo1(~neo3@cpe-292712.ip.primehome.com)
2021-09-01 10:21:12 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 10:21:17 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-09-01 10:22:04 +0200azeem(~azeem@62.19.37.175)
2021-09-01 10:24:42 +0200 <[exa]> taeaad: with Ī» you can use the leftmost redex rule to implement lazy evaluation, needs no tracking of anything
2021-09-01 10:26:09 +0200kimjetwav(~user@2607:fea8:235f:9730:5f39:722f:3a32:7c97) (Remote host closed the connection)
2021-09-01 10:26:25 +0200 <taeaad> [exa]: So, should one think of DAGs in the Haskell context at all?
2021-09-01 10:26:27 +0200kimjetwav(~user@2607:fea8:235f:9730:7b24:e3f4:a84d:7dd0)
2021-09-01 10:26:42 +0200 <[exa]> if you elaborate a bit on what is the precise DAG you mentioned there it might be clearer, there are actually multiple DAGs that I can imagine there
2021-09-01 10:26:43 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 10:26:49 +0200 <[exa]> like, the syntax is a DAG
2021-09-01 10:26:59 +0200azeem(~azeem@62.19.37.175)
2021-09-01 10:27:37 +0200 <[exa]> evaluation order is a DAG, in contrast to actual structure of the thunks in STG which need not be one
2021-09-01 10:27:43 +0200 <taeaad> [exa]: I was wondering if there is a general setting where we can compare languages with "functional aspects". R lang for example under the hood also has functional aspects, the details of which I haven't studied yet. If DAGs are not useful for that, the so be it.
2021-09-01 10:27:44 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 10:28:52 +0200 <taeaad> What I am trying to say is that I would prefer to put R and Haskell into the same box and figure out what the right perspective is to do so. Just saying "use Lambda Calculus" isn't satisfactory since it ignores implementation aspect, and for example it ignores that R syntax is not functional.
2021-09-01 10:29:05 +0200 <[exa]> hm, I see
2021-09-01 10:29:27 +0200acidjnk_new3(~acidjnk@p200300d0c7203039d9c4482df4e2953e.dip0.t-ipconnect.de)
2021-09-01 10:29:33 +0200 <taeaad> So perhaps it should be at the compiler or interpreter level.
2021-09-01 10:29:34 +0200 <mjrosenb> ok, I've run `cabal new-build` under dtruss
2021-09-01 10:29:47 +0200 <mjrosenb> and it looks like... it is looking for everything except View.hs
2021-09-01 10:29:53 +0200 <[exa]> taeaad: my favorite tool for comparing languages is "how much complicated a machine you need to translate a program in language 1 to work perfectly in language 2"
2021-09-01 10:30:23 +0200 <mjrosenb> https://gist.github.com/mjrosenb/8ef45507c9f9f8ec5782bc9f63765b92
2021-09-01 10:30:35 +0200 <merijn> mjrosenb: "new-build" is pretty old development version of the command. v2-build (or just build in 3.0 and later) is better to get used to :p
2021-09-01 10:31:21 +0200 <[exa]> taeaad: also, you could compare the way code gets compiled and prepared for runtime. R is eager with stack (and many small exceptions to the eagerness), haskell is CPSed (no stack) and lazy by default (with STG)
2021-09-01 10:31:26 +0200 <merijn> mjrosenb: What's the cabal file/code, btw?
2021-09-01 10:31:29 +0200acidjnk(~acidjnk@p5487d0ba.dip0.t-ipconnect.de)
2021-09-01 10:31:31 +0200econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-09-01 10:31:37 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-01 10:32:17 +0200 <mjrosenb> merijn: https://gist.github.com/mjrosenb/8b55d33a3ac657dbb94733ff0aa72a0e
2021-09-01 10:32:25 +0200 <taeaad> [exa]: That sounds like a productive approach to the question.
2021-09-01 10:32:57 +0200acidjnk_new(~acidjnk@p200300d0c7203039d576453b109ce99e.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2021-09-01 10:33:37 +0200benin0369323(~benin@183.82.204.90)
2021-09-01 10:34:25 +0200acidjnk_new3(~acidjnk@p200300d0c7203039d9c4482df4e2953e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-01 10:34:44 +0200 <[exa]> taeaad: like, comparing languages is hard because you're comparing compilers aka translation systems. to be able to do some actual mathematics on that, I'd seriously advice to stay in the translation systems
2021-09-01 10:35:21 +0200 <taeaad> Would also be useful to try to relate things back to the category of sets, which I see there are some discussions about Set vs. Hask, but to be honest set theory is less popular than perhaps warranted even in mathematics circles. But anyway, I'll read a bit about functional aspects of R and keep your translation example in mind.
2021-09-01 10:35:57 +0200 <merijn> mjrosenb: I wonder why it think that thing is auto-generated...
2021-09-01 10:36:05 +0200 <merijn> mjrosenb: Which version of cabal-install is this?
2021-09-01 10:36:17 +0200 <[exa]> taeaad: I would be surprised if R could actually be modeled with any such formal system, the language is messy at best
2021-09-01 10:36:38 +0200 <merijn> [exa]: That's an understatement
2021-09-01 10:36:46 +0200 <[exa]> the "messy at best" ?
2021-09-01 10:36:48 +0200 <[exa]> yeah.
2021-09-01 10:36:59 +0200 <taeaad> Then one needs to improve it :P
2021-09-01 10:37:18 +0200 <mjrosenb> cabal-install version 2.4.1.0
2021-09-01 10:37:19 +0200 <mjrosenb> compiled using version 2.4.1.0 of the Cabal library
2021-09-01 10:37:37 +0200 <taeaad> The main reason why R is enduring IMHO is 1) contains almost all stats known to man and 2) it's easy to write programs (that may be messy) even for people that are not coders.
2021-09-01 10:38:13 +0200 <taeaad> So you could always improve whatever happens under the hood, though it seems many people have tried and failed (cf. parallelism).
2021-09-01 10:38:25 +0200 <[exa]> taeaad: 1) it contains ggplot 2) in contains ggplot 3) people from other communities somehow still fail to see what's the quality of ggplot
2021-09-01 10:38:52 +0200 <merijn> mjrosenb: First thing I would try is update to a more recent cabal-install. In 2.4 v2-build wasn't production ready yet
2021-09-01 10:39:05 +0200 <taeaad> [exa]: Yes, of course, ggplot2 is revolutionary in a mundane sort of way.
2021-09-01 10:39:22 +0200 <[exa]> I didn't see a plotting package that would go even half way there
2021-09-01 10:39:39 +0200 <taeaad> This looks interesting: https://www.cambridge.org/core/books/theories-of-programming-languages/19530A88F3471B2A7D9891770B2ā€¦
2021-09-01 10:39:51 +0200 <mjrosenb> merijn: I'm using miso, which ships with a pinned nix config. it is difficult to upgrade packages like that :-(
2021-09-01 10:40:26 +0200 <taeaad> Do any of you know that book? _Theories of Programming Languages_ by John C. Reynolds.
2021-09-01 10:40:28 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity)
2021-09-01 10:40:58 +0200 <[exa]> yeah
2021-09-01 10:42:28 +0200 <[exa]> taeaad: also, one generic advice for evaluating the programming languages is "what modifications do you need to add to lisp to get X"
2021-09-01 10:42:50 +0200 <[exa]> I don't know many languages that can't be categorized that way
2021-09-01 10:42:54 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2021-09-01 10:44:52 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 252 seconds)
2021-09-01 10:46:30 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2ef4:e718:7f42:663c) (Quit: WeeChat 2.8)
2021-09-01 10:47:47 +0200Kaiepi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-09-01 10:47:59 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-09-01 10:48:37 +0200__monty__(~toonn@user/toonn)
2021-09-01 10:48:42 +0200jippiedoe(~david@2a02-a44c-e14e-1-5fa0-8368-fcfd-eaa8.fixed6.kpn.net)
2021-09-01 10:48:51 +0200 <merijn> mjrosenb: RIP
2021-09-01 10:51:03 +0200 <tomsmeding> mjrosenb: at some point it printed that it couldn't find 'src', right?
2021-09-01 10:52:50 +0200 <tomsmeding> but that short log fragment shows that it's looking in src, so /me confused
2021-09-01 10:53:41 +0200 <mjrosenb> tomsmeding: yeah.
2021-09-01 10:53:45 +0200Kaiepi(~Kaiepi@156.34.44.192) (Ping timeout: 244 seconds)
2021-09-01 10:55:09 +0200 <taeaad> [exa]: That sounds even better, since it would improve my Lisp skills.
2021-09-01 10:55:37 +0200 <taeaad> [exa]: Do you have a link to text on the topic?
2021-09-01 10:58:07 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-09-01 11:01:35 +0200 <[exa]> not really
2021-09-01 11:02:05 +0200 <[exa]> I was using it on students, proving most languages are just "scheme with something"
2021-09-01 11:07:26 +0200fendor(~fendor@77.119.206.17.wireless.dyn.drei.com)
2021-09-01 11:07:40 +0200ellie(~ellie@user/ellie) (Quit: The Lounge - https://thelounge.chat)
2021-09-01 11:07:54 +0200ellie(~ellie@user/ellie)
2021-09-01 11:09:01 +0200 <kuribas> how does it compare to SICP?
2021-09-01 11:09:35 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 11:09:45 +0200pfurla_(~pfurla@235.15.195.173.client.static.strong-in52.as13926.net)
2021-09-01 11:10:15 +0200 <[exa]> ah good point, SICP is pure gold
2021-09-01 11:12:19 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net) (Ping timeout: 252 seconds)
2021-09-01 11:16:11 +0200ubert(~Thunderbi@178.115.42.114.wireless.dyn.drei.com)
2021-09-01 11:17:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 11:18:25 +0200jippiedoe(~david@2a02-a44c-e14e-1-5fa0-8368-fcfd-eaa8.fixed6.kpn.net) (Ping timeout: 252 seconds)
2021-09-01 11:21:43 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 252 seconds)
2021-09-01 11:22:46 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2ef4:e718:7f42:663c)
2021-09-01 11:23:40 +0200opac(~opac@ip-28-56.sn2.clouditalia.com)
2021-09-01 11:27:58 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 11:28:24 +0200jippiedoe(~david@2a02-a44c-e14e-1-7698-d72a-af47-8c5f.fixed6.kpn.net)
2021-09-01 11:34:16 +0200neurocyte(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-09-01 11:35:52 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 245 seconds)
2021-09-01 11:36:30 +0200azeem(~azeem@62.19.37.175)
2021-09-01 11:37:54 +0200neurocyte(~neurocyte@45.93.108.142)
2021-09-01 11:37:54 +0200neurocyte(~neurocyte@45.93.108.142) (Changing host)
2021-09-01 11:37:54 +0200neurocyte(~neurocyte@user/neurocyte)
2021-09-01 11:38:30 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz)
2021-09-01 11:40:21 +0200raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-09-01 11:42:11 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-250.prtc.net)
2021-09-01 11:50:01 +0200oxide(~lambda@user/oxide)
2021-09-01 11:50:40 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 240 seconds)
2021-09-01 11:51:24 +0200azeem(~azeem@62.19.37.175)
2021-09-01 11:59:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 11:59:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:01:49 +0200pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-09-01 12:02:37 +0200slavaqq(~slavaqq@sdmail.sdserver.cz) (Ping timeout: 256 seconds)
2021-09-01 12:05:03 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:05:35 +0200juhp(~juhp@128.106.188.220) (Quit: juhp)
2021-09-01 12:05:52 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:06:04 +0200 <lortabac> any suggestions for a simple templating library? I just need to replace a couple of placeholders in a text file
2021-09-01 12:06:50 +0200 <dminuoso> lortabac: rawstring-qm works nicely for me.
2021-09-01 12:07:03 +0200desophos(~desophos@c-24-14-63-128.hsd1.il.comcast.net) (Quit: Leaving)
2021-09-01 12:07:39 +0200 <dminuoso> The included ToTextBuilder nicely fits in as well.
2021-09-01 12:08:11 +0200 <dminuoso> It's what we use for generating emails in one of our projects. :)
2021-09-01 12:08:32 +0200 <lortabac> I'll have a look, thanks
2021-09-01 12:16:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 12:17:16 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:18:29 +0200ubert(~Thunderbi@178.115.42.114.wireless.dyn.drei.com) (Ping timeout: 244 seconds)
2021-09-01 12:19:27 +0200 <tomsmeding> lortabac: if the template is only known at runtime, you could also use 'mustache'
2021-09-01 12:20:21 +0200 <dminuoso> tomsmeding: mustache does not come with TH helpers, ensuring the presence at compile time right?
2021-09-01 12:20:39 +0200 <tomsmeding> dminuoso: "if the template is only known at runtime" ;)
2021-09-01 12:21:02 +0200 <tomsmeding> can't use quasiquotes with a template from a file provided at runtime :p
2021-09-01 12:21:09 +0200 <dminuoso> You can use TH.
2021-09-01 12:21:11 +0200 <dminuoso> Oh
2021-09-01 12:21:15 +0200 <dminuoso> Heh, I guess you're right.
2021-09-01 12:21:28 +0200 <dminuoso> But mustache could still provide TH helpers to hook that into compile time
2021-09-01 12:21:33 +0200 <tomsmeding> true
2021-09-01 12:21:46 +0200 <dminuoso> Who wouldn't want their compiler to do random IO on the disk.
2021-09-01 12:21:52 +0200 <dminuoso> :-)
2021-09-01 12:22:13 +0200tomsmedingraises hand hesitantly
2021-09-01 12:22:56 +0200ghoul42(~ghoul42@185.64.41.91)
2021-09-01 12:23:00 +0200 <tomsmeding> you know what would be nice? limited IO at compile time
2021-09-01 12:23:11 +0200 <tomsmeding> e.g. only reading files and only in the project directory
2021-09-01 12:23:41 +0200 <dminuoso> Im not sure that's enough, as in principle the file API can do quite a bit of damage.
2021-09-01 12:23:48 +0200 <tomsmeding> I bet that, plus all the TH stuff that doesn't actually do any IO, covers 99% of TH use cases
2021-09-01 12:24:08 +0200 <dminuoso> I'd want an assurance that the compiler cant do nonsense on my system
2021-09-01 12:24:44 +0200 <tomsmeding> what's unsafe about "only read operations in the project directory"?
2021-09-01 12:24:54 +0200 <dminuoso> tomsmeding: It might be more realistic to use namespaces and cgroups to run TH perhaps.
2021-09-01 12:24:58 +0200 <tomsmeding> or are you arguing that you're not going to be able to restrain opreations to that
2021-09-01 12:25:06 +0200 <tomsmeding> right
2021-09-01 12:25:25 +0200 <dminuoso> tomsmeding: The thing is, "the project directory" doesnt mean much in a file system with support for fuse, mount points, symlinks, etc
2021-09-01 12:25:38 +0200 <tomsmeding> c.f. a discussion on one of the mailing lists a while back, concerning "safe haskell" vs "cgroups"
2021-09-01 12:25:55 +0200 <tomsmeding> that's true
2021-09-01 12:26:14 +0200 <tdammers> dminuoso: it is meaningful, but only if all other OS interactions are sandboxed too.
2021-09-01 12:26:20 +0200 <tomsmeding> yes
2021-09-01 12:26:26 +0200 <dminuoso> tdammers: Right.
2021-09-01 12:26:35 +0200 <tomsmeding> or hm
2021-09-01 12:26:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:26:49 +0200 <tomsmeding> I mean, if the person compiling the project mounts random stuff in the project directory
2021-09-01 12:26:56 +0200 <dminuoso> tdammers: Well, it might still not be truly meaningful. If the directory contains a symlink towards somewhere else, is that inside the project directory or not?
2021-09-01 12:27:06 +0200 <tomsmeding> I'd say yes
2021-09-01 12:27:13 +0200 <tdammers> same
2021-09-01 12:27:41 +0200 <dminuoso> Either way, cgroups+namespaces for TH might actually not be a terrible idea.
2021-09-01 12:27:47 +0200 <tdammers> and that's fine, as long as the symlink was put there by the user; but if the TH code can create and manipulate symlinks, then that is indeed meaningless
2021-09-01 12:28:03 +0200 <dminuoso> Right
2021-09-01 12:28:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:28:50 +0200 <dminuoso> This is something Ive been wanting for a while, really. Each time I run `cabal update` and then build something, there's a chance my compiler will install ransomware or something else on my machine.
2021-09-01 12:28:53 +0200Kaipi(~Kaiepi@156.34.44.192)
2021-09-01 12:29:09 +0200Kaiepi(~Kaiepi@156.34.44.192) (Remote host closed the connection)
2021-09-01 12:29:24 +0200 <tomsmeding> but if you're going to run whatever you just compiled, all bets are off anyway
2021-09-01 12:29:30 +0200 <dminuoso> If at least `cabal` had the tooling to give me a complete source diff for the transitive depenency closure after an update, it would be workable
2021-09-01 12:29:50 +0200 <dminuoso> tomsmeding: Mmm that's true I guess
2021-09-01 12:29:59 +0200 <tomsmeding> right, though that's a problem unrelated to TH
2021-09-01 12:30:19 +0200 <dminuoso> So I guess, such an diff-after-update tool would be what I really want.
2021-09-01 12:30:33 +0200 <dminuoso> That would be genuinely useful for a lot of reasons actually
2021-09-01 12:30:52 +0200 <dminuoso> Get an idea whether perhaps someone broke PVP, or just get an idea what changed, for auditing the security
2021-09-01 12:32:04 +0200 <maerwald> dminuoso: right... that's one of the problem with PVP/semver. They're manual.
2021-09-01 12:32:11 +0200 <tomsmeding> and then cabal should always (unless explicitly told not to, I guess) print the total number of source lines changed in your transitive dependency graph since the last configure
2021-09-01 12:32:35 +0200 <dminuoso> tomsmeding: Yes!
2021-09-01 12:32:44 +0200 <tomsmeding> and then you get scary high numbers :p
2021-09-01 12:33:18 +0200 <dminuoso> Well, there could be a variety of knobs. Say, a flag that does this only for direct dependencies
2021-09-01 12:33:19 +0200 <tomsmeding> which illustrate the futility of the thing if you have a non-trivial dependency graph
2021-09-01 12:33:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:34:01 +0200 <tomsmeding> (and, I guess, if you don't have the budget or incentive to really get high-assurance software)
2021-09-01 12:34:06 +0200tomsmedinghas to go now though
2021-09-01 12:34:22 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:34:59 +0200jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-09-01 12:34:59 +0200 <dminuoso> Or, perhaps, another flag that does this for actually imported modules.
2021-09-01 12:35:12 +0200 <dminuoso> So you'd get control over how much changes you want to see
2021-09-01 12:35:39 +0200 <dminuoso> So you'd have the choice of "all lines changed in the entire closure", "all lines changed in direct dependencies", and "all lines changed in imported modules".
2021-09-01 12:39:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:40:26 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:41:25 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de) (Ping timeout: 252 seconds)
2021-09-01 12:43:13 +0200ghoul42(~ghoul42@185.64.41.91) (Quit: Client closed)
2021-09-01 12:45:19 +0200neo(~neo3@cpe-292712.ip.primehome.com)
2021-09-01 12:45:21 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:46:05 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:46:24 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
2021-09-01 12:46:39 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 12:48:04 +0200neo1(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 252 seconds)
2021-09-01 12:49:45 +0200juhp(~juhp@128.106.188.220)
2021-09-01 12:51:02 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:51:59 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 12:53:37 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-250.prtc.net) (Ping timeout: 256 seconds)
2021-09-01 12:57:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 12:57:14 +0200AndrewYuAndrew
2021-09-01 12:57:53 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 13:00:57 +0200alx741(~alx741@186.178.108.235)
2021-09-01 13:03:38 +0200arjun(~Srain@user/arjun)
2021-09-01 13:04:01 +0200jippiedoe(~david@2a02-a44c-e14e-1-7698-d72a-af47-8c5f.fixed6.kpn.net) (Ping timeout: 252 seconds)
2021-09-01 13:05:10 +0200jakalx(~jakalx@base.jakalx.net)
2021-09-01 13:15:31 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-09-01 13:19:15 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 13:20:52 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 245 seconds)
2021-09-01 13:21:08 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net)
2021-09-01 13:23:22 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 245 seconds)
2021-09-01 13:24:16 +0200azeem(~azeem@62.19.37.175)
2021-09-01 13:24:18 +0200sugarfunc(~Adium@49.206.52.35)
2021-09-01 13:25:21 +0200 <sugarfunc> I'm new to haskell and i didn't quite understand haskell's indentation rules. I'm using Vim that comes installed in macOS by default. How many spaces should I use?
2021-09-01 13:25:37 +0200fendor_(~fendor@91.141.68.147.wireless.dyn.drei.com)
2021-09-01 13:26:04 +0200 <hpc> as many as you want - haskell works by alignment
2021-09-01 13:26:34 +0200Kaipi(~Kaiepi@156.34.44.192) (Ping timeout: 252 seconds)
2021-09-01 13:26:36 +0200 <hpc> everything at the same indentation level is in the same "block"
2021-09-01 13:26:41 +0200sugarfunc(~Adium@49.206.52.35) ()
2021-09-01 13:26:48 +0200 <hpc> for example
2021-09-01 13:26:58 +0200 <hpc> foo x y = do m <- x
2021-09-01 13:27:10 +0200 <hpc> m' <- y
2021-09-01 13:27:17 +0200 <hpc> ...
2021-09-01 13:27:25 +0200sugarfunc(~Adium@49.206.52.35)
2021-09-01 13:27:34 +0200 <hpc> you might also prefer foo x y = do
2021-09-01 13:27:37 +0200 <hpc> m <- x
2021-09-01 13:27:41 +0200 <hpc> ...
2021-09-01 13:28:14 +0200fendor(~fendor@77.119.206.17.wireless.dyn.drei.com) (Ping timeout: 244 seconds)
2021-09-01 13:28:15 +0200 <hpc> er, when i said "indentation level" up there pretend i said "column" instead
2021-09-01 13:28:18 +0200 <merijn> sugarfunc: For a super detailed explanation, see: https://en.wikibooks.org/wiki/Haskell/Indentation
2021-09-01 13:28:29 +0200 <merijn> hpc: Or you can just be lazy and link the wikibook ;)
2021-09-01 13:28:39 +0200 <hpc> i forgot it existed :D
2021-09-01 13:29:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: terminal restart)
2021-09-01 13:29:56 +0200 <sugarfunc> thank you :-) i didn't knew that wikibooks has a book about haskell. I'm just done reading first chapter of "learn you some haskell for great good"
2021-09-01 13:30:14 +0200 <[exa]> sugarfunc: any number of spaces is good but you need to consistently use spaces. I'm doing something like :set et sta sw=2 ts=2
2021-09-01 13:30:36 +0200jippiedoe(~david@2a02-a44c-e14e-1-a8a9-ba4a-b275-b19f.fixed6.kpn.net)
2021-09-01 13:30:41 +0200 <hpc> sugarfunc: yeah, there's resources all over the place - https://www.haskell.org/documentation/
2021-09-01 13:31:14 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 13:31:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Client Quit)
2021-09-01 13:31:36 +0200sugarfunc(~Adium@49.206.52.35) (Quit: Leaving.)
2021-09-01 13:33:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 13:34:26 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-01 13:35:23 +0200favonia(~favonia@user/favonia)
2021-09-01 13:36:46 +0200 <andinus> are there more why haskell writeups?
2021-09-01 13:36:49 +0200 <andinus> i read https://crypto.stanford.edu/~blynn/haskell/why.html
2021-09-01 13:38:21 +0200tfeb(~tfb@88.98.95.237)
2021-09-01 13:39:42 +0200Kaiepi(~Kaiepi@156.34.44.192)
2021-09-01 13:40:50 +0200echoone(~echoone@2a02:8109:a1c0:5d05:e9b0:6d7e:a321:5a85)
2021-09-01 13:47:07 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 245 seconds)
2021-09-01 13:47:21 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-09-01 13:47:28 +0200neofromatrix(~Adium@49.206.52.35)
2021-09-01 13:48:16 +0200azeem(~azeem@62.19.37.175)
2021-09-01 13:48:44 +0200neofromatrix(~Adium@49.206.52.35) ()
2021-09-01 13:48:56 +0200amahl(~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi)
2021-09-01 13:56:17 +0200sleblanc(~sleblanc@user/sleblanc)
2021-09-01 13:56:49 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 13:58:07 +0200ikex(ash@user/ikex) (Quit: ZNC - https://znc.in)
2021-09-01 13:58:20 +0200ikex(ash@user/ikex)
2021-09-01 13:58:27 +0200TranquilEcho(~grom@user/tranquilecho)
2021-09-01 13:59:07 +0200azeem(~azeem@62.19.37.175)
2021-09-01 13:59:58 +0200max22-(~maxime@2a01cb08833598001c2c73c755058a4b.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2021-09-01 14:00:08 +0200 <maerwald> andinus: the one from dijkstra that gets posted every other month
2021-09-01 14:00:45 +0200 <maerwald> https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs/Haskell.html
2021-09-01 14:00:57 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 14:02:16 +0200zer0bitz(~zer0bitz@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-09-01 14:02:19 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net) (Ping timeout: 252 seconds)
2021-09-01 14:02:31 +0200 <maerwald> `The additional advantage of functional programming with ā€œlazy evaluationā€ is that it provides an environment that discourages operational reasoning.` -- although I don't think tht holds :p
2021-09-01 14:02:57 +0200 <maerwald> I mean, beyond teaching code snippets
2021-09-01 14:05:04 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-09-01 14:05:27 +0200oxide(~lambda@user/oxide) (Ping timeout: 245 seconds)
2021-09-01 14:07:25 +0200oxide(~lambda@user/oxide)
2021-09-01 14:12:11 +0200tfeb(~tfb@88.98.95.237) (Quit: died)
2021-09-01 14:13:29 +0200tengu1(~tengu1@cpe-70-121-244-14.neb.res.rr.com)
2021-09-01 14:17:24 +0200ubert(~Thunderbi@91.141.71.52.wireless.dyn.drei.com)
2021-09-01 14:17:41 +0200 <andinus> thanks
2021-09-01 14:23:52 +0200Kaipi(~Kaiepi@156.34.44.192)
2021-09-01 14:24:03 +0200Kaiepi(~Kaiepi@156.34.44.192) (Read error: Connection reset by peer)
2021-09-01 14:24:20 +0200slowButPresent(~slowButPr@user/slowbutpresent)
2021-09-01 14:27:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 14:28:04 +0200dunj3(~dunj3@2001:16b8:30cf:7000:7144:88af:3fb9:7fd1)
2021-09-01 14:28:08 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 14:30:00 +0200 <echoone> testing
2021-09-01 14:30:18 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 14:30:52 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 14:30:55 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 252 seconds)
2021-09-01 14:31:05 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 14:36:03 +0200 <kuribas> operational reasoning = performance?
2021-09-01 14:36:35 +0200 <kuribas> Perhaps they mean it discouraging from writing a series of steps.
2021-09-01 14:36:41 +0200 <albet70> \k -> let k k' = k in k' it's equal to fix k, rigth?
2021-09-01 14:36:46 +0200 <kuribas> Rather writing the "meaning" of the program.
2021-09-01 14:36:59 +0200 <merijn> kuribas: Operational reasoning is *any* form of reasoning about how things are implemented/evaluated
2021-09-01 14:37:06 +0200 <merijn> for performance or any other reason
2021-09-01 14:38:04 +0200 <kuribas> well, I don't see how that could ever be an advantage...
2021-09-01 14:40:06 +0200 <merijn> kuribas: Because it's an important math skill to separate "what" from "how"
2021-09-01 14:40:27 +0200 <merijn> kuribas: It's the reason why I think compiler construction courses are one of the most crucial CS courses
2021-09-01 14:40:34 +0200 <kuribas> merijn: indeed
2021-09-01 14:40:38 +0200acidjnk_new(~acidjnk@p200300d0c720303959598fb61e40d514.dip0.t-ipconnect.de)
2021-09-01 14:40:44 +0200 <merijn> Because they're the only ones that separate "what does this mean" from "how can we implement/do it"
2021-09-01 14:41:04 +0200 <merijn> Much bad programming comes from a priori thinking about "how" before having properly defined "what"
2021-09-01 14:41:28 +0200 <merijn> But you can only teach that if you can somehow stop students from thinking about "how", which is notoriously hard
2021-09-01 14:41:42 +0200echoone55(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb)
2021-09-01 14:41:47 +0200 <merijn> Hence, making operational reasoning hard is good, because it means they can't fall back to thinking about "how"
2021-09-01 14:42:09 +0200echoone55(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb) (Client Quit)
2021-09-01 14:42:35 +0200echoone83(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb)
2021-09-01 14:43:33 +0200echoone(~echoone@2a02:8109:a1c0:5d05:e9b0:6d7e:a321:5a85) (Ping timeout: 256 seconds)
2021-09-01 14:44:11 +0200acidjnk(~acidjnk@p5487d0ba.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
2021-09-01 14:44:26 +0200 <maerwald> you have to do operational reasoning anyway if you do IO, ST, 90% of the monad transformer stacks, async, etc etc
2021-09-01 14:45:33 +0200 <merijn> maerwald: Eventually, sure.
2021-09-01 14:45:54 +0200 <merijn> maerwald: But most conventional programming languages waste too much time on it
2021-09-01 14:46:18 +0200jacks2(~bc8167eb@217.29.117.252)
2021-09-01 14:49:22 +0200echoone83echoone
2021-09-01 14:50:15 +0200machinedgod(~machinedg@135-23-192-217.cpe.pppoe.ca)
2021-09-01 14:51:33 +0200 <kuribas> but the danger of doing implementation before understanding exists in haskell too.
2021-09-01 14:52:08 +0200 <maerwald> yeah, I don't think haskell can make something great out of a sloppy programmer
2021-09-01 14:52:26 +0200 <merijn> This seems like moving goalposts
2021-09-01 14:52:44 +0200 <merijn> Dijkstra said "it's good for teaching, because it discourages operational reasoning"
2021-09-01 14:52:46 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 14:52:54 +0200 <maerwald> I know
2021-09-01 14:53:00 +0200 <merijn> You guys: "but you still can and it won't fix arbitrary bad programmer behaviours!!"
2021-09-01 14:53:10 +0200 <merijn> I mean...yeah, I guess
2021-09-01 14:53:11 +0200 <maerwald> that's why I said that his sentence doesn't have much value beyond teaching
2021-09-01 14:54:27 +0200 <echoone> Maybe there should be a second course called "Operational reasoning in programming" where they cover the nitty gritty.
2021-09-01 14:54:52 +0200pbrisbin(~patrick@pool-108-16-214-93.phlapa.fios.verizon.net)
2021-09-01 14:54:54 +0200max22-(~maxime@2a01cb08833598002194f34da34c193e.ipv6.abo.wanadoo.fr)
2021-09-01 14:55:00 +0200 <maerwald> the thing is... most CS courses don't even talk much about operational vs denotational semantics
2021-09-01 14:55:14 +0200 <echoone> True. I never learned that stuff in my CS degree.
2021-09-01 14:55:25 +0200 <merijn> Most CS degrees are bad, yes
2021-09-01 14:55:26 +0200 <maerwald> even in compiler course, we talked more about Chomsky than those things
2021-09-01 14:55:58 +0200 <maerwald> yeah, I'm pretty confident my degree was a waste of time :)
2021-09-01 14:56:09 +0200 <merijn> I'm pretty confident mine wasn't :p
2021-09-01 14:56:21 +0200 <merijn> That's Dijkstra's entire point
2021-09-01 14:56:29 +0200 <merijn> Just because most are shite, doesn't mean they *have* to be
2021-09-01 14:57:12 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 14:57:34 +0200 <maerwald> I got fed so much of Java design patterns that I still have nightmares about observer patterns following me
2021-09-01 14:57:41 +0200 <echoone> lol
2021-09-01 14:57:42 +0200 <kuribas> merijn: Utrecht?
2021-09-01 14:58:01 +0200 <kuribas> maerwald: Java design patterns are BS.
2021-09-01 14:58:09 +0200 <merijn> kuribas: Nope, VU in Amsterdam
2021-09-01 14:58:14 +0200 <kuribas> maerwald: or rather, they are so vague that the are always right.
2021-09-01 14:58:18 +0200 <kuribas> merijn: right
2021-09-01 14:58:26 +0200 <maerwald> kuribas: I suck at OOP
2021-09-01 14:58:40 +0200 <kuribas> maerwald: that's ok :)
2021-09-01 14:58:46 +0200 <echoone> I think everyone sucks at OOP.
2021-09-01 14:58:51 +0200tengu1(~tengu1@cpe-70-121-244-14.neb.res.rr.com) (Ping timeout: 256 seconds)
2021-09-01 14:59:23 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 14:59:34 +0200 <absence> is it possible to derive aeson types for higher-kinded data? i've tried searching online and found monstrous workarounds, but there's also mention about a "future" QuantifiedConstraints extension that will simplify things, and i believe that's available now?
2021-09-01 15:02:52 +0200ravan(~ravan@42.201.198.151)
2021-09-01 15:04:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 15:05:12 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 15:05:47 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 15:07:46 +0200sleblanc(~sleblanc@user/sleblanc) (Ping timeout: 252 seconds)
2021-09-01 15:09:04 +0200trcc(~trcc@2-104-60-169-cable.dk.customer.tdc.net) (Remote host closed the connection)
2021-09-01 15:09:36 +0200trcc(~trcc@130.225.16.16)
2021-09-01 15:12:32 +0200hendursaga(~weechat@user/hendursaga) (Quit: hendursaga)
2021-09-01 15:12:58 +0200hendursaga(~weechat@user/hendursaga)
2021-09-01 15:13:49 +0200mjs2600(~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Ping timeout: 252 seconds)
2021-09-01 15:17:09 +0200iqubic(~user@c-67-180-134-109.hsd1.ca.comcast.net) (ERC (IRC client for Emacs 28.0.50))
2021-09-01 15:17:47 +0200Skyfire(~pyon@user/pyon) (Ping timeout: 240 seconds)
2021-09-01 15:18:47 +0200ravan(~ravan@42.201.198.151) (Leaving)
2021-09-01 15:19:18 +0200max22-(~maxime@2a01cb08833598002194f34da34c193e.ipv6.abo.wanadoo.fr) (Ping timeout: 256 seconds)
2021-09-01 15:19:53 +0200shriekingnoise(~shrieking@186.137.144.80)
2021-09-01 15:20:34 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 15:21:28 +0200o0p4c(~opac@ip-28-56.sn2.clouditalia.com)
2021-09-01 15:21:35 +0200opac(~opac@ip-28-56.sn2.clouditalia.com) (Read error: Connection reset by peer)
2021-09-01 15:21:39 +0200o0p4copac
2021-09-01 15:23:44 +0200__monty__(~toonn@user/toonn) (Remote host closed the connection)
2021-09-01 15:23:59 +0200__monty__(~toonn@user/toonn)
2021-09-01 15:24:49 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 252 seconds)
2021-09-01 15:26:58 +0200 <kuribas> absence: could you use a newtype?
2021-09-01 15:27:33 +0200 <kuribas> like: data Hk f = Hk (f Int) (f String); newtype HKProxy f a = HKProxy f a; instance ToJSON (f a) => ToJSON (HKProxy f a); instance ToJSON (Hk HKProxy)
2021-09-01 15:28:16 +0200xsperry(~as@user/xsperry) ()
2021-09-01 15:28:22 +0200 <kuribas> erm (Hk (HKProxy f))
2021-09-01 15:29:23 +0200 <kuribas> hmm, I guess not...
2021-09-01 15:31:46 +0200kmein(~weechat@user/kmein) (Quit: ciao kakao)
2021-09-01 15:32:05 +0200kmein(~weechat@user/kmein)
2021-09-01 15:32:34 +0200df(~ben@51.15.198.140) (Ping timeout: 240 seconds)
2021-09-01 15:33:59 +0200koolazer(~koo@user/koolazer) (Ping timeout: 250 seconds)
2021-09-01 15:36:49 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-01 15:37:10 +0200oxide(~lambda@user/oxide) (Ping timeout: 240 seconds)
2021-09-01 15:39:04 +0200oxide(~lambda@user/oxide)
2021-09-01 15:42:14 +0200max22-(~maxime@2a01cb0883359800ebf73839d72fccc8.ipv6.abo.wanadoo.fr)
2021-09-01 15:46:39 +0200jacks2(~bc8167eb@217.29.117.252) (Quit: quit)
2021-09-01 15:47:24 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye)
2021-09-01 15:51:47 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2021-09-01 15:55:04 +0200Boomerang(~Boomerang@xd520f68c.cust.hiper.dk) (Ping timeout: 252 seconds)
2021-09-01 15:58:20 +0200Sgeo(~Sgeo@user/sgeo)
2021-09-01 16:01:20 +0200trcc(~trcc@130.225.16.16) (Remote host closed the connection)
2021-09-01 16:01:42 +0200hololeap_(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-09-01 16:02:52 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 16:04:18 +0200ec_(~ec@gateway/tor-sasl/ec) (Client Quit)
2021-09-01 16:04:32 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 16:06:03 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-09-01 16:06:03 +0200 <exarkun> https://github.com/PrivateStorageio/PaymentServer/blob/99.enforce-token-count/test/Stripe.hs#L86-L87 runs fine. https://github.com/PrivateStorageio/PaymentServer/blob/99.enforce-token-count/test/Redemption.hs#Lā€¦ seems awfully similar to me but hangs for a few minutes before failing.
2021-09-01 16:06:49 +0200 <exarkun> I dunno why
2021-09-01 16:06:50 +0200Vajb(~Vajb@hag-jnsbng11-58c3ab-85.dhcp.inet.fi)
2021-09-01 16:07:01 +0200 <exarkun> And I dunno where to look to find out
2021-09-01 16:08:41 +0200df(~ben@justworks.xyz)
2021-09-01 16:14:35 +0200Everything(~Everythin@37.115.210.35)
2021-09-01 16:14:42 +0200waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds)
2021-09-01 16:16:46 +0200waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-09-01 16:17:10 +0200BestSteve(~beststeve@2001-b011-0002-3b2a-06d9-f5ff-fe38-e249.dynamic-ip6.hinet.net) (Ping timeout: 245 seconds)
2021-09-01 16:17:42 +0200qwedfg(~qwedfg@user/qwedfg) (Ping timeout: 244 seconds)
2021-09-01 16:17:56 +0200 <[exa]> exarkun: how does it fail? OOM? timeout?
2021-09-01 16:21:59 +0200 <exarkun> [exa]: On one run it reported OKFAIL Exception: WaiTestFailure "Expected status code 200, but received 400"
2021-09-01 16:22:09 +0200 <exarkun> On another it just said FAIL w/ that exception
2021-09-01 16:22:21 +0200vysn(~vysn@user/vysn) (Quit: WeeChat 3.2)
2021-09-01 16:23:47 +0200 <exarkun> I found the bug that leads to the 400 (instead of the 200) and if I fix that bug then it passes fast instead of failing slow ... so I guess that's some kind of clue, except it doesn't help me understand why it fails slow instead of failing fast.
2021-09-01 16:25:11 +0200hnOsmium0001(uid453710@id-453710.stonehaven.irccloud.com)
2021-09-01 16:25:11 +0200 <[exa]> I only see an extra `encode` but that's likely ignorable
2021-09-01 16:25:36 +0200 <__monty__> Sounds like a timeout.
2021-09-01 16:25:45 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 16:25:49 +0200BestSteve(~beststeve@220-135-3-239.HINET-IP.hinet.net)
2021-09-01 16:32:20 +0200marjinal1st(~Thunderbi@178.251.45.235)
2021-09-01 16:33:47 +0200vysn(~vysn@user/vysn)
2021-09-01 16:33:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 16:33:58 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 16:33:58 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 16:34:07 +0200jippiedoe(~david@2a02-a44c-e14e-1-a8a9-ba4a-b275-b19f.fixed6.kpn.net) (Ping timeout: 252 seconds)
2021-09-01 16:36:04 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 16:38:01 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Remote host closed the connection)
2021-09-01 16:38:22 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 244 seconds)
2021-09-01 16:38:26 +0200neo(~neo3@cpe-292712.ip.primehome.com)
2021-09-01 16:39:18 +0200echoone(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb) (Quit: Client closed)
2021-09-01 16:42:10 +0200Gurkenglas(~Gurkengla@dslb-088-075-022-191.088.075.pools.vodafone-ip.de)
2021-09-01 16:43:00 +0200shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-09-01 16:43:28 +0200acidjnk_new(~acidjnk@p200300d0c720303959598fb61e40d514.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2021-09-01 16:44:58 +0200zachjs(~zachjs@c-24-8-115-19.hsd1.co.comcast.net)
2021-09-01 16:45:01 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Quit: Bye)
2021-09-01 16:45:45 +0200 <exarkun> okay application logic bug, all my fault
2021-09-01 16:46:31 +0200kenran(~kenran@b2b-37-24-119-190.unitymedia.biz) (Quit: WeeChat info:version)
2021-09-01 16:46:36 +0200timCF(~timCF@200-149-20-81.sta.estpak.ee)
2021-09-01 16:49:58 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2021-09-01 16:50:22 +0200 <timCF> Hello! Any `Async` users there? I have a question about process linking. Is `link` working always to one direction (propagation of exception from spawned process back to parent process), or it will propagate back as well? Also I'm looking for possibility to make all child `Async` processes terminated (cancelled) in case where parent process has been cancelled. Is `link` function the way to go, or there is
2021-09-01 16:50:28 +0200 <timCF> some better function for this?
2021-09-01 16:52:11 +0200[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-09-01 16:53:18 +0200pfurla(~pfurla@ool-182ed2e2.dyn.optonline.net)
2021-09-01 16:54:00 +0200 <timCF> Or maybe there is some other library which solves task of building such proccess trees (a bit similar to Erlang typical procees tree) better than `Async`?
2021-09-01 16:56:08 +0200 <merijn> It can be done with async, but requires a bit of low level fiddling to get nice abstractions
2021-09-01 16:56:12 +0200pfurla_(~pfurla@235.15.195.173.client.static.strong-in52.as13926.net) (Ping timeout: 256 seconds)
2021-09-01 16:59:11 +0200jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se) (Remote host closed the connection)
2021-09-01 16:59:54 +0200myShoggoth(~myShoggot@97-120-70-214.ptld.qwest.net)
2021-09-01 17:00:02 +0200neo(~neo3@cpe-292712.ip.primehome.com) (Ping timeout: 252 seconds)
2021-09-01 17:00:35 +0200turlando(~turlando@user/turlando) (Read error: Connection reset by peer)
2021-09-01 17:04:55 +0200vysn(~vysn@user/vysn) (Ping timeout: 252 seconds)
2021-09-01 17:05:19 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it)
2021-09-01 17:05:19 +0200turlando(~turlando@93-42-250-112.ip89.fastwebnet.it) (Changing host)
2021-09-01 17:05:19 +0200turlando(~turlando@user/turlando)
2021-09-01 17:09:06 +0200lortabac(~lortabac@2a01:e0a:541:b8f0:2ef4:e718:7f42:663c) (Quit: WeeChat 2.8)
2021-09-01 17:09:18 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 17:11:04 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 17:14:49 +0200011AAA542(~mc47@xmonad/TheMC47)
2021-09-01 17:14:49 +0200047AAD8YA(~mc47@xmonad/TheMC47)
2021-09-01 17:14:52 +0200047AAD8YA(~mc47@xmonad/TheMC47) (Client Quit)
2021-09-01 17:14:57 +0200011AAA542(~mc47@xmonad/TheMC47) (Client Quit)
2021-09-01 17:15:14 +0200mc47(~mc47@xmonad/TheMC47)
2021-09-01 17:16:09 +0200xsperry(~as@user/xsperry)
2021-09-01 17:17:18 +0200enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-09-01 17:17:31 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 252 seconds)
2021-09-01 17:19:12 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 17:22:27 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 17:26:40 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Ping timeout: 240 seconds)
2021-09-01 17:36:06 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 17:41:33 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 17:41:33 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 17:41:33 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 17:47:36 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-01 17:50:58 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-09-01 17:52:01 +0200 <kuribas> here's a handy function which I often need: buildMap :: Ord k => (a -> k) -> (a -> v) -> [a] -> Map.Map k [v]
2021-09-01 17:52:15 +0200 <kuribas> buildMap getKey getValue = Map.map reverse . Map.fromListWith (++) . map (\x -> (getKey x, [getValue x]))
2021-09-01 17:52:29 +0200 <kuribas> building up a map from a key and value.
2021-09-01 17:52:34 +0200 <kuribas> and accumulating the values.
2021-09-01 17:52:51 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 17:53:48 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 244 seconds)
2021-09-01 17:54:05 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 17:56:13 +0200dajoer(~david@user/gvx) (Quit: leaving)
2021-09-01 17:57:40 +0200xsperry(~as@user/xsperry) (Quit: quit)
2021-09-01 17:59:23 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 17:59:29 +0200marjinal1st(~Thunderbi@178.251.45.235) (Ping timeout: 244 seconds)
2021-09-01 18:05:42 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Read error: Connection reset by peer)
2021-09-01 18:05:48 +0200Morrow_(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-01 18:07:23 +0200Morrow(~Morrow@bzq-110-168-31-106.red.bezeqint.net)
2021-09-01 18:07:28 +0200_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-09-01 18:07:37 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-01 18:09:26 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-01 18:09:28 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 18:12:02 +0200jippiedoe(~david@2a02:a44c:e14e:1:88ae:c015:d0c7:4dd4)
2021-09-01 18:14:13 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-01 18:16:01 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 18:17:24 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:21:13 +0200qwedfg(~qwedfg@user/qwedfg)
2021-09-01 18:22:28 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 18:23:04 +0200kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-09-01 18:23:25 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:28:34 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-09-01 18:29:42 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:31:46 +0200d0ku(~d0ku@178.43.56.75.ipv4.supernova.orange.pl) (Remote host closed the connection)
2021-09-01 18:31:48 +0200tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net)
2021-09-01 18:33:19 +0200aegon(~mike@174.127.249.180)
2021-09-01 18:33:24 +0200Erutuon(~Erutuon@user/erutuon)
2021-09-01 18:33:31 +0200zachjs(~zachjs@c-24-8-115-19.hsd1.co.comcast.net) (Quit: zachjs)
2021-09-01 18:34:27 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 18:35:07 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds)
2021-09-01 18:35:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:40:20 +0200jippiedoe(~david@2a02:a44c:e14e:1:88ae:c015:d0c7:4dd4) (Quit: Leaving)
2021-09-01 18:40:49 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 18:41:27 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:43:28 +0200SystemFFan(~SystemFFa@188.70.6.7)
2021-09-01 18:45:15 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 18:46:30 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 18:47:45 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 18:49:05 +0200nschoe(~quassel@178.251.84.79) (Ping timeout: 244 seconds)
2021-09-01 18:49:32 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 18:52:36 +0200econo(uid147250@user/econo)
2021-09-01 18:53:40 +0200Xe(~cadey@tailscale/xe) (Ping timeout: 240 seconds)
2021-09-01 18:55:10 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-01 18:59:08 +0200Xe(~cadey@tailscale/xe)
2021-09-01 19:01:03 +0200xsperry(~as@user/xsperry)
2021-09-01 19:02:56 +0200 <tomsmeding> buildMap getKey getValue = Map.fromList . map ((,) <$> head . fst <*> map snd) . groupOn ((==) `on` fst) . sortBy (comparing fst) . map ((,) <$> getKey <*> getValue)
2021-09-01 19:03:08 +0200 <tomsmeding> potentially more efficient because less (++) ?
2021-09-01 19:03:53 +0200fendor_(~fendor@91.141.68.147.wireless.dyn.drei.com) (Remote host closed the connection)
2021-09-01 19:06:19 +0200 <tomsmeding> @tell kuribas https://ircbrowse.tomsmeding.com/day/lchaskell/2021/09/01?id=163897#trid163897
2021-09-01 19:06:19 +0200 <lambdabot> Consider it noted.
2021-09-01 19:13:01 +0200xsperry(~as@user/xsperry) ()
2021-09-01 19:16:34 +0200xsperry(~as@user/xsperry)
2021-09-01 19:21:43 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 19:22:25 +0200pgib(~textual@173.38.117.72) (Ping timeout: 252 seconds)
2021-09-01 19:23:22 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-01 19:24:11 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
2021-09-01 19:24:16 +0200ec_(~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
2021-09-01 19:24:38 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 19:26:47 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-09-01 19:33:09 +0200desantra(~skykanin@user/skykanin)
2021-09-01 19:34:15 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 19:36:50 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3) (Remote host closed the connection)
2021-09-01 19:39:03 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 19:40:24 +0200jrm(~jrm@156.34.187.65) (Quit: ciao)
2021-09-01 19:41:22 +0200 <phaazon> @hoogle ifM
2021-09-01 19:41:23 +0200 <lambdabot> Control.Monad.Extra ifM :: Monad m => m Bool -> m a -> m a -> m a
2021-09-01 19:41:23 +0200 <lambdabot> Extra ifM :: Monad m => m Bool -> m a -> m a -> m a
2021-09-01 19:41:23 +0200 <lambdabot> Protolude ifM :: Monad m => m Bool -> m a -> m a -> m a
2021-09-01 19:41:52 +0200jrm(~jrm@156.34.187.65)
2021-09-01 19:43:22 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2021-09-01 19:43:34 +0200Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-09-01 19:43:47 +0200Pickchea(~private@user/pickchea)
2021-09-01 19:45:06 +0200qwedfg(~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
2021-09-01 19:45:33 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 19:48:40 +0200qwedfg(~qwedfg@user/qwedfg)
2021-09-01 19:49:54 +0200ub(~Thunderbi@91.141.71.52.wireless.dyn.drei.com)
2021-09-01 19:55:59 +0200alx741(~alx741@186.178.108.235) (Quit: alx741)
2021-09-01 19:56:18 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 19:58:06 +0200qwedfg(~qwedfg@user/qwedfg) (Read error: Connection reset by peer)
2021-09-01 19:58:14 +0200eggplantade(~Eggplanta@2600:1700:bef1:5e10:76:2b00:7f15:65d3)
2021-09-01 19:58:30 +0200Guest10(~Guest10@93-172-153-232.bb.netvision.net.il)
2021-09-01 19:58:35 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 19:58:43 +0200ub(~Thunderbi@91.141.71.52.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-01 19:59:24 +0200 <Guest10> is there an efficient solution to the snail problem in haskell? https://www.codewars.com/kata/521c2db8ddc89b9b7a0000c1/haskell
2021-09-01 20:00:40 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds)
2021-09-01 20:00:54 +0200 <Guest10> i know https://rextester.com/NJMZH56113 but with all the transposes it offers a less efficient solution than the normal imperative solution
2021-09-01 20:01:02 +0200qwedfg(~qwedfg@user/qwedfg)
2021-09-01 20:03:05 +0200 <int-e> but it's so short and idiomatic :P
2021-09-01 20:03:57 +0200 <Guest10> ye i love that solution. just wondering about efficiency
2021-09-01 20:04:45 +0200 <int-e> An efficient solution will have to forego lists, I think. And once you use arrays... it's kind of boring?
2021-09-01 20:05:02 +0200 <Guest10> vectors probably
2021-09-01 20:05:06 +0200 <Guest10> also yes
2021-09-01 20:05:14 +0200 <Guest10> but im still interested
2021-09-01 20:05:42 +0200 <Guest10> because we still need to think about efficiency in code. no matter how fucking beautiful that solution is
2021-09-01 20:06:10 +0200 <monochrom> Use a 2D array and work on indexing tricks.
2021-09-01 20:06:27 +0200 <monochrom> Note that array ā‰  list.
2021-09-01 20:07:06 +0200 <monochrom> The indexing trick is not boring.
2021-09-01 20:08:26 +0200 <Guest10> monochrom idk how to do what you're saying in haskell. that's why i raised the subject
2021-09-01 20:09:32 +0200idf(~idf@198.23.223.146) (Remote host closed the connection)
2021-09-01 20:09:46 +0200 <Guest10> this was my solution in python which is not beautiful at all but works (without indexing tricks tho): https://pastebin.com/LgYCdfJv
2021-09-01 20:10:34 +0200 <Guest10> just wondering if actually efficient solutions could be made in haskell and still be elegant
2021-09-01 20:11:45 +0200 <monochrom> Do you already know how to use either the vector library from Hackage or the Data.Array module that comes with GHC?
2021-09-01 20:12:32 +0200max22-(~maxime@2a01cb0883359800ebf73839d72fccc8.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds)
2021-09-01 20:15:10 +0200 <[exa]> Guest10: if you want to do that with lists, just splitting the lists in half gives a pretty interesting recursion scheme there tbh
2021-09-01 20:15:15 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 20:16:54 +0200zebrag(~chris@user/zebrag)
2021-09-01 20:17:57 +0200benin0369323(~benin@183.82.204.90) (Ping timeout: 244 seconds)
2021-09-01 20:18:02 +0200OscarH(~OscarH@97e48a81.skybroadband.com) (Ping timeout: 252 seconds)
2021-09-01 20:18:55 +0200 <Guest10> monochrom no
2021-09-01 20:19:22 +0200 <int-e> > let go 0 _ x y = [(x,y)]; go n d x y = [(x+d*i,y) | i <- [0..n-1]] ++ [(x+d*n,y+d*i) | i <- [0..n-1]] ++ go (n-1) (-d) (x+d*n) (y+d*n); snail n = go (n-1) 1 0 0 in snail 3 -- just computing indices
2021-09-01 20:19:24 +0200 <lambdabot> [(0,0),(1,0),(2,0),(2,1),(2,2),(1,2),(1,1)]
2021-09-01 20:19:30 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-01 20:19:36 +0200 <Guest10> [exa] umm ok
2021-09-01 20:19:45 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 20:19:56 +0200 <monochrom> They you can start by tossing a coin to pick one and start learning.
2021-09-01 20:20:18 +0200 <monochrom> Either one is just a matter of reading library doc and practicing.
2021-09-01 20:21:41 +0200 <Guest10> well i already am learning it
2021-09-01 20:21:52 +0200 <Guest10> just thought somebody would have a clever solution to suggest
2021-09-01 20:22:11 +0200 <[exa]> hm let's convert some logicks to data
2021-09-01 20:22:22 +0200 <[exa]> (because that is the wayā„¢)
2021-09-01 20:23:22 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-01 20:23:42 +0200 <int-e> Well, the reverse . transpose thing is clever. You can mimic it with an array library that implements reversals and transposes and tails as *views* on an initial 2D array... keeping track of a linear transformation... but it's hard to justify that amount of code for this simple problem
2021-09-01 20:23:43 +0200 <Guest10> im not fluent enough to come up with one myself I(tho learning) yet, but still interested in how would that even look like in haskell
2021-09-01 20:24:21 +0200 <Guest10> int-e would you say it's just not a kind of problem haskell is good at solving?
2021-09-01 20:24:38 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 20:25:07 +0200 <Guest10> well not literally haskel but you get what i mean
2021-09-01 20:25:19 +0200 <int-e> Oh it's good enough. It doesn't get a chance to shine and it suffers from not having the concise array indexing notation that imperative programming languages tend to have.
2021-09-01 20:25:30 +0200 <[exa]> guideWithLimits = [ (_1, (+1), width), (_2, (+1), height), (_1, (- 1), 1), (_2, (- 1), 1)]
2021-09-01 20:25:33 +0200 <monochrom> I am not very thrilled with composing views, since there are about sqrt(n) views to compose eventually.
2021-09-01 20:25:59 +0200 <int-e> monochrom: yes, which is why you keep track of a linear transformation as a matrix
2021-09-01 20:26:18 +0200 <int-e> so you don't have to go through the whole stack on every access.
2021-09-01 20:26:19 +0200 <[exa]> unfortunately it requires rotating the guide but that can be done in AO(1) with the lazy queue
2021-09-01 20:26:34 +0200 <int-e> monochrom: or at least that's what I had in mind
2021-09-01 20:30:21 +0200 <monochrom> [exa], I would replace "rotation" by cycle. cycle [x,y,z] = [x,y,z,x,y,z,x,y,z,...] not more rotation, just consumption.
2021-09-01 20:30:31 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 20:32:10 +0200 <[exa]> monochrom: I need to update the bounds there, but yeah there might be a better way
2021-09-01 20:32:40 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 240 seconds)
2021-09-01 20:33:25 +0200 <[exa]> anyway that was an exercise in "materialize the offsets for clarity", not saying it's good :]
2021-09-01 20:33:26 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 20:36:13 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 20:36:29 +0200Guest8166(~lordgrenv@141.226.11.65)
2021-09-01 20:37:53 +0200max22-(~maxime@2a01cb0883359800f554d7694bd7e6d3.ipv6.abo.wanadoo.fr)
2021-09-01 20:38:53 +0200chisui(~chisui@200116b868aa2800d5eed5c8b9502c85.dip.versatel-1u1.de)
2021-09-01 20:42:10 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 20:42:48 +0200desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.2)
2021-09-01 20:43:02 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-01 20:51:49 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Quit: mikoto-chan)
2021-09-01 20:55:13 +0200commuswift[m](~commuswif@2001:470:69fc:105::e862)
2021-09-01 20:55:51 +0200Guest10(~Guest10@93-172-153-232.bb.netvision.net.il) (Ping timeout: 256 seconds)
2021-09-01 20:55:52 +0200justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
2021-09-01 20:57:13 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 244 seconds)
2021-09-01 20:57:38 +0200azeem(~azeem@62.19.37.175)
2021-09-01 20:57:51 +0200justsomeguy(~justsomeg@user/justsomeguy)
2021-09-01 21:02:49 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-01 21:04:10 +0200vysn(~vysn@user/vysn)
2021-09-01 21:04:36 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 21:05:40 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 21:06:22 +0200lisq(~quassel@lis.moe) (Quit: lisq)
2021-09-01 21:09:06 +0200hyiltiz(~quassel@31.220.5.250) (Ping timeout: 244 seconds)
2021-09-01 21:09:56 +0200justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-09-01 21:10:32 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 245 seconds)
2021-09-01 21:10:46 +0200leplep-
2021-09-01 21:11:00 +0200hyiltiz(~quassel@31.220.5.250)
2021-09-01 21:11:31 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-01 21:12:58 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds)
2021-09-01 21:13:23 +0200MQ-17J(~MQ-17J@8.21.10.6)
2021-09-01 21:14:32 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-01 21:14:38 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 21:14:56 +0200cloudy[m](~cloudyclo@2001:470:69fc:105::50c0)
2021-09-01 21:15:18 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 21:18:11 +0200cloudy[m]cloudy
2021-09-01 21:18:55 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 244 seconds)
2021-09-01 21:20:07 +0200MQ-17J(~MQ-17J@8.21.10.6) (Ping timeout: 252 seconds)
2021-09-01 21:21:18 +0200lep-lep
2021-09-01 21:21:28 +0200arjun(~Srain@user/arjun) (Remote host closed the connection)
2021-09-01 21:23:00 +0200lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-09-01 21:23:56 +0200Lycurgus(~juan@cpe-45-46-140-49.buffalo.res.rr.com)
2021-09-01 21:24:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-09-01 21:24:51 +0200wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-09-01 21:24:51 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 21:25:44 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 250 seconds)
2021-09-01 21:29:47 +0200echoone(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb)
2021-09-01 21:30:29 +0200leplep-
2021-09-01 21:30:56 +0200nvmd(~nvmd@user/nvmd) (Ping timeout: 250 seconds)
2021-09-01 21:31:02 +0200cloudy(~cloudyclo@2001:470:69fc:105::50c0) (Quit: Reconnecting)
2021-09-01 21:31:14 +0200lisq(~quassel@lis.moe)
2021-09-01 21:31:16 +0200cloudy(~cloudy@2001:470:69fc:105::50c0)
2021-09-01 21:31:40 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-250.prtc.net)
2021-09-01 21:32:08 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-01 21:33:23 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 21:33:33 +0200chisui(~chisui@200116b868aa2800d5eed5c8b9502c85.dip.versatel-1u1.de) (Quit: Client closed)
2021-09-01 21:33:35 +0200elf_fortrez(~elf_fortr@adsl-64-237-239-250.prtc.net) (Client Quit)
2021-09-01 21:33:48 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-01 21:39:22 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 252 seconds)
2021-09-01 21:39:52 +0200azeem(~azeem@62.19.37.175)
2021-09-01 21:44:33 +0200sclv(sid39734@haskell/developer/sclv) (Ping timeout: 276 seconds)
2021-09-01 21:45:12 +0200rune(sid21167@id-21167.charlton.irccloud.com) (Ping timeout: 276 seconds)
2021-09-01 21:45:12 +0200royo(~royo@user/royo) (Ping timeout: 276 seconds)
2021-09-01 21:45:12 +0200zzz(~yin@user/yin) (Ping timeout: 276 seconds)
2021-09-01 21:45:37 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Remote host closed the connection)
2021-09-01 21:45:51 +0200caasih(sid13241@id-13241.charlton.irccloud.com) (Ping timeout: 276 seconds)
2021-09-01 21:45:51 +0200welterde(welterde@thinkbase.srv.welterde.de) (Ping timeout: 276 seconds)
2021-09-01 21:46:20 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 256 seconds)
2021-09-01 21:46:35 +0200caasih(sid13241@id-13241.charlton.irccloud.com)
2021-09-01 21:46:42 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 245 seconds)
2021-09-01 21:47:06 +0200rune(sid21167@id-21167.charlton.irccloud.com)
2021-09-01 21:47:24 +0200azeem(~azeem@62.19.37.175)
2021-09-01 21:47:30 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 21:51:24 +0200zzz(~yin@user/yin)
2021-09-01 21:53:30 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 21:56:25 +0200lep-lep
2021-09-01 21:56:58 +0200Guest8166(~lordgrenv@141.226.11.65) (Ping timeout: 252 seconds)
2021-09-01 21:58:00 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 21:58:04 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-01 21:58:10 +0200welterde(welterde@thinkbase.srv.welterde.de)
2021-09-01 21:58:15 +0200kenran(~kenran@200116b82b07b8005c98d0a77c3f6d41.dip.versatel-1u1.de)
2021-09-01 21:58:39 +0200royo(~royo@user/royo)
2021-09-01 21:59:22 +0200sclv(sid39734@haskell/developer/sclv)
2021-09-01 22:03:46 +0200_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-09-01 22:04:54 +0200juhp(~juhp@128.106.188.220) (Ping timeout: 244 seconds)
2021-09-01 22:05:46 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com) (Ping timeout: 252 seconds)
2021-09-01 22:06:47 +0200juhp(~juhp@128.106.188.220)
2021-09-01 22:06:57 +0200talismanick(~user@2601:644:8500:8350::cc04)
2021-09-01 22:08:19 +0200flukiluke(~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 250 seconds)
2021-09-01 22:08:42 +0200flukiluke(~flukiluke@2603:c023:c000:6c7e:8945:ad24:9113:a962)
2021-09-01 22:08:44 +0200echoone(~echoone@2a02:8109:a1c0:5d05:2d85:bc81:1c9c:4feb) (Quit: Client closed)
2021-09-01 22:10:43 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net)
2021-09-01 22:12:08 +0200dunj3(~dunj3@2001:16b8:30cf:7000:7144:88af:3fb9:7fd1) (Remote host closed the connection)
2021-09-01 22:16:26 +0200gehmehgeh(~user@user/gehmehgeh) (Quit: Leaving)
2021-09-01 22:17:22 +0200pavonia(~user@user/siracusa)
2021-09-01 22:19:53 +0200aman(~aman@user/aman) (Ping timeout: 244 seconds)
2021-09-01 22:22:16 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net) (Ping timeout: 252 seconds)
2021-09-01 22:25:30 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk)
2021-09-01 22:28:32 +0200 <dminuoso> Let's pretend there was a global malware that would delete all binary installations of a Haskeller compiler (GHC, Hugs, all of them). How tedious would the process be of bootstrapping GHC again?
2021-09-01 22:29:12 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-09-01 22:29:52 +0200 <dminuoso> In principle you'd just have to implement Haskell with all the language extensions used in GHC, and reimplement the RTS behavior in all details right?
2021-09-01 22:30:23 +0200 <Lycurgus> why couldn't it be recompiled?
2021-09-01 22:30:35 +0200 <dminuoso> GHC is written in Haskell.
2021-09-01 22:31:00 +0200 <dminuoso> With all binary installations (and archives!) of a Haskell compiler removed, you couldn't bootstrap it.
2021-09-01 22:31:28 +0200 <Lycurgus> so you meant not just the final binary but anything between sources and the binary
2021-09-01 22:31:32 +0200 <dminuoso> Right.
2021-09-01 22:31:42 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 22:31:46 +0200burnsidesLlama(~burnsides@dhcp168-020.wadham.ox.ac.uk) (Ping timeout: 244 seconds)
2021-09-01 22:32:13 +0200hgolden(~hgolden2@cpe-172-114-84-61.socal.res.rr.com)
2021-09-01 22:33:18 +0200 <Lycurgus> you could still prolly do somekina translation on the sources with a bootstrapping rube goldberg kinda thing
2021-09-01 22:33:52 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 22:35:25 +0200 <Lycurgus> that autopoetic thing began with smalltalk sfaict
2021-09-01 22:35:46 +0200 <Lycurgus> but prolly goes back further
2021-09-01 22:36:21 +0200 <Lycurgus> to lisp i imagine
2021-09-01 22:36:21 +0200 <dsal> You can experience a lot of that pain by just trying to port it to a new architecture.
2021-09-01 22:36:52 +0200 <dminuoso> dsal: I dont have to implement a whole compiler for that, though.
2021-09-01 22:37:10 +0200 <sclv> yeah i was going to say that if you have unregisterized sources you can _in theory_ compile them directly with gcc https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/codegens.html?highlight=unregisteriā€¦
2021-09-01 22:37:12 +0200 <Lycurgus> really they claim it's facilitated
2021-09-01 22:37:15 +0200 <dminuoso> For porting to a new architecture might start with Core
2021-09-01 22:37:19 +0200 <Lycurgus> which means eased
2021-09-01 22:37:26 +0200 <dsal> dminuoso: Yeah, I guess the low-level stuff is relatively smaller.
2021-09-01 22:38:16 +0200 <dminuoso> I'm guessing adding a new architecture faces three primary problems: RTS, code generation and linkage.
2021-09-01 22:38:24 +0200Lycurguswas pleased to see a few minutes ago that a stack built binary ran ok copied to another machine
2021-09-01 22:39:01 +0200 <dminuoso> sclv: That's just for code generation though. The moment we're generating code already, most of the hard work is done.
2021-09-01 22:39:14 +0200 <sclv> i don't know what you mean
2021-09-01 22:39:32 +0200 <sclv> i mean that you can get a "working" ghc by building from unregisterized c
2021-09-01 22:39:33 +0200 <sclv> directly
2021-09-01 22:39:40 +0200 <sclv> and that in turn can compile into unregiserized c
2021-09-01 22:39:55 +0200 <sclv> or any supported arch
2021-09-01 22:40:02 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-01 22:40:07 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
2021-09-01 22:40:33 +0200 <dminuoso> Ah. Im just saying, this wouldn't help in case of the global Haskell Removal Incident
2021-09-01 22:40:49 +0200 <sclv> assuming you already had unregisterized sources it would
2021-09-01 22:41:12 +0200 <sclv> you could just throw those sources at gcc
2021-09-01 22:41:16 +0200Lycurgus.oO( somebody's got too much time on their hands)
2021-09-01 22:41:47 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 22:41:56 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 22:42:35 +0200 <dminuoso> I guess it just fascinates me, how much technology requires itself for bootstrapping. Let's say we didn't have unregistered sources for GHC.
2021-09-01 22:42:35 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be)
2021-09-01 22:43:01 +0200 <kaol> Hugs is implemented in C, I suppose it could bootstrap an old enough GHC.
2021-09-01 22:43:12 +0200 <dminuoso> kaol: I explicitly even named Hugs!
2021-09-01 22:43:21 +0200 <janus> haskell is gods own programming langauge, god will make sure haskell emerges from nature again
2021-09-01 22:43:26 +0200 <dminuoso> The tapeworm will destroy Hugs as well.
2021-09-01 22:43:48 +0200 <dminuoso> (It's quite a destructive and evil tapeworm)
2021-09-01 22:44:36 +0200 <dminuoso> The thought that sparked all of this was wondering how could I ever actually trust my compiler.
2021-09-01 22:45:00 +0200 <dminuoso> So kaol might actually have supplied a sufficient answer for that.
2021-09-01 22:45:50 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 22:45:53 +0200 <dminuoso> I can only reasonably trust a GHC binary to be free of evil modifications if I built it myself - but I can't build GHC without GHC -
2021-09-01 22:46:09 +0200 <dsal> ...from spec
2021-09-01 22:46:32 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 252 seconds)
2021-09-01 22:48:07 +0200ubert(~Thunderbi@91.141.71.52.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
2021-09-01 22:49:55 +0200Lord_of_Life_(~Lord@user/lord-of-life/x-2819915)
2021-09-01 22:51:17 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds)
2021-09-01 22:51:17 +0200Lord_of_Life_Lord_of_Life
2021-09-01 22:52:43 +0200 <monochrom> May I exploit a loop hole in your question? (Haha the irony.)
2021-09-01 22:53:25 +0200 <monochrom> It may be viable to take surviving gopher and miranda compilers to restart GHC.
2021-09-01 22:53:43 +0200 <monochrom> Your tapeworm passed over them, no? :)
2021-09-01 22:54:00 +0200 <monochrom> err s/gopher/gofer/
2021-09-01 22:54:41 +0200 <monochrom> (Let's leave gopher for some other day when you propose "if a tapeworm destroys all web browsers and web servers"... >:) )
2021-09-01 22:55:23 +0200mc47(~mc47@xmonad/TheMC47) (Remote host closed the connection)
2021-09-01 22:56:34 +0200 <monochrom> And if gofer and miranda were wiped out too, there would still be SML.
2021-09-01 22:56:59 +0200 <monochrom> And if SML were wiped out too, there would still be Lisp. (Early *ML compilers were written in Lisp.)
2021-09-01 22:57:21 +0200SystemFFan(~SystemFFa@188.70.6.7) (Remote host closed the connection)
2021-09-01 22:57:26 +0200 <dminuoso> monochrom: Nice pun.
2021-09-01 22:57:51 +0200 <dminuoso> If a tapeworm destroys all web browsers the world will be a better place.
2021-09-01 22:58:01 +0200 <dminuoso> I wouldn't want anything to be restored after that.
2021-09-01 22:58:10 +0200SystemFFan(~SystemFFa@188.70.6.7)
2021-09-01 22:58:28 +0200 <dminuoso> But it's interesting, I really hadn't considered gofer and miranda.
2021-09-01 22:58:31 +0200 <monochrom> :(
2021-09-01 22:59:19 +0200 <dminuoso> Can we even be sure that all GHCs arent infested with evil modifications already?
2021-09-01 22:59:25 +0200 <monochrom> The web has a good part, I enjoy the good part very much. Hyperlinking was a great invention. Much better than "[1]" and requiring the reader to scroll to the bottom for [1].
2021-09-01 22:59:37 +0200 <kaol> NPM sure tries it best to destroy itself periodically.
2021-09-01 22:59:44 +0200 <dminuoso> I mean if say Ben Gamaris machine was compromised, and he produced evil binaries that were then used to bootstrap other GHCs..
2021-09-01 23:00:00 +0200 <dminuoso> That seems like a type of supply chain attack to be almost impossbile to get out of
2021-09-01 23:00:13 +0200 <Lycurgus> how do you distinguish evil modifications from the next new breaking change?
2021-09-01 23:00:43 +0200 <davean> dminuoso: you mean the trusting trust attack?
2021-09-01 23:00:49 +0200 <dminuoso> monochrom: hyperlinking was a terrible invention since most webserver hosters break the principle idea of persistent links.
2021-09-01 23:00:52 +0200mikoto-chan(~mikoto-ch@ip-83-134-2-136.dsl.scarlet.be) (Ping timeout: 245 seconds)
2021-09-01 23:00:59 +0200 <davean> dminuoso: you build GHC via-c, boot that from a minimal compiler, and walk forward recompiling
2021-09-01 23:01:07 +0200 <monochrom> Yeah Dennis Ritchie's Turing Award lecture paints a basically bleak picture about this. (Except s/Haskell/C/.) It's very hard to fix.
2021-09-01 23:01:17 +0200 <dminuoso> davean: via-c using what software?
2021-09-01 23:01:40 +0200 <davean> dminuoso: old GHC, you save one - there are saved ones I believe
2021-09-01 23:01:47 +0200 <davean> but you can also audit the C (if you're insane)
2021-09-01 23:01:52 +0200acidjnk_new(~acidjnk@p200300d0c720300659598fb61e40d514.dip0.t-ipconnect.de)
2021-09-01 23:02:02 +0200 <dminuoso> Ill have to read Dennis Ritcies lecture on that.
2021-09-01 23:02:14 +0200 <dminuoso> And yeah, it seems trusting trust is what Im chasing.
2021-09-01 23:02:33 +0200 <dminuoso> davean: Of course that's assuming that that old GHC wasnt evil already.
2021-09-01 23:02:39 +0200 <davean> dminuoso: doesn't matter
2021-09-01 23:02:43 +0200 <davean> if you audit the C
2021-09-01 23:02:58 +0200wroathe(~wroathe@user/wroathe) (Ping timeout: 252 seconds)
2021-09-01 23:03:03 +0200 <davean> we can step forward to a C compile from a few machine code bytes
2021-09-01 23:03:17 +0200 <davean> Its something like 200 bytes you have to trust
2021-09-01 23:03:17 +0200merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds)
2021-09-01 23:03:27 +0200 <davean> Again, its a fuckton of work
2021-09-01 23:03:48 +0200 <davean> but you can boot the world from a few bytes of machine code, if you trust the machine
2021-09-01 23:03:48 +0200johnw(~johnw@2600:1700:cf00:db0:ddb1:e5fb:471:495e)
2021-09-01 23:04:32 +0200 <dminuoso> I've already silently accepted that I have to trust my machine of hardware I cant possibly inspect, with firmware I cant possibly inspect, running microcode I cant possibly inspect on a CPU I cant possibly inspect..
2021-09-01 23:05:10 +0200superbil(~superbil@1-34-176-171.HINET-IP.hinet.net)
2021-09-01 23:05:50 +0200 <monochrom> The PDP-11 is pretty reasonable to trust, without all those bells and whistles about CPU having its own OS etc.
2021-09-01 23:06:42 +0200 <davean> dminuoso: https://github.com/oriansj/stage0
2021-09-01 23:08:08 +0200 <davean> dminuoso: anyway, you CAN do this walk
2021-09-01 23:10:28 +0200 <dminuoso> davean: That's an interesting bootstrap project
2021-09-01 23:10:52 +0200deejaytee(~deejaytee@cpc91196-cmbg18-2-0-cust215.5-4.cable.virginm.net)
2021-09-01 23:11:07 +0200kenran(~kenran@200116b82b07b8005c98d0a77c3f6d41.dip.versatel-1u1.de) (Quit: WeeChat info:version)
2021-09-01 23:11:56 +0200 <davean> dminuoso: on power you can do a little better and inspect the firmware?
2021-09-01 23:12:14 +0200 <davean> Its a hard problem, but not an unsolvable one
2021-09-01 23:13:22 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 245 seconds)
2021-09-01 23:13:39 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 23:13:48 +0200 <dminuoso> davean: bootstrapping hardware is much more difficult, though.
2021-09-01 23:13:52 +0200michalz(~michalz@185.246.204.55) (Remote host closed the connection)
2021-09-01 23:15:02 +0200 <dminuoso> But I guess FPGAs would be a good starter
2021-09-01 23:15:41 +0200 <dminuoso> Not entirely fool proof, but an evil modification inside an FPGA to affect unknown FPGA code that simulates say power
2021-09-01 23:15:47 +0200 <dminuoso> Seems much more unrealistic
2021-09-01 23:16:32 +0200 <dminuoso> All of this dampens my mood :(
2021-09-01 23:17:12 +0200ec_(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-09-01 23:18:10 +0200 <davean> dminuoso: I mean you can buy a machine which you can compile your own firmware for in POWER form today
2021-09-01 23:18:18 +0200 <davean> That doesn't check the circutes mind you
2021-09-01 23:21:42 +0200Erutuon(~Erutuon@user/erutuon) (Ping timeout: 245 seconds)
2021-09-01 23:22:15 +0200ec_(~ec@gateway/tor-sasl/ec)
2021-09-01 23:22:56 +0200fendor(~fendor@91.141.68.147.wireless.dyn.drei.com)
2021-09-01 23:24:31 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net)
2021-09-01 23:24:31 +0200wroathe(~wroathe@96-88-30-181-static.hfc.comcastbusiness.net) (Changing host)
2021-09-01 23:24:31 +0200wroathe(~wroathe@user/wroathe)
2021-09-01 23:24:47 +0200lavaman(~lavaman@98.38.249.169)
2021-09-01 23:29:07 +0200lavaman(~lavaman@98.38.249.169) (Ping timeout: 244 seconds)
2021-09-01 23:30:27 +0200azeem(~azeem@62.19.37.175) (Ping timeout: 245 seconds)
2021-09-01 23:30:33 +0200max22-(~maxime@2a01cb0883359800f554d7694bd7e6d3.ipv6.abo.wanadoo.fr) (Quit: Leaving)
2021-09-01 23:30:48 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2021-09-01 23:37:28 +0200BestSteve(~beststeve@220-135-3-239.HINET-IP.hinet.net) (Quit: WeeChat 3.1)
2021-09-01 23:40:56 +0200 <tdammers> realistically, the only proper solution is a cabin in Siberia with a flock of goats
2021-09-01 23:42:10 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2021-09-01 23:43:08 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de)
2021-09-01 23:45:57 +0200 <maerwald> hmm, goat cheese
2021-09-01 23:47:31 +0200hannessteffenhag(~hannesste@ip4d14ffee.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2021-09-01 23:50:16 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com) (Ping timeout: 252 seconds)
2021-09-01 23:50:34 +0200MQ-17J(~MQ-17J@d14-69-206-129.try.wideopenwest.com)
2021-09-01 23:50:46 +0200 <hpc> a flock of goats?
2021-09-01 23:55:42 +0200Everything(~Everythin@37.115.210.35) (Quit: leaving)