Home liberachat/#haskell: Logs Calendar

Logs on 2022-11-07 (liberachat/#haskell)

00:05:44 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
00:07:38 <cheater> i have a foo.cabal in which i have library (unnamed) and library foo-test-lib with exposed-modules Test.Foo, and then a test-suite foo-test. When I try to import Test.Foo in the test-suite executable, cabal says Test.Foo is in library foo-0.1.0.0, and i should add it. but when i add it, it says "solver did not find a plan that included the test suites for foo-0.1.0.0" ... what gives?
00:07:54 <cheater> library foo-test-lib also has foo mentioned as build-depends btw
00:08:04 × hueso quits (~root@user/hueso) (Ping timeout: 260 seconds)
00:08:19 hueso joins (~root@user/hueso)
00:09:49 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
00:10:16 justache joins (~justache@user/justache)
00:12:38 <Axman6> can you share the cabal file?
00:16:39 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 272 seconds)
00:17:34 <cheater> Axman6: yeah, i could
00:21:15 <cheater> Axman6: https://paste.ubuntu.com/p/Qcx7sJZ4HR/
00:24:29 vn36 joins (~vn36@123.63.203.210)
00:25:13 <Axman6> "You need to be logged in to view this paste."
00:25:17 <Axman6> @where paste
00:25:17 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
00:28:39 <cheater> sorry
00:29:12 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
00:30:50 <cheater> Axman6: https://paste.tomsmeding.com/EGIqYs74
00:32:04 <Axman6> surely you need to add foo-test-lib as a build-depends for foo-test?
00:32:21 <cheater> cabal isn't asking for it
00:32:28 <cheater> i tried it, but it still kept complaining about foo
00:32:50 <Axman6> add both?
00:32:55 <cheater> yes, i tried that too
00:33:13 <cheater> adding foo alone or together with foo-test-lib results in the error message
00:34:16 <sclv> this is because cabal cannot find a build plan satisfying all dependencies
00:34:44 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
00:34:51 <sclv> the deps in common and test conflict and that needs to be fixed
00:35:12 <sclv> the solver output should explain the source of conflict
00:35:13 <cheater> how do they conflict?
00:35:16 <cheater> there are no conflicts
00:35:27 <sclv> the message is literally that there are conflicts
00:35:34 <Axman6> please share the cabal error you get for the file you shared
00:35:56 <cheater> sclv: no. it does not mention conflicts.
00:35:58 <cheater> Axman6: ok
00:36:46 <cheater> but i've noticed something weird... now when i add build-depends: foo in test-suite foo-test, it still can't find Test.Foo because it's a member of a hidden package foo
00:36:58 <cheater> let me pastebin that
00:40:45 <cheater> Axman6: https://paste.tomsmeding.com/torEJihu
00:43:05 <Axman6> I'm surprised it thinks it's part of foo, since it's not in any of the source dirs for foo
00:44:05 <cheater> yes. this is particularly stupid
00:44:10 <cheater> i think it's a bug in cabal
00:48:14 × mmhat quits (~mmh@p200300f1c739c9cbee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
00:49:11 × vn36 quits (~vn36@123.63.203.210) (Quit: leaving)
00:50:28 <cheater> i moved Test.Foo to the main library, and suddenly the test executable can find it.
00:50:35 <cheater> obviously, now it's build-depends: foo
00:51:14 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 260 seconds)
00:53:19 <geekosaur> are they all jumbled together into the same directory? I think Cabal assumes they're not, because ghc fouls up (and may have stuck Test.Foo in the wrong library as a result) otherwise
00:53:54 <geekosaur> quite a lot of both stack and cabal is trying to make ghc not be idiotic…
00:54:44 <cheater> no. look at the cabal file. the normal lib is under src/ and the test lib is under src-test/.
00:55:08 <cheater> i'm on cabal-install 3.8.1.0, that seems to be the latest...
00:56:55 <cheater> i think what happens is that somewhere in cabal someone mixes up the libraries that are needed.
00:57:07 <cheater> just the wrong var being used somewhere
00:58:15 <yin> try cabal 3.6.2.0 and see if the error persists
00:58:45 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:58:46 <cheater> hmm... what's the cabal-install command to install a specific version? cabal-install cabal-install=3.6.2.0?
00:59:00 <cheater> cabal install cabal-install=3.6.2.0?
00:59:24 <yin> i personally use ghcup
00:59:38 <geekosaur> - instead of =
01:00:03 <geekosaur> but yes, use ghcup so you can install both and switch between them
01:00:14 <geekosaur> (ghcup tui is nice, if you're not on windows)
01:00:24 <geekosaur> (or does that work on windows now?_
01:00:26 <geekosaur> )
01:00:30 <cheater> yeah i know i just don't have it on this vm and i cba
01:00:58 <yin> ghcup actually still recommends 3.6.2.0
01:01:04 Guest75 joins (~Guest75@178.141.177.81)
01:01:05 <cheater> funny
01:01:21 <cheater> well, it's building
01:01:26 <yin> not sure what the criteria is
01:01:27 <cheater> it'll probably still be building in an hour
01:01:30 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
01:01:40 <cheater> probably "did the maintainer remember to update it"
01:01:52 <yin> s/is/are
01:02:03 × califax quits (~califax@user/califx) (Remote host closed the connection)
01:02:48 <geekosaur> "whenever maerwald decides to update the recommended-versions yaml"
01:03:07 <cheater> yea, pretty much probably?
01:03:12 <cheater> wow, this is taking ages to build
01:03:50 califax joins (~califax@user/califx)
01:03:52 <cheater> why does ghc use so much cpu? go is so much faster to compile
01:03:55 × auri quits (~auri@fsf/member/auri) (Quit: No Ping reply in 180 seconds.)
01:04:02 <cheater> just kidding...
01:04:10 yin is typing...
01:04:19 mvk joins (~mvk@2607:fea8:5ce3:8500::4b68)
01:05:01 <cheater> lmao build failed
01:05:03 auri joins (~auri@fsf/member/auri)
01:05:39 <cheater> mismatched type something something
01:05:50 × mixfix41 quits (~sdeny9ee@user/mixfix41) (Quit: have a good night everybody')
01:06:16 nate4 joins (~nate@98.45.169.16)
01:06:29 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:09:38 × xff0x quits (~xff0x@2405:6580:b080:900:fd8d:71ab:7640:b47a) (Ping timeout: 252 seconds)
01:11:04 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
01:11:39 × vglfr quits (~vglfr@145.224.100.100) (Ping timeout: 248 seconds)
01:12:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
01:13:52 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
01:14:19 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 248 seconds)
01:16:05 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
01:19:07 califax joins (~califax@user/califx)
01:21:33 nilradical joins (~nilradica@user/naso)
01:24:20 × nilradical quits (~nilradica@user/naso) (Client Quit)
01:26:51 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
01:29:35 notzmv joins (~zmv@user/notzmv)
01:30:02 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
01:30:53 jmdaemon joins (~jmdaemon@user/jmdaemon)
01:30:56 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:32:39 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 260 seconds)
01:38:14 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
01:39:01 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
01:40:04 nate4 joins (~nate@98.45.169.16)
01:42:12 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Quit: ZNC - https://znc.in)
01:42:19 × ubert quits (~Thunderbi@178.165.168.167.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
01:42:32 ubert joins (~Thunderbi@178.165.160.236.wireless.dyn.drei.com)
01:42:35 azimut joins (~azimut@gateway/tor-sasl/azimut)
01:45:04 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
01:45:27 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
01:45:42 × zmt00 quits (~zmt00@user/zmt00) (Quit: Leaving)
01:48:24 zmt00 joins (~zmt00@user/zmt00)
01:54:08 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
01:58:24 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:58:40 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
02:06:44 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 248 seconds)
02:08:32 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
02:13:43 dfee joins (~dfee@162-227-164-101.lightspeed.sntcca.sbcglobal.net)
02:15:00 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 260 seconds)
02:16:42 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
02:17:37 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 272 seconds)
02:17:59 Lord_of_Life_ is now known as Lord_of_Life
02:18:11 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
02:23:30 ell joins (~ellie@user/ellie)
02:24:04 Guest|28 joins (~Guest|28@134.173.92.8)
02:24:04 × Guest|28 quits (~Guest|28@134.173.92.8) (Client Quit)
02:27:00 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
02:29:04 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 252 seconds)
02:31:49 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
02:32:20 × ystael quits (~ystael@user/ystael) (Ping timeout: 248 seconds)
02:33:49 × hueso quits (~root@user/hueso) (Quit: No Ping reply in 180 seconds.)
02:35:00 hueso joins (~root@user/hueso)
02:38:50 bilegeek joins (~bilegeek@2600:1008:b011:e74:deb:55dd:b7ff:98a7)
02:52:13 × Guest75 quits (~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
02:55:20 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
02:55:37 razetime joins (~quassel@117.193.7.60)
03:02:32 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:11:07 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
03:12:21 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:12:59 × TonyStone quits (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com) (Ping timeout: 260 seconds)
03:13:29 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
03:20:52 × td_ quits (~td@83.135.9.27) (Ping timeout: 248 seconds)
03:22:25 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
03:22:42 td_ joins (~td@83.135.9.26)
03:26:23 TonyStone joins (~TonyStone@cpe-74-76-51-197.nycap.res.rr.com)
03:29:05 <dsal> cheater: compile time was the top priority of go. Haskell's priority is more around being a good and interesting programming language.
03:37:16 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
03:44:50 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
03:49:18 nilradical joins (~nilradica@user/naso)
03:49:30 <nilradical> what is a good option for generating real time plots/charts from haskell
03:50:09 <nilradical> simplicity is more important than features
03:52:15 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
03:52:15 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
03:52:15 finn_elija is now known as FinnElija
03:52:39 <dsal> I've always done that with a web server thing that generates data and a web client thing that moves bits around in something like d3.
03:55:53 <nilradical> is there a haskell pacckage that would do all that for me?
03:56:36 <nilradical> i had used a package with F# before that hooked up to Plotly and automatically started the webserver etc
03:56:59 nate4 joins (~nate@98.45.169.16)
03:57:05 <dsal> It depends on what you need, I guess. I've always started projects like this from scratch and never could find anything that would do the things I wanted out of the box.
03:57:58 <nilradical> right now i just want to plot a scatterplot of (x,y) datapoints that are being generated in real time from my haskell program
03:59:08 <nilradical> something that did an ascii plot in the terminal would be good too. it doesn't have to be high definition
04:01:59 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
04:01:59 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 260 seconds)
04:02:01 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds)
04:02:08 <dsal> Yeah, I've done that manually in terminals as well. Not sure what kind of thing does that all automatically.
04:02:21 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
04:02:41 <nilradical> this looks really cool but it seems to be designed to bee used as a standalone app https://github.com/weeezes/plot
04:04:24 dcoutts_ joins (~duncan@host86-151-44-212.range86-151.btcentralplus.com)
04:06:59 × dcoutts__ quits (~duncan@host86-153-135-2.range86-153.btcentralplus.com) (Ping timeout: 255 seconds)
04:10:51 × razetime quits (~quassel@117.193.7.60) (Ping timeout: 248 seconds)
04:17:08 × Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Quit: Chai-T-Rex)
04:18:35 ChaiTRex joins (~ChaiTRex@user/chaitrex)
04:20:53 mbuf joins (~Shakthi@49.204.130.107)
04:23:36 <nilradical> how can i make my program run from the command line more easily--currently i type 'cabal run [project-name]' but [project-name] is long. is there a shortcut?
04:24:18 <Axman6> does `cabal run` by itself work?
04:25:47 <nilradical> nope, it returns this:
04:25:50 <nilradical> The run command is for running a single executable at once. The target
04:25:50 <nilradical> '' refers to the package [project-name]-0.1.0.0 which includes the
04:25:51 <nilradical> executable '[project-name]' and the test suite '[project-name]-test'.
04:26:46 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 252 seconds)
04:28:15 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
04:30:07 nilradical joins (~nilradica@user/naso)
04:30:20 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
04:30:20 <nilradical> ( i was disconnected in case you replied to me i didnt see it)
04:31:07 <Axman6> nope, you didn't miss anything. you can specify a directory for executables to be copied into, so you can then just run ./dest/foo-exe --bar --baz=8
04:31:43 × mvk quits (~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 252 seconds)
04:31:49 <nilradical> is there not a config option somewhere so 'cabal run' will work? i used to do 'stack run' and that worked but now im not using stack
04:32:41 <nilradical> the message that i got above seemed to suggest the run 'target' is not specified properly
04:34:52 <nilradical> the thing is what you type is longer than what i alreday have to type
04:37:12 <nilradical> https://www.devscope.io/code/haskell/cabal/issues/8547
04:39:19 × hueso quits (~root@user/hueso) (Ping timeout: 260 seconds)
04:39:39 hueso joins (~root@user/hueso)
04:47:07 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
04:49:15 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 248 seconds)
04:50:27 <Las[m]> Does anyone know how you can host the users' guide locally? I ran an HTTP server hosting from the root of it, but when trying to search, it says "Stemmer is not defined" in the console.
04:50:50 <jackdk> `alias r=cabal run projectname`?
04:56:09 <nilradical> jackdk: thanks that works well
04:59:10 razetime joins (~quassel@117.193.7.60)
05:01:30 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
05:02:36 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
05:08:42 nate4 joins (~nate@98.45.169.16)
05:13:31 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
05:17:25 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Remote host closed the connection)
05:18:03 ChaiTRex joins (~ChaiTRex@user/chaitrex)
05:25:59 × td_ quits (~td@83.135.9.26) (Ping timeout: 260 seconds)
05:26:12 td_ joins (~td@83.135.9.26)
05:35:51 × nilradical quits (~nilradica@user/naso) (Remote host closed the connection)
05:37:06 Guest75 joins (~Guest75@dhcp-077-251-089-118.chello.nl)
05:37:10 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
05:37:48 × Guest75 quits (~Guest75@dhcp-077-251-089-118.chello.nl) (Client Quit)
05:39:57 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
05:43:51 mshv22 joins (~mjs22@76.115.19.239)
05:56:27 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection)
05:57:39 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:59:01 × potash quits (~foghorn@user/foghorn) (Read error: Connection reset by peer)
05:59:31 potash_ joins (~foghorn@94-225-47-8.access.telenet.be)
06:04:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
06:05:42 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:07:10 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
06:11:02 × mshv22 quits (~mjs22@76.115.19.239) (Quit: Leaving)
06:11:50 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
06:12:05 Sauvin joins (~sauvin@user/Sauvin)
06:14:27 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
06:14:28 Bocaneri joins (~sauvin@user/Sauvin)
06:14:52 Bocaneri is now known as Guest5611
06:17:40 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
06:21:38 chomwitt joins (~chomwitt@2a02:587:7a0a:c00:1ac0:4dff:fedb:a3f1)
06:35:15 takuan joins (~takuan@178-116-218-225.access.telenet.be)
06:36:08 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
06:38:06 jinsun__ joins (~jinsun@user/jinsun)
06:38:06 × jinsun quits (~jinsun@user/jinsun) (Killed (tantalum.libera.chat (Nickname regained by services)))
06:38:06 jinsun__ is now known as jinsun
06:43:29 × hueso quits (~root@user/hueso) (Read error: Connection reset by peer)
06:44:20 hueso joins (~root@user/hueso)
06:46:03 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 248 seconds)
06:47:13 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:49:05 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
06:50:02 califax joins (~califax@user/califx)
06:50:26 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
06:50:26 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
06:51:09 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
06:51:25 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
06:54:32 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
06:55:38 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:59:12 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
07:01:09 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:03:24 × razetime quits (~quassel@117.193.7.60) (Ping timeout: 260 seconds)
07:04:03 talismanick joins (~talismani@76.133.152.122)
07:11:44 razetime joins (~quassel@117.193.1.205)
07:14:33 × razetime quits (~quassel@117.193.1.205) (Remote host closed the connection)
07:25:59 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
07:26:46 ChaiTRex joins (~ChaiTRex@user/chaitrex)
07:28:04 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:29:08 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
07:33:51 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
07:34:05 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
07:35:09 Heyting joins (~Heyting@193.198.16.217)
07:35:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
07:37:01 × shriekingnoise quits (~shrieking@186.137.167.202) (Quit: Quit)
07:37:04 michalz joins (~michalz@185.246.207.217)
07:37:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
07:37:50 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:38:24 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
07:39:59 califax joins (~califax@user/califx)
07:40:29 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
07:41:39 × Heyting quits (~Heyting@193.198.16.217) (Remote host closed the connection)
07:42:44 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:47:47 mmhat joins (~mmh@p200300f1c700b8c5ee086bfffe095315.dip0.t-ipconnect.de)
07:53:25 jtomas joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
08:01:09 lortabac joins (~lortabac@2a01:e0a:541:b8f0:2daa:8b78:9a2e:bfe4)
08:15:58 Bocaneri joins (~sauvin@user/Sauvin)
08:16:22 Bocaneri is now known as Guest1505
08:18:34 vglfr joins (~vglfr@145.224.100.100)
08:18:39 × Guest5611 quits (~sauvin@user/Sauvin) (Ping timeout: 260 seconds)
08:18:52 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
08:19:59 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
08:21:28 cfricke joins (~cfricke@user/cfricke)
08:21:49 CiaoSen joins (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
08:22:05 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
08:22:19 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
08:30:04 <dminuoso> cheater: Use `cabal install cabal-install --constraint "cabal-install == 3.6.2.0"`
08:31:08 <dminuoso> Or does `cabal install cabal-install-3.6.2.0` really work? Im a bit saddened by the fact that this syntax too is not documented in the man page.
08:31:15 <cheater> dminuoso: the type error is in Cabal, version 3.6.3.0, that cabal-install 3.6.2.0 pulls in via deps
08:31:50 <dminuoso> cheater: Use --constraint to fix that, then.
08:32:12 acidjnk joins (~acidjnk@p200300d6e7137a3425e17e6c3d2393a2.dip0.t-ipconnect.de)
08:32:16 <dminuoso> It's possible there is an incorrecft Cabal bound in the cabal-install package, file a bug report for that seeparately
08:32:21 <dminuoso> That is, do something like:
08:32:44 <dminuoso> `cabal install cabal-install-3.6.2.0 -constraint "Cabal == 3.6.2.0"`
08:32:51 <dminuoso> `cabal install cabal-install-3.6.2.0 --constraint "Cabal == 3.6.2.0"`
08:33:03 <dminuoso> Sorry, the latter. Missed a hyphen in the first.
08:33:17 <cheater> yep, i'm about to try that. just on the phone right now.
08:35:52 titibandit joins (~titibandi@xdsl-87-78-8-6.nc.de)
08:37:20 elkcl_ joins (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru)
08:38:30 jinsun is now known as Guest3089
08:38:30 jinsun__ joins (~jinsun@user/jinsun)
08:38:30 × Guest3089 quits (~jinsun@user/jinsun) (Killed (tungsten.libera.chat (Nickname regained by services)))
08:38:30 jinsun__ is now known as jinsun
08:38:47 × elkcl quits (~elkcl@broadband-37-110-156-162.ip.moscow.rt.ru) (Ping timeout: 255 seconds)
08:38:48 elkcl_ is now known as elkcl
08:45:00 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
08:50:20 nschoe joins (~q@141.101.51.197)
08:53:39 mixfix41 joins (~sdeny9ee@user/mixfix41)
08:54:58 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
08:59:34 × jtomas quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
09:01:25 × vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection)
09:02:20 vglfr joins (~vglfr@145.224.100.100)
09:02:44 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
09:03:20 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Client Quit)
09:03:35 fserucas joins (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7)
09:05:47 jtomas joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
09:06:22 <cheater> dminuoso: https://paste.tomsmeding.com/hSQKjjPD
09:06:38 chele joins (~chele@user/chele)
09:07:33 <dminuoso> cheater: Try the command I mentioned, with an additional `Cabal-syntax ==3.6.0.0` constraint
09:07:39 × talismanick quits (~talismani@76.133.152.122) (Ping timeout: 260 seconds)
09:07:47 <cheater> dminuoso: ok.
09:07:57 <dminuoso> And definitely file a bug report, there's some incorrect bounds on cabal-install
09:08:11 <cheater> `cabal install cabal-install-3.6.2.0 --constraint "Cabal == 3.6.2.0, Cabal-syntax ==3.6.0.0"`
09:08:25 <dminuoso> I think so yes, or you might have to specify --constraint twice
09:08:58 <cheater> yeah it seems i do
09:09:52 × titibandit quits (~titibandi@xdsl-87-78-8-6.nc.de) (Remote host closed the connection)
09:10:13 nate4 joins (~nate@98.45.169.16)
09:11:42 <cheater> ok, yeah, that seems to have worked.
09:11:46 <cheater> thanks.
09:12:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:5dfc:b079:6d3b:228f) (Remote host closed the connection)
09:14:12 Guest75 joins (~Guest75@178.141.177.81)
09:14:54 <cheater> tomsmeding: is your pastebin supposed to be downloading .tar.gz files?
09:15:01 <Guest75> Hello! How do I properly add dep to Stack project? When I run "stack build", it seems to rewrite myproject.cabal file. What I'm looking for is hspec
09:15:02 <cheater> when i try to download raw
09:15:14 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
09:15:17 <tomsmeding> cheater: I guess?
09:15:19 <tomsmeding> what did you expect
09:15:30 <cheater> download the raw file. as is. not compressed in .tar.gz
09:15:33 <tomsmeding> oh perhaps you expected a paste with a single file to become a non-compressed download
09:15:39 <tomsmeding> I guess that makes sense
09:15:46 <cheater> i had no idea you could have multiple files
09:16:04 <tomsmeding> @where paste
09:16:04 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
09:16:05 Major_Biscuit joins (~MajorBisc@145.94.173.65)
09:16:08 <tomsmeding> there's a button to add more files :p
09:16:18 <cheater> it's fine, it just looked like a thing where someone tries to set up deflate encoding and instead ends up sending tarballs
09:16:31 <cheater> i've had this happen to me in the past
09:16:35 <cheater> ... like 20 years ago
09:16:53 <cheater> ... when deflate was new
09:16:57 <tomsmeding> cheater: https://github.com/tomsmeding/pastebin-haskell/issues/24
09:17:16 <dminuoso> tomsmeding: Okay, if I upload a bazillionbyte large file, will your pastebin download that too?
09:17:54 <cheater> tomsmeding: but then it's inconsistent
09:18:51 <tomsmeding> dminuoso: well it won't let you even upload a bazillionbyte large file :p
09:19:25 ski 's had downloads of what appeared to be a given file, actually nsecretly download a `.tar.gz' (without the suffix) (as well as have it download a `.html' (again without suffix) that displays some kind of download page, which didn't happen when doing it in $BROWSER)
09:21:01 <Guest75> UPD: yes that's just package.yaml :-)
09:21:53 <cheater> dminuoso: yeah 3.6.2.0 did not fix the issue, it just spits out a different error
09:22:10 <dminuoso> What is the issue you have?
09:26:54 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Quit: leaving)
09:30:20 <cheater> i'm reporting it.
09:30:49 <cheater> tomsmeding: i've also noticed that if i drag across the (non-raw) paste display, and drag the selection out of it, and then paste into a github issue, i get html markup.
09:31:41 <cheater> ugh, how do you put multi-line code in github issues again? ```?
09:32:28 <cheater> tomsmeding: also, i've noticed that you have an issue with encoding... " build-depends: base ^&gt;=4.15.1.0,"
09:32:35 <cheater> https://paste.tomsmeding.com/EGIqYs74#file-1
09:37:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:37:53 <cheater> oh
09:38:08 <cheater> i got it to build, it's just that the error message is unhelpful
09:38:31 <cheater> when you build-depend on a private package, you have to do mypackage:mylib. not just mylib
09:39:36 machinedgod joins (~machinedg@clnet-p10-126.ikbnet.co.at)
09:40:09 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Quit: Ping timeout (120 seconds))
09:40:29 Sciencentistguy joins (~sciencent@hacksoc/ordinary-member)
09:41:24 teo joins (~teo@user/teo)
09:53:03 <tomsmeding> cheater: I think you submitted that file with the &gt; in it, is that possible?
09:53:16 <tomsmeding> I'm quite sure I don't do html replacement on submission, and there's &gt; in the database
09:54:07 <cheater> hmm... i may have copied it from another pastebin over to yours.
09:54:09 <tomsmeding> also I don't get your markup? What exactly do you do to get html markup?
09:54:22 <tomsmeding> cheater: also, yes ```
09:55:26 <cheater> hmm nope, the original pastebin contains >
09:55:27 <cheater> https://dpaste.com//ELNVNWS24
09:56:47 <tomsmeding> cheater: if I copy a snippet over into the input box of my pastebin and then submit, it seems to work fine https://paste.tomsmeding.com/6a6OFOFX
09:56:54 <cheater> yeah, i just tried that as well
09:56:55 <cheater> so what gives?
09:56:58 <tomsmeding> ¯\_(ツ)_/¯
09:57:07 <cheater> maybe it's the same thing that makes your pastebin output html?
09:57:12 <cheater> into the copy paste buffer
09:57:30 <tomsmeding> cheater: ah, the "copy to clipboard" button on dpaste is broken
09:57:52 <tomsmeding> cheater: I cannot reproduce your output-html-into-clipboard thing, and it sounds really scary
09:58:08 <cheater> i don't think i used that button
09:58:17 <cheater> but i may have
09:58:25 <cheater> are you saying the button causes this &gt; ?
09:58:28 <tomsmeding> yes
09:58:34 <tomsmeding> clicking the button copies text with &gt;
09:58:35 <cheater> ah. that's it then.
09:58:42 <cheater> we've solved it
09:58:50 <tomsmeding> well, not your output html into clipboard thing
09:58:56 <cheater> to reproduce the html thing, go to github, start a new bug report
09:59:02 <cheater> also
09:59:06 <cheater> i think you have to be on windows
09:59:18 <tomsmeding> ah, I'm not, I'm on linux :p
09:59:28 <cheater> start dragging in the pastebin's code display, and drag out of it, so eg the title of the file is selected, or something
09:59:35 <Guest75> +1 for linux :-)
09:59:36 <cheater> and then paste into github.
09:59:47 <cheater> you can get a VM easily enough
09:59:49 <tomsmeding> OH that does the thing
10:00:00 <tomsmeding> I suspect this is github trying to do something fancy
10:00:08 <cheater> wellllll
10:00:27 <cheater> rich clipboard only happens if it's /populated/ with something that "can be rich"
10:00:32 <cheater> i don't know the details
10:00:39 <Guest75> Seems that "hidden package" isn't something easy:
10:00:40 <Guest75>     Could not load module ‘Test.QuickCheck’
10:00:40 <cheater> but i bet there's a way to tell html to "don't rich"
10:00:40 <Guest75>     It is a member of the hidden package ‘QuickCheck-2.14.2’.
10:00:43 Lycurgus joins (~juan@user/Lycurgus)
10:00:45 <tomsmeding> cheater: if I create a fresh html file with just <textarea></textarea> and drag into that, there's no html
10:01:06 <tomsmeding> Guest75: add QuickCheck to your build-depends
10:01:10 <cheater> Guest75: idk what your original problem is but maybe you have to add it to build-depends.
10:01:12 <cheater> yeah
10:01:27 <cheater> tomsmeding: into? not out of?
10:02:15 <tomsmeding> cheater: I mean, select some stuff on paste page, then drag into that textarea
10:02:22 <tomsmeding> just like you drag into a github issues text field
10:02:31 <cheater> i didn't drag, i ctrl-c ctrl-v'd
10:02:37 <cheater> but maybe linux only does it when dragging
10:02:44 <Guest75> cheater: tomsmeding: do I always have to specify version manually?
10:02:49 <tomsmeding> cheater: okay sure, same behaviour though
10:02:59 <tomsmeding> cheater: I get html in github issues, not in a plain <textarea>
10:03:13 <tomsmeding> Guest75: no, you can just put 'QuickCheck,' in your build-depends list
10:03:13 <cheater> but yes, the receiving end /also/ has to be willing to accept rich copy paste buffers
10:03:19 <tomsmeding> though it's good practice to add a version range
10:03:20 <cheater> Guest75: fwiw, don't add the version at all
10:03:27 <cheater> Guest75: cabal will figure out versions
10:03:48 <Guest75>     quickcheck needed, but the stack configuration has no specified version (no package with that name found, perhaps there is a typo in a package's build-depends or an omission from the stack.yaml
10:03:49 <cheater> if you have to start adding versions, you'll figure it out
10:03:55 × dtbouo^ quits (~dtbouo@76.145.185.103) (Ping timeout: 252 seconds)
10:03:58 <Guest75> that's what I've got with and without version
10:04:03 <cheater> oh, idk about stack
10:04:07 <cheater> oh
10:04:12 <cheater> you have to do QuickCheck not quickcheck
10:04:16 <Guest75> ah
10:04:17 <cheater> capitalization is important
10:04:38 <Guest75> oh yes. now it works, thanks!
10:04:53 <cheater> tomsmeding: i'm just saying, github expects the rich clipboard to be something sensible. no one's stopping you from putting an .avi of rick roll in the rich clipboard instead :p
10:04:59 <tomsmeding> cheater: copying stuff from dpaste into github issues give the same html mess, copying stuff from google about page doesn't
10:05:05 <tomsmeding> so I'm not the only one doing this "wrong"
10:05:12 <cheater> tomsmeding: what's in the rich clipboard is in your hands :p
10:05:15 <tomsmeding> I have no clue what html attributes to add where to let this not happen
10:05:16 <cheater> hmm yeah
10:05:22 <cheater> but are we aspiring to dpaste...
10:05:22 <cheater> ;)
10:05:23 <cheater> etc
10:05:41 <tomsmeding> sure :p
10:05:50 <cheater> let me file bug reports for "paste.tomsmeding.com does not turn > into &gt;"
10:05:53 thyriaen joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
10:05:53 ccapndave joins (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch)
10:05:57 × ft quits (~ft@p508dbd59.dip0.t-ipconnect.de) (Quit: leaving)
10:06:30 <tomsmeding> cheater: I _could_ add a download link for each file, but I'm not sure what the added value is over the existing [raw] link
10:06:37 <tomsmeding> like, clicking that link and then hitting ctrl+S gives the same
10:06:59 <cheater> yeah you're right
10:07:07 <tomsmeding> keep as-is?
10:07:33 <cheater> sure
10:07:51 <cheater> so this guy is asking the same question as you are. you will not believe the answer! https://stackoverflow.com/questions/30223015/how-can-i-prevent-dom-text-content-from-being-copied-to-clipboard-as-rich-text-i
10:08:52 <cheater> ah, yes. this seems to be the solution https://stackoverflow.com/questions/24831286/removing-rich-text-formatting-for-copy-paste-cross-browser
10:08:59 <tomsmeding> cheater: that's 1. not a solution, and 2. not what google is doing :p
10:09:00 <cheater> -webkit-user-select:none;
10:09:03 <cheater> -webkit-user-select:text;
10:09:31 <cheater> google?
10:09:32 <tomsmeding> oh user-select:text may be it
10:09:39 <cheater> google would have 5 pastebins by now
10:09:50 <cheater> and 10 already decomissioned ones
10:09:54 <tomsmeding> cheater: copying from google's about page doesn't get html stuff
10:10:01 <tomsmeding> was just a test case :
10:10:02 <tomsmeding> :p
10:10:30 <cheater> also add user-select:none for the other stuff that isn't code
10:10:36 <cheater> so it doesn't get selected
10:10:48 <cheater> because no one likes selecting stuff that isn't stuff they would want to select
10:11:58 ubert1 joins (~Thunderbi@91.141.75.105.wireless.dyn.drei.com)
10:12:10 × ubert quits (~Thunderbi@178.165.160.236.wireless.dyn.drei.com) (Ping timeout: 252 seconds)
10:12:10 ubert1 is now known as ubert
10:12:55 <cheater> tomsmeding: can u also add ur thing to the pastebinit command :)
10:13:03 <cheater> it's very useful
10:13:04 <cheater> :)
10:13:24 __monty__ joins (~toonn@user/toonn)
10:14:19 <tomsmeding> which of the >=2 implementations of it
10:15:25 <cheater> idk. the one on ubuntu mate is the one i like
10:15:32 <cheater> because that's the one i get
10:16:09 <cheater> Original-Maintainer: Simon Quigley <tsimonq2@debian.org>
10:16:29 <cheater> Homepage: https://phab.lubuntu.me/source/pastebinit/
10:17:29 abhiroop_ joins (~abhiroop@ext-1-450.eduroam.chalmers.se)
10:19:20 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
10:19:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
10:19:20 finn_elija is now known as FinnElija
10:19:38 perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
10:21:28 <tomsmeding> cheater: looks like you can do this privately on your system; see here for url format https://github.com/tomsmeding/pastebin-haskell#pasting-from-your-terminal
10:21:29 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 246 seconds)
10:21:32 <cheater> tomsmeding: you can probably close that ticket too :p
10:21:50 <tomsmeding> Will do currently on the go :p
10:21:51 <cheater> tomsmeding: right but i don't want to remember stuff :D
10:22:12 <cheater> i just want to do pastebinit --help and have that show me pastebinit -l and have that show me your pastebin is supported
10:22:14 × bilegeek quits (~bilegeek@2600:1008:b011:e74:deb:55dd:b7ff:98a7) (Quit: Leaving)
10:24:26 <tomsmeding> cheater: that readme looks like you can add a file in ~/.pastebinit.d or something
10:24:29 Guest1505 is now known as Sauvin
10:24:56 <cheater> i know. but i also don't want to remember that :p pastebinit would do well to support your pastebin
10:26:17 <tomsmeding> I'm not sure I want instructions to use this pastebin to live on any random person's pc by default
10:26:43 <tomsmeding> I don't have a terribly large disk for the server, and it's a #haskell-focused thing anyway
10:28:23 × Guest75 quits (~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
10:30:01 × CiaoSen quits (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
10:30:52 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
10:36:33 Guest75 joins (~Guest75@178.141.177.81)
10:36:46 × jonrh quits (sid5185@id-5185.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:36:48 × sa1 quits (sid7690@id-7690.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:36:53 × unlucy quits (sid572875@id-572875.tinside.irccloud.com) (Ping timeout: 246 seconds)
10:36:54 × Major_Biscuit quits (~MajorBisc@145.94.173.65) (Ping timeout: 260 seconds)
10:36:56 jonrh joins (sid5185@id-5185.ilkley.irccloud.com)
10:37:00 × saolsen quits (sid26430@id-26430.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:02 × bbhoss quits (sid18216@id-18216.tinside.irccloud.com) (Read error: Connection reset by peer)
10:37:02 × lally quits (sid388228@id-388228.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:02 × davetapley_ quits (sid666@id-666.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:06 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:09 × lexi-lambda quits (sid92601@id-92601.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:09 × tritlo quits (sid58727@user/tritlo) (Read error: Connection reset by peer)
10:37:10 saolsen joins (sid26430@id-26430.lymington.irccloud.com)
10:37:10 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (Read error: Connection reset by peer)
10:37:10 × christiaanb quits (sid84827@id-84827.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:11 × AndreasK quits (sid320732@id-320732.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:12 lally joins (sid388228@id-388228.uxbridge.irccloud.com)
10:37:13 × Firedancer quits (sid336191@id-336191.hampstead.irccloud.com) (Ping timeout: 255 seconds)
10:37:13 × Adeon quits (sid418992@id-418992.lymington.irccloud.com) (Ping timeout: 255 seconds)
10:37:13 × S11001001 quits (sid42510@id-42510.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:13 × SethTisue quits (sid14912@id-14912.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:13 × sooch_ quits (sid533113@id-533113.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:14 × ephemient quits (uid407513@id-407513.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:15 × hendi quits (sid489601@id-489601.lymington.irccloud.com) (Ping timeout: 260 seconds)
10:37:18 AndreasK joins (sid320732@id-320732.uxbridge.irccloud.com)
10:37:19 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:21 × mrianbloom quits (uid350277@id-350277.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:21 × supersven quits (sid501114@id-501114.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:21 × hamishmack quits (sid389057@id-389057.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:22 sooch_ joins (sid533113@id-533113.hampstead.irccloud.com)
10:37:23 ephemient joins (uid407513@id-407513.lymington.irccloud.com)
10:37:24 × tnks quits (sid412124@id-412124.helmsley.irccloud.com) (Read error: Connection reset by peer)
10:37:24 × cbarrett quits (sid192934@id-192934.helmsley.irccloud.com) (Read error: Connection reset by peer)
10:37:28 × acertain quits (sid470584@id-470584.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:28 × ProofTechnique quits (sid79547@id-79547.ilkley.irccloud.com) (Ping timeout: 246 seconds)
10:37:29 × bookshelfdave quits (sid28102@id-28102.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:31 × bradparker quits (sid262931@id-262931.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:33 × gonz_______ quits (sid304396@id-304396.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:33 × chessai quits (sid225296@id-225296.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:33 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
10:37:33 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:33 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:34 × edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (Read error: Connection reset by peer)
10:37:35 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 246 seconds)
10:37:36 × conjunctive quits (sid433686@id-433686.helmsley.irccloud.com) (Read error: Connection reset by peer)
10:37:38 × systemfault quits (sid267009@id-267009.uxbridge.irccloud.com) (Read error: Connection reset by peer)
10:37:38 × money quits (sid532813@user/polo) (Read error: Connection reset by peer)
10:37:39 × spaced quits (uid572193@user/spaced) (Read error: Connection reset by peer)
10:37:40 × Kamuela quits (sid111576@id-111576.tinside.irccloud.com) (Ping timeout: 255 seconds)
10:37:40 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Ping timeout: 255 seconds)
10:37:40 × carter quits (sid14827@id-14827.helmsley.irccloud.com) (Read error: Connection reset by peer)
10:37:40 × megeve quits (sid523379@id-523379.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:42 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
10:37:42 sa1 joins (sid7690@id-7690.ilkley.irccloud.com)
10:37:42 × cln quits (sid336875@id-336875.ilkley.irccloud.com) (Read error: Connection reset by peer)
10:37:42 × agander_m quits (sid407952@id-407952.tinside.irccloud.com) (Read error: Connection reset by peer)
10:37:43 × degraafk quits (sid71464@id-71464.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:43 × integral quits (sid296274@user/integral) (Read error: Connection reset by peer)
10:37:43 × Boarders___ quits (sid425905@id-425905.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:45 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
10:37:46 × hook54321 quits (sid149355@user/hook54321) (Read error: Connection reset by peer)
10:37:46 × joel135 quits (sid136450@id-136450.hampstead.irccloud.com) (Read error: Connection reset by peer)
10:37:46 × hnOsmium0001 quits (uid453710@user/hnOsmium0001) (Read error: Connection reset by peer)
10:37:46 × dy quits (sid3438@user/dy) (Read error: Connection reset by peer)
10:37:46 × bjs quits (sid190364@user/bjs) (Write error: Connection reset by peer)
10:37:47 × nrr____ quits (sid20938@id-20938.lymington.irccloud.com) (Read error: Connection reset by peer)
10:37:47 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Read error: No route to host)
10:37:47 × vito quits (sid1962@user/vito) (Read error: Connection reset by peer)
10:37:58 iphy joins (sid67735@id-67735.lymington.irccloud.com)
10:38:00 chessai joins (sid225296@id-225296.lymington.irccloud.com)
10:38:06 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
10:38:13 lexi-lambda joins (sid92601@2a03:5180:f:4::1:69b9)
10:38:16 agander_m joins (sid407952@2a03:5180:f::6:3990)
10:38:17 hamishmack joins (sid389057@2a03:5180:f:4::5:efc1)
10:38:23 mrianbloom joins (uid350277@id-350277.ilkley.irccloud.com)
10:38:25 cbarrett joins (sid192934@2a03:5180:f:1::2:f1a6)
10:38:27 bookshelfdave joins (sid28102@2a03:5180:f:3::6dc6)
10:38:28 unlucy joins (sid572875@2a03:5180:f::8:bdcb)
10:38:29 cln joins (sid336875@2a03:5180:f:3::5:23eb)
10:38:32 bradparker joins (sid262931@id-262931.uxbridge.irccloud.com)
10:38:36 Adeon joins (sid418992@id-418992.lymington.irccloud.com)
10:38:36 edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com)
10:38:37 gonz_______ joins (sid304396@2a03:5180:f:2::4:a50c)
10:38:38 acertain joins (sid470584@id-470584.hampstead.irccloud.com)
10:38:42 SethTisue joins (sid14912@ilkley.irccloud.com)
10:38:42 systemfault joins (sid267009@id-267009.uxbridge.irccloud.com)
10:38:44 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
10:38:46 ProofTechnique joins (sid79547@id-79547.ilkley.irccloud.com)
10:38:47 Kamuela joins (sid111576@2a03:5180:f::1:b3d8)
10:38:48 conjunctive joins (sid433686@2a03:5180:f:1::6:9e16)
10:38:48 bbhoss joins (sid18216@5.254.36.57)
10:38:48 money joins (sid532813@user/polo)
10:38:49 supersven joins (sid501114@id-501114.ilkley.irccloud.com)
10:38:49 davetapley_ joins (sid666@uxbridge.irccloud.com)
10:38:50 degraafk joins (sid71464@id-71464.lymington.irccloud.com)
10:38:51 megeve joins (sid523379@2a03:5180:f:4::7:fc73)
10:38:57 Boarders___ joins (sid425905@2a03:5180:f:2::6:7fb1)
10:39:01 dy joins (sid3438@user/dy)
10:39:03 bjs joins (sid190364@user/bjs)
10:39:04 integral joins (sid296274@user/integral)
10:39:04 S11001001 joins (sid42510@id-42510.ilkley.irccloud.com)
10:39:08 christiaanb joins (sid84827@id-84827.lymington.irccloud.com)
10:39:10 nrr____ joins (sid20938@id-20938.lymington.irccloud.com)
10:39:10 spaced joins (uid572193@id-572193.ilkley.irccloud.com)
10:39:11 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
10:39:13 hongminhee joins (sid295@tinside.irccloud.com)
10:39:16 carter joins (sid14827@id-14827.helmsley.irccloud.com)
10:39:16 vito joins (sid1962@user/vito)
10:39:16 tritlo joins (sid58727@user/tritlo)
10:39:22 joel135 joins (sid136450@id-136450.hampstead.irccloud.com)
10:39:26 SrPx joins (sid108780@2a03:5180:f:5::1:a8ec)
10:39:28 hnOsmium0001 joins (uid453710@user/hnOsmium0001)
10:39:28 × spaced quits (uid572193@id-572193.ilkley.irccloud.com) (Changing host)
10:39:28 spaced joins (uid572193@user/spaced)
10:39:42 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
10:39:43 hendi joins (sid489601@lymington.irccloud.com)
10:40:21 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:40:23 hook54321 joins (sid149355@user/hook54321)
10:41:04 dtbouo^ joins (~dtbouo@76.145.185.103)
10:45:52 × cods quits (~fred@82-65-232-44.subs.proxad.net) (Ping timeout: 246 seconds)
10:46:05 cods joins (~fred@82-65-232-44.subs.proxad.net)
10:47:28 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
10:48:01 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
10:49:30 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
10:56:57 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
10:59:25 Major_Biscuit joins (~MajorBisc@145.94.173.65)
10:59:49 razetime joins (~quassel@117.193.1.205)
11:04:40 × jinsun quits (~jinsun@user/jinsun) (Read error: Connection reset by peer)
11:05:08 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 255 seconds)
11:09:14 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
11:09:55 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 252 seconds)
11:10:05 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt https://tinyurl.com/4m8d4kd5)
11:10:20 jinsun joins (~jinsun@user/jinsun)
11:12:02 × ccapndave quits (~ccapndave@xcpe-62-167-164-99.cgn.res.adslplus.ch) (Quit: Textual IRC Client: www.textualapp.com)
11:14:39 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c444:d37e:95a5:c717)
11:16:29 × thonkpod_ quits (~thonkpod@user/thonkpod) (Ping timeout: 246 seconds)
11:16:40 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Remote host closed the connection)
11:17:43 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
11:18:20 xff0x joins (~xff0x@2405:6580:b080:900:a421:ba8e:4c73:4420)
11:19:15 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c444:d37e:95a5:c717) (Ping timeout: 260 seconds)
11:23:05 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
11:26:55 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
11:28:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
11:30:40 ec_ joins (~ec@gateway/tor-sasl/ec)
11:36:41 comerijn joins (~merijn@86-86-29-250.fixed.kpn.net)
11:37:34 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
11:39:54 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
11:40:29 × nschoe quits (~q@141.101.51.197) (Ping timeout: 260 seconds)
11:40:29 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
11:40:31 nschoe_ joins (~q@141.101.51.197)
11:40:50 × xff0x quits (~xff0x@2405:6580:b080:900:a421:ba8e:4c73:4420) (Ping timeout: 260 seconds)
11:41:15 × Major_Biscuit quits (~MajorBisc@145.94.173.65) (Quit: WeeChat 3.6)
11:42:37 Sciencentistguy6 joins (~sciencent@hacksoc/ordinary-member)
11:42:52 × machinedgod quits (~machinedg@clnet-p10-126.ikbnet.co.at) (Ping timeout: 252 seconds)
11:44:07 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Read error: Connection reset by peer)
11:44:07 Sciencentistguy6 is now known as Sciencentistguy
11:44:17 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 255 seconds)
11:45:09 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
11:45:15 MajorBiscuit joins (~MajorBisc@145.94.173.65)
11:53:26 xff0x joins (~xff0x@2405:6580:b080:900:a421:ba8e:4c73:4420)
11:57:13 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
12:05:31 × comerijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds)
12:06:53 <bjourne> any tips on how to make ghc compile faster?
12:09:39 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
12:10:13 × phma quits (phma@2001:5b0:210b:fde8:9e53:4765:c808:5b87) (Read error: Connection reset by peer)
12:11:00 phma joins (~phma@host-67-44-208-178.hnremote.net)
12:17:14 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 260 seconds)
12:17:29 __monty__ joins (~toonn@user/toonn)
12:18:49 machinedgod joins (~machinedg@clnet-p10-126.ikbnet.co.at)
12:19:59 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
12:20:29 <Hecate> bjourne: there's a page or two about that: https://downloads.haskell.org/ghc/latest/docs/users_guide/hints.html#
12:20:46 <Hecate> and https://rybczak.net/2016/03/26/how-to-reduce-compilation-times-of-haskell-projects/
12:29:31 × danza quits (~francesco@22.red-79-153-42.dynamicip.rima-tde.net) (Ping timeout: 248 seconds)
12:33:40 <cheater> tomsmeding: ahh, gotcha
12:34:14 × nschoe_ quits (~q@141.101.51.197) (Quit: Switching off)
12:34:19 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
12:34:44 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:36:07 gurkenglas joins (~gurkengla@p548ac72e.dip0.t-ipconnect.de)
12:38:05 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
12:39:34 × jtomas quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 252 seconds)
12:40:04 × michalz quits (~michalz@185.246.207.217) (Ping timeout: 252 seconds)
12:40:06 <dminuoso> bjourne: Mmm, you should ideally start understanding where time is lost in GHC in the first place (profiling!)
12:40:25 <dminuoso> Consider something like `-ddump-timings`
12:40:30 <dminuoso> Identify particular modules
12:40:34 × davetapley_ quits (sid666@uxbridge.irccloud.com) (Ping timeout: 260 seconds)
12:40:34 × SethTisue quits (sid14912@ilkley.irccloud.com) (Ping timeout: 260 seconds)
12:40:42 SethTisue joins (sid14912@id-14912.ilkley.irccloud.com)
12:40:56 <dminuoso> It's probably more effective than guessing or applying unneeded premature optimizations
12:42:56 <dminuoso> As a random example, libraries like megaparsec can - in length of list arguments - expontentially blow up compilation times to the order of 10 minutes on a module. The problem here is that megaparsec ruthlessly INLINE's virtually every binding. This is fixable, but it needs targeted help.
12:43:25 <dminuoso> bjourne: Furthermore, ask yourself why you need GHC to compile faster.
12:43:25 danza joins (~francesco@45.red-79-153-2.dynamicip.rima-tde.net)
12:43:33 <merijn> dminuoso: Because it's not instant >.>
12:43:55 <dminuoso> If its part of a quick "compile to check whether modifications succeed or do the right thing" flow, HLS or ghcide (or just -00 with codegen disabled) are perfectly fine solutions.
12:44:16 <dminuoso> merijn: whats not instant?
12:44:31 <merijn> GHC compilation, which is why I want it faster :p
12:44:39 × dtbouo^ quits (~dtbouo@76.145.185.103) (Ping timeout: 260 seconds)
12:44:42 shapr joins (~user@68.54.166.125)
12:45:05 <dminuoso> Mmm, I think most my beef with compilation speed is just not using ghcide/HLS enough.
12:45:21 dtbouo^ joins (~dtbouo@76.145.185.103)
12:45:35 <dminuoso> Once you have -O0 with codegen disabled, ghc is fairly quick outside of pathological typesystem overuse.
12:45:39 <merijn> That doesn't run code/tests, though. And I want that to be faster too
12:46:01 <merijn> dminuoso: There have definitely been cases where GHC is a bottleneck. Not a massive one, but still
12:46:09 <merijn> And GHC *could* be much faster than it currently is
12:46:32 <merijn> Fortunately 9.x had some performance improvements too
12:46:52 dminuoso is just waiting for "if someone was going to me pay me, I would make GHC much much faster"
12:47:30 <merijn> Naah, I wouldn't, because that's not the changes I'm interested in :p
12:47:44 <merijn> But there are some longer running projects for speeding up GHC and that's Good (TM)
12:47:57 <dminuoso> Heh
12:48:07 <merijn> GHC is far from problematically slow, but it's much slower than it has to be
12:48:10 CiaoSen joins (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
12:51:32 raym joins (~ray@user/raym)
12:54:09 × vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection)
12:54:43 vglfr joins (~vglfr@145.224.100.100)
12:55:37 davetapley_ joins (sid666@id-666.uxbridge.irccloud.com)
13:03:36 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
13:08:59 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 248 seconds)
13:11:43 nate4 joins (~nate@98.45.169.16)
13:12:01 shriekingnoise joins (~shrieking@186.137.167.202)
13:14:57 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:16:29 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
13:19:25 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 252 seconds)
13:23:23 × abrar quits (~abrar@static-108-2-152-54.phlapa.fios.verizon.net) (Ping timeout: 248 seconds)
13:24:40 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
13:30:44 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
13:30:59 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
13:32:41 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
13:36:13 × Xeroine quits (~Xeroine@user/xeroine) (Ping timeout: 252 seconds)
13:37:43 Xeroine joins (~Xeroine@user/xeroine)
13:39:24 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
13:42:55 <merijn> Early heads up for anyone near the Netherlands that the annual Dutch FP day has survived COVID and is back to it's usual timing in January: https://set.win.tue.nl/nl-fp-day-2023/
13:43:16 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
13:44:24 × dtbouo^ quits (~dtbouo@76.145.185.103) (Remote host closed the connection)
13:44:44 Sciencentistguy8 joins (~sciencent@hacksoc/ordinary-member)
13:46:11 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Read error: Connection reset by peer)
13:46:11 Sciencentistguy8 is now known as Sciencentistguy
13:48:49 × MajorBiscuit quits (~MajorBisc@145.94.173.65) (Ping timeout: 260 seconds)
13:50:28 MajorBiscuit joins (~MajorBisc@145.94.173.65)
13:58:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
13:59:51 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
14:01:28 × razetime quits (~quassel@117.193.1.205) (Ping timeout: 252 seconds)
14:01:50 × gurkenglas quits (~gurkengla@p548ac72e.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
14:02:00 razetime joins (~quassel@117.193.1.205)
14:08:55 michalz joins (~michalz@185.246.207.215)
14:11:13 × Guest75 quits (~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
14:11:26 phma_ joins (phma@2001:5b0:215d:9f08:82a6:5ea7:d17:d96d)
14:14:29 × phma quits (~phma@host-67-44-208-178.hnremote.net) (Ping timeout: 260 seconds)
14:16:06 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
14:16:08 irrgit joins (~irrgit@146.70.27.218)
14:19:08 × abhiroop_ quits (~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 246 seconds)
14:20:53 × Flow quits (~none@salem.informatik.uni-erlangen.de) (Quit: WeeChat 3.5)
14:21:01 × mmhat quits (~mmh@p200300f1c700b8c5ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
14:21:07 <dminuoso> Is there a rotate with carry primop?
14:21:07 Flow joins (~none@gentoo/developer/flow)
14:22:20 <dminuoso> Or mmm. I think Ill rather ask in #ghc
14:24:23 <remexre> is there a way to add custom constraints to a deriving clause? I'm using an associated type, so I really only want a (Eq (AssocType a) => Eq (MyType a)) instance, but I think the derive is giving me an (Eq a => Eq (MyType a)) instance
14:24:56 <dminuoso> remexre: StandaloneDeriving
14:25:14 <remexre> oh cool, thanks!
14:26:23 <kuribas> funny how Python has embraced lazy IO fully.
14:26:40 <dminuoso> kuribas: what lazy io do they have?
14:26:43 <kuribas> While haskell lazyness is usually considered a complication
14:27:03 <kuribas> dminuoso: mostly attributes which run a side-effect.
14:27:22 <dminuoso> That's not really lazy IO, though
14:27:39 <kuribas> dminuoso: it is when it's used with caching.
14:27:45 <dminuoso> I dont think the expression `lazy IO` has any meaning in a language that does not differentiate between execution and evaluation
14:28:01 ystael joins (~ystael@user/ystael)
14:28:32 <kuribas> when I see an attribute in Python, I consider it as a "value", not some function that runs underneath.
14:29:11 <dminuoso> kuribas: Given that __getattr__ is a thing, that assumption is already flawed.
14:30:08 <kuribas> https://dev.to/thibaultduponchelle/python-lazy-loading-of-an-attribute-aij
14:30:13 <kuribas> they call it lazy loading.
14:30:16 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:30:33 <dminuoso> kuribas: price is a proper method.
14:30:48 <kuribas> price?
14:31:12 <dminuoso> In that blog article.
14:31:37 <kuribas> dminuoso: it's an attribute
14:31:50 <kuribas> you call it as my_gift.price
14:32:06 <kuribas> the fact that it is actually a "method" is hidden from the syntax.
14:32:23 nschoe joins (~q@141.101.51.197)
14:33:04 jonathanx__ joins (~jonathan@c-5eea70b8-74736162.cust.telenor.se)
14:33:06 <kuribas> dminuoso: if you want to be technically correct, you could as well say that any haskell "value" can execute arbitrary IO (unsafePerformIO).
14:33:32 <kuribas> I find lazy attribute loading very much in spirit of Lazy IO, with all the problems that it gives.
14:33:48 <dminuoso> I guess so yeah
14:35:14 × CiaoSen quits (~Jura@p200300c9571247002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
14:35:35 <lortabac> kuribas: I agree that it's morally similar, but in Python once you know that 'price' is actually a procedure that doesn't require parentheses, then you can easily understand when the IO actions run
14:35:50 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 260 seconds)
14:36:06 <lortabac> whereas Haskell evaluation is less predictable
14:36:17 abhiroop_ joins (~abhiroop@ext-1-450.eduroam.chalmers.se)
14:38:44 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
14:38:56 Sgeo joins (~Sgeo@user/sgeo)
14:41:48 eddiejessup joins (uid575763@id-575763.tinside.irccloud.com)
14:44:13 <dminuoso> lortabac: its not just the lack of parenthesis, but the fact that evaluation order is unspecified.
14:44:33 <dminuoso> So once you unsafeInterleaveIO - it becomes near impossible to predict when things are actually triggered
14:46:28 <lortabac> dminuoso: AFAIK in Python the surprise is only in the lack of parentheses
14:46:40 <dminuoso> Oh okay yeah
14:46:54 <lortabac> replace 'price' with 'price()' and it's fully predictable when IO runs
14:47:44 × danza quits (~francesco@45.red-79-153-2.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
14:47:48 <lortabac> I wonder why these hidden methods exist, I can't see any sane purpose
14:48:15 <lortabac> JavaScript has them as well IIRC
14:48:20 <geekosaur> to replace a stored value with a computed one without having to change code
14:48:58 <kuribas> lortabac: you "know" it how?
14:49:46 <yin> can anyone help me understand Data.Set.alterF ?
14:50:20 <merijn> yin: Maybe? :p
14:50:22 <merijn> Depends what confuses you
14:50:45 <dminuoso> yin: All alterF variants come with a big example, that should illustrate it well.
14:50:59 Guest75 joins (~Guest75@178.141.177.81)
14:51:08 <yin> ok so i have `alterF pure 6 $ fromList [0..7]`
14:51:39 phma_ is now known as phma
14:52:01 <dminuoso> `alterF pure` is roughly equivalent to just `const id`, it neither modifies/deleted/adds nor does it run any effect.
14:52:43 <lortabac> kuribas: the same way you would know that a Haskell function performs lazy IO, either it's documented or you have read the source code
14:52:45 <yin> i guess i don't understand how i should be using the Functor
14:53:12 <dminuoso> yin: If we pretend the functor didnt exist, that is:
14:53:33 <lortabac> kuribas: the difference is that in Haskell *even if you know* you can get surprising behavior
14:53:35 <dminuoso> alter :: (Maybe a -> Maybe a) -> k -> Map k a -> Map k a
14:53:42 <merijn> yin: The Applicative lets you "escape" information from the alter
14:53:44 <dminuoso> yin: ^- would this make sense what it does and how you should use it?
14:53:54 <merijn> yin: Like, suppose you wanted to know "did I remove a key or not?"
14:54:28 <dminuoso> yin: alterF adds just the ability to collect an "effect
14:54:35 <dminuoso> while you inspect the point you want to alter
14:55:01 <dminuoso> effect in the sense of "running IO", throwing exceptions, collecting validation errors, exfiltrating a previous value
14:55:15 <dminuoso> and because its "just functor", you can use something as mundane like (String,)
14:55:15 <merijn> yin: ok, so here's something I would use alterF for: I have a 2 sets, I want to remove all values in set 2 from set 1 and I want to log which values were removed
14:55:35 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
14:55:35 Guest62 joins (~Guest62@122.162.149.190)
14:55:44 <Guest62> hey
14:55:47 <dminuoso> Hi Guest62
14:55:47 <merijn> yin: Computing which values are in 1 and 2 (and then removing them) requires you to compute the same stuff a bunch of times
14:56:00 <merijn> yin: with alterF you can just accumulate this data "directly" as you remove stuff
14:56:29 × Guest62 quits (~Guest62@122.162.149.190) (Client Quit)
14:56:36 <dminuoso> yin: One thing I regularly do, is write: alterF go k m where go Nothing = pure (Just xyz); go (Just x) = throwIO (KeyAlreadyExists x)
14:56:48 <dminuoso> Which allows me to populate a map but throw an exception when there's a key conflict
14:56:51 <merijn> oh, yeah, duplicate inserts are a nice example too
14:57:10 <merijn> dminuoso: I prefer aggregating all duplicates with Validation or something and *then* throwing ;)
14:57:27 <dminuoso> Sure, you can just use ([k],) as a functor too
14:57:43 <yin> ok just a minute let me parse that
14:59:28 danza joins (~francesco@45.red-79-153-2.dynamicip.rima-tde.net)
15:00:20 × causal quits (~user@50.35.83.177) (Quit: WeeChat 3.7.1)
15:04:48 <carbolymer> over the last 2 weeks I got a few GHC runtime errors: https://bpa.st/2XDQ - any ideas what I'm looking at? there's nothing more in the output besides link to GHC bugtracker
15:04:56 <carbolymer> I don't have a repro for that yet :|
15:05:02 × catern quits (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (Ping timeout: 276 seconds)
15:05:18 <yin> ok so following the types: alterF :: ... => (Bool -> f Bool) -> a -> Set a -> f (Set a)
15:05:52 <merijn> carbolymer: :O
15:05:57 <merijn> carbolymer: Which GHC version and which arch?
15:06:09 <carbolymer> merijn: GHC 9.2.3, arch tbd
15:06:22 <merijn> carbolymer: Also, might wanna ask in #ghc
15:07:01 <yin> alterF (pure :: a -> f a) (6 :: Int) (fromList [0..7] :: Set Int) -- Shouldn't the result be :: f (Set Int) ?
15:07:48 <carbolymer> merijn: forgot that this channel existed, thanks
15:07:50 <yin> but `:t alterF pure 6 (fromList [0..7]) ==> Set Int`
15:07:54 <merijn> yin: Yes
15:08:17 <merijn> yin: In IO 'f' is probably defaulted to IO and stripped off
15:08:23 <merijn> err
15:08:25 <merijn> in ghci
15:08:25 <yin> oh
15:08:59 <yin> i realized that as soon as i wrote it
15:09:11 catern joins (~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
15:09:36 <merijn> λ :t alterF pure 6 (fromList [0..7])
15:09:36 <merijn> alterF pure 6 (fromList [0..7]) :: (Ord a, Applicative f, Num a, Enum a) => f (Set a)
15:09:39 <[Leary]> carbolymer: 9.2.1--3 are known to be broken; we had a lot of segfaults in xmonad.
15:09:46 <[Leary]> Fixed in 9.2.4.
15:09:59 <geekosaur> also 9.2.5 came out this morning
15:10:05 <carbolymer> geekosaur: :O
15:10:22 <carbolymer> [Leary]: thanks, that's our intuition, but I'd like to know the root cause
15:11:19 <geekosaur> root cause of the xmonad one was that cmm was eliding a join point and a touch# went along with it, causing heap objects to be gcd prematurely
15:11:26 <yin> merijn: all my doubts are gone. thanks!
15:11:50 jtomas joins (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net)
15:12:48 <merijn> Usually the "use" of alterF becomes clear as soon as you hit a case where you wanna do some operation on a container that's not supported by the existing API
15:13:20 <merijn> i.e. stuff where the API makes you do 2, 3, whatever passes of the same data structure to get the result you want. Generally alterF can help you turn those kinda things into single pass operations
15:14:38 <yin> if i have `f x` in multiple guards am i computing it everytime a guard fails or is this memoized?
15:14:38 × jonathanx__ quits (~jonathan@c-5eea70b8-74736162.cust.telenor.se) (Read error: Connection reset by peer)
15:14:50 <yin> (memoized might not be the word)
15:15:03 <kuribas> lortabac: well, I expect that haskell value don't use unsafePerformIO, or lazyIO, or if they do, it should not be observable.
15:15:08 <carbolymer> geekosaur: what's cmm?
15:15:24 <kuribas> lortabac: that's also how I would structure Python code.
15:16:02 jonathanx__ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
15:16:29 <geekosaur> the intermediate language below STG. it's kinda halfway between asm and C in complexity
15:16:45 <geekosaur> https://gitlab.haskell.org/ghc/ghc/-/issues/21708 is the ticket for this
15:17:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:c444:d37e:95a5:c717)
15:17:36 <merijn> yin: Unspecified
15:17:47 <merijn> yin: If you wanna be sure, move it into a where binding
15:17:52 gensyst joins (gensyst@user/gensyst)
15:17:59 <merijn> yin: That gives you 98% certainty it'll be computed once
15:18:09 <yin> ha
15:18:47 <gensyst> Is "mkStdGen :: Int -> StdGen" guaranteed to give same generator (producing same random sequence) across runs, OSes, random library versions, etc.?
15:18:51 <merijn> yin: GHC might still duplicate stuff it deems "cheap", but in general if a computation is significant naming it pretty much guarantees single evaluation
15:18:53 <carbolymer> geekosaur: oh looks similar, thanks!
15:18:59 <gensyst> (For the same input seed Int.)
15:19:02 <merijn> gensyst: afaik no
15:19:10 <merijn> gensyst: At least not in older versions of random
15:19:16 <merijn> I think newer versions might?
15:19:46 <dminuoso> yin: you can improve that 98% by adding {-# NOINLINE foo #-}
15:20:07 <dminuoso> So we do have these heavy tools to obtain sharing guarantees
15:20:19 <dminuoso> This is particularly needed for top-level IORefs (global mutable state)
15:20:36 <dminuoso> i.e. {-# NOINLINE counter #-} counter = unsafePerformIO (newIORef 0)
15:21:14 <dminuoso> But most of the time its really not needed, unless a) your `f a` is actually not shared and a relevant hot spot.
15:21:26 × irrgit quits (~irrgit@146.70.27.218) (Remote host closed the connection)
15:21:31 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:c444:d37e:95a5:c717) (Ping timeout: 252 seconds)
15:21:54 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:22:20 irrgit joins (~irrgit@146.70.27.218)
15:22:40 <merijn> gensyst: https://hackage.haskell.org/package/random-1.2.1.1/docs/System-Random.html#g:8
15:23:24 <merijn> There are bindings for PCG random on hackage, so for any case where you want deterministic randomness you might wanna look into that
15:24:27 <gensyst> merijn, thanks!
15:25:08 <merijn> Since afaik PCG is one of the fastest and highest quality PRNG implementations
15:26:10 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
15:26:15 <merijn> (Obviously not suitable for CS-PRNG, but if you want determinism that's probably not what you are looking for)
15:26:47 <gensyst> merijn, so why use random library then?
15:26:52 <gensyst> only if you've got problems with using c lib?
15:27:05 <gensyst> s/why/when
15:27:12 <merijn> gensyst: the random library does 2 things
15:27:30 <merijn> 1) it specifies a generic interface for PRNG implementations
15:27:39 <merijn> 2) it provides a number of basic PRNG implementations
15:28:03 <merijn> There are more specific/niche implementations of PRNGs that are built on top of random's interface
15:28:37 <merijn> The basic PRNG implementations are there for people who don't have particular demands of their PRNG
15:29:29 <merijn> For example, the pcg-random package uses the same interface/API as random, but with it's PCG being the underlying PRNG
15:29:54 <merijn> Same for things like mwc-random
15:30:16 × danso quits (danso@2600:3c03::f03c:91ff:fe05:6954) (Quit: ZNC - https://znc.in)
15:31:12 <gensyst> nice
15:31:47 <merijn> So you can easily write something using random's builtin generators (or even generator agnostic) and hook it up to something more specific later
15:32:42 danso joins (~danso@danso.ca)
15:37:39 mmhat joins (~mmh@p200300f1c700b8c5ee086bfffe095315.dip0.t-ipconnect.de)
15:40:14 × Xeroine quits (~Xeroine@user/xeroine) (Ping timeout: 260 seconds)
15:41:20 <yin> why is IntSet not Foldable?
15:41:23 Xeroine joins (~Xeroine@user/xeroine)
15:42:06 <merijn> Wrong kind
15:42:27 <merijn> Foldable :: (* -> *) -> Constraint
15:42:33 <merijn> But IntSet :: *'
15:42:46 <merijn> (As opposed to 'Set :: * -> *')
15:45:04 <yin> oh
15:45:28 <yin> ok we use `member` instead of `elem`
15:45:47 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 248 seconds)
15:46:46 × mmhat quits (~mmh@p200300f1c700b8c5ee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.7.1)
15:46:54 Sciencentistguy2 joins (~sciencent@hacksoc/ordinary-member)
15:47:17 <gensyst> merijn, are you sure pcg are reproducible (same seeds) across runs, OSes, random library versions, etc?
15:48:59 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 260 seconds)
15:48:59 Sciencentistguy2 is now known as Sciencentistguy
15:50:02 × kimjetwav quits (~user@2607:fea8:235e:b600:fa57:ff7b:bed3:61bf) (Quit: reboot time)
15:50:35 <merijn> gensyst: Yes, because everything about it is fixed (i.e. it always produces 32bit random values from 64 bit state) and all the high level stuff is on top of that. So with the same initialisation state and generation order you always get the same
15:51:29 <gensyst> very nice
15:52:46 × mokee quits (~mokee@37.228.215.235) (Remote host closed the connection)
15:54:14 × MajorBiscuit quits (~MajorBisc@145.94.173.65) (Ping timeout: 260 seconds)
15:55:41 MajorBiscuit joins (~MajorBisc@145.94.173.65)
16:00:01 <tomsmeding> merijn: why does the background image on the fp day website look distinctly like imperative OOP code
16:00:24 <tomsmeding> I see `; i++)` and `.removeClass()`
16:00:27 infinity0 joins (~infinity0@pwned.gg)
16:00:34 <tomsmeding> actually it looks very much like JS
16:00:53 <tomsmeding> with jquery, at that
16:04:13 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:2daa:8b78:9a2e:bfe4) (Quit: WeeChat 2.8)
16:04:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
16:05:33 <merijn> tomsmeding: Because that appears to be the default theme of the faculty hosting this year's NL-FP day?
16:05:52 <merijn> Which was probably picked by some designer searching for a "code" stock image :p
16:07:23 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
16:07:31 <tomsmeding> "shows code, lgtm"
16:08:14 <merijn> I mean, in all likelihood the faculty overall probably does more imperative stuff than FP
16:08:51 <geekosaur> who said the faculty even had input into it? I could see the designer picking "shows code" regardless
16:09:51 <merijn> that too
16:11:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:11:32 × arahael quits (~arahael@124.168.94.52) (Ping timeout: 248 seconds)
16:14:37 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
16:15:07 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
16:15:22 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
16:18:50 mvk joins (~mvk@2607:fea8:5ce3:8500::4b68)
16:22:27 <yin> i have recently seen an ad for a Java course that featured a very beautiful girl sitting in a gaming chair, lokking over her shoulder at the camera while playing a racing game, mid race, with the mouse
16:22:32 <yin> so...
16:24:37 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6)
16:24:57 arahael joins (~arahael@193-119-109-208.tpgi.com.au)
16:26:24 <pavonia> Maybe she was testing the game she has programmed in Java
16:30:07 <yin> nah, she was smiling
16:30:20 <kuribas> lol :)
16:30:25 nate4 joins (~nate@98.45.169.16)
16:30:44 <kuribas> java and smiling is very suspicious.
16:31:19 ss4 joins (~wootehfoo@user/wootehfoot)
16:31:46 gera joins (~gera@user/gera)
16:33:01 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
16:34:29 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 260 seconds)
16:36:01 arjun joins (~arjun@user/arjun)
16:36:48 econo joins (uid147250@user/econo)
16:39:39 abhiroop joins (~abhiroop@ext-1-450.eduroam.chalmers.se)
16:39:44 × abhiroop_ quits (~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 260 seconds)
16:40:21 beka joins (~beka@104.193.170.240)
16:40:40 × machinedgod quits (~machinedg@clnet-p10-126.ikbnet.co.at) (Ping timeout: 260 seconds)
16:55:29 × MajorBiscuit quits (~MajorBisc@145.94.173.65) (Ping timeout: 260 seconds)
16:57:48 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
16:58:12 × pyrex_ quits (~pyrex@user/pyrex) (Quit: Leaving)
16:59:55 × abhiroop quits (~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 248 seconds)
17:00:16 <gensyst> merijn, https://hackage.haskell.org/package/pcg-random-0.1.3.7/docs/System-Random-PCG.html
17:01:23 <gensyst> merijn, would it be ok to just use initFrozen n 1 with n starting at some starting point and increasing it by 1 every time i want a new random number?
17:01:45 pyrex joins (~quassel@user/pyrex)
17:01:59 <gensyst> Since those random number functions, e.g. "uniform", don't return a new generator for me alongside the random number
17:02:08 <gensyst> so it seems like i have to create a new generator from scratch every time
17:02:25 <gensyst> (In initFrozen n 1, the idea is to not worry about the second number)
17:03:12 <gensyst> Hmm oh. We have "withFrozen"
17:11:33 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1))
17:12:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6) (Remote host closed the connection)
17:14:55 abhiroop joins (~abhiroop@ext-1-450.eduroam.chalmers.se)
17:16:07 jao joins (~jao@92.233.85.247)
17:16:09 money is now known as Guest6765
17:17:03 × thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Remote host closed the connection)
17:22:43 × razetime quits (~quassel@117.193.1.205) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:24:18 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
17:25:34 thyriaen joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
17:26:56 thyriaen_ joins (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1)
17:29:39 × gensyst quits (gensyst@user/gensyst) (Quit: Leaving)
17:33:30 zeenk joins (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494)
17:33:54 × kenaryn quits (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr) (Quit: leaving)
17:33:59 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds)
17:35:41 danso_o joins (danso@2600:3c03::f03c:91ff:fe05:6954)
17:36:19 × danso quits (~danso@danso.ca) (Ping timeout: 260 seconds)
17:36:19 danso_o is now known as danso
17:36:36 × meinside quits (uid24933@id-24933.helmsley.irccloud.com) (Quit: Connection closed for inactivity)
17:36:54 × gera quits (~gera@user/gera) (Ping timeout: 260 seconds)
17:39:22 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:40:27 × Guest75 quits (~Guest75@178.141.177.81) (Quit: Client closed)
17:40:49 Guest75 joins (~Guest75@178.141.177.81)
17:44:02 × teo quits (~teo@user/teo) (Ping timeout: 252 seconds)
17:47:03 × mbuf quits (~Shakthi@49.204.130.107) (Quit: Leaving)
17:51:14 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.7.1)
17:53:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:56:21 akegalj joins (~akegalj@93-138-41-233.adsl.net.t-com.hr)
18:00:28 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6)
18:02:35 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
18:04:26 Tuplanolla joins (~Tuplanoll@91-159-69-11.elisa-laajakaista.fi)
18:13:07 × michalz quits (~michalz@185.246.207.215) (Ping timeout: 252 seconds)
18:18:00 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:19:03 Guest6765 is now known as money
18:19:29 × JimL quits (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 260 seconds)
18:19:58 JimL joins (~quassel@89-162-2-132.fiber.signal.no)
18:20:44 michalz joins (~michalz@185.246.207.217)
18:26:12 AlexNoo_ joins (~AlexNoo@178.34.163.65)
18:29:31 × Alex_test quits (~al_test@178.34.150.205) (Ping timeout: 248 seconds)
18:29:31 × AlexNoo quits (~AlexNoo@178.34.150.205) (Ping timeout: 248 seconds)
18:29:31 × AlexZenon quits (~alzenon@178.34.150.205) (Ping timeout: 248 seconds)
18:35:05 AlexZenon joins (~alzenon@178.34.163.65)
18:35:43 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:36:24 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 260 seconds)
18:36:47 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
18:37:17 azimut joins (~azimut@gateway/tor-sasl/azimut)
18:41:42 Alex_test joins (~al_test@178.34.163.65)
18:42:33 Alex_test_ joins (~al_test@178.34.163.65)
18:42:34 × AlexZenon quits (~alzenon@178.34.163.65) (Ping timeout: 252 seconds)
18:43:44 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 246 seconds)
18:43:55 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 252 seconds)
18:44:45 beteigeuze joins (~Thunderbi@bl14-81-220.dsl.telepac.pt)
18:45:31 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:47:44 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 255 seconds)
18:48:05 <yin> what's the current idiomatic way of updating a record? i'm still doing `r { x = f (x r) }`
18:48:34 ChaiTRex joins (~ChaiTRex@user/chaitrex)
18:48:44 <[exa]> probably lenses but I'd be very interested in anything less lightweight
18:48:48 <[exa]> *more lightweight
18:48:59 <yin> yes i want to avoid lenses
18:49:46 <EvanR> I do record update syntax
18:49:57 <money> Beep
18:50:08 AlexZenon joins (~alzenon@178.34.163.65)
18:50:17 <EvanR> if I will update a field in many places, define a "functional reference" style lens
18:50:31 <EvanR> it doesn't require installing any lens library
18:50:36 <monochrom> I still use record update syntax.
18:51:26 × Alex_test_ quits (~al_test@178.34.163.65) (Ping timeout: 246 seconds)
18:51:44 <EvanR> onX :: (X -> X) -> T -> T
18:51:56 AlexZenon_2 joins (~alzenon@178.34.163.65)
18:52:21 <monochrom> And yeah defining your own minimal lens clone works too if you have repetitively many similar update sites.
18:52:55 <[exa]> +1 for `onX`, concise&powerful
18:53:54 × beteigeuze quits (~Thunderbi@bl14-81-220.dsl.telepac.pt) (Ping timeout: 260 seconds)
18:54:29 × ksu quits (~ksu@user/prtr) (Ping timeout: 268 seconds)
18:56:16 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
18:56:49 <monochrom> I just feel that usually the update is not as simple as x = f (x r).
18:57:21 <monochrom> Equivalently not as simple as (X->X) -> T->T
18:57:51 × arjun quits (~arjun@user/arjun) (Remote host closed the connection)
18:58:24 <monochrom> I mean it sometimes need to be (T->X) -> T->T. The new X depends on other fields of the record, not just the old X field.
18:59:52 × thyriaen_ quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving)
19:00:05 × AlexZenon_2 quits (~alzenon@178.34.163.65) (Ping timeout: 260 seconds)
19:00:05 × AlexZenon quits (~alzenon@178.34.163.65) (Ping timeout: 260 seconds)
19:00:10 × abhiroop quits (~abhiroop@ext-1-450.eduroam.chalmers.se) (Ping timeout: 252 seconds)
19:00:17 <yin> monochrom: that's exactly the situation i find myself in all the time
19:00:48 <yin> even depending on fields of parent records
19:01:59 × jlgw quits (~jw@83-233-104-81.cust.bredband2.com) (Remote host closed the connection)
19:02:04 × Alex_test quits (~al_test@178.34.163.65) (Ping timeout: 260 seconds)
19:02:16 <monochrom> I just start with low-tech elementary record update syntax, then look for opportunities for normal refactoring.
19:04:13 Alex_test joins (~al_test@178.34.163.65)
19:05:17 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
19:06:53 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:11:04 Alex_test_ joins (~al_test@178.34.163.65)
19:12:00 <EvanR> monochrom, there should be an entire field of study turned snake oil industry dedicated to updating the fields in the presence of all the other fields of yourself xD
19:12:45 <EvanR> yin, you just said "parent records", so you basically just admitted you need lenses now
19:13:00 <EvanR> or not heavily nesting the records webstyle
19:14:36 × Alex_test quits (~al_test@178.34.163.65) (Ping timeout: 252 seconds)
19:14:45 <EvanR> on needing to update a record using more than one field there is some nice syntax for that, f (r {x=x, y=y, z=z}) = r {y = g x y z}
19:15:51 <EvanR> made less atrocious using NamedFieldPuns, perhaps
19:16:47 AlexZenon joins (~alzenon@178.34.163.65)
19:16:51 <yin> EvanR: 2 levels is usually my maximum
19:17:29 <yin> or so i like to pretend
19:17:39 <EvanR> you'd think only 2 means it's not as painful... but...
19:17:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:17:48 <ski> `(T -> X) -> (T -> T)' looks sortof `MonoComonad'ish
19:17:55 <dolio> Yeah, that's a comonad.
19:18:10 <ski> well, it's not plymorphic, but ad hoc
19:18:21 <dolio> Right.
19:18:55 <dolio> It's probably a particular coalgebra, rather than the cofree coalgebra.
19:20:34 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6) (Remote host closed the connection)
19:22:53 <ski> now i'm wondering if there's something `loeb'ish here
19:22:53 <ski> hm, best i can think of would be `(X -> T -> X) -> (T -> T)' .. dunno if that actually works
19:22:53 AlexZenon_2 joins (~alzenon@178.34.163.65)
19:22:54 <ski> well, or `(X -> T -> X) -> (Y -> T -> Y) -> (T -> T)' &c.
19:22:54 defanor_ joins (~defanor@tart.uberspace.net)
19:22:54 × litharge quits (litharge@libera/bot/litharge) (Remote host closed the connection)
19:23:04 loonycyborg_ joins (loonycybor@chat.chantal.wesnoth.org)
19:23:09 Alex_test joins (~al_test@178.34.163.65)
19:23:55 farn_ joins (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505)
19:24:07 × dispater quits (~dispater@user/brprice) (Ping timeout: 246 seconds)
19:24:07 × Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (Ping timeout: 246 seconds)
19:24:07 × nonzen quits (~nonzen@user/nonzen) (Ping timeout: 246 seconds)
19:24:07 × loonycyborg quits (loonycybor@wesnoth/developer/loonycyborg) (Ping timeout: 246 seconds)
19:24:07 × acidsys quits (~crameleon@openSUSE/member/crameleon) (Ping timeout: 246 seconds)
19:24:07 × defanor quits (~defanor@tart.uberspace.net) (Ping timeout: 246 seconds)
19:24:07 × fvr quits (ef3e56ca8b@2604:bf00:561:2000::3c4) (Ping timeout: 246 seconds)
19:24:07 × hays quits (rootvegeta@fsf/member/hays) (Remote host closed the connection)
19:24:07 × fgaz quits (~fgaz@2001:470:69fc:105::842) (Ping timeout: 246 seconds)
19:24:07 × aidy quits (~aidy@2001:470:69fc:105::c7b4) (Ping timeout: 246 seconds)
19:24:07 × ozkutuk[m] quits (~ozkutuk@2001:470:69fc:105::2:9af8) (Ping timeout: 246 seconds)
19:24:07 × silky[m] quits (~noonvande@2001:470:69fc:105::2:943c) (Ping timeout: 246 seconds)
19:24:07 × july541[m] quits (~july541ma@2001:470:69fc:105::1:e416) (Ping timeout: 246 seconds)
19:24:07 × Deide quits (~deide@user/deide) (Ping timeout: 246 seconds)
19:24:07 × farn quits (~farn@2a03:4000:7:3cd:d4ab:85ff:feeb:f505) (Ping timeout: 246 seconds)
19:24:07 × b0o quits (0e4a0bf4c9@2604:bf00:561:2000::1bf) (Ping timeout: 246 seconds)
19:24:07 × VarikValefor[m] quits (~varikvale@2001:470:69fc:105::a5d) (Ping timeout: 246 seconds)
19:24:07 × Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Ping timeout: 246 seconds)
19:24:07 × tiziodcaio quits (~tiziodcai@2001:470:69fc:105::1:2bf8) (Ping timeout: 246 seconds)
19:24:07 × MangoIV[m] quits (~mangoivma@2001:470:69fc:105::2:8417) (Ping timeout: 246 seconds)
19:24:07 × JensPetersen[m] quits (~juhp@2001:470:69fc:105::6e9) (Ping timeout: 246 seconds)
19:24:07 × unclechu quits (~unclechu@2001:470:69fc:105::354) (Ping timeout: 246 seconds)
19:24:07 × jmcantrell quits (~jmcantrel@user/jmcantrell) (Ping timeout: 246 seconds)
19:24:07 × fendor[m] quits (~fendormat@2001:470:69fc:105::fcbd) (Ping timeout: 246 seconds)
19:24:07 × nshepperd2 quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Ping timeout: 246 seconds)
19:24:08 × JonathanWatson[m quits (~jjwmatrix@2001:470:69fc:105::2:a544) (Ping timeout: 246 seconds)
19:24:08 × VanceIsM7[m] quits (~vanceism7@2001:470:69fc:105::3ad) (Ping timeout: 246 seconds)
19:24:08 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
19:24:08 <EvanR> submitted for the approval of the midnight society, a paradigm where tree of records are generated for read only purposes, while domain data intended to be persistent and updated arbitrarily is kept in something like a relational database
19:24:08 × AlexZenon quits (~alzenon@178.34.163.65) (Ping timeout: 252 seconds)
19:24:08 × Alex_test_ quits (~al_test@178.34.163.65) (Ping timeout: 246 seconds)
19:24:09 litharge joins (litharge@libera/bot/litharge)
19:24:12 × jao quits (~jao@92.233.85.247) (Ping timeout: 260 seconds)
19:24:18 dispater- joins (~dispater@user/brprice)
19:24:22 Taneb0 joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0)
19:24:25 nonzen_ joins (~nonzen@user/nonzen)
19:24:42 fgaz joins (~fgaz@2001:470:69fc:105::842)
19:24:46 ft joins (~ft@p508dbd59.dip0.t-ipconnect.de)
19:24:46 <ski> fmapLoebXY upX upY t0 = t1
19:24:48 <ski> where
19:24:52 ozkutuk[m] joins (~ozkutuk@2001:470:69fc:105::2:9af8)
19:24:54 <ski> t1 = t0 {x = upX (x t0) t1,y = upY (y t0) t1}
19:24:56 <ski> basically
19:25:17 <ski> dolio : elaborate ?
19:25:21 b0o joins (0e4a0bf4c9@2604:bf00:561:2000::1bf)
19:25:32 silky[m] joins (~noonvande@2001:470:69fc:105::2:943c)
19:26:01 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
19:26:59 <dolio> Actually, it looks more like an algebra.
19:27:36 <dolio> There's a correspondence between lenses and coalgebras of store.
19:27:39 × Alex_test quits (~al_test@178.34.163.65) (Ping timeout: 248 seconds)
19:28:05 Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0)
19:28:06 <ski> of course, `fmapLoebXY' doesn't (easily) allow you to depend on the old field values of other fields .. but now that's what `loeb' does
19:28:06 MangoIV[m] joins (~mangoivma@2001:470:69fc:105::2:8417)
19:28:49 <ski> s/does/is known for/
19:29:19 Alex_test joins (~al_test@178.34.163.65)
19:29:37 july541[m] joins (~july541ma@2001:470:69fc:105::1:e416)
19:29:39 aidy joins (~aidy@2001:470:69fc:105::c7b4)
19:29:42 Deide joins (~deide@user/deide)
19:30:04 fvr joins (ef3e56ca8b@2604:bf00:561:2000::3c4)
19:30:56 <EvanR> :t loeb
19:30:57 <lambdabot> error: Variable not in scope: loeb
19:30:58 <ski> `T -> (X,X -> T)' being `T -> Coalg T' where `Coalg a = (X,X -> a)' ?
19:31:02 JonathanWatson[m joins (~jjwmatrix@2001:470:69fc:105::2:a544)
19:31:23 × AlexZenon_2 quits (~alzenon@178.34.163.65) (Ping timeout: 248 seconds)
19:31:26 shapr hops cheerfully
19:31:34 <ski> @let loeb :: Functor f => f (f a -> a) -> f a; loeb ff = fa where fa = fmap ($ fa) ff
19:31:35 <lambdabot> Defined.
19:31:41 <ski> @arr
19:31:41 <lambdabot> Avast!
19:32:01 <geekosaur> http://blog.sigfpe.com/2006/11/from-l-theorem-to-spreadsheet.html ?
19:32:11 VarikValefor[m] joins (~varikvale@2001:470:69fc:105::a5d)
19:32:14 unclechu joins (~unclechu@2001:470:69fc:105::354)
19:32:15 <shapr> I have work to do, but that link looks so interesting
19:32:17 jmcantrell joins (~jmcantrel@user/jmcantrell)
19:32:18 tiziodcaio joins (~tiziodcai@2001:470:69fc:105::1:2bf8)
19:32:20 fendor[m] joins (~fendormat@2001:470:69fc:105::fcbd)
19:32:21 JensPetersen[m] joins (~juhp@2001:470:69fc:105::6e9)
19:32:28 <geekosaur> sorry 🙂
19:32:28 <shapr> I shall resist
19:32:29 VanceIsM7[m] joins (~vanceism7@2001:470:69fc:105::3ad)
19:32:32 <ski> > loeb [sum . tail,const 2,length]
19:32:34 <lambdabot> [5,2,3]
19:32:53 <shapr> I wish my firefox bookmark tags would realize that data flow and dataflow are the same thing
19:33:00 shapr sighs and goes back to Android dev
19:33:18 <shapr> Oh speaking of which, any suggestions for Android dev with Haskell? What's the best thing at the moment?
19:34:14 jakalx joins (~jakalx@base.jakalx.net)
19:34:24 acidsys joins (~crameleon@openSUSE/member/crameleon)
19:34:49 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
19:35:17 Alex_test_ joins (~al_test@178.34.163.65)
19:35:21 <shapr> I thought I heard reflex-frp was the way to go for Haskell on Andorid, but I'm not up to date on that.
19:35:27 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
19:35:30 AlexZenon joins (~alzenon@178.34.163.65)
19:35:55 × vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection)
19:35:57 <geekosaur> Cale's employer has been using it; dunno about others
19:36:06 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
19:36:29 <shapr> I think Obsidian is the creator and maintainer of reflex-frp?
19:36:31 <davean> shapr: Obsidian does a lot of maintaining support for that stuff, and they PRODUCE reflex. You don't need to use reflex to use their nix stuff
19:36:49 vglfr joins (~vglfr@145.224.100.100)
19:37:06 <shapr> davean: I'm asking about Haskell on Android
19:38:25 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6)
19:38:47 <davean> Yes, exactly
19:38:47 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:38:50 <shapr> Oh, I see!
19:39:02 <shapr> davean: thank you
19:39:08 <davean> reflex-platform I think is the name
19:39:08 talismanick joins (~talismani@76.133.152.122)
19:39:26 <davean> I think 9.6 will be a lot better for this
19:39:49 <shapr> Why so?
19:39:58 <Cale> Yeah, reflex-platform is basically our nix build solution for all that stuff.
19:40:19 <Cale> Obelisk is a web/mobile application framework built atop that
19:40:23 <davean> shapr: Because core stuff gets mainlined
19:40:32 <shapr> core stuff?
19:40:33 AlexZenon_2 joins (~alzenon@178.34.163.65)
19:40:48 <shapr> Any links to specifics?
19:41:26 <davean> GHCJS and WASM get mainlined into GHC
19:41:34 <shapr> Oh, exciting!
19:41:38 <davean> GHC will FINALLY support backends
19:41:42 <davean> instead of insisting they die
19:42:16 AlexNoo_ is now known as AlexNoo
19:42:36 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
19:43:13 <ozkutuk[m]> Is it possible "instantiate" multiple pattern synonyms for a polymorphic type with different concrete types? Something like instance declarations with `FlexibleInstances` but for pattern synonyms
19:43:37 × AlexZenon quits (~alzenon@178.34.163.65) (Ping timeout: 252 seconds)
19:43:37 × Alex_test quits (~al_test@178.34.163.65) (Ping timeout: 252 seconds)
19:44:06 abhiroop joins (~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
19:45:16 × AlexZenon_2 quits (~alzenon@178.34.163.65) (Ping timeout: 252 seconds)
19:46:03 <ozkutuk[m]> I can't write a general polymorphic pattern synonym because this type variable is also used as input to a type family within the type, so the types differ across different concrete types
19:47:20 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
19:47:37 × Alex_test_ quits (~al_test@178.34.163.65) (Remote host closed the connection)
19:47:42 <EvanR> the link about Löb's and spreadsheets makes me think the previous decade which was partly defined as "FRP it's just a spreadsheet, what's the problem" was really about Löb's xD
19:48:01 <EvanR> and not FRP really
19:48:18 <EvanR> ok the subject and verb of that sentence was messed up, sorry
19:48:58 gmg joins (~user@user/gehmehgeh)
19:49:51 AlexZenon joins (~alzenon@178.34.163.65)
19:49:54 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
19:53:48 × AlexZenon quits (~alzenon@178.34.163.65) (Client Quit)
19:55:24 <yin> why are some ghc versions hls-powered and some aren't?
19:55:59 AlexZenon joins (~alzenon@178.34.163.65)
19:56:35 <davean> yin: "hls-powered"?
19:56:39 <davean> what does that even mean?
19:56:41 <tomsmeding> yin: ghcup saying that a ghc-version is "hls-powered" simply means that the default bundle of HLS executables packaged by ghcup contains a version for that ghc version
19:57:01 <tomsmeding> i.e. ghcup has chosen a bunch of versions to precompile HLS for, and those are the ones
19:57:20 <tomsmeding> you can compile your own HLS for a different ghc version should you be so inclined
19:59:09 Alex_test joins (~al_test@178.34.163.65)
19:59:21 <yin> got it thanks
19:59:49 × akegalj quits (~akegalj@93-138-41-233.adsl.net.t-com.hr) (Ping timeout: 260 seconds)
19:59:50 nshepperd2 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
20:00:12 <tomsmeding> yin: (see e.g. 'ghcup compile hls --help')
20:00:16 <yin> that being said, there's something wrong with code actions in 1.8.0.0
20:00:46 <ski> ah, there is a <https://hackage.haskell.org/package/mono-traversable-1.0.15.3/docs/Data-MonoTraversable.html#t:MonoComonad> .. but the `X' is determined by the `T', so you can't also have an `Y' part
20:01:10 <tomsmeding> yin: there's #haskell-language-server
20:01:27 akegalj joins (~akegalj@93-138-41-233.adsl.net.t-com.hr)
20:01:28 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
20:01:32 <yin> tomsmeding: thanks. didn't know that
20:01:35 <yin> i found this https://github.com/haskell/haskell-language-server/issues/3241
20:02:24 <yin> compiling hls from source seems to fix it
20:02:30 × abhiroop quits (~abhiroop@217-209-157-8-no2000.tbcn.telia.com) (Ping timeout: 260 seconds)
20:03:39 <EvanR> ski, in your fmapLoeb you have X and Y. Is there anything special about 2 fields or it just an example
20:03:56 <ski> just an example
20:04:20 <ski> imagine `data T = MkT {x :: X,y :: Y}'
20:04:43 <EvanR> oh ok, basically you designed it to update all the fields
20:04:53 <ski> like `loeb', yea
20:06:00 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
20:07:31 <ski> @type (loeb .) . fmap
20:07:32 <lambdabot> Functor f => (a1 -> f a2 -> a2) -> f a1 -> f a2
20:08:09 <ski> (guess i should've said s/fmapLoeb/loebFMap/)
20:10:19 <ski> (i guess one could possibly have "cache fields" that wouldn't be (explicitly) updated)
20:15:29 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
20:16:01 × lechner quits (lechner@debian/lechner) (Quit: WeeChat 3.5)
20:16:25 gmg joins (~user@user/gehmehgeh)
20:18:38 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
20:18:38 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 255 seconds)
20:20:20 beteigeuze joins (~Thunderbi@89.187.168.55)
20:21:04 ec_ joins (~ec@gateway/tor-sasl/ec)
20:21:26 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:22:48 × beteigeuze quits (~Thunderbi@89.187.168.55) (K-Lined)
20:22:56 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
20:27:01 AlexNoo_ joins (~AlexNoo@178.34.163.65)
20:30:23 × akegalj quits (~akegalj@93-138-41-233.adsl.net.t-com.hr) (Quit: leaving)
20:30:44 × AlexNoo quits (~AlexNoo@178.34.163.65) (Ping timeout: 260 seconds)
20:31:09 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
20:32:07 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
20:34:50 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 255 seconds)
20:35:07 Feuermagier joins (~Feuermagi@user/feuermagier)
20:35:35 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:36:00 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
20:40:39 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 260 seconds)
20:40:49 vn36 joins (~vn36@123.63.203.210)
20:40:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6) (Remote host closed the connection)
20:42:19 <monochrom> Ugh just when I have adopted GHC 9.2.4... 9.2.5 enters the bar!
20:42:51 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6)
20:43:02 <Xeroine> Hello, https://en.wikibooks.org/wiki/Haskell/Type_basics_II I don't understand a lot in the paragraph starting with "However, that design fits poorly with the way computers perform arithmetic.". First of all, I don't understand why this is true: "While computers can handle integers as a sequence of binary digits in memory, that approach does not work for real numbers". Aren't integers real
20:43:04 <Xeroine> numbers? https://en.wikipedia.org/wiki/List_of_types_of_numbers this says integers are rational numbers which are real numbers.
20:43:23 <Xeroine> I guess I'm misunderstanding something
20:43:53 <EvanR> general real numbers have infinite non trivial bits
20:44:01 <EvanR> they don't fit in the computer (all at once)
20:44:11 <darkling> Integers are a subset of rationals, which are a subset of reals.
20:44:54 <darkling> Specifically, the integers are a subset of reals that can be precisely represented as a sequence in a specific way.
20:45:15 titibandit joins (~titibandi@xdsl-87-78-8-6.nc.de)
20:46:04 <Xeroine> EvanR: what do you mean by "non trivial bits"?
20:46:11 × fserucas quits (~fserucas@2001:818:e376:a400:fb92:70c1:dd88:c7d7) (Quit: Leaving)
20:46:17 <EvanR> look at the binary expansion of sqrt 2
20:46:22 AlexNoo_ is now known as AlexNoo
20:46:35 <monochrom> "Integers are real numbers" is true but useless for the purpose of "how to support all real numbers on a computer".
20:47:09 <EvanR> it's irrational so the bit pattern ... isn't much of a pattern
20:47:19 <EvanR> more damningly, it goes on forever
20:47:36 <monochrom> Although, the argument on the wikibook is irrelevant, too.
20:47:46 <Xeroine> monochrom: okay then I guess what I want to ask is what problems do other real numbers have that integers don't have when it comes to computers?
20:47:47 <monochrom> Scheme is a counterexample.
20:47:57 pavonia joins (~user@user/siracusa)
20:48:00 × nschoe quits (~q@141.101.51.197) (Ping timeout: 260 seconds)
20:48:55 <EvanR> integers have the feature that you only need a small number of bits to do the arithmetic
20:49:11 <darkling> None of the irrational reals (which is almost all of them) are representable as a finite sequence of bits.
20:49:20 emmanuelux joins (~emmanuelu@user/emmanuelux)
20:49:37 <monochrom> Scheme shows that one can take the stance of having one number type that contains several cases: integer, rational, floating point.
20:49:45 <EvanR> gross
20:49:56 × mixfix41 quits (~sdeny9ee@user/mixfix41) (Ping timeout: 252 seconds)
20:50:11 <monochrom> If you try to do <integer> + <rational>, the result is a promotion, you get <rational>.
20:50:21 <EvanR> computer int isn't a subset of computer float or vice versa
20:50:31 nucranium joins (~nucranium@2a02:8010:6173:0:8102:5ccd:28d9:3575)
20:50:34 × vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection)
20:50:53 <monochrom> In pseudo-Haskell terms, Scheme is doing "data Number = Integer ??? | Rational ??? | FloatingPoint ???"
20:50:55 <davean> EvanR: Well sometimes int is a subset of float
20:51:03 <darkling> You could represent specific subsets of the reals (for example, square roots and surds) with an appropriate representation based on integers, but it's limited in the operations you can make.
20:51:06 <EvanR> don't make me bonkcat you
20:51:11 <davean> On like a I16 system it is
20:51:18 <davean> Hell, I think an I32?
20:51:28 vglfr joins (~vglfr@145.224.100.100)
20:51:29 <davean> I can't recall of the top of my head where the cutoff is
20:52:17 <darkling> IEEE FP, it's 53 bits of mantissa.
20:52:26 <davean> darkling: thats what I thought
20:52:31 <darkling> Which is, oddly enough, the limit of the integer type in JavaScript. :)
20:52:33 <davean> so yah, many systems Int is a subset of float
20:52:40 <EvanR> Float
20:52:51 <davean> I32LP64 is a pretty normal setup
20:52:55 <EvanR> if you interpret this to mean 32 bit float, it's right, but it doesn't matter
20:52:58 <monochrom> The correct explanation for the Haskell design decision is: The committee prefers not to do it the Scheme way. The committee prefers to do the more traditional: There is an Int->Int->Int addition, there is a Double->Double->Double addition, etc., and keeping those number types separate, not unified.
20:53:10 <davean> EvanR: No, no Float has a meaning in IEEE754
20:53:28 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
20:53:35 <c_wraith> yeah, the name "double" actually means "twice as much of something as something else"
20:54:17 <EvanR> the point is that the subset relationship is not true, you could instead drill down and get into when it's not true if you want but it's not contradicting anything
20:54:28 <monochrom> (One could argue for that separation by the desire to match hardware-level distinctions and the hope that the matching helps efficiency.)
20:54:31 <Xeroine> I still don't understand. There is some issue being described in that paragraph which exists for real numbers other than integers but what is it? Integers and other numbers from different sets of the real number set can be infinite but this isn't an issue for integers?
20:54:43 × vglfr quits (~vglfr@145.224.100.100) (Remote host closed the connection)
20:54:45 <monochrom> (Although, with laziness, the point is moot IMO.)
20:54:47 <c_wraith> Integer can't be infintie
20:54:49 <EvanR> infinite set? or infinite representations
20:54:53 <c_wraith> err, can't be infinite
20:54:53 <davean> EvanR: The point is it is unconditionally true on some systems
20:55:08 <c_wraith> Integer can't be bigger than the amount of memory you've got
20:55:13 <EvanR> davean, no, it's not the point. Sorry xD
20:55:16 <cpli> (^^^), (^^^^), (^^^^^), (^^^^^^),
20:55:16 <cpli> (^^^^^^^), (^^^^^^^^), (^^^^^^^^^),
20:55:16 vglfr joins (~vglfr@145.224.100.100)
20:55:16 <cpli> (^^^^^^^^^^), (^^^^^^^^^^^), (^^^^^^^^^^^^),
20:55:16 <cpli> (^^^^^^^^^^^^^), (^^^^^^^^^^^^^^), (^^^^^^^^^^^^^^^),
20:55:16 <cpli> (^^^^^^^^^^^^^^^^), (^^^^^^^^^^^^^^^^^), (^^^^^^^^^^^^^^^^^^)
20:55:17 <cpli> :: MonadUnliftIO m ⇒ m a → String → m a
20:55:17 <cpli> (^^^) = flip $ (>>) . liftIO . Prelude.putStrLn
20:55:18 <cpli> (^^^^) = (^^^)
20:55:18 <cpli> (^^^^^) = (^^^^)
20:55:19 <cpli> (^^^^^^) = (^^^^^)
20:55:19 <cpli> (^^^^^^^) = (^^^^^^)
20:55:20 <cpli> (^^^^^^^^) = (^^^^^^^)
20:55:22 <cpli> (^^^^^^^^^) = (^^^^^^^^)
20:55:22 ChanServ sets mode +o monochrom
20:55:24 <cpli> (^^^^^^^^^^) = (^^^^^^^^^)
20:55:25 <EvanR> scheme is a programming language not a hardware
20:55:26 <cpli> (^^^^^^^^^^^) = (^^^^^^^^^^)
20:55:28 <cpli> (^^^^^^^^^^^^) = (^^^^^^^^^^^)
20:55:29 <davean> Xeroine: "Can be infinite" and "must be infinite"
20:55:30 <cpli> (^^^^^^^^^^^^^) = (^^^^^^^^^^^^)
20:55:30 monochrom sets mode +b *!*@2604:bf00:561:2000::252
20:55:41 buffet joins (~buffet@buffet.sh)
20:55:57 <EvanR> it's defining some abstraction for all computers
20:56:00 <Xeroine> c_wraith: but that's true for any number from any number set not just integers
20:56:05 <monochrom> err, there is a "quiet" mode, let me change that.
20:56:10 <c_wraith> Xeroine: IEEE754 numbers have an explicit representation for "infinity"
20:56:16 monochrom sets mode -b *!*@2604:bf00:561:2000::252
20:56:33 cpli parts (77fc530071@2604:bf00:561:2000::252) ()
20:56:37 cpli joins (77fc530071@2604:bf00:561:2000::252)
20:56:38 <davean> Xeroine: note "must", this gets into non-trivial, many numbers have a single extension of implicite zero bits
20:56:41 <monochrom> ha I don't know how to use the quiet mode
20:56:47 <davean> Xeroine: not all numbers CAN be implicitely extended to get a subset
20:56:54 <ski> cpli : please don't do that
20:57:19 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6) (Remote host closed the connection)
20:57:41 <monochrom> There are uncountably many real numbers, but only countable many possibilities for any data structure or program. There is not going to be an injective mapping from real numbers to computer data.
20:57:52 <ski> @where paste
20:57:52 <lambdabot> Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com
20:57:58 <ski> cpli ^
20:58:30 <EvanR> there are also countable rational numbers, but you still can't do the arithmetic on a bunch of bits. It won't fit
20:58:43 <EvanR> like 1/3 = 0.33333...
20:58:47 <monochrom> At best you can indulge in the notion of "computable reals", but it's very expensive.
20:59:03 <monochrom> Sometimes even just Rationals is already considered too slow.
20:59:11 <cpli> https://paste.tomsmeding.com/ZYkkSVns ski
20:59:13 <monochrom> Or too memory-hogging.
20:59:19 <cpli> ski ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21:00:19 <ski> i don't really see the point of those operators
21:00:23 <davean> Xeroine: Also you can represent some numbers by how to compute them. This doesn't always let you find out anything about the number though. Consider if we have something where the far off bits influnce a lot and we ask "is it even or odd?" That might not be comput able.
21:00:58 <EvanR> it might let you "find out about the number", e.g. by interpreting the computations
21:00:59 <cpli> ski, they're important. they draw your eyes to the code that is being debugged. literate haskell is something similar if you know that.
21:01:00 <ski> (also seems `MonadIO m' would be enough, rather than `MonadUnliftIO m', no ?)
21:01:08 <pyrex> those are some nice operators!
21:01:12 monochrom sets mode -o monochrom
21:01:18 <davean> EvanR: The point is some of those computations are non-computable.
21:01:29 <ski> why not just one operator ?
21:01:30 <EvanR> then it's badly named isn't it
21:01:51 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
21:01:56 <EvanR> rather than computations you might be expressing some kind of logical definition
21:01:58 <cpli> ski, sadly DiscordHandler is not of the family `MonadIO`, instead it is `MonadUnliftIO`
21:02:14 <davean> EvanR: Oh this shows up just in numbers and basic math operations
21:02:34 <cpli> ski i had one operator about 2 hours ago. it was far less expressive.
21:02:34 <ski> but `(^^^)' doesn't appear to require that, cpli
21:02:47 <ski> all the operators do the same thing
21:02:47 <monochrom> You could have just one (^^^) and then at use sites add spaces, e.g. ^^^ "get stuff"
21:03:45 <cpli> true, ski thank you for making the type declaration shorter, it lets me add more operators.
21:03:47 <EvanR> the classic psuedo scheme sqrt function, (the y (= (squared y) x)), not really a computation
21:03:53 <monochrom> Anyway Scheme refutes "it seems that we can't even have (+) mix integers and floating-point numbers" so the wikibook is wrong on this point.
21:04:27 <davean> monochrom: I mean scheme shows you can't. It gets incorrect answers?
21:04:38 <monochrom> The correct reason is as I stated, someone decided to match hardware-level distinctions.
21:04:44 <cpli> monochrom, i might misread it as `>>=`
21:05:03 <monochrom> I don't know how to misread ^^^ and spaces as >>=
21:05:20 <cpli> i did before, that's why i added `^^^^`
21:05:28 <EvanR> there are an equal number of line segment strokes in each
21:06:05 <monochrom> Or rather, someone decided to follow the tradition of matching hardware-level distinctions, because Fortran Algol Pascal C have been doing that.
21:06:43 <davean> monochrom: except I really think you're wrong - scheme makes '+' stop being addition
21:06:55 <monochrom> How does Scheme get incorrect answers?
21:07:13 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 252 seconds)
21:07:13 <davean> monochrom: because of its promotion and the float issues.
21:07:27 <davean> it losses the properties that makes + be addition
21:07:33 <EvanR> no true addition fallacy? xD
21:07:41 <davean> No, but there is a definition of addition
21:07:43 <EvanR> it's already broken for floats
21:07:48 <ski> (inexacts ?)
21:07:50 <EvanR> and arguably for ints
21:07:53 <davean> Yes, it is always broken for floats.
21:08:43 <EvanR> otoh to use your logic from before, + sometimes gives the right answer, therefore + is actually addition after all
21:09:01 <monochrom> In Scheme if you + two integers it still stays within integers, it is not converted to float, this is Scheme not javascript or Applesoft BASIC.
21:09:04 <davean> EvanR: No my logic from before was it *always* gives you the correct answer
21:09:23 <EvanR> the logic from before was that int is a subset of float because it sometimes is
21:09:24 <davean> monochrom: 1*f/f = ?
21:09:46 <davean> EvanR: No, in the cases that it is a subset of Float it always is and thus it works for those designs
21:10:01 <monochrom> Shrug IMO this is getting unnecessarily pedantic.
21:10:16 <EvanR> that + sometimes works is actually more useful to be true
21:10:27 <EvanR> because you can control that usually
21:10:40 <davean> EvanR: you can control the Int thing too - its a very classic approach
21:10:43 <davean> Esp in like GPU coding
21:10:44 <EvanR> like using dyadic rationals in your algorithm
21:11:33 <EvanR> or assuming something about the input
21:14:24 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
21:15:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:16:24 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:18:12 × Batzy quits (~quassel@user/batzy) (Ping timeout: 248 seconds)
21:19:48 × titibandit quits (~titibandi@xdsl-87-78-8-6.nc.de) (Remote host closed the connection)
21:22:04 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
21:22:34 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
21:24:12 × caryhartline quits (~caryhartl@2600:1700:2d0:8d30:6cc5:fd4d:6712:aa2c) (Quit: caryhartline)
21:28:47 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
21:29:04 × ft quits (~ft@p508dbd59.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
21:29:31 × nucranium quits (~nucranium@2a02:8010:6173:0:8102:5ccd:28d9:3575) (Quit: WeeChat 3.5)
21:30:28 ft joins (~ft@p508dbd59.dip0.t-ipconnect.de)
21:31:10 nate4 joins (~nate@98.45.169.16)
21:35:49 × nate4 quits (~nate@98.45.169.16) (Ping timeout: 252 seconds)
21:37:14 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:38:59 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
21:39:14 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
21:39:15 jlgw joins (~jw@83-233-104-81.cust.bredband2.com)
21:39:48 × Guest75 quits (~Guest75@178.141.177.81) (Ping timeout: 260 seconds)
21:41:40 × danza quits (~francesco@45.red-79-153-2.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
21:45:34 barak joins (~barak@2a0d:6fc2:68c0:8900:b543:1b85:720f:c15)
21:47:16 acidjnk_new joins (~acidjnk@p200300d6e7137a80d16563246cd9a30d.dip0.t-ipconnect.de)
21:48:28 × acidjnk quits (~acidjnk@p200300d6e7137a3425e17e6c3d2393a2.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
21:53:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
21:53:55 × jtomas quits (~jtomas@191.red-88-17-199.dynamicip.rima-tde.net) (Ping timeout: 260 seconds)
21:57:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6)
22:00:42 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
22:02:40 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:3d74:5eb7:3590:2ac6) (Ping timeout: 260 seconds)
22:03:13 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
22:05:17 × califax quits (~califax@user/califx) (Ping timeout: 255 seconds)
22:05:23 califax_ joins (~califax@user/califx)
22:05:29 ph88 joins (~ph88@2a02:8109:9e00:71d0:3734:2921:799c:a285)
22:06:39 califax_ is now known as califax
22:07:29 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
22:09:22 caryhartline joins (~caryhartl@2603-8080-6a0e-8d88-e0ea-627d-a5d6-46f6.res6.spectrum.com)
22:09:43 × caryhartline quits (~caryhartl@2603-8080-6a0e-8d88-e0ea-627d-a5d6-46f6.res6.spectrum.com) (Client Quit)
22:11:36 × irrgit quits (~irrgit@146.70.27.218) (Quit: Leaving)
22:16:03 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:21:41 coot joins (~coot@213.134.171.3)
22:21:57 × michalz quits (~michalz@185.246.207.217) (Remote host closed the connection)
22:26:14 × beteigeuze quits (~Thunderbi@a79-169-109-107.cpe.netcabo.pt) (Ping timeout: 260 seconds)
22:26:33 beteigeuze joins (~Thunderbi@a79-169-109-107.cpe.netcabo.pt)
22:27:20 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:29:00 × malte quits (~malte@mal.tc) (Remote host closed the connection)
22:30:03 malte joins (~malte@mal.tc)
22:37:19 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
22:42:28 × coot quits (~coot@213.134.171.3) (Quit: coot)
22:47:51 hays joins (rootvegeta@fsf/member/hays)
22:48:17 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
22:49:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
22:52:03 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
22:54:14 × chomwitt quits (~chomwitt@2a02:587:7a0a:c00:1ac0:4dff:fedb:a3f1) (Ping timeout: 252 seconds)
22:57:09 × troydm quits (~troydm@host-176-37-124-197.b025.la.net.ua) (Ping timeout: 260 seconds)
22:58:10 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
23:01:49 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
23:02:27 × finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer)
23:05:00 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
23:06:31 causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d)
23:07:38 abhiroop joins (~abhiroop@217-209-157-8-no2000.tbcn.telia.com)
23:09:59 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
23:10:06 troydm joins (~troydm@host-176-37-124-197.b025.la.net.ua)
23:10:55 × mvk quits (~mvk@2607:fea8:5ce3:8500::4b68) (Ping timeout: 260 seconds)
23:11:26 × ph88 quits (~ph88@2a02:8109:9e00:71d0:3734:2921:799c:a285) (Quit: Leaving)
23:17:00 freeside joins (~mengwong@bb115-66-48-84.singnet.com.sg)
23:19:07 × thyriaen quits (~thyriaen@2a01:aea0:dd4:470d:6245:cbff:fe9f:48b1) (Quit: Leaving)
23:21:30 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
23:23:29 mvk joins (~mvk@2607:fea8:5ce3:8500::4b68)
23:26:19 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 260 seconds)
23:26:49 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
23:26:55 × causal quits (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0d) (Ping timeout: 252 seconds)
23:28:25 × vn36 quits (~vn36@123.63.203.210) (Ping timeout: 260 seconds)
23:31:29 freeside_ joins (~mengwong@bb115-66-48-84.singnet.com.sg)
23:32:44 × freeside quits (~mengwong@bb115-66-48-84.singnet.com.sg) (Ping timeout: 260 seconds)
23:34:29 × ft quits (~ft@p508dbd59.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
23:36:10 ft joins (~ft@p508dbd59.dip0.t-ipconnect.de)
23:38:50 × zeenk quits (~zeenk@2a02:2f04:a105:5d00:c862:f190:2ea:d494) (Quit: Konversation terminated!)
23:40:14 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:40:18 jmd_ joins (~jmdaemon@user/jmdaemon)
23:40:21 causal joins (~user@50.35.83.177)
23:40:54 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
23:43:14 × libertyprime quits (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz) (Ping timeout: 260 seconds)
23:43:29 libertyprime joins (~libertypr@118-92-78-165.dsl.dyn.ihug.co.nz)
23:49:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:50:30 ygsjg joins (~quassel@189.124.224.160)
23:52:05 × acidjnk_new quits (~acidjnk@p200300d6e7137a80d16563246cd9a30d.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
23:52:08 thegeekinside joins (~thegeekin@189.180.92.220)
23:53:55 zero joins (~z@user/zero)
23:55:15 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
23:57:23 × yin quits (~z@user/zero) (Ping timeout: 268 seconds)

All times are in UTC on 2022-11-07.