2021/11/15

2021-11-15 00:00:05 +0100brainfreeze(~brainfree@2a03:1b20:4:f011::20d)
2021-11-15 00:05:16 +0100gawen(~gawen@user/gawen) (Ping timeout: 268 seconds)
2021-11-15 00:07:08 +0100Feuermagier(~Feuermagi@user/feuermagier)
2021-11-15 00:08:17 +0100gawen(~gawen@user/gawen)
2021-11-15 00:09:57 +0100jmorris(uid433911@hampstead.irccloud.com)
2021-11-15 00:14:27 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-15 00:14:27 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-15 00:14:29 +0100allbery_bgeekosaur
2021-11-15 00:20:11 +0100chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2021-11-15 00:20:21 +0100chexum(~quassel@gateway/tor-sasl/chexum)
2021-11-15 00:22:42 +0100__monty__(~toonn@user/toonn) (Quit: leaving)
2021-11-15 00:26:28 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 00:28:17 +0100AlexNoo_(~AlexNoo@178.34.150.115)
2021-11-15 00:30:41 +0100AlexZenon(~alzenon@178.34.163.122) (Ping timeout: 250 seconds)
2021-11-15 00:31:46 +0100AlexNoo(~AlexNoo@178.34.163.122) (Ping timeout: 256 seconds)
2021-11-15 00:32:11 +0100Alex_test(~al_test@178.34.163.122) (Ping timeout: 264 seconds)
2021-11-15 00:32:55 +0100gawen(~gawen@user/gawen) (Quit: cya)
2021-11-15 00:34:53 +0100AlexZenon(~alzenon@178.34.150.115)
2021-11-15 00:35:10 +0100alx741(~alx741@181.196.68.69) (Ping timeout: 256 seconds)
2021-11-15 00:35:53 +0100Alex_test(~al_test@178.34.150.115)
2021-11-15 00:36:06 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-11-15 00:37:11 +0100gawen(~gawen@user/gawen)
2021-11-15 00:41:20 +0100max22-(~maxime@2a01cb088335980063a544fa463a8015.ipv6.abo.wanadoo.fr) (Remote host closed the connection)
2021-11-15 00:44:21 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 00:46:36 +0100slice(~slice@user/slice)
2021-11-15 00:46:46 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep)
2021-11-15 00:47:16 +0100jrm(~jrm@156.34.187.65)
2021-11-15 00:48:50 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 260 seconds)
2021-11-15 00:49:34 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.)
2021-11-15 00:49:59 +0100gawen(~gawen@user/gawen) (Quit: cya)
2021-11-15 00:50:20 +0100olibiera(~olibiera@a85-138-214-194.cpe.netcabo.pt)
2021-11-15 00:50:56 +0100Alleria(~textual@user/alleria) (Ping timeout: 245 seconds)
2021-11-15 00:51:32 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f)
2021-11-15 00:52:42 +0100 <olibiera> hello guys, is there any easy way to turn a string that is a math expression (ex: "4*3") in the result (12)
2021-11-15 00:52:52 +0100 <olibiera> ?
2021-11-15 00:53:36 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-15 00:54:03 +0100 <dsal> olibiera: you write a parser and evaluate the result.
2021-11-15 00:54:13 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 00:54:19 +0100gawen(~gawen@user/gawen)
2021-11-15 00:54:26 +0100 <dsal> So, yeah, pretty easy, but you have to do some of the work.
2021-11-15 00:55:06 +0100 <olibiera> my english is not really good, can u explain what a parser is pls
2021-11-15 00:55:41 +0100 <dibblego> A parser for things is a function from strings to lists of pairs of things and strings.
2021-11-15 00:56:13 +0100 <olibiera> oh k ty :)
2021-11-15 00:57:44 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
2021-11-15 00:58:12 +0100Vajb(~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99)
2021-11-15 00:58:58 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-15 01:00:30 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 260 seconds)
2021-11-15 01:02:03 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 01:04:32 +0100gawen(~gawen@user/gawen) (Quit: cya)
2021-11-15 01:08:50 +0100gawen(~gawen@user/gawen)
2021-11-15 01:11:41 +0100olibiera(~olibiera@a85-138-214-194.cpe.netcabo.pt) (Quit: Client closed)
2021-11-15 01:13:31 +0100slice(~slice@user/slice) (Quit: zzz)
2021-11-15 01:16:15 +0100Vajb(~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) (Read error: Connection reset by peer)
2021-11-15 01:16:47 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-15 01:18:16 +0100Henson(~kvirc@107-179-133-201.cpe.teksavvy.com)
2021-11-15 01:19:28 +0100 <dibblego> the book Programming in Haskell, Graham Hutton — has an example of a parser
2021-11-15 01:19:49 +0100alx741(~alx741@181.196.68.69)
2021-11-15 01:22:58 +0100acidjnk_new(~acidjnk@p200300d0c74373762d98dd33bce98ac3.dip0.t-ipconnect.de) (Ping timeout: 265 seconds)
2021-11-15 01:26:40 +0100 <Axman6> who runs yahb again? I was looking for the custom sandbox thing it runs in
2021-11-15 01:27:16 +0100 <Axman6> nevermind, I found both answers in my browser history
2021-11-15 01:27:21 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Remote host closed the connection)
2021-11-15 01:29:54 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2021-11-15 01:30:02 +0100 <geekosaur> haskell is a compiled language, like c and c++ are compiled languages. none of them gives you a simple "here's an expression in a string, compute it and give me the result" function; that's something interpreters do
2021-11-15 01:30:05 +0100 <monochrom> I think mniip runs yahb.
2021-11-15 01:30:09 +0100 <geekosaur> yeh
2021-11-15 01:30:15 +0100 <geekosaur> but they got the answer already
2021-11-15 01:30:34 +0100 <monochrom> I didn't read completely, oops, heh.
2021-11-15 01:31:21 +0100Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2021-11-15 01:32:13 +0100 <geekosaur> anyway there is a way to get that functionality with ghc, but (a) it's somewhat painful (b) it involves linking the whole compiler into your program just to evaluate the expression
2021-11-15 01:32:27 +0100 <geekosaur> this is not usually what you're looking for
2021-11-15 01:32:48 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-15 01:36:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-15 01:37:13 +0100slice(~slice@user/slice)
2021-11-15 01:37:16 +0100mmhat(~mmh@55d47fa1.access.ecotel.net) (Quit: WeeChat 3.3)
2021-11-15 01:37:35 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Quit: WeeChat 3.3)
2021-11-15 01:39:05 +0100 <c_wraith> It's way worse than just linking in the compiler - you also need the .hi files for every library you want.
2021-11-15 01:42:44 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 01:46:51 +0100Codaraxis(~Codaraxis@user/codaraxis) (Quit: Leaving)
2021-11-15 01:47:11 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 264 seconds)
2021-11-15 01:48:38 +0100 <Henson> is there some way for a person to find a Haskell project that needs volunteer coders? I don't program in Haskell for my job and don't want my Haskell skills to get too rusty, so I'd like to have excuses to code. I've tried doing Advent Of Code challenges for fun, but the headache-to-coding ratio is too high for it to be enjoyable.
2021-11-15 01:49:40 +0100burnsidesLlama(~burnsides@dhcp168-014.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-15 01:51:44 +0100 <geekosaur> look for Haskell projects on github?
2021-11-15 01:52:25 +0100anna_user2_(~anna_user@207.181.251.46) (Quit: Leaving)
2021-11-15 01:52:36 +0100 <geekosaur> mostly the ones that show recent activity
2021-11-15 01:53:02 +0100 <geekosaur> (or gitlab, darcsden, etc.)
2021-11-15 01:53:19 +0100hololeap_(~hololeap@user/hololeap)
2021-11-15 01:53:21 +0100hololeap(~hololeap@user/hololeap) (Ping timeout: 276 seconds)
2021-11-15 01:59:04 +0100 <energizer> does recursion get rewritten to foldr under the hood? (or vice versa)
2021-11-15 01:59:17 +0100 <Henson> geekosaur: thanks!
2021-11-15 01:59:48 +0100 <geekosaur> "recursion" is a broad brush
2021-11-15 02:00:12 +0100 <energizer> https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.List.html#takeWhile vs `takeWhile f = foldr (\x acc -> if f x then x : acc else []) []`
2021-11-15 02:00:47 +0100 <sm> Henson: people ask this periodically on /r/haskell, not sure how to find those threads
2021-11-15 02:01:38 +0100 <geekosaur> there are simple maps, there are folds, there are traversals, there are _un_folds, etc.
2021-11-15 02:01:52 +0100 <sm> those of us who see it sometimes reply. Most FOSS projects welcome coders, hledger is one
2021-11-15 02:02:24 +0100 <Henson> sm: cool, thanks for the suggestion!
2021-11-15 02:03:35 +0100 <energizer> does one of those two functions get converted into the other under the hood?
2021-11-15 02:07:26 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 265 seconds)
2021-11-15 02:09:14 +0100alx741(~alx741@181.196.68.69) (Ping timeout: 256 seconds)
2021-11-15 02:10:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:185c:f2cc:27d3:da20) (Remote host closed the connection)
2021-11-15 02:11:39 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:185c:f2cc:27d3:da20)
2021-11-15 02:12:18 +0100mimmy(~mimmy@45.14.195.121)
2021-11-15 02:17:21 +0100Henson(~kvirc@107-179-133-201.cpe.teksavvy.com) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
2021-11-15 02:18:35 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-11-15 02:20:25 +0100 <geekosaur> energizer, no
2021-11-15 02:20:56 +0100 <geekosaur> there are, iirc, 16 fundamental "recursion schemes". in practice only a handful are useful, so they are the predefined ones
2021-11-15 02:21:16 +0100 <geekosaur> but you don't use a fold when you want a map, and you don't use a map when you want a fold
2021-11-15 02:21:40 +0100 <geekosaur> moreover, there's two different folds, depending on how you want your function to associate
2021-11-15 02:23:11 +0100renzhi(~xp@2607:fa49:6500:b100::6e7f) (Ping timeout: 264 seconds)
2021-11-15 02:23:57 +0100alx741(~alx741@181.196.68.87)
2021-11-15 02:28:45 +0100 <energizer> those two implementations are different ways of writing the same thing, but i guess ghc doesnt care about that
2021-11-15 02:29:16 +0100 <geekosaur> hm?
2021-11-15 02:29:32 +0100 <geekosaur> > foldl f z [a,b,c]
2021-11-15 02:29:33 +0100 <lambdabot> f (f (f z a) b) c
2021-11-15 02:29:43 +0100 <geekosaur> > foldr f z [a,b,c]
2021-11-15 02:29:45 +0100 <lambdabot> f a (f b (f c z))
2021-11-15 02:29:51 +0100 <energizer> https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.List.html#takeWhile vs `takeWhile f = foldr (\x acc -> if f x then x : acc else []) []`
2021-11-15 02:31:22 +0100 <energizer> i see, you were responding to a different question than i thought you were
2021-11-15 02:31:24 +0100hololeap_hololeap
2021-11-15 02:31:38 +0100 <energizer> by "those two functions" i meant those two `takeWhile`s
2021-11-15 02:33:34 +0100 <EvanR> you can view the core output for any two versions of some function to see what ghc may think
2021-11-15 02:33:51 +0100 <geekosaur> also keep in mind that in Haskell, you get different laziness behavior from different ways of doing things. the foldr definition is lazier than the one actually used
2021-11-15 02:35:15 +0100 <geekosaur> strictness vs. laziness has consequences in terms of memory usage and performance, among other things
2021-11-15 02:38:05 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-c006-e1aa-bb8d-1172.res6.spectrum.com)
2021-11-15 02:38:15 +0100 <unit73e> I never bothered profiling in haskell
2021-11-15 02:38:20 +0100 <unit73e> but maybe I should
2021-11-15 02:38:48 +0100 <geekosaur> depends on what you're doing. I've never found it necessary but I'm not e.g. building high volume webservers
2021-11-15 02:39:17 +0100 <unit73e> i'm builign a game engine so it could be useful
2021-11-15 02:39:23 +0100 <unit73e> building*
2021-11-15 02:39:41 +0100 <unit73e> seems ghc already has decent tools for it
2021-11-15 02:40:07 +0100 <unit73e> for web servers it's not necessary on any framework. just add more metal
2021-11-15 02:40:36 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3)
2021-11-15 02:41:23 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving)
2021-11-15 02:42:47 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-11-15 02:44:06 +0100 <energizer> ...that is a recipe for spending a lot of money unnecessarily
2021-11-15 02:44:46 +0100 <energizer> and getting poor latency no matter how much you spend
2021-11-15 02:45:35 +0100 <unit73e> there are some optimizations that can be done with web servers but it's mostly in databases or making it more scalable
2021-11-15 02:45:39 +0100 <unit73e> and that's rare
2021-11-15 02:45:48 +0100 <unit73e> only giant companies do that
2021-11-15 02:46:46 +0100 <geekosaur> trust me, getting your laziness/strictness wrong can cost you a *lot*
2021-11-15 02:46:47 +0100 <energizer> that's really not right
2021-11-15 02:47:11 +0100 <energizer> lots of people care about performance without being giant companies
2021-11-15 02:47:19 +0100 <unit73e> laziness/stricness wrong does cost a lot
2021-11-15 02:47:24 +0100 <geekosaur> and throwing money or hardware at the problem is not a fix, it's a bandage
2021-11-15 02:47:37 +0100 <unit73e> yes and yet that's what medium companies do
2021-11-15 02:47:44 +0100 <unit73e> because they don't understand the problem
2021-11-15 02:47:54 +0100 <unit73e> I've seen it time and time again
2021-11-15 02:48:14 +0100 <geekosaur> yes, I know. :( (I'm an ex-sysadmin, I've seen too much of this)
2021-11-15 02:49:53 +0100ski(~ski@remote12.chalmers.se) (Ping timeout: 264 seconds)
2021-11-15 02:50:37 +0100 <unit73e> from my experience the biggest problem in webservers is bottlenecks and that's because of a mix of imutable design that popular languages are only picking up right now and mutable code that isn't really good for distributed systems ending up being the bottleneck
2021-11-15 02:51:22 +0100 <unit73e> it's as if you'r seeing everyone slowly moving in the same micro-services without understanding why it matters
2021-11-15 02:51:38 +0100 <unit73e> and failing at it btw
2021-11-15 02:51:49 +0100 <unit73e> fun times
2021-11-15 02:51:54 +0100 <geekosaur> yep
2021-11-15 02:53:37 +0100daveanhides his 100kqps/core Haskell webservice
2021-11-15 02:56:28 +0100brainfreeze(~brainfree@2a03:1b20:4:f011::20d) (Quit: Leaving)
2021-11-15 03:04:26 +0100zebrag(~chris@user/zebrag) (Quit: Konversation terminated!)
2021-11-15 03:11:16 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507)
2021-11-15 03:12:30 +0100 <a6a45081-2b83> @hoogle (a -> m b) -> Map k a -> m (Map k b)
2021-11-15 03:12:31 +0100 <lambdabot> No results found
2021-11-15 03:14:33 +0100 <dsal> @hoogle traverseWithKey
2021-11-15 03:14:33 +0100 <lambdabot> Data.IntMap.Internal traverseWithKey :: Applicative t => (Key -> a -> t b) -> IntMap a -> t (IntMap b)
2021-11-15 03:14:33 +0100 <lambdabot> Data.IntMap.Lazy traverseWithKey :: Applicative t => (Key -> a -> t b) -> IntMap a -> t (IntMap b)
2021-11-15 03:14:33 +0100 <lambdabot> Data.IntMap.Strict traverseWithKey :: Applicative t => (Key -> a -> t b) -> IntMap a -> t (IntMap b)
2021-11-15 03:15:09 +0100hiruji(~hiruji@user/hiruji) (Read error: Connection reset by peer)
2021-11-15 03:20:06 +0100pop3(~pop3@user/pop3)
2021-11-15 03:20:17 +0100mud(~mud@user/kadoban)
2021-11-15 03:22:40 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 03:26:55 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 268 seconds)
2021-11-15 03:27:25 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-15 03:32:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 03:33:25 +0100chizil[m](~chizilmat@2001:470:69fc:105::1:34ab)
2021-11-15 03:35:39 +0100waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se) (Quit: WeeChat 3.3)
2021-11-15 03:36:01 +0100jkaye(~jkaye@2601:281:8300:7530:a5dd:80a5:c74b:fea5)
2021-11-15 03:37:38 +0100slaydr(~seriley@97-120-85-233.ptld.qwest.net)
2021-11-15 03:37:59 +0100gg(~gg@2a01:e0a:819:1510:9018:293a:5d7d:4597) (Remote host closed the connection)
2021-11-15 03:39:56 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-15 03:45:06 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 245 seconds)
2021-11-15 03:51:35 +0100xff0x(~xff0x@2001:1a81:52ad:7900:8288:e51a:352c:7fbc) (Ping timeout: 268 seconds)
2021-11-15 03:53:02 +0100xff0x(~xff0x@2001:1a81:52ee:6600:5c66:cf47:7ae9:a061)
2021-11-15 03:53:25 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-11-15 03:53:29 +0100 <perrierjouet> hi all
2021-11-15 03:53:42 +0100 <perrierjouet> is it normal few packages install take 4 GB ?
2021-11-15 03:54:27 +0100 <perrierjouet> stack setup, stack install hakyll, already 4 gb install size
2021-11-15 03:55:17 +0100 <sm> perrierjouet: 4 seems more than one GHC version and package set would normally take, but yes it's normal
2021-11-15 03:55:19 +0100 <geekosaur> hakyll has a lot of dependencies, and the transitive dependency list is even larger
2021-11-15 03:55:25 +0100 <sm> one package depends on a hundred others
2021-11-15 03:55:41 +0100 <sm> stack-clean-old is a good tool for cleaning up
2021-11-15 03:56:04 +0100 <geekosaur> and if you're using stack it may have installed a new ghc for you at the same time
2021-11-15 03:56:55 +0100 <perrierjouet> I am on archlinux so I removed ghc from system installer before
2021-11-15 03:58:12 +0100 <perrierjouet> will it be slow if I move my home direcotry to another pc ? and have .stack => /mnt/second-pc/homeX/.stack ? is it ok or haskell will be slow ?
2021-11-15 03:59:20 +0100 <geekosaur> that may be worse than slow, it might break. stack and cabal are both pretty sensitive about their stores
2021-11-15 03:59:47 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 04:00:07 +0100 <geekosaur> and especially if that's a remote mount, yes, things are likely to be slow
2021-11-15 04:02:01 +0100 <perrierjouet> ok
2021-11-15 04:02:14 +0100evan(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f)
2021-11-15 04:02:20 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-15 04:02:23 +0100evanGuest8716
2021-11-15 04:03:22 +0100mbuf(~Shakthi@223.184.58.239)
2021-11-15 04:04:32 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-15 04:04:44 +0100lemonsni-(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 04:07:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-15 04:09:59 +0100jkaye(~jkaye@2601:281:8300:7530:a5dd:80a5:c74b:fea5) (Ping timeout: 264 seconds)
2021-11-15 04:11:11 +0100Cajun(~Cajun@user/cajun)
2021-11-15 04:13:49 +0100finn_elija(~finn_elij@user/finn-elija/x-0085643)
2021-11-15 04:13:49 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2021-11-15 04:13:49 +0100finn_elijaFinnElija
2021-11-15 04:15:23 +0100ubert(~Thunderbi@p548c9652.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2021-11-15 04:15:39 +0100lemonsnicks(~lemonsnic@cpc159519-perr18-2-0-cust114.19-1.cable.virginm.net)
2021-11-15 04:16:57 +0100dsamperi(~dsamperi@2603-7000-3b42-5400-c006-e1aa-bb8d-1172.res6.spectrum.com) (Quit: Konversation terminated!)
2021-11-15 04:17:47 +0100mimmy(~mimmy@45.14.195.121) (Ping timeout: 264 seconds)
2021-11-15 04:19:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-15 04:19:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-15 04:19:22 +0100wroathe(~wroathe@user/wroathe)
2021-11-15 04:19:51 +0100fuzzypixelz_(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-15 04:20:58 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 04:23:39 +0100fuzzypixelz(~fuzzypixe@tchebychev.ensimag.fr) (Ping timeout: 268 seconds)
2021-11-15 04:23:49 +0100mimmy(~mimmy@45.14.195.121)
2021-11-15 04:24:16 +0100mvk(~mvk@2607:fea8:5cc3:e900::df92) (Ping timeout: 245 seconds)
2021-11-15 04:34:13 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-15 04:34:45 +0100hiruji(~hiruji@user/hiruji)
2021-11-15 04:36:06 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds)
2021-11-15 04:37:49 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-15 04:42:35 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f) (Ping timeout: 265 seconds)
2021-11-15 04:43:21 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 04:45:25 +0100slaydr(~seriley@97-120-85-233.ptld.qwest.net) (Remote host closed the connection)
2021-11-15 04:45:37 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-11-15 04:45:49 +0100bontaq(~user@ool-45779fe5.dyn.optonline.net) (Remote host closed the connection)
2021-11-15 04:48:09 +0100cjb35394(~cjbayliss@user/cjb)
2021-11-15 04:48:19 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-15 04:50:20 +0100cjb(~cjbayliss@user/cjb) (Ping timeout: 260 seconds)
2021-11-15 04:53:23 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 04:53:43 +0100cjb35394cjb
2021-11-15 04:58:35 +0100td_(~td@muedsl-82-207-238-006.citykom.de) (Ping timeout: 264 seconds)
2021-11-15 04:59:57 +0100td_(~td@muedsl-82-207-238-041.citykom.de)
2021-11-15 05:00:48 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Quit: Leaving)
2021-11-15 05:06:16 +0100cjb(~cjbayliss@user/cjb) ()
2021-11-15 05:11:36 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-15 05:13:03 +0100vicfred(~vicfred@user/vicfred) (Quit: Leaving)
2021-11-15 05:15:55 +0100blackcap(~blackcap@144.89-10-135.nextgentel.com)
2021-11-15 05:17:40 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 05:19:11 +0100akspecs__(~akspecs@user/akspecs) (Ping timeout: 246 seconds)
2021-11-15 05:19:35 +0100akspecs__(~akspecs@136-24-214-166.cab.webpass.net)
2021-11-15 05:19:35 +0100akspecs__(~akspecs@136-24-214-166.cab.webpass.net) (Changing host)
2021-11-15 05:19:35 +0100akspecs__(~akspecs@user/akspecs)
2021-11-15 05:21:23 +0100ralu(~ralu@static.211.245.203.116.clients.your-server.de) (Ping timeout: 264 seconds)
2021-11-15 05:21:49 +0100glguy(x@libera/staff/glguy) (Quit: Quit)
2021-11-15 05:22:01 +0100glguy(x@libera/staff/glguy)
2021-11-15 05:22:14 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 268 seconds)
2021-11-15 05:23:08 +0100 <blackcap> This sucks: http://termbin.com/dwhh
2021-11-15 05:23:23 +0100 <blackcap> There are 65 instructions with more than 1 arity
2021-11-15 05:31:26 +0100 <blackcap> .. and roughly 4k instructions total
2021-11-15 05:32:11 +0100jbox(~jbox@user/jbox) (Ping timeout: 264 seconds)
2021-11-15 05:36:13 +0100a6a45081-2b83(~aditya@2601:249:4300:1296:88ec:cc73:84d4:1507) (Quit: Konversation terminated!)
2021-11-15 05:38:06 +0100dajoer(~david@user/gvx)
2021-11-15 05:44:05 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f)
2021-11-15 05:48:59 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f) (Ping timeout: 264 seconds)
2021-11-15 05:54:46 +0100mimmy(~mimmy@45.14.195.121) (Ping timeout: 256 seconds)
2021-11-15 06:02:47 +0100 <Axman6> what's the problem?
2021-11-15 06:03:23 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 06:04:28 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-15 06:04:47 +0100 <Axman6> is there not a way to abstract over the argument types? like adc :: (RegOrMem a, RegOrMem b) => a -> b -> ASM ()
2021-11-15 06:05:11 +0100 <Axman6> , maybe not
2021-11-15 06:05:11 +0100 <blackcap> yes
2021-11-15 06:06:01 +0100 <Axman6> at feels like some of this could be stored in a table
2021-11-15 06:06:14 +0100 <Axman6> but... this is x86 right? x86 is gross :P
2021-11-15 06:06:18 +0100 <blackcap> I'm sure I could use typeclasses in many cases, but there are exceptions to everything
2021-11-15 06:07:12 +0100 <blackcap> yeah it's x86
2021-11-15 06:07:37 +0100sagax(~sagax_nb@user/sagax)
2021-11-15 06:07:50 +0100 <blackcap> and this gunk is generated from a table, I just want a nice dsl
2021-11-15 06:07:55 +0100 <Axman6> it sort of looks like there's 10 things that need to be encoded for each instruction, which makes me feel like you could represent each instruction as a 10-tuple, and at least then it would be more compact
2021-11-15 06:09:29 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Ping timeout: 256 seconds)
2021-11-15 06:09:41 +0100 <Axman6> data Needed a = N | Val a; adc_al_imm8 = (N,N,N,N,N, Val (opcode 0x14), N, Val (\a b -> disp_imm arg1 a), N)
2021-11-15 06:09:56 +0100 <Axman6> I guess opcode is needed for all instructions
2021-11-15 06:10:14 +0100 <Axman6> omg, this file is enormous
2021-11-15 06:10:19 +0100Vajb(~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99)
2021-11-15 06:11:00 +0100 <blackcap> It's only like 1/3rd of it- it got cut off
2021-11-15 06:11:23 +0100 <Axman6> like, those comments are nice, but they don't tell the compiler anything useful - you should attempt to make the compiler work for you
2021-11-15 06:12:17 +0100slice(~slice@user/slice) (Quit: zzz)
2021-11-15 06:12:27 +0100 <blackcap> I guess I could have a 10-tuple and use template haskell to generate the code
2021-11-15 06:13:40 +0100 <blackcap> but I still need to generate the functions, preferably with comments, and it doesn't solve the argument problem
2021-11-15 06:16:06 +0100 <aegon> when sending strings over the network (ascii only so no unicode to worry about, non user generated) is it normal to append the null byte at the end cstyle or leave that up to the consumer to figure out
2021-11-15 06:17:22 +0100xkuru(~xkuru@user/xkuru) (Read error: Connection reset by peer)
2021-11-15 06:17:28 +0100 <aegon> i'm thinking non-null terminated over the wire
2021-11-15 06:17:48 +0100 <Axman6> your choises are something like netstrings, which send their length and then content or null terminated. I would usually prefer the former
2021-11-15 06:18:12 +0100 <Axman6> choices*
2021-11-15 06:19:15 +0100 <aegon> yeah, i can rely on zeromq's frames to deal with lenght. i just need to double check that the way i'm serializing from ByteString.Char8 is not appending a null, digging into docs
2021-11-15 06:19:43 +0100 <aegon> wanted to make sure i wasn't commiting sacrilige by not appending a null
2021-11-15 06:21:43 +0100 <Axman6> nah
2021-11-15 06:24:31 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds)
2021-11-15 06:26:07 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 06:27:21 +0100 <aegon> it doesn't look like ByteString.Char8 pack appends a null but it might depend on whether String is null terminated or not im having trouble finding packChars definition
2021-11-15 06:28:54 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 06:30:26 +0100 <aegon> aand, doesn't look like it is nor are Strings null terminated, i can't find the docs on it but from playing around in ghci it looks like a string has no special null things implicit
2021-11-15 06:30:26 +0100Vajb(~Vajb@2001:999:85:46d7:d6a4:d6c1:950b:ce99) (Read error: Connection reset by peer)
2021-11-15 06:30:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 260 seconds)
2021-11-15 06:32:02 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 06:32:41 +0100 <aegon> i should have just read ByteStrings docs instead of deep diving, its pretty clear on all this :X
2021-11-15 06:33:16 +0100 <aegon> heh, its also late, that could hardly be called a 'deep dive' oy. Thanks for the sanity check Axman6
2021-11-15 06:33:30 +0100Vajb(~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
2021-11-15 06:33:44 +0100slice(~slice@user/slice)
2021-11-15 06:33:46 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 268 seconds)
2021-11-15 06:34:28 +0100img(~img@user/img)
2021-11-15 06:36:15 +0100slice(~slice@user/slice) (Client Quit)
2021-11-15 06:37:36 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds)
2021-11-15 06:49:18 +0100 <Axman6> blackcap: I don't suppose there is a machine readable definition of x86 instructions you could generate this Haskell from is there?
2021-11-15 06:51:24 +0100 <blackcap> It's generated from a csv file: https://github.com/StanfordPL/x64asm
2021-11-15 06:51:27 +0100 <blackcap> Axman6:
2021-11-15 06:53:55 +0100 <Axman6> all good then! what's to worry about? :P
2021-11-15 06:56:21 +0100 <blackcap> well, I just hate that I have to write `adc_al_imm8 foo bar`
2021-11-15 06:57:46 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 06:57:56 +0100ralu(~ralu@static.211.245.203.116.clients.your-server.de)
2021-11-15 06:58:11 +0100yaroot(~yaroot@47.70.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat)
2021-11-15 06:58:57 +0100yaroot(~yaroot@47.70.30.125.dy.iij4u.or.jp)
2021-11-15 07:01:07 +0100Guest80(~Guest80@pd9ed7c28.dip0.t-ipconnect.de)
2021-11-15 07:01:12 +0100slice(~slice@user/slice)
2021-11-15 07:02:38 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 07:03:00 +0100 <blackcap> it's not always the case that an instruction supports every kind of, say, register
2021-11-15 07:03:12 +0100 <blackcap> nor that every variant has the same arity
2021-11-15 07:04:35 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 264 seconds)
2021-11-15 07:07:55 +0100 <opqdonut> could you just have every instruction be a type class, with instances for tuples of arguments it supports?
2021-11-15 07:07:58 +0100 <Axman6> you could have class Add a b where add :: a -> b -> ASM (), and then make instances for all the legal ones which use those definitions - at least then you can write add Al (Imm8 0x7)
2021-11-15 07:08:27 +0100 <opqdonut> `class Add args where add :: args -> ASM ()` to support variable arities
2021-11-15 07:08:48 +0100 <opqdonut> and then `add (Al,Imm8 0x7)` or so
2021-11-15 07:09:07 +0100wei2912(~wei2912@138.75.71.147)
2021-11-15 07:13:27 +0100 <blackcap> also I could do `class Add arg r where add :: arg -> r` and write instances where `r` is `(->)` similar to printf
2021-11-15 07:14:09 +0100 <blackcap> I'm worried about type inference and speed though
2021-11-15 07:14:22 +0100 <blackcap> there are roughly 4k instructions
2021-11-15 07:16:42 +0100tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2021-11-15 07:18:04 +0100 <opqdonut> you could group the instructions into classes by similar signatures
2021-11-15 07:18:38 +0100 <opqdonut> the only way to know if there's a performance issue is to measure, I wouldn't be worried since each class is so small (in terms of methods & number of instances)
2021-11-15 07:19:00 +0100ec(~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds)
2021-11-15 07:26:47 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 07:27:43 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
2021-11-15 07:28:02 +0100mtjm(~mutantmel@2604:a880:2:d0::208b:d001)
2021-11-15 07:30:30 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 268 seconds)
2021-11-15 07:34:09 +0100slowButPresent(~slowButPr@user/slowbutpresent) (Quit: leaving)
2021-11-15 07:34:20 +0100aegon(~mike@174.127.249.180) (Remote host closed the connection)
2021-11-15 07:35:07 +0100img(~img@user/img)
2021-11-15 07:43:37 +0100 <Axman6> depends on what sort of performance you care about too - compile time or runtime. I would guess in this case probably compile time might actually matter more
2021-11-15 07:46:21 +0100takuan(~takuan@178-116-218-225.access.telenet.be)
2021-11-15 07:47:30 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 07:48:32 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 07:49:13 +0100img(~img@user/img)
2021-11-15 07:50:14 +0100motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 268 seconds)
2021-11-15 07:54:36 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-11-15 07:55:24 +0100img(~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 07:55:59 +0100 <blackcap> I hope compile-time gets better once it's a compiled library
2021-11-15 07:58:39 +0100eL_Bart0(eL_Bart0@dietunichtguten.org) (*.net *.split)
2021-11-15 07:58:39 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius) (*.net *.split)
2021-11-15 07:58:39 +0100oxytocat(~alloca@user/suppi) (*.net *.split)
2021-11-15 07:58:39 +0100Trattue(~Trattue@152.70.182.158) (*.net *.split)
2021-11-15 07:58:39 +0100Ferdirand(~somebody@2001:4c78:2012:5000::2) (*.net *.split)
2021-11-15 07:58:39 +0100HurdyGurdyBurdy(~HurdyGurd@user/hurdygurdyburdy) (*.net *.split)
2021-11-15 07:58:39 +0100ringo__(~ringo@157.230.117.128) (*.net *.split)
2021-11-15 07:58:39 +0100AWizzArd(~code@gehrels.uberspace.de) (*.net *.split)
2021-11-15 07:58:39 +0100ouroboros(~ouroboros@user/ouroboros) (*.net *.split)
2021-11-15 07:58:39 +0100liskin(~liskin@xmonad/liskin) (*.net *.split)
2021-11-15 07:58:39 +0100asm(~alexander@user/asm) (*.net *.split)
2021-11-15 07:58:39 +0100samebchase(~thelounge@51.15.68.182) (*.net *.split)
2021-11-15 07:58:39 +0100lambdabot(~lambdabot@haskell/bot/lambdabot) (*.net *.split)
2021-11-15 07:58:39 +0100dtman34(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (*.net *.split)
2021-11-15 07:58:45 +0100AWizzArd(~code@gehrels.uberspace.de)
2021-11-15 07:58:47 +0100Ferdirand(~somebody@2001:4c78:2012:5000::2)
2021-11-15 07:58:52 +0100lambdabot(~lambdabot@silicon.int-e.eu)
2021-11-15 07:58:56 +0100samebchase(~thelounge@51.15.68.182)
2021-11-15 07:59:01 +0100HurdyGurdyBurdy(~HurdyGurd@user/hurdygurdyburdy)
2021-11-15 07:59:02 +0100asm(~alexander@burner.asm89.io)
2021-11-15 07:59:06 +0100lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-11-15 07:59:06 +0100lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-11-15 07:59:08 +0100eL_Bart0(eL_Bart0@dietunichtguten.org)
2021-11-15 07:59:11 +0100oxytocat(~alloca@2a03:4000:f:7ca:7407:d1ff:fe34:8cd0)
2021-11-15 07:59:12 +0100liskin(~liskin@ackle.nomi.cz)
2021-11-15 07:59:16 +0100oxytocat(~alloca@2a03:4000:f:7ca:7407:d1ff:fe34:8cd0) (Signing in (oxytocat))
2021-11-15 07:59:16 +0100oxytocat(~alloca@user/suppi)
2021-11-15 07:59:23 +0100 <blackcap> run-time doesn't matter terribly much, `ASM` here is just `Accum (Endo [Byte])`
2021-11-15 07:59:24 +0100liskin(~liskin@ackle.nomi.cz) (Signing in (liskin))
2021-11-15 07:59:24 +0100liskin(~liskin@xmonad/liskin)
2021-11-15 07:59:33 +0100Raito_Bezarius(~Raito@2a01:e0a:5f9:9681:1c66:fc75:c47c:31bc)
2021-11-15 07:59:41 +0100ringo__(~ringo@157.230.117.128)
2021-11-15 07:59:43 +0100dtman34(~dtman34@c-73-62-246-247.hsd1.mn.comcast.net)
2021-11-15 07:59:55 +0100img(~img@user/img)
2021-11-15 08:00:41 +0100ouroboros(~ouroboros@user/ouroboros)
2021-11-15 08:02:16 +0100pavonia(~user@user/siracusa) (Read error: Connection reset by peer)
2021-11-15 08:02:41 +0100pavonia(~user@user/siracusa)
2021-11-15 08:02:41 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 265 seconds)
2021-11-15 08:02:52 +0100 <Axman6> have you considered using Accum Builder?
2021-11-15 08:03:46 +0100 <Axman6> Endo [Byte] is, like, super wasteful
2021-11-15 08:04:14 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-11-15 08:04:22 +0100martin02(~silas@2001:4ca0:0:fe00:0:5efe:a96:1bc1) (*.net *.split)
2021-11-15 08:04:22 +0100mjacob(~mjacob@adrastea.uberspace.de) (*.net *.split)
2021-11-15 08:04:22 +0100Ranhir(~Ranhir@157.97.53.139) (*.net *.split)
2021-11-15 08:04:22 +0100cawfee(~root@2406:3003:2077:2758::babe) (*.net *.split)
2021-11-15 08:04:22 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (*.net *.split)
2021-11-15 08:04:22 +0100Hafydd(~Hafydd@user/hafydd) (*.net *.split)
2021-11-15 08:04:22 +0100sajith(~sajith@user/sajith) (*.net *.split)
2021-11-15 08:04:22 +0100derelict(derelict@user/derelict) (*.net *.split)
2021-11-15 08:04:22 +0100earthy(~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0) (*.net *.split)
2021-11-15 08:04:22 +0100averell(~averell@user/averell) (*.net *.split)
2021-11-15 08:04:22 +0100hays(rootvegeta@fsf/member/hays) (*.net *.split)
2021-11-15 08:04:22 +0100landonf(landonf@mac68k.info) (*.net *.split)
2021-11-15 08:04:22 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407) (*.net *.split)
2021-11-15 08:04:22 +0100Flow(~none@gentoo/developer/flow) (*.net *.split)
2021-11-15 08:04:22 +0100welterde(welterde@thinkbase.srv.welterde.de) (*.net *.split)
2021-11-15 08:04:34 +0100mjacob(~mjacob@adrastea.uberspace.de)
2021-11-15 08:04:34 +0100hays(rootvegeta@fsf/member/hays)
2021-11-15 08:04:37 +0100landonf(landonf@mac68k.info)
2021-11-15 08:04:38 +0100averell(~averell@user/averell)
2021-11-15 08:04:41 +0100cawfee(~root@2406:3003:2077:2758::babe)
2021-11-15 08:04:41 +0100 <Axman6> like, each Byte would take up...like 5 words in memory, at least
2021-11-15 08:04:42 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-11-15 08:04:50 +0100Ranhir(~Ranhir@157.97.53.139)
2021-11-15 08:04:54 +0100sajith_(~sajith@user/sajith)
2021-11-15 08:04:54 +0100earthy(~arthurvl@2001:984:275b:1:ba27:ebff:fea0:40b0)
2021-11-15 08:04:54 +0100Hafydd(~Hafydd@user/hafydd)
2021-11-15 08:04:57 +0100derelict(~derelict@user/derelict)
2021-11-15 08:05:01 +0100martin02(~silas@141.84.69.76)
2021-11-15 08:05:03 +0100Flow(~none@gentoo/developer/flow)
2021-11-15 08:05:03 +0100welterde(welterde@thinkbase.srv.welterde.de)
2021-11-15 08:05:04 +0100 <blackcap> yeah, I'm defenitly doing that eventually
2021-11-15 08:05:07 +0100catern(~sbaugh@2604:2000:8fc0:b:a9c7:866a:bf36:3407)
2021-11-15 08:07:57 +0100michalz(~michalz@185.246.204.57)
2021-11-15 08:11:06 +0100 <Axman6> though I'm also not sure how efficient Builder is when building one byte at a time, which it looks like this probably does.
2021-11-15 08:16:46 +0100Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2021-11-15 08:17:32 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-11-15 08:18:26 +0100sagax(~sagax_nb@user/sagax) (Read error: Connection reset by peer)
2021-11-15 08:20:19 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f)
2021-11-15 08:21:24 +0100 <blackcap> probably better than a linked list
2021-11-15 08:25:14 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f) (Ping timeout: 265 seconds)
2021-11-15 08:33:54 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 08:34:13 +0100 <blackcap> typeclasses hardly affected compile-time at all!
2021-11-15 08:34:43 +0100sagax(~sagax_nb@user/sagax)
2021-11-15 08:35:28 +0100 <blackcap> I have had bad experiences with typeclasses in the past: https://github.com/BlackCapCoder/oeis/blob/master/src/OEIS/Part2.hs
2021-11-15 08:35:47 +0100 <blackcap> but I guess they're fine it there aren't too many instances?
2021-11-15 08:36:21 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-15 08:47:32 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 08:48:36 +0100 <tomsmeding> that feels like an uncommon amount of typeclass instances in one module :p
2021-11-15 08:48:49 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 268 seconds)
2021-11-15 08:48:52 +0100shriekingnoise(~shrieking@186.137.144.80) (Quit: Quit)
2021-11-15 08:50:34 +0100chele(~chele@user/chele)
2021-11-15 08:50:52 +0100dsrt^(~dsrt@h50.174.139.63.static.ip.windstream.net) (Remote host closed the connection)
2021-11-15 08:52:01 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 08:53:05 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 08:53:06 +0100 <blackcap> That's only "Part2"; I had to arbitrarily divide them into separate files to keep compilation time down during development
2021-11-15 08:58:29 +0100 <tomsmeding> blackcap: yeah my point was that the fact that your OEIS code compiled slowly doesn't mean that type classes in general are slow; the more likely culprit is the sheer number of instances in that module :)
2021-11-15 08:58:59 +0100 <tomsmeding> hence, what you said
2021-11-15 08:59:05 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:4f7e:a333:a04f:8257)
2021-11-15 09:01:00 +0100 <ozzloy_> https://paste.tomsmeding.com/owRGSS8q lines 26 through 48 are painful. i think there's a better way to do this, but it's not occurring to me
2021-11-15 09:01:21 +0100 <blackcap> I have 4k instances in one file for this assembler, though, and it compiles in about a second
2021-11-15 09:01:25 +0100acidjnk_new(~acidjnk@p200300d0c7437376bc7d0da008ce8c42.dip0.t-ipconnect.de)
2021-11-15 09:03:08 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f)
2021-11-15 09:04:31 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-11-15 09:04:35 +0100 <blackcap> ozzloy_: how about `foldMap \a -> (Min a, Max a)`
2021-11-15 09:05:17 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 250 seconds)
2021-11-15 09:06:12 +0100 <ozzloy_> blackcap, thanks!
2021-11-15 09:06:19 +0100slice(~slice@user/slice) (Quit: cya)
2021-11-15 09:08:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 09:09:48 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 09:10:27 +0100 <ozzloy_> i'm not sure how foldMap works
2021-11-15 09:11:28 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be)
2021-11-15 09:11:50 +0100jonathanx(~jonathan@dyn-8-sc.cdg.chalmers.se)
2021-11-15 09:12:24 +0100 <ozzloy_> this notation is confusing. could you tell me what i'm missing here? that looks like foldMap takes a function that takes one argument and returns a tuple that consists of the minimum of that argument and the maximum of that argument
2021-11-15 09:12:35 +0100 <ozzloy_> i'm confused by it, anyways
2021-11-15 09:13:32 +0100 <ozzloy_> what is "Min"? i'm finding results for "min" but not "Min"
2021-11-15 09:13:37 +0100 <blackcap> Min and Max are from Data.Semigroup
2021-11-15 09:14:04 +0100 <ozzloy_> thanks
2021-11-15 09:14:21 +0100 <blackcap> foldMap is folding the list using (<>)
2021-11-15 09:14:57 +0100 <ozzloy_> i read that. i'm not sure how to search for that
2021-11-15 09:15:12 +0100 <ozzloy_> thanks
2021-11-15 09:15:19 +0100 <blackcap> which is going to be `(<>) = min` and `(<>) = max` for Min and Max
2021-11-15 09:16:08 +0100 <ozzloy_> i ... see?
2021-11-15 09:16:59 +0100 <blackcap> .. and the tuple is because the Semigroup instance for (,) is `instance (Semigroup a, Semigroup b) => Semigroup (a,b)`
2021-11-15 09:17:37 +0100 <blackcap> so fold once, but do both min and max in one go
2021-11-15 09:18:02 +0100 <c_wraith> That's not going to have great performance characteristics, sadly
2021-11-15 09:18:19 +0100 <ozzloy_> blackcap, thanks for help
2021-11-15 09:18:49 +0100 <blackcap> why not, because of the tuple?
2021-11-15 09:19:13 +0100 <blackcap> Min and Max are newtypes, so those should be free
2021-11-15 09:19:25 +0100 <c_wraith> you need to be using foldMap' at the very least
2021-11-15 09:19:43 +0100max22-(~maxime@2a01cb08833598003ad2294d5328f338.ipv6.abo.wanadoo.fr)
2021-11-15 09:19:43 +0100 <ozzloy_> i'll keep that in mind for later. at the moment, i'm just learning how to express ideas in haskell
2021-11-15 09:19:55 +0100 <ozzloy_> and what ideas haskell has to express
2021-11-15 09:20:00 +0100 <c_wraith> looks like your function is going to need to force evaluation of its arguments before generating its (,) constructor, too
2021-11-15 09:21:38 +0100 <c_wraith> which is why things like this typically use a strict pair - it's ridiculously painful to get evaluation of the components of a tuple with even foldMap'
2021-11-15 09:21:40 +0100gehmehgeh(~user@user/gehmehgeh)
2021-11-15 09:22:55 +0100 <ozzloy_> so ... i have ideas that i already know and would like to express in haskell, but don't know how. and that feels nearer to me than learning these new-to-me ideas.
2021-11-15 09:23:49 +0100 <c_wraith> :t foldMap' (\a -> a `seq` (Min a, Max a)) -- I guess this is strict enough to not leak, at least with types that must be fully evaluated to determine the min and max
2021-11-15 09:23:50 +0100 <lambdabot> (Foldable t, Ord a, Bounded a) => t a -> (Min a, Max a)
2021-11-15 09:24:19 +0100 <c_wraith> Oh, nope. It's not.
2021-11-15 09:24:24 +0100 <c_wraith> You really do need a strict pair.
2021-11-15 09:24:38 +0100 <ozzloy_> i would like to do something like https://paste.tomsmeding.com/N2Eu0Pur
2021-11-15 09:25:41 +0100 <ozzloy_> i know that's incorrect. but the idea i'd like to express is to give a name to the smaller of a and b, and to the larger of a and b, and only compare a and b once to do that
2021-11-15 09:25:43 +0100 <c_wraith> You're not really following the spirit of the directions you've got there.
2021-11-15 09:25:50 +0100 <ozzloy_> i'm not?
2021-11-15 09:26:10 +0100 <ozzloy_> oh, you mean line 31?
2021-11-15 09:26:15 +0100 <ozzloy_> foldr?
2021-11-15 09:26:30 +0100 <c_wraith> They strongly suggest you should be using compare (or < and >) explicitly, so you can control exactly how many times it's called
2021-11-15 09:26:37 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 265 seconds)
2021-11-15 09:27:15 +0100 <c_wraith> instead of calling sort, min, and max
2021-11-15 09:27:16 +0100 <ozzloy_> yeah, i get that. sorry, i wrote an implementation that gives the correct answer, and now i'm trying to write code that does it in the right way
2021-11-15 09:27:35 +0100 <c_wraith> eh. the right way is to forget the problem spec. :)
2021-11-15 09:27:41 +0100 <ozzloy_> heh
2021-11-15 09:27:56 +0100 <c_wraith> this is best expressed as a foldl', actually
2021-11-15 09:29:35 +0100 <ozzloy_> how do i name the smaller of 2 variables "smaller" and the larger "larger" using only one comparison?
2021-11-15 09:30:02 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-15 09:30:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 09:30:30 +0100 <c_wraith> let (smaller, larger) = if (x < y) then (x, y) else (y, x)
2021-11-15 09:30:38 +0100 <ozzloy_> ah, thanks
2021-11-15 09:32:48 +0100 <ozzloy_> does that seem like the way someone who was new to haskell would follow these instructions?
2021-11-15 09:33:22 +0100 <c_wraith> maybe, if they were comfortable with pattern matching
2021-11-15 09:33:34 +0100 <blackcap> http://termbin.com/ucbo
2021-11-15 09:33:36 +0100 <ozzloy_> i'm thinking that lines up pretty closely with "process the list of numbers in pairs first with each other"
2021-11-15 09:34:00 +0100 <ozzloy_> c_wraith, well initially i had a giant nested if-else
2021-11-15 09:34:25 +0100 <ozzloy_> c_wraith, is that beginner-y enough for you?
2021-11-15 09:34:27 +0100 <c_wraith> You don't need that, if you take advantage of a let or where to name values
2021-11-15 09:35:26 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 09:36:47 +0100 <ozzloy_> blackcap, lol, thanks. i will turn that in and claim that i wrote it
2021-11-15 09:37:08 +0100 <blackcap> if you use explicit recursion you can avoid the `Tup` wrapper
2021-11-15 09:38:27 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-15 09:38:58 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:185c:f2cc:27d3:da20) (Remote host closed the connection)
2021-11-15 09:39:57 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2021-11-15 09:40:19 +0100Guest80(~Guest80@pd9ed7c28.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2021-11-15 09:41:34 +0100 <blackcap> if you have a list of native types like Int, import GHC.Exts, get rid of the `I#` wrapper and use `geInt#`
2021-11-15 09:42:07 +0100 <ozzloy_> ok, so now i have this https://paste.tomsmeding.com/p5FHTbJV which i think does 3 comparisons for 2 numbers
2021-11-15 09:42:25 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-11-15 09:42:35 +0100 <ozzloy_> now i need to consume the initial list 2 elements at a time
2021-11-15 09:42:54 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Client Quit)
2021-11-15 09:43:10 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-11-15 09:43:41 +0100neurocyte0132889(~neurocyte@94.16.67.223)
2021-11-15 09:43:42 +0100neurocyte0132889(~neurocyte@94.16.67.223) (Changing host)
2021-11-15 09:43:42 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 09:47:34 +0100fuzzypixelz_(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 265 seconds)
2021-11-15 09:50:33 +0100 <ozzloy_> thanks again blackcap and c_wraith. i'm off to bed. will return to this later
2021-11-15 09:56:07 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-11-15 09:56:47 +0100neurocyte0132889(~neurocyte@94.16.67.223)
2021-11-15 09:56:47 +0100neurocyte0132889(~neurocyte@94.16.67.223) (Changing host)
2021-11-15 09:56:47 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 10:00:09 +0100conphiz[m](~conphizma@2001:470:69fc:105::c052) (Quit: You have been kicked for being idle)
2021-11-15 10:04:39 +0100acidjnk_new(~acidjnk@p200300d0c7437376bc7d0da008ce8c42.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-11-15 10:07:36 +0100bitmapper(uid464869@lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-15 10:10:01 +0100 <blackcap> If the number of elements is known in advance, you can find the answer probabilistically by checking at most half: http://termbin.com/7ssg
2021-11-15 10:10:32 +0100 <blackcap> If the number of elements is infinite, use brents algorithm to find a cycle first: http://termbin.com/1hil
2021-11-15 10:11:36 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 10:13:10 +0100Guest8716(~evan@2600:1700:ba69:10:41e7:efbb:d2c9:20f) (Quit: WeeChat 3.3)
2021-11-15 10:17:33 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Killed (NickServ (GHOST command used by allbery_b)))
2021-11-15 10:17:33 +0100allbery_b(~geekosaur@xmonad/geekosaur)
2021-11-15 10:17:36 +0100allbery_bgeekosaur
2021-11-15 10:18:19 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-11-15 10:18:51 +0100cosimone(~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3)
2021-11-15 10:19:39 +0100Pickchea(~private@user/pickchea)
2021-11-15 10:19:42 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Read error: Connection reset by peer)
2021-11-15 10:20:01 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-15 10:20:56 +0100mastarija(~mastarija@2a05:4f46:e06:ff00:dd0f:baa7:ff4f:4d80)
2021-11-15 10:29:54 +0100ubert(~Thunderbi@p200300ecdf0ba27448631365ce659eb5.dip0.t-ipconnect.de)
2021-11-15 10:39:45 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3)
2021-11-15 10:40:41 +0100Gurkenglas(~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de)
2021-11-15 10:44:05 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3) (Ping timeout: 250 seconds)
2021-11-15 10:46:55 +0100ub(~Thunderbi@p548c9fcb.dip0.t-ipconnect.de)
2021-11-15 10:47:33 +0100ubert(~Thunderbi@p200300ecdf0ba27448631365ce659eb5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds)
2021-11-15 10:47:33 +0100ububert
2021-11-15 10:54:41 +0100notzmv(~zmv@user/notzmv) (Ping timeout: 245 seconds)
2021-11-15 10:54:49 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.3)
2021-11-15 10:55:06 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
2021-11-15 10:59:41 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 11:04:17 +0100SquareSqaure
2021-11-15 11:10:29 +0100olibiera(~olibiera@a79-169-181-190.cpe.netcabo.pt)
2021-11-15 11:12:20 +0100 <olibiera> hi guys i have this piece of code and im trying to call it recursively for every element of ys and zs and not just for y and z... can any1 explain how to?
2021-11-15 11:12:24 +0100 <olibiera> replace' :: [String] -> [String] -> [Int] -> [String]
2021-11-15 11:12:25 +0100 <olibiera>     replace' xs [] [] = xs
2021-11-15 11:12:25 +0100 <olibiera>     replace' xs (y:ys) (z:zs) = replace'' y z xs
2021-11-15 11:12:25 +0100 <olibiera>                             where replace'' y z xs = map (\x -> if (y == x) then show z else x) xs
2021-11-15 11:12:52 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-15 11:14:26 +0100 <[exa]> olibiera: what is it supposed to do? (also, can you paste it on pastebin so we can view it better, preferably along an error message so that we know what to fix?)
2021-11-15 11:15:55 +0100 <[exa]> anyway, in general, to recurse to the rest of the lists, you'll need to call something like: replace' _ ys zs
2021-11-15 11:16:44 +0100olibiera52(~olibiera@a79-169-181-190.cpe.netcabo.pt)
2021-11-15 11:17:13 +0100olibiera(~olibiera@a79-169-181-190.cpe.netcabo.pt) (Ping timeout: 256 seconds)
2021-11-15 11:17:22 +0100olibiera52(~olibiera@a79-169-181-190.cpe.netcabo.pt) (Client Quit)
2021-11-15 11:17:28 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 11:17:37 +0100olibiera(~olibiera@a79-169-181-190.cpe.netcabo.pt)
2021-11-15 11:18:12 +0100dfip^(~dfip@h50.174.139.63.static.ip.windstream.net)
2021-11-15 11:19:27 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-11-15 11:21:38 +0100cfricke(~cfricke@user/cfricke)
2021-11-15 11:22:13 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 250 seconds)
2021-11-15 11:23:12 +0100 <olibiera> guys i sent my code to https://paste.tomsmeding.com/ , where will the answer be?
2021-11-15 11:26:10 +0100 <[exa]> ah you need to send us the precise link (not just to the pastebin frontpage)
2021-11-15 11:26:26 +0100 <[exa]> anyway, what's the expected function of the code?
2021-11-15 11:28:27 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-11-15 11:34:10 +0100 <olibiera> https://paste.tomsmeding.com/eiutK5Xl
2021-11-15 11:34:16 +0100 <olibiera> okok ty
2021-11-15 11:34:22 +0100 <olibiera> here it is
2021-11-15 11:41:37 +0100Sinbad(~Sinbad@user/sinbad)
2021-11-15 11:45:43 +0100mastarija(~mastarija@2a05:4f46:e06:ff00:dd0f:baa7:ff4f:4d80) (Quit: Leaving)
2021-11-15 11:46:25 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-11-15 11:50:19 +0100neurocyte0132889(~neurocyte@94.16.67.223)
2021-11-15 11:50:19 +0100neurocyte0132889(~neurocyte@94.16.67.223) (Changing host)
2021-11-15 11:50:19 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 11:53:11 +0100 <[exa]> olibiera: so you have a list of strings to find and replace, what does the [Int] mean there?
2021-11-15 11:55:03 +0100 <[exa]> olibiera: anyway, I guess you want something like
2021-11-15 11:55:04 +0100Trattue(~Trattue@152.70.182.158)
2021-11-15 11:55:07 +0100 <olibiera> the int are the values i want to replace in xs if  the words are equal
2021-11-15 11:55:24 +0100 <[exa]> replace' xs (y:ys) (z:zs) = replace' (replace'' y z xs) ys zs
2021-11-15 11:55:28 +0100 <olibiera> the words in xs and ys
2021-11-15 11:55:38 +0100 <[exa]> there you process one replacement, and continue with replacing the other replacements on the result
2021-11-15 11:57:16 +0100 <[exa]> anyway yeah it makes sense now, I got confused by the ordering of the arguments (normally we tend to put the "data" as the last parameter, as you have in replace'')
2021-11-15 11:57:37 +0100 <olibiera> ty so much, this is to confusing to me, i ll look slowly in the code
2021-11-15 11:58:52 +0100 <olibiera> oh k got it, makes sense
2021-11-15 12:02:31 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 250 seconds)
2021-11-15 12:05:05 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 12:05:08 +0100timCF(~timCF@200-149-20-81.sta.estpak.ee)
2021-11-15 12:06:10 +0100 <timCF> Hello! Is there the way to unlift type-level bool to term-level bool, similar to what `symbolVal` is doing with type-level strings?
2021-11-15 12:07:12 +0100 <lortabac> @singleton-bool
2021-11-15 12:07:13 +0100 <lambdabot> Unknown command, try @list
2021-11-15 12:07:18 +0100 <lortabac> @hackage singleton-bool
2021-11-15 12:07:18 +0100 <lambdabot> https://hackage.haskell.org/package/singleton-bool
2021-11-15 12:07:25 +0100 <lortabac> timCF: ^
2021-11-15 12:09:11 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-11-15 12:09:42 +0100 <timCF> lortabac: thanks!
2021-11-15 12:12:02 +0100neurocyte0132889(~neurocyte@94.16.67.223)
2021-11-15 12:12:02 +0100neurocyte0132889(~neurocyte@94.16.67.223) (Changing host)
2021-11-15 12:12:02 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 12:14:39 +0100 <timCF> Any ideas why this is not in GHC.TypeLits? Bool is pretty basic type I think
2021-11-15 12:15:25 +0100olibiera(~olibiera@a79-169-181-190.cpe.netcabo.pt) (Quit: Client closed)
2021-11-15 12:20:27 +0100wei2912(~wei2912@138.75.71.147) (Quit: Lost terminal)
2021-11-15 12:21:27 +0100 <arahael> how easy is it for me to cross compile a cabal project to an rpi target? the target is aarm64 running linux. the host is also aarm64, but running macos.
2021-11-15 12:22:05 +0100 <kuribas> it'd be nice to be able to unlift "any" DataKind
2021-11-15 12:23:53 +0100 <maerwald> arahael: does docker/qemu work on mac?
2021-11-15 12:24:40 +0100 <maerwald> there's https://github.com/multiarch/qemu-user-static
2021-11-15 12:24:48 +0100 <timCF> arahael: 64-bit arm should be fine I think. With armv6 you might have some issues
2021-11-15 12:26:25 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae) (Ping timeout: 265 seconds)
2021-11-15 12:26:30 +0100orcus(~orcus@user/brprice) (Ping timeout: 260 seconds)
2021-11-15 12:27:05 +0100dispater-(~dispater@user/brprice) (Ping timeout: 264 seconds)
2021-11-15 12:27:28 +0100lambdabot(~lambdabot@haskell/bot/lambdabot) (Ping timeout: 256 seconds)
2021-11-15 12:28:10 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Remote host closed the connection)
2021-11-15 12:29:20 +0100vjoki(~vjoki@2a00:d880:3:1::fea1:9ae)
2021-11-15 12:29:21 +0100orcus(~orcus@user/brprice)
2021-11-15 12:29:47 +0100dispater(~dispater@user/brprice)
2021-11-15 12:30:51 +0100lambdabot(~lambdabot@silicon.int-e.eu)
2021-11-15 12:30:51 +0100lambdabot(~lambdabot@silicon.int-e.eu) (Changing host)
2021-11-15 12:30:51 +0100lambdabot(~lambdabot@haskell/bot/lambdabot)
2021-11-15 12:35:29 +0100 <arahael> maerwald: Yeah, that's an option, actually I do have linux on an x86, but the mac is already aarm64.
2021-11-15 12:35:50 +0100 <arahael> timCF: I don't even know where to start, though.
2021-11-15 12:36:18 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-11-15 12:37:21 +0100 <timCF> arahael: :)
2021-11-15 12:37:32 +0100 <Sinbad> Using the net-mqtt package I'd like to connect to an mqtt server which has a self signed certificate. I can't see how to configure the client with passing the file path to the certificate. Neither @bar(input):button1
2021-11-15 12:38:54 +0100 <arahael> timCF: So, I mean, is there like, an environment variable I have to set before calling 'cabal build'? :)
2021-11-15 12:39:24 +0100 <Sinbad> TLSSettings does not seem to have such field.
2021-11-15 12:39:44 +0100__monty__(~toonn@user/toonn)
2021-11-15 12:39:46 +0100jmorris(uid433911@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-15 12:41:10 +0100 <timCF> arahael: I actually don't know much about how to do it with cabal, but it should be relatively easy to do with nix https://input-output-hk.github.io/haskell.nix/tutorials/cross-compilation/
2021-11-15 12:41:41 +0100 <timCF> arahael: But of course it requires at least some nix knowledge
2021-11-15 12:42:02 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3)
2021-11-15 12:42:32 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 260 seconds)
2021-11-15 12:42:45 +0100 <arahael> timCF: I have _some_ nix knowledge, but wow, that looks like a project on it's own.
2021-11-15 12:43:12 +0100 <arahael> I think my best bet is to probably just run an aarch64 VM, and then do the regular haskell build in that.
2021-11-15 12:44:39 +0100 <maerwald> "easy to do with nix" ...haha
2021-11-15 12:45:33 +0100 <maerwald> ghcup supports building GHC cross toolchains, but 1. it requires you to have the C libs for the correct architecture and 2. I don't know what the state of TH cross-compilation is
2021-11-15 12:46:17 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3) (Ping timeout: 250 seconds)
2021-11-15 12:47:19 +0100econo(uid147250@user/econo) (Quit: Connection closed for inactivity)
2021-11-15 12:51:29 +0100Sinbad(~Sinbad@user/sinbad) (Ping timeout: 250 seconds)
2021-11-15 13:03:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-15 13:03:51 +0100notzmv(~zmv@user/notzmv)
2021-11-15 13:05:12 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:07:21 +0100pretty_dumm_guy(trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
2021-11-15 13:10:40 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net)
2021-11-15 13:10:53 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 13:11:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:15:24 +0100kupi(uid212005@hampstead.irccloud.com)
2021-11-15 13:15:45 +0100cfricke(~cfricke@user/cfricke) (Ping timeout: 250 seconds)
2021-11-15 13:16:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 13:16:48 +0100jollygood2(~bc8165b6@217.29.117.252)
2021-11-15 13:17:07 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:18:31 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
2021-11-15 13:20:13 +0100jakalx(~jakalx@base.jakalx.net)
2021-11-15 13:21:25 +0100AlexNoo_AlexNoo
2021-11-15 13:22:29 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 13:22:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:28:06 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2021-11-15 13:28:55 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:29:41 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-15 13:30:05 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 13:30:53 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 13:34:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-15 13:35:20 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:36:56 +0100machinedgod(~machinedg@24.105.81.50)
2021-11-15 13:40:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-15 13:40:41 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:40:42 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-15 13:40:56 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 13:41:03 +0100lavaman(~lavaman@98.38.249.169) (Remote host closed the connection)
2021-11-15 13:42:32 +0100juhp(~juhp@128.106.188.220) (Quit: juhp)
2021-11-15 13:43:16 +0100max22-(~maxime@2a01cb08833598003ad2294d5328f338.ipv6.abo.wanadoo.fr) (Ping timeout: 265 seconds)
2021-11-15 13:46:18 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-15 13:46:43 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 13:47:05 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 13:47:36 +0100Cajun(~Cajun@user/cajun) (Quit: Client closed)
2021-11-15 13:48:14 +0100puke(~puke@user/puke)
2021-11-15 13:49:17 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Quit: The Lounge - https://thelounge.chat)
2021-11-15 13:50:04 +0100neurocyte0132889(~neurocyte@94.16.67.223)
2021-11-15 13:50:04 +0100neurocyte0132889(~neurocyte@94.16.67.223) (Changing host)
2021-11-15 13:50:04 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 13:50:25 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2021-11-15 13:56:50 +0100juhp(~juhp@128.106.188.220)
2021-11-15 13:57:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 13:57:47 +0100Pickchea(~private@user/pickchea) (Ping timeout: 250 seconds)
2021-11-15 13:58:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:03:34 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:03:46 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:05:25 +0100boxscape_(~boxscape_@134.171.69.87)
2021-11-15 14:06:51 +0100Kaipi(~Kaiepi@156.34.44.192) (Quit: Leaving)
2021-11-15 14:07:07 +0100Kaiepi(~Kaiepi@156.34.44.192)
2021-11-15 14:09:22 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:09:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:11:21 +0100stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2021-11-15 14:11:43 +0100stiell(~stiell@gateway/tor-sasl/stiell)
2021-11-15 14:11:44 +0100jlamothe(~jlamothe@198.251.61.229) (Ping timeout: 256 seconds)
2021-11-15 14:12:06 +0100alzgh(~alzgh@user/alzgh)
2021-11-15 14:12:18 +0100wei2912(~wei2912@138.75.71.147)
2021-11-15 14:15:08 +0100fuzzypixelz_(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-15 14:16:10 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 260 seconds)
2021-11-15 14:16:21 +0100son0p(~ff@181.136.122.143) (Remote host closed the connection)
2021-11-15 14:19:31 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:20:28 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:21:23 +0100epolanski(uid312403@helmsley.irccloud.com)
2021-11-15 14:24:01 +0100pavonia(~user@user/siracusa) (Quit: Bye!)
2021-11-15 14:25:26 +0100son0p(~ff@181.136.122.143)
2021-11-15 14:25:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:25:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:28:15 +0100ystael(~ystael@user/ystael)
2021-11-15 14:28:44 +0100alx741(~alx741@181.196.68.87) (Ping timeout: 256 seconds)
2021-11-15 14:31:37 +0100bitmapper(uid464869@lymington.irccloud.com)
2021-11-15 14:34:58 +0100slowButPresent(~slowButPr@user/slowbutpresent)
2021-11-15 14:35:57 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:36:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:36:59 +0100Pickchea(~private@user/pickchea)
2021-11-15 14:38:21 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 14:39:02 +0100max22-(~maxime@2a01cb0883359800387721e60f64db31.ipv6.abo.wanadoo.fr)
2021-11-15 14:42:14 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 14:42:37 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:43:11 +0100Farzad(~FarzadBek@178.131.26.179)
2021-11-15 14:43:40 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3)
2021-11-15 14:48:18 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-15 14:48:20 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3) (Ping timeout: 268 seconds)
2021-11-15 14:48:42 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Quit: Reconnecting)
2021-11-15 14:48:48 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 14:48:57 +0100pop3(~pop3@user/pop3)
2021-11-15 14:50:05 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 14:55:17 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 265 seconds)
2021-11-15 14:55:50 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 14:59:46 +0100bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2021-11-15 15:11:58 +0100gehmehgeh_(~user@user/gehmehgeh)
2021-11-15 15:12:12 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Ping timeout: 276 seconds)
2021-11-15 15:13:19 +0100alx741(~alx741@181.196.68.87)
2021-11-15 15:14:09 +0100gehmehgeh(~user@user/gehmehgeh) (Ping timeout: 276 seconds)
2021-11-15 15:14:49 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-11-15 15:15:18 +0100motherfsck(~motherfsc@user/motherfsck)
2021-11-15 15:17:57 +0100fuzzypixelz_(~fuzzypixe@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 250 seconds)
2021-11-15 15:20:03 +0100Sinbad(~Sinbad@user/sinbad)
2021-11-15 15:21:40 +0100mcgroin(~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.3)
2021-11-15 15:22:48 +0100Sgeo(~Sgeo@user/sgeo)
2021-11-15 15:23:31 +0100timCF(~timCF@200-149-20-81.sta.estpak.ee) (Quit: leaving)
2021-11-15 15:24:55 +0100shriekingnoise(~shrieking@186.137.144.80)
2021-11-15 15:29:05 +0100jpds(~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
2021-11-15 15:29:26 +0100jpds(~jpds@gateway/tor-sasl/jpds)
2021-11-15 15:32:58 +0100jollygood2(~bc8165b6@217.29.117.252) (Quit: http://www.okay.uz/ (Ping timeout))
2021-11-15 15:35:32 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-15 15:35:54 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-11-15 15:36:57 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 15:37:22 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be)
2021-11-15 15:41:13 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net)
2021-11-15 15:41:19 +0100gehmehgeh_gehmehgeh
2021-11-15 15:41:21 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-15 15:42:12 +0100 <boxscape_> I don't suppose there exists a library that lets you parse a Haskell code string into a template haskell Exp?
2021-11-15 15:42:27 +0100 <dminuoso> There is
2021-11-15 15:42:29 +0100 <merijn> boxscape_: eh...
2021-11-15 15:42:30 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 260 seconds)
2021-11-15 15:42:34 +0100 <merijn> "template-haskell"? :p
2021-11-15 15:42:47 +0100 <boxscape_> Hm I didn't know template-haskell included a parser
2021-11-15 15:42:47 +0100 <merijn> That's what all the quasi quoters do :p
2021-11-15 15:42:47 +0100 <dminuoso> ^-
2021-11-15 15:42:53 +0100 <boxscape_> oh I se
2021-11-15 15:42:54 +0100 <boxscape_> e
2021-11-15 15:42:59 +0100 <merijn> boxscape_: Because it's hidden as a quasi-quoter
2021-11-15 15:43:02 +0100 <boxscape_> right, ok
2021-11-15 15:43:12 +0100 <boxscape_> thanks
2021-11-15 15:43:14 +0100 <merijn> % [e|2 + 5|]
2021-11-15 15:43:15 +0100 <yahb> merijn: InfixE (Just (LitE (IntegerL 2))) (VarE GHC.Num.+) (Just (LitE (IntegerL 5)))
2021-11-15 15:44:47 +0100jespada(~jespada@252-155-231-201.fibertel.com.ar)
2021-11-15 15:44:51 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 3.3)
2021-11-15 15:45:46 +0100Farzad(~FarzadBek@178.131.26.179) (Quit: Leaving)
2021-11-15 15:47:16 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Remote host closed the connection)
2021-11-15 15:53:00 +0100Guest46(~Guest46@catv-80-98-84-78.catv.broadband.hu)
2021-11-15 15:53:16 +0100 <fcortesi> Hello
2021-11-15 15:53:17 +0100 <fcortesi> Offtopic question: It's better to keep bug reports short and "dry", without much presentation and such? I try to valorate the time of the devs by doing so but I have this feeling of (maybe) being interpreted as rude, specially when nobody knows me in the comunity. On the other hand it feels a bit stupid when trying to make messages a bit more personal an "friendlier"..
2021-11-15 15:54:54 +0100 <maerwald> I follow this template, adapted from lkml "Your software is utter sh*t. It's broken. Seriously. Anyway, here's why: <insert bug report>."
2021-11-15 15:56:11 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 265 seconds)
2021-11-15 15:56:15 +0100 <janus> today is Haskell eXchange Novice track : https://skillsmatter.com/conferences/13580-haskell-exchange-2021-novice
2021-11-15 15:56:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-15 15:56:22 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-15 15:56:22 +0100wroathe(~wroathe@user/wroathe)
2021-11-15 15:57:03 +0100 <kuribas> fcortesi: keep them to the point, but adding information is always a good thing.
2021-11-15 15:57:36 +0100 <fcortesi> Ok. Thanks.
2021-11-15 15:58:12 +0100dajoer(~david@user/gvx) (Quit: leaving)
2021-11-15 15:58:32 +0100 <kuribas> elaborating a bit on the error may make it easier for them to find the bug.
2021-11-15 15:59:10 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 15:59:12 +0100 <kritzefitz> fcortesi: If you feel like adding niceties, maybe do so by including a nice sentence like „thanks for your consideration“ or similar at the end. Keeping it separate from the actual problem description helps to not detract from the actual content. But I'd still say it's optional and personally I usually avoid it.
2021-11-15 15:59:17 +0100Guest46(~Guest46@catv-80-98-84-78.catv.broadband.hu) ()
2021-11-15 15:59:24 +0100 <fcortesi> Yes, but often the best way of explaining is just to copy a few lines of code...
2021-11-15 15:59:47 +0100 <fcortesi> (answer to kuribas)
2021-11-15 16:01:16 +0100 <kritzefitz> fcortesi: if your report consists mostly of a snippet of code (that can be compiled an run standalone) that is often a good thing and usually it doesn't need much more than an explanation of what behavior you are observing and what behavior you would expect instead.
2021-11-15 16:02:22 +0100 <fcortesi> kritzefitz: Thanks. I was afraid of that being interpreted negatively.
2021-11-15 16:02:59 +0100 <tomsmeding> yeah, saying "I have this small snippet of code, which I expect to do X because of reason R but instead it does Y" is usually a great bug report -- reproducers are very valuable when debugging an issue, so valuable in fact that sometimes that's sufficient nicety for a maintainer to become happy with your report :)
2021-11-15 16:03:58 +0100 <fcortesi> Excelent, thanks!
2021-11-15 16:04:34 +0100Sinbad(~Sinbad@user/sinbad) (Quit: WeeChat 3.3)
2021-11-15 16:05:21 +0100 <merijn> reliable reproducer >>>>> anything else
2021-11-15 16:05:37 +0100 <merijn> Well, a *minimal* reliable reproducer is even better
2021-11-15 16:07:20 +0100alzgh(~alzgh@user/alzgh) (Remote host closed the connection)
2021-11-15 16:07:24 +0100Pickchea(~private@user/pickchea) (Quit: Leaving)
2021-11-15 16:07:29 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 16:07:30 +0100shapr(~user@pool-100-36-247-68.washdc.fios.verizon.net)
2021-11-15 16:07:41 +0100 <fcortesi> Yes from a technical perspective I agree, and it's more or less what I see. But I dont know wether everybody here knows each other before declaring something to be wrong with an issue.
2021-11-15 16:08:09 +0100 <fcortesi> But I think I got it, thanks.
2021-11-15 16:09:04 +0100sinbad(~sinbad@user/sinbad)
2021-11-15 16:09:22 +0100jkaye(~jkaye@2601:281:8300:7530:e618:9306:a767:ab2)
2021-11-15 16:12:02 +0100jespada(~jespada@252-155-231-201.fibertel.com.ar) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-15 16:12:28 +0100fryguybo1(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com) (Quit: leaving)
2021-11-15 16:12:53 +0100fryguybob(~fryguybob@cpe-74-67-169-145.rochester.res.rr.com)
2021-11-15 16:13:11 +0100 <lortabac> a user called fcortesi asks whether they should be polite, how beautiful :P
2021-11-15 16:13:58 +0100 <dminuoso> fcortesi: It's a complicated question and depends on how well you can communicate, how much time the other person has to look into your gory details, and whether they have the skill to quickly get a picture of your code and mentally filter.
2021-11-15 16:14:16 +0100 <dminuoso> Generally short test cases are the best, but in some cases they can be difficult to produce
2021-11-15 16:14:23 +0100 <lortabac> (cortesi means polite in Italian)
2021-11-15 16:15:27 +0100 <fcortesi> Seriously?
2021-11-15 16:15:48 +0100 <fcortesi> lortabac: I just don't want to get banned :P.
2021-11-15 16:16:16 +0100 <lortabac> :D
2021-11-15 16:17:20 +0100 <maerwald> merijn: right, so a good bug report needs: 1. insult, 2. reproducer
2021-11-15 16:17:21 +0100 <maerwald> :D
2021-11-15 16:19:09 +0100 <fcortesi> I'll try :P.
2021-11-15 16:19:55 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-11-15 16:20:08 +0100 <kritzefitz> If you want to be creative about it, your reproducer insults the developer if buggy, but doesn't when the bug is fixed.
2021-11-15 16:21:03 +0100 <maerwald> tbf... angry people on my bug trackers tend to motivate me more. I guess that's PTSD from industry.
2021-11-15 16:21:29 +0100 <merijn> It's the opposite for me
2021-11-15 16:21:33 +0100tomsmedingis not sure that holds for the majority of maintainers
2021-11-15 16:21:44 +0100 <maerwald> tomsmeding: yeah, that's what my therapist said
2021-11-15 16:21:47 +0100 <merijn> Angers just triggers me "get fucked" response
2021-11-15 16:21:48 +0100 <tomsmeding> lol
2021-11-15 16:26:14 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-15 16:26:25 +0100 <davean> maerwald: there was an angry person a bug tracker last year for a project so I just put it out of my rotation for a bit and I still haven't gotten back to it :-p
2021-11-15 16:28:24 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-15 16:30:01 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 265 seconds)
2021-11-15 16:32:03 +0100kupi(uid212005@hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-15 16:32:42 +0100jakalx(~jakalx@base.jakalx.net) (Error from remote client)
2021-11-15 16:36:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-15 16:36:31 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-15 16:36:31 +0100wroathe(~wroathe@user/wroathe)
2021-11-15 16:37:15 +0100tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2021-11-15 16:37:41 +0100jakalx(~jakalx@base.jakalx.net)
2021-11-15 16:38:33 +0100dfip^(~dfip@h50.174.139.63.static.ip.windstream.net) (Remote host closed the connection)
2021-11-15 16:38:42 +0100jlamothe(~jlamothe@198.251.61.229)
2021-11-15 16:41:37 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 265 seconds)
2021-11-15 16:41:42 +0100perrierjouet(~perrier-j@modemcable012.251-130-66.mc.videotron.ca)
2021-11-15 16:41:51 +0100xkuru(~xkuru@user/xkuru)
2021-11-15 16:45:06 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3)
2021-11-15 16:48:01 +0100ubert(~Thunderbi@p548c9fcb.dip0.t-ipconnect.de) (Quit: ubert)
2021-11-15 16:48:18 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 16:49:49 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:7483:71c5:e9d:14d3) (Ping timeout: 268 seconds)
2021-11-15 16:52:25 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2021-11-15 16:52:44 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-11-15 16:54:46 +0100ouro_boros(~ouroboros@2804:14c:65e4:93f6::1001)
2021-11-15 16:55:49 +0100ec(~ec@gateway/tor-sasl/ec)
2021-11-15 16:56:38 +0100justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 256 seconds)
2021-11-15 16:56:41 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 16:57:25 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-15 17:05:23 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd)
2021-11-15 17:06:49 +0100wei2912(~wei2912@138.75.71.147) (Quit: Lost terminal)
2021-11-15 17:07:12 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 17:08:10 +0100hippoid(~hippoid@d60-65-25-145.col.wideopenwest.com)
2021-11-15 17:09:19 +0100fef(~thedawn@user/thedawn)
2021-11-15 17:09:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2021-11-15 17:09:34 +0100wroathe(~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host)
2021-11-15 17:09:34 +0100wroathe(~wroathe@user/wroathe)
2021-11-15 17:10:48 +0100boxscape_(~boxscape_@134.171.69.87) (Ping timeout: 256 seconds)
2021-11-15 17:10:53 +0100acidsys(~LSD@2.lsd.systems) (Excess Flood)
2021-11-15 17:11:28 +0100acidsys(~LSD@2.lsd.systems)
2021-11-15 17:13:39 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-15 17:14:14 +0100wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2021-11-15 17:14:25 +0100 <pop3> is there any introduction about algebraic effects(like fused-effects) design pattern?
2021-11-15 17:17:20 +0100pop3(~pop3@user/pop3) (Quit: Leaving.)
2021-11-15 17:17:36 +0100pop3(~pop3@user/pop3)
2021-11-15 17:18:54 +0100hippoid(~hippoid@d60-65-25-145.col.wideopenwest.com) (Quit: leaving)
2021-11-15 17:24:41 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-11-15 17:24:51 +0100chele(~chele@user/chele)
2021-11-15 17:24:52 +0100lortabac(~lortabac@2a01:e0a:541:b8f0:4f7e:a333:a04f:8257) (Quit: WeeChat 2.8)
2021-11-15 17:27:26 +0100motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2021-11-15 17:28:02 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2d58:181a:7f09:e906)
2021-11-15 17:33:20 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Ping timeout: 265 seconds)
2021-11-15 17:39:24 +0100vpan(~0@212.117.1.172)
2021-11-15 17:51:33 +0100Farzad(~FarzadBek@151.238.206.168)
2021-11-15 17:57:40 +0100 <tomsmeding> pop3: not an answer to your question, but potentially relevant: https://reasonablypolymorphic.com/blog/porting-to-polysemy/index.html
2021-11-15 17:57:44 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 18:00:05 +0100[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
2021-11-15 18:01:35 +0100son0p(~ff@181.136.122.143) (Ping timeout: 264 seconds)
2021-11-15 18:02:58 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2021-11-15 18:05:03 +0100_ht(~quassel@82-169-194-8.biz.kpn.net)
2021-11-15 18:08:17 +0100enoq(~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
2021-11-15 18:11:22 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 260 seconds)
2021-11-15 18:12:53 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 18:15:32 +0100xff0x(~xff0x@2001:1a81:52ee:6600:5c66:cf47:7ae9:a061) (Ping timeout: 268 seconds)
2021-11-15 18:15:37 +0100waleee(~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds)
2021-11-15 18:16:18 +0100xff0x(~xff0x@2001:1a81:52ee:6600:9858:fc63:c087:3f3e)
2021-11-15 18:17:50 +0100waleee(~waleee@h-98-128-228-119.NA.cust.bahnhof.se)
2021-11-15 18:18:06 +0100 <perrierjouet> hi all
2021-11-15 18:18:33 +0100 <geekosaur> œ
2021-11-15 18:21:33 +0100 <tomsmeding> geekosaur: is that supposed to represent an IPA vowel?
2021-11-15 18:21:52 +0100 <geekosaur> "oe", old style
2021-11-15 18:22:06 +0100 <geekosaur> roughly the same as ö but from old english
2021-11-15 18:22:56 +0100 <geekosaur> there's also æ
2021-11-15 18:23:02 +0100 <tomsmeding> yeah I've seen those :p
2021-11-15 18:23:34 +0100 <tomsmeding> just trying to interpret the usage of œ as a response to a greeting :p
2021-11-15 18:23:46 +0100 <geekosaur> "oh (hi)"
2021-11-15 18:24:03 +0100kuribas(~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 26.3))
2021-11-15 18:24:10 +0100 <tomsmeding> different sound though :P
2021-11-15 18:24:16 +0100 <geekosaur> also drawing just a little bit on SCA :)
2021-11-15 18:24:48 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-11-15 18:25:06 +0100tomsmedingis not sure again https://en.wikipedia.org/wiki/SCA
2021-11-15 18:25:32 +0100 <davean> https://en.wikipedia.org/wiki/Oi_(interjection)
2021-11-15 18:25:34 +0100 <tomsmeding> "Supercheap Auto" -- sounds like a very reputable car manufacturer
2021-11-15 18:25:43 +0100 <geekosaur> https://en.wikipedia.org/wiki/Society_for_Creative_Anachronism
2021-11-15 18:26:13 +0100 <tomsmeding> davean: "intensely cockney"
2021-11-15 18:26:18 +0100 <geekosaur> where I'm reaching for "Oyez" and admittedly missing a little bit :)
2021-11-15 18:27:15 +0100 <tomsmeding> heh neat
2021-11-15 18:29:46 +0100 <tomsmeding> https://www.theonion.com/society-for-creative-anachronism-seizes-control-of-russ-1819565189 , though this is -offtopic at this point
2021-11-15 18:30:21 +0100dschrempf(~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 250 seconds)
2021-11-15 18:30:57 +0100 <EvanR> I'm offended for the ancients by this cultural appropriation
2021-11-15 18:32:31 +0100 <geekosaur> tomsmeding, that joke has been around for, er, ages
2021-11-15 18:32:56 +0100ChaiTRex(~ChaiTRex@user/chaitrex) (Quit: ChaiTRex)
2021-11-15 18:33:47 +0100ChaiTRex(~ChaiTRex@user/chaitrex)
2021-11-15 18:34:14 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 265 seconds)
2021-11-15 18:38:55 +0100neurocyte0132889(~neurocyte@94.46.69.238)
2021-11-15 18:38:55 +0100neurocyte0132889(~neurocyte@94.46.69.238) (Changing host)
2021-11-15 18:38:55 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 18:39:00 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-11-15 18:40:00 +0100MoC(~moc@user/moc)
2021-11-15 18:43:22 +0100neurocyte0132889(~neurocyte@user/neurocyte) (Read error: Connection reset by peer)
2021-11-15 18:43:59 +0100neurocyte0132889(~neurocyte@94.46.69.238)
2021-11-15 18:43:59 +0100neurocyte0132889(~neurocyte@94.46.69.238) (Changing host)
2021-11-15 18:43:59 +0100neurocyte0132889(~neurocyte@user/neurocyte)
2021-11-15 18:44:25 +0100chele(~chele@user/chele) (Remote host closed the connection)
2021-11-15 18:45:11 +0100the_proffesor(~theproffe@user/theproffesor) (Remote host closed the connection)
2021-11-15 18:46:49 +0100jkaye(~jkaye@2601:281:8300:7530:e618:9306:a767:ab2) (Ping timeout: 250 seconds)
2021-11-15 18:47:02 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 18:50:38 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 18:51:05 +0100fef(~thedawn@user/thedawn)
2021-11-15 18:51:07 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Remote host closed the connection)
2021-11-15 18:53:16 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
2021-11-15 18:54:17 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 18:55:07 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-15 18:57:10 +0100justsomeguy(~justsomeg@user/justsomeguy)
2021-11-15 18:57:18 +0100vpan(~0@212.117.1.172) (Quit: Leaving.)
2021-11-15 18:57:58 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 18:59:02 +0100 <tomsmeding> ;)
2021-11-15 19:01:25 +0100 <monochrom> old style pig says: œnk >:)
2021-11-15 19:01:41 +0100 <sshine> hehe
2021-11-15 19:02:45 +0100rekahsoft(~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 265 seconds)
2021-11-15 19:03:14 +0100emf(~emf@162.218.217.186)
2021-11-15 19:03:17 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds)
2021-11-15 19:05:54 +0100 <tomsmeding> 'Henry Ford polymorphism ("any type a as long as it's Int")' -- SPJ
2021-11-15 19:06:46 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 19:06:55 +0100 <monochrom> heh
2021-11-15 19:07:49 +0100emf_(~emf@2620:10d:c090:400::5:91bf)
2021-11-15 19:08:11 +0100emf(~emf@162.218.217.186) (Ping timeout: 264 seconds)
2021-11-15 19:08:34 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2021-11-15 19:11:30 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 256 seconds)
2021-11-15 19:11:34 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 260 seconds)
2021-11-15 19:18:24 +0100mbuf(~Shakthi@223.184.58.239) (Quit: Leaving)
2021-11-15 19:25:17 +0100 <geekosaur> heh
2021-11-15 19:25:23 +0100 <geekosaur> (having found the context)
2021-11-15 19:26:11 +0100sinbad(~sinbad@user/sinbad) (Quit: Client closed)
2021-11-15 19:26:30 +0100wonko(~wjc@user/wonko)
2021-11-15 19:27:38 +0100tom_(~tom@2a00:23c8:970c:4801:5b6a:e81b:79dc:f684)
2021-11-15 19:28:24 +0100 <tom_> davean: How do you decide with machines library whether to use Mealy or write a plan from scratch?
2021-11-15 19:28:25 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds)
2021-11-15 19:29:05 +0100 <davean> tom_: what do you want to say about what you're doing? How do you want to use it? What do you want to represent with your code?
2021-11-15 19:29:11 +0100 <davean> code is like poetry, form is meaning
2021-11-15 19:29:37 +0100 <tom_> So I have a player in a card game
2021-11-15 19:29:58 +0100 <tom_> I want to encode the card game rules as some kind of machines
2021-11-15 19:29:59 +0100econo(uid147250@user/econo)
2021-11-15 19:30:08 +0100 <tom_> I am thinking the players are also machines
2021-11-15 19:30:16 +0100aliosablack(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374)
2021-11-15 19:30:51 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-15 19:31:15 +0100 <tom_> So I was planning on making a player a Mealy machine but I am not sure if using Mealy is correct as changes to the game state such as next turn will trigger changes to players
2021-11-15 19:31:24 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 19:31:24 +0100chomwitt(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Ping timeout: 268 seconds)
2021-11-15 19:32:04 +0100 <davean> It depends on your model of a game - turn change is a symbol in the language of a card game
2021-11-15 19:32:11 +0100 <davean> as if recieving a card
2021-11-15 19:32:16 +0100 <davean> and you emit your actions
2021-11-15 19:32:28 +0100 <davean> it makes sense as a mealy if you want to think about it that way
2021-11-15 19:33:07 +0100 <davean> This is very much like SAX parsing
2021-11-15 19:33:20 +0100 <davean> if you don't like language analogies
2021-11-15 19:33:27 +0100 <davean> (though its ... idential)
2021-11-15 19:33:50 +0100 <tom_> The card game turns are represented by a moore machine
2021-11-15 19:34:08 +0100 <tom_> So I guess this would emit actions which are read by the player mealys
2021-11-15 19:34:27 +0100 <davean> right
2021-11-15 19:34:29 +0100 <davean> mealy transforms
2021-11-15 19:34:45 +0100 <davean> it transforms a series of card game events into actions specificly
2021-11-15 19:34:55 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 250 seconds)
2021-11-15 19:35:09 +0100 <tom_> How would I do that with the library?
2021-11-15 19:35:22 +0100 <tom_> Connect a Moore and multiple Mealys
2021-11-15 19:35:39 +0100eggplantade(~Eggplanta@2600:1700:bef1:5e10:2d58:181a:7f09:e906) (Remote host closed the connection)
2021-11-15 19:35:41 +0100mcglk(~mcglk@131.191.49.120) (Quit: (seeya))
2021-11-15 19:35:52 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-11-15 19:36:09 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-15 19:36:52 +0100 <davean> so a Moore still has inputs
2021-11-15 19:37:07 +0100 <davean> what you really want at the top is probably a Source
2021-11-15 19:37:14 +0100 <davean> or something
2021-11-15 19:37:29 +0100 <davean> you could just use that as a clock source though
2021-11-15 19:38:03 +0100 <tom_> Are "actions" the parameters to transition functions?
2021-11-15 19:38:05 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 19:38:27 +0100justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.2)
2021-11-15 19:43:41 +0100mark__(~a@p200300ef973db1d9502293e1a26d2ca1.dip0.t-ipconnect.de)
2021-11-15 19:43:45 +0100 <davean> actions in my above usage was the outputs of a player - what they choose to do
2021-11-15 19:44:41 +0100 <mark__> Can someone explain or reproduce this: "x :: Maybe Int; x = Nothing"; seq x ()", ":sprint x" -> "x = _" Why?
2021-11-15 19:44:44 +0100 <mark__> x is not polymorph. It's a value constructor and seq should force it but doesn't. But print does: "print x", ":sprint x" -> "x = Nothing"
2021-11-15 19:45:29 +0100jkaye(~jkaye@2601:281:8300:7530:7289:19f7:f3fa:e188)
2021-11-15 19:45:46 +0100 <mark__> core dump of x: x = GHC.Maybe.Nothing @ Int
2021-11-15 19:46:07 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
2021-11-15 19:46:28 +0100 <EvanR> Prints a value without forcing its evaluation. :sprint is similar to :print, with the difference that unevaluated subterms are not bound to new variables, they are simply denoted by _.
2021-11-15 19:46:33 +0100 <EvanR> (docs for :sprint)
2021-11-15 19:47:11 +0100 <mark__> Yes but note the "seq x ()"
2021-11-15 19:47:41 +0100eggplantade(~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-11-15 19:48:26 +0100 <EvanR> I'm not sure the real reason, but the semantics of seq technically don't say that the first arg will be evaluated
2021-11-15 19:48:38 +0100 <tom_> davean: If a player has lots of state such as current chips,cards etc would you be inclined to use a MealyT (State PlayerInfo) and put common state there?
2021-11-15 19:48:45 +0100 <tom_> placeBet :: Chips -> (Player, Mealy Action Player)
2021-11-15 19:48:54 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 256 seconds)
2021-11-15 19:49:35 +0100 <tom_> I guess that the second type constructor for Mealy is for current state perhaps
2021-11-15 19:49:49 +0100 <davean> I have a meeting,will reply later
2021-11-15 19:49:54 +0100 <tom_> no worries
2021-11-15 19:50:17 +0100 <EvanR> try x::Maybe Int; x = error "BOOM"
2021-11-15 19:50:32 +0100 <mark__> EvanR: The docs say "it evaluates the first argument a to weak head normal form (WHNF)."
2021-11-15 19:50:41 +0100 <EvanR> which docs
2021-11-15 19:50:58 +0100 <mark__> https://hackage.haskell.org/package/ghc-prim-0.8.0/docs/GHC-Prim.html#v:seq
2021-11-15 19:51:41 +0100 <EvanR> interesting, well everything else in that documentation is what I thought I knew
2021-11-15 19:52:00 +0100 <EvanR> for example, if x is definitely not bottom (somehow we know this), seq is not required to evalauted it
2021-11-15 19:52:42 +0100 <EvanR> seq only ensures that if x would explode, seq x foo explodes
2021-11-15 19:52:57 +0100 <EvanR> hence my suggested follow up
2021-11-15 19:53:11 +0100xff0x(~xff0x@2001:1a81:52ee:6600:9858:fc63:c087:3f3e) (Ping timeout: 264 seconds)
2021-11-15 19:53:30 +0100xff0x(~xff0x@2001:1a81:52ee:6600:288d:876:4868:af07)
2021-11-15 20:00:00 +0100juhp_(~juhp@128.106.188.82)
2021-11-15 20:00:45 +0100 <mark__> "x :: Maybe Int; x = error "boom"; seq x ()" throws an error. But this is expected because seq is trying to evaluate error "boom" to WHNF.
2021-11-15 20:01:34 +0100 <EvanR> it does in this case
2021-11-15 20:01:43 +0100 <EvanR> which is good
2021-11-15 20:02:13 +0100juhp(~juhp@128.106.188.220) (Ping timeout: 268 seconds)
2021-11-15 20:02:14 +0100juhp_juhp
2021-11-15 20:02:22 +0100 <EvanR> I put x=Just undefined, then seq x () leaves x=_. But y <- evaluate x results in x=Just _
2021-11-15 20:02:43 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 20:03:43 +0100 <EvanR> otoh x=undefined, y <- evaluate x crashes. Which is good. otoh x=Just undefined, y <- evaluate (seq x ()) results in x=_
2021-11-15 20:04:20 +0100 <c_wraith> EvanR: cannot repro. https://paste.tomsmeding.com/xdLmAFHS
2021-11-15 20:04:39 +0100sprout_(~quassel@2a02:a467:ccd6:1:e14a:d90e:46d2:87c4)
2021-11-15 20:04:43 +0100 <EvanR> You may want to try putting a non trivial computation in x which is not bottom and see if it's looking at the constant header to avoid evaluating
2021-11-15 20:05:02 +0100 <c_wraith> EvanR: that might be your problem, if you've introduced something typeclass-polymorphic
2021-11-15 20:05:28 +0100 <c_wraith> You might be hitting the lack of monomorphism restriction
2021-11-15 20:06:13 +0100 <EvanR> I reproduced what you got
2021-11-15 20:06:27 +0100 <EvanR> and what I got (by adding the type sign on the same line)
2021-11-15 20:06:33 +0100max22-(~maxime@2a01cb0883359800387721e60f64db31.ipv6.abo.wanadoo.fr) (Ping timeout: 268 seconds)
2021-11-15 20:06:33 +0100 <EvanR> *interesting*
2021-11-15 20:06:46 +0100 <c_wraith> and when you allow typeclass polymorphism, https://paste.tomsmeding.com/cFWIjwXR
2021-11-15 20:07:20 +0100 <c_wraith> That's why ghci used to have the monomorphism restriction
2021-11-15 20:07:27 +0100 <c_wraith> (it no longer does)
2021-11-15 20:07:30 +0100 <EvanR> I don't really understand
2021-11-15 20:07:42 +0100 <EvanR> more polymorphism results in evaluation
2021-11-15 20:08:01 +0100sprout(~quassel@2a02:a467:ccd6:1:19a8:3d0f:213:c260) (Ping timeout: 245 seconds)
2021-11-15 20:08:10 +0100 <c_wraith> bounded (type class) polymorphism makes it a function internally
2021-11-15 20:08:20 +0100 <c_wraith> That ghc provides the first function to, automatically
2021-11-15 20:08:24 +0100 <EvanR> what type class are we even talking about
2021-11-15 20:08:29 +0100 <c_wraith> in my example, Num
2021-11-15 20:08:43 +0100 <EvanR> in the original example (let x = Just undefined) ?
2021-11-15 20:09:28 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 20:10:15 +0100 <EvanR> anyway it seems that in some circumstance seq (legally) won't evaluate the x, like it knows something sprint doesn't
2021-11-15 20:10:17 +0100 <c_wraith> I must not understand what your example is doing, because everything I try works the way I expect.... https://paste.tomsmeding.com/UmfQYs9a
2021-11-15 20:10:34 +0100pieguy128(~pieguy128@bras-base-mtrlpq5031w-grc-48-67-70-102-17.dsl.bell.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2021-11-15 20:10:50 +0100 <EvanR> just to be clear, you can reproduce the original thing just chose not to? xD
2021-11-15 20:11:00 +0100 <c_wraith> No, I don't understand it.
2021-11-15 20:11:08 +0100bliminse(~bliminse@host86-185-253-43.range86-185.btcentralplus.com) (Quit: leaving)
2021-11-15 20:11:13 +0100 <c_wraith> I do what I think you said and get the result I expect.
2021-11-15 20:11:19 +0100 <c_wraith> So I must not understand what you did
2021-11-15 20:11:25 +0100pieguy128(~pieguy128@bas1-quebec14-67-70-102-17.dsl.bell.ca)
2021-11-15 20:12:07 +0100 <EvanR> (btw this wasn't my question it's marks) x::Maybe Int; x = Just undefined; seq x (); :sprint x results in x=_
2021-11-15 20:12:13 +0100 <mark__> c_wraith: Is the behavior I posted also what you expect? Do you expect that seq x () does not eval x to WHNF if x is a monomorphic value con like Nothing :: Maybe Int?
2021-11-15 20:12:34 +0100 <EvanR> it also happens with Just
2021-11-15 20:13:39 +0100 <c_wraith> oh. You're bamboozling yourself
2021-11-15 20:13:59 +0100 <c_wraith> they should never have removed the requirement to use let in ghci
2021-11-15 20:14:38 +0100 <EvanR> ah, using let (and the mono type sig) does change it
2021-11-15 20:14:42 +0100 <EvanR> what the hell is the difference
2021-11-15 20:14:51 +0100bliminse(~bliminse@host86-185-253-43.range86-185.btcentralplus.com)
2021-11-15 20:14:53 +0100 <c_wraith> it's one statement instead of two
2021-11-15 20:15:30 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de) (Ping timeout: 260 seconds)
2021-11-15 20:15:51 +0100 <EvanR> um, my question stands xD
2021-11-15 20:15:53 +0100Profpatsch(~Profpatsc@static.88-198-193-255.clients.your-server.de)
2021-11-15 20:15:58 +0100 <EvanR> oh it becomes polymorphic?
2021-11-15 20:16:17 +0100 <EvanR> nope
2021-11-15 20:16:19 +0100 <mark__> how would I write it with let?
2021-11-15 20:16:22 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
2021-11-15 20:16:33 +0100 <EvanR> let x::Maybe Int; x=Just undefined
2021-11-15 20:16:55 +0100 <EvanR> which doesn't result in a different type for x
2021-11-15 20:17:03 +0100fef(~thedawn@user/thedawn) (Remote host closed the connection)
2021-11-15 20:17:04 +0100 <EvanR> but seq treats it differently
2021-11-15 20:17:14 +0100 <mark__> I tried this but if i do this ghci waits for more input.
2021-11-15 20:17:17 +0100 <c_wraith> My version of ghci doesn't even let me enter what you're doing.
2021-11-15 20:17:32 +0100 <c_wraith> If I want to put a type signature there, I need the let
2021-11-15 20:17:40 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 265 seconds)
2021-11-15 20:17:45 +0100 <EvanR> so we have three different acting versions of ghci? xD
2021-11-15 20:17:47 +0100desantra(~skykanin@user/skykanin)
2021-11-15 20:17:56 +0100 <EvanR> I don't wait for more input and I don't need let
2021-11-15 20:18:13 +0100 <c_wraith> This is why I keep pastebinning my examples - it makes it a lot more clear exactly what I'm entering
2021-11-15 20:18:27 +0100aliosablack(~chomwitt@2a02:587:dc12:3f00:12c3:7bff:fe6d:d374) (Quit: Leaving)
2021-11-15 20:18:34 +0100 <EvanR> i'll pastebin something
2021-11-15 20:19:00 +0100 <tomsmeding> c_wraith: https://paste.tomsmeding.com/4ir9lLhI
2021-11-15 20:19:26 +0100 <unit73e> I find it hard to believe that simple code doesn't work in a past version of ghci lol
2021-11-15 20:19:33 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 250 seconds)
2021-11-15 20:19:42 +0100 <EvanR> https://paste.tomsmeding.com/EPxbDEmP
2021-11-15 20:19:48 +0100 <mark__> Can reproduce! Disabled multiline commands. Now if I do "let x = Nothing :: Maybe Int" I get :sprint = x = Nothing.
2021-11-15 20:20:24 +0100 <c_wraith> unit73e: ghci used to be very clear and make perfect sense, and people hated it. So they kept making it more and more ad-hoc
2021-11-15 20:20:45 +0100 <mark__> So what exactly is the difference between "x = Nothing" and "let x = Nothing"?
2021-11-15 20:20:52 +0100 <mark__> in ghci
2021-11-15 20:21:11 +0100 <EvanR> supposedly no let means it was two commands
2021-11-15 20:21:20 +0100 <EvanR> not sure how that matters here
2021-11-15 20:21:40 +0100 <c_wraith> I think this is just a ghci bug
2021-11-15 20:21:49 +0100 <mark__> Learners should know this because it's the difference between expected and weird behavior.
2021-11-15 20:22:05 +0100mastarija(~mastarija@2a05:4f46:e06:ff00:dd0f:baa7:ff4f:4d80)
2021-11-15 20:22:24 +0100 <c_wraith> My fix would be to remove the ability to revert ghci to sane behavior.
2021-11-15 20:22:38 +0100 <EvanR> mandatory insanity
2021-11-15 20:22:41 +0100 <c_wraith> err. haha. that's a confused sentence.
2021-11-15 20:22:54 +0100 <c_wraith> Revert ghci to sanity.
2021-11-15 20:23:07 +0100 <c_wraith> remove the ability to enter top-level declarations
2021-11-15 20:23:34 +0100 <EvanR> so it might be a special treatment of top level objects
2021-11-15 20:23:42 +0100 <c_wraith> yeah, and it's buggy
2021-11-15 20:23:49 +0100 <c_wraith> that isn't correct behavior
2021-11-15 20:24:10 +0100 <EvanR> since it technically doesn't violate seq, maybe no one noticed
2021-11-15 20:24:24 +0100 <unit73e> I don't think it matters
2021-11-15 20:24:29 +0100 <c_wraith> I mean, it's not a spec violation at all
2021-11-15 20:24:37 +0100 <c_wraith> lazy evaluation is *not* a requirement of the Haskell spec
2021-11-15 20:24:46 +0100 <c_wraith> it only requires non-strict evaluation
2021-11-15 20:24:59 +0100 <tomsmeding> i.e. call by name is also allowed?
2021-11-15 20:25:02 +0100 <c_wraith> yes
2021-11-15 20:25:05 +0100 <EvanR> it's not a lazy evaluation it's a no evaluation at all
2021-11-15 20:25:11 +0100 <c_wraith> and that's the observed behavior in that case
2021-11-15 20:25:16 +0100 <EvanR> like a no-call in football
2021-11-15 20:25:23 +0100 <c_wraith> No, it's call-by-name evaluation
2021-11-15 20:25:42 +0100 <EvanR> oh god... the call-bys
2021-11-15 20:25:42 +0100 <c_wraith> ie, it doesn't memoize the result
2021-11-15 20:25:50 +0100 <tomsmeding> (in case you don't know that term: re-evaluate at each usage site, instead of only at the first usage and then memoise)
2021-11-15 20:25:50 +0100 <mark__> is there a short example to show the differnce between lazy and non-strict evalutation? I always thought it's the same thing.
2021-11-15 20:26:03 +0100 <EvanR> so you think it actually evaluates
2021-11-15 20:26:15 +0100 <c_wraith> yes. I think it evaluates it, and then throws it out.
2021-11-15 20:26:37 +0100 <mark__> one of them memoizes the other doesn't?
2021-11-15 20:26:42 +0100 <c_wraith> yes
2021-11-15 20:27:20 +0100 <c_wraith> more specifically: non-strict means... any strategy that isn't strict.
2021-11-15 20:27:22 +0100 <unit73e> just so you know ghci 9.0.1 crashes if you do that
2021-11-15 20:27:35 +0100 <c_wraith> ghc 9.0 was really buggy in a lot of ways
2021-11-15 20:27:43 +0100 <unit73e> I mean this: x::Maybe Int; x=Just undefined
2021-11-15 20:27:47 +0100 <unit73e> throws an exception
2021-11-15 20:27:58 +0100 <mark__> so it's eager?
2021-11-15 20:28:00 +0100 <EvanR> weird
2021-11-15 20:28:02 +0100 <c_wraith> an exception? or just a compilation error
2021-11-15 20:28:08 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl)
2021-11-15 20:28:19 +0100 <unit73e> exception
2021-11-15 20:28:42 +0100 <unit73e> https://paste.tomsmeding.com/4UBU57g1
2021-11-15 20:28:56 +0100 <EvanR> ah well you asked for x
2021-11-15 20:28:57 +0100 <c_wraith> oh, that's expected. you tried to print it
2021-11-15 20:28:59 +0100 <EvanR> which prints it out
2021-11-15 20:29:12 +0100 <c_wraith> that's why we were using :sprint
2021-11-15 20:29:20 +0100 <c_wraith> which only prints as much as has been evaluated
2021-11-15 20:29:36 +0100 <tomsmeding> the call by name evaluation is inconsistent though: https://paste.tomsmeding.com/tS1PgVlB
2021-11-15 20:29:43 +0100 <unit73e> alright lets try again
2021-11-15 20:30:03 +0100 <EvanR> *only prints as much as has been evaluated... and then saved
2021-11-15 20:30:07 +0100 <c_wraith> tomsmeding: well yes. I'm certain it's a bug, from GHC's point of view. It's just not a spec violation
2021-11-15 20:30:34 +0100chianuo(chianuo@gateway/vpn/protonvpn/chianuo)
2021-11-15 20:30:42 +0100tomsmedinghas apparently run into this bug half a million times already
2021-11-15 20:30:46 +0100 <mark__> c_wraith: If non-strict means no memoization does this there is no sharing? So square x evalautes to x * x and if x is complicated term it has to compute it every time?
2021-11-15 20:30:49 +0100 <tomsmeding> I was certain I had no idea how :sprint worked
2021-11-15 20:30:56 +0100 <tomsmeding> because I'd tried this always without 'let'
2021-11-15 20:30:57 +0100 <mark__> *mean
2021-11-15 20:31:03 +0100 <unit73e> https://paste.tomsmeding.com/cIUqPUcn
2021-11-15 20:31:06 +0100 <c_wraith> mark__: non-strict just means "not strict". It could memoize, or not.
2021-11-15 20:31:07 +0100 <unit73e> so.. _
2021-11-15 20:31:11 +0100 <EvanR> lazy evaluation (save the result) is a specialized strategy for non-strict
2021-11-15 20:31:14 +0100 <unit73e> it does make sense
2021-11-15 20:31:29 +0100 <unit73e> not seq nonsense
2021-11-15 20:31:44 +0100Raito_Bezarius(~Raito@2a01:e0a:5f9:9681:1c66:fc75:c47c:31bc) (Changing host)
2021-11-15 20:31:44 +0100Raito_Bezarius(~Raito@wireguard/tunneler/raito-bezarius)
2021-11-15 20:31:52 +0100 <unit73e> same result I guess
2021-11-15 20:31:56 +0100 <EvanR> so morally, you expect seq to evaluate the argument
2021-11-15 20:32:20 +0100 <tomsmeding> consider the program 'let x = ... ; y = ... in x + x'. Suppose you evaluate this program. Strict (call-by-value) evaluation would compute x and y ; lazy (call-by-need) would compute x once ; call-by-name would compute x _twice_
2021-11-15 20:32:25 +0100 <c_wraith> not morally. I expect it to obey its (very precise) specification
2021-11-15 20:32:31 +0100 <EvanR> well, it does here
2021-11-15 20:32:55 +0100 <EvanR> even if it didn't evaluate due to non-bottom
2021-11-15 20:33:13 +0100 <mark__> I learned two things for ghci: 1) Check MMR 2) use "let"
2021-11-15 20:33:17 +0100bitmapper(uid464869@lymington.irccloud.com) (Quit: Connection closed for inactivity)
2021-11-15 20:33:24 +0100 <tomsmeding> that (1) is a classic in #haskell
2021-11-15 20:33:59 +0100elvishjerricco(sid237756@helmsley.irccloud.com) (Ping timeout: 264 seconds)
2021-11-15 20:34:14 +0100 <ozzloy_> c_wraith, i hope you got sleep or will get sleep soon
2021-11-15 20:34:16 +0100 <c_wraith> typeclass polymorphism often prevents sharing, in ghci
2021-11-15 20:34:29 +0100 <c_wraith> ozzloy_: hasn't it been like 10 hours? I slept. :)
2021-11-15 20:34:40 +0100 <ozzloy_> it has!
2021-11-15 20:34:55 +0100 <mark__> tomsmeding: I thought I did not understand :sprint. But truth is, i did not understand ghci :)
2021-11-15 20:35:02 +0100elvishjerricco(sid237756@helmsley.irccloud.com)
2021-11-15 20:35:08 +0100mastarija(~mastarija@2a05:4f46:e06:ff00:dd0f:baa7:ff4f:4d80) (Quit: Leaving)
2021-11-15 20:35:36 +0100 <tomsmeding> amen
2021-11-15 20:35:50 +0100 <c_wraith> I do think you found a ghci bug
2021-11-15 20:35:51 +0100desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.3)
2021-11-15 20:36:11 +0100 <c_wraith> that behavior shouldn't change based on that syntactic difference
2021-11-15 20:36:36 +0100 <c_wraith> But I'm pretty sure it's only a ghci bug, and not one that breaks any specified behavior.
2021-11-15 20:41:17 +0100 <tomsmeding> is someone going to report this bug? Otherwise I will :p
2021-11-15 20:42:13 +0100Midjak(~Midjak@82-65-111-221.subs.proxad.net) (Quit: This computer has gone to sleep)
2021-11-15 20:49:29 +0100Guest5126(~Guest51@180.230.60.84)
2021-11-15 20:50:56 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 268 seconds)
2021-11-15 20:52:24 +0100chianuo(chianuo@gateway/vpn/protonvpn/chianuo) (Quit: WeeChat 3.4-dev)
2021-11-15 20:54:41 +0100 <mark__> tomsmeding: yes please. To reproduce 1) bad case:
2021-11-15 20:54:44 +0100 <mark__> "x :: Maybe Int; x = Nothing", ":sprint x" -> "x = _", "seq x ()", ":sprint x" -> "x = _" (This is not in WHNF!)
2021-11-15 20:54:47 +0100 <mark__> good case:
2021-11-15 20:54:56 +0100 <mark__> with let: "let y :: Maybe Int; y = Nothing"; ":sprint y" -> "y = Nothing"
2021-11-15 20:55:32 +0100 <tomsmeding> right, including the comparison with my product example, which is inconsistent with "it's just call-by-name"
2021-11-15 20:55:47 +0100tomsmedingis building a ghc from HEAD to ensure it's not fixed there
2021-11-15 20:57:11 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Remote host closed the connection)
2021-11-15 20:57:44 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 20:57:55 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 20:58:12 +0100geekosaur(~geekosaur@xmonad/geekosaur) (Remote host closed the connection)
2021-11-15 20:58:55 +0100geekosaur(~geekosaur@xmonad/geekosaur)
2021-11-15 21:02:00 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 256 seconds)
2021-11-15 21:05:31 +0100juhp(~juhp@128.106.188.82) (Ping timeout: 265 seconds)
2021-11-15 21:06:46 +0100juhp(~juhp@128.106.188.82)
2021-11-15 21:08:04 +0100 <Guest5126> Is this the Tom and Jerry market? Send me a private message
2021-11-15 21:10:02 +0100 <tomsmeding> mark__: the issue is confused by the essentially orthogonal, but nevertheless related, https://gitlab.haskell.org/ghc/ghc/-/issues/10160
2021-11-15 21:10:24 +0100 <tomsmeding> (which is still valid, by my limited testing)
2021-11-15 21:11:11 +0100cjb(~cjbayliss@user/cjb)
2021-11-15 21:12:31 +0100eruditass(uid248673@uxbridge.irccloud.com) (Ping timeout: 268 seconds)
2021-11-15 21:13:11 +0100pop3(~pop3@user/pop3) (Remote host closed the connection)
2021-11-15 21:13:33 +0100eruditass(uid248673@uxbridge.irccloud.com)
2021-11-15 21:14:03 +0100pop3(~pop3@user/pop3)
2021-11-15 21:15:11 +0100 <mark__> Is the fact that y = Nothing is not a thunk but immediately known even though seq/print wasn't used expected behavior or is an instance of 10160?
2021-11-15 21:15:23 +0100 <mark__> with respect the good case (2)
2021-11-15 21:15:27 +0100 <mark__> *to
2021-11-15 21:16:02 +0100 <tomsmeding> "y = Nothing" not yielding a thunk is naively unexpected, but nevertheless correct, behaviour
2021-11-15 21:16:07 +0100 <tomsmeding> done for performance reasons
2021-11-15 21:16:20 +0100Guest42(~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net)
2021-11-15 21:16:58 +0100 <tomsmeding> ah but this #10160 is producing redd herrings
2021-11-15 21:17:15 +0100 <tomsmeding> mark__: https://paste.tomsmeding.com/Vw5Rz83h
2021-11-15 21:17:31 +0100 <EvanR> there's only ever 1 Nothing, [], (), floating around at any given time xD
2021-11-15 21:17:35 +0100 <tomsmeding> the fact that Nothing is a plain data constructor changes things
2021-11-15 21:17:35 +0100wonko(~wjc@user/wonko) (Remote host closed the connection)
2021-11-15 21:19:34 +0100 <mark__> the first one looks fine but the second should be _ : _, shouldn't it?
2021-11-15 21:22:14 +0100 <tomsmeding> mark__: sorry, the essential comparison missing: https://paste.tomsmeding.com/2e92s4gm
2021-11-15 21:23:09 +0100Guest42(~Guest42@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Quit: Client closed)
2021-11-15 21:23:25 +0100max22-(~maxime@2a01cb08833598005714d2986a3eb6d2.ipv6.abo.wanadoo.fr)
2021-11-15 21:24:05 +0100Lycurgus(~juan@98.4.112.204)
2021-11-15 21:24:16 +0100dfip^(~dfip@h50.174.139.63.static.ip.windstream.net)
2021-11-15 21:24:38 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 21:24:40 +0100alx741(~alx741@181.196.68.87) (Ping timeout: 256 seconds)
2021-11-15 21:25:15 +0100aegon(~mike@174.127.249.180)
2021-11-15 21:26:05 +0100 <tomsmeding> conjecture: 'seq x ()' leaves a ghci top-level definition 'x' unevaluated precisely if 1. x is defined without 'let', and 2. x is defined as a plain data constructor, not a thunk
2021-11-15 21:26:12 +0100 <mark__> c (no let) is simply wrong. That's no WHNF. d (with let) did not stop at the first value con (somehow "overevaluated") but is not wrong.
2021-11-15 21:26:24 +0100deadmarshal(~deadmarsh@95.38.116.242)
2021-11-15 21:26:43 +0100 <tomsmeding> (d) is because of #10160 Ithink
2021-11-15 21:28:19 +0100 <mark__> i think technically it's ok because every normal form is also whnf
2021-11-15 21:28:23 +0100 <tomsmeding> (ghc HEAD does the same thing in for my last paste)
2021-11-15 21:28:27 +0100 <tomsmeding> yeah
2021-11-15 21:30:04 +0100 <tomsmeding> Prelude> let z :: [Int] ; z = [1,2,undefined,3] | Prelude> :sprint z | z = [1,2,_,3]
2021-11-15 21:30:49 +0100 <tomsmeding> this is more than #10160 says, because one of those (:) applications doesn't have only NF arguments!
2021-11-15 21:30:54 +0100deadmarshal(~deadmarsh@95.38.116.242) (Ping timeout: 256 seconds)
2021-11-15 21:31:59 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net)
2021-11-15 21:33:31 +0100 <EvanR> tomsmeding, I was thinking that, and originally though I could test it with a less trivial top level definition
2021-11-15 21:33:49 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 21:34:02 +0100 <EvanR> but... it's kind of like tree falling in the woods with no one there
2021-11-15 21:35:16 +0100 <EvanR> z's top node is :, but if it was an actual computation that would need to run, would sprint see it then
2021-11-15 21:35:25 +0100 <EvanR> without let
2021-11-15 21:35:54 +0100mcglk(~mcglk@131.191.49.120)
2021-11-15 21:36:34 +0100yauhsien(~yauhsien@61-231-43-127.dynamic-ip.hinet.net) (Ping timeout: 256 seconds)
2021-11-15 21:36:53 +0100 <tomsmeding> EvanR: see https://paste.tomsmeding.com/tS1PgVlB
2021-11-15 21:37:44 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-15 21:37:50 +0100 <tomsmeding> EvanR: or more to the point to your exact question: https://paste.tomsmeding.com/De664kvY
2021-11-15 21:38:24 +0100 <tomsmeding> this is consistent with the first case in https://paste.tomsmeding.com/2e92s4gm
2021-11-15 21:38:55 +0100 <tomsmeding> the only case that is not explained by #10160 is the third case in https://paste.tomsmeding.com/2e92s4gm , I think
2021-11-15 21:39:17 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-15 21:39:21 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk) (Ping timeout: 265 seconds)
2021-11-15 21:40:00 +0100slack1256(~slack1256@186.11.99.34)
2021-11-15 21:40:24 +0100Codaraxis(~Codaraxis@user/codaraxis)
2021-11-15 21:40:31 +0100 <EvanR> it does indeed evaluate a and remember it without let if it would have to do a computation
2021-11-15 21:40:43 +0100 <EvanR> i knew it! xD
2021-11-15 21:41:08 +0100 <slack1256> Is there anyway to specify different cost centers break down on the same executable? Currently I am running the same program with `-hc` or `-hm` to the the whole picture.
2021-11-15 21:41:11 +0100 <tomsmeding> yeah, but if evaluates (possibly nested) direct constructor applications in one go
2021-11-15 21:41:15 +0100 <tomsmeding> s/if/it/
2021-11-15 21:41:25 +0100 <slack1256> Probably I could get the same view of the RTS from the eventlog interface. Has somebody done that?
2021-11-15 21:42:08 +0100desantra(~skykanin@user/skykanin)
2021-11-15 21:42:39 +0100 <tomsmeding> EvanR: um wat? 'a :: Int ; a = id [1,2,3]' gives _ and _:_ -- now it suddenly breaks up the NF chunk
2021-11-15 21:45:31 +0100 <tomsmeding> lol
2021-11-15 21:45:40 +0100 <EvanR> that tracks
2021-11-15 21:45:49 +0100 <tomsmeding> EvanR: https://paste.tomsmeding.com/7ONg80mp
2021-11-15 21:45:52 +0100lavaman(~lavaman@98.38.249.169)
2021-11-15 21:45:56 +0100 <tomsmeding> madness
2021-11-15 21:45:58 +0100 <EvanR> assuming id counts as requiring computation
2021-11-15 21:46:11 +0100 <tomsmeding> well it has different behaviour than everything :p
2021-11-15 21:46:22 +0100 <EvanR> c and e shows
2021-11-15 21:47:32 +0100 <EvanR> just the fact that we are investigating this for the sake of it, when if it wasn't like this, we wouldn't be, is annoying xD
2021-11-15 21:48:02 +0100 <tomsmeding> EvanR: in my latest paste, the non-let version is actually _more_ consistent: there, the results for map and id are equivalent
2021-11-15 21:50:28 +0100lavaman(~lavaman@98.38.249.169) (Ping timeout: 265 seconds)
2021-11-15 21:52:49 +0100m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-11-15 21:53:40 +0100jle`(~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com) (Quit: WeeChat 3.3)
2021-11-15 21:54:01 +0100jle`(~jle`@2603-8001-3b02-84d4-0000-0000-0000-025d.res6.spectrum.com)
2021-11-15 21:54:24 +0100m4lvin(~m4lvin@w4eg.de)
2021-11-15 21:54:42 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds)
2021-11-15 21:55:21 +0100Farzad(~FarzadBek@151.238.206.168) (Quit: Leaving)
2021-11-15 21:56:57 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection)
2021-11-15 21:58:24 +0100Lycurgus(~juan@98.4.112.204) (Quit: Exeunt)
2021-11-15 21:59:01 +0100 <Guest5126> hi
2021-11-15 21:59:10 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds)
2021-11-15 22:00:21 +0100 <Guest5126> Anyone who knows how to contact Tom and Jerry Market
2021-11-15 22:03:09 +0100Tuplanolla(~Tuplanoll@91-159-69-50.elisa-laajakaista.fi)
2021-11-15 22:04:51 +0100johnny_sitar(~artur@078088015209.bialystok.vectranet.pl) (Ping timeout: 250 seconds)
2021-11-15 22:05:23 +0100 <geekosaur> why would you be asking that here?
2021-11-15 22:07:29 +0100Guest5161(~Guest51@180.230.60.84)
2021-11-15 22:07:53 +0100_ht(~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection)
2021-11-15 22:08:39 +0100theproffesor(~theproffe@2601:282:847f:8010::390f)
2021-11-15 22:08:39 +0100theproffesor(~theproffe@2601:282:847f:8010::390f) (Changing host)
2021-11-15 22:08:40 +0100theproffesor(~theproffe@user/theproffesor)
2021-11-15 22:09:21 +0100alx741(~alx741@181.196.68.87)
2021-11-15 22:10:14 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
2021-11-15 22:10:34 +0100 <shapr> what was that about?
2021-11-15 22:10:42 +0100son0p(~ff@181.136.122.143)
2021-11-15 22:10:52 +0100 <tomsmeding> well, the Tom and Jerry Market, presumably
2021-11-15 22:10:56 +0100 <geekosaur> no clue
2021-11-15 22:12:53 +0100 <sm> toons need groceries too
2021-11-15 22:14:29 +0100derelict(~derelict@user/derelict) (Quit: bye)
2021-11-15 22:14:52 +0100 <tomsmeding> EvanR: https://tomsmeding.com/vang/7qvC5S do you agree this describes the issue adequately?
2021-11-15 22:14:55 +0100 <tomsmeding> mark__: ^
2021-11-15 22:14:59 +0100derelict(~derelict@user/derelict)
2021-11-15 22:15:36 +0100raehik(~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 265 seconds)
2021-11-15 22:16:22 +0100mustafa(sid502723@rockylinux/releng/mustafa) ()
2021-11-15 22:16:32 +0100mustafa(sid502723@rockylinux/releng/mustafa)
2021-11-15 22:17:33 +0100 <mark__> Haha, so now we have: No 'let': a) as expected, c) as expected, e) simply wrong. With 'let': b) as expected, d) not intuitive but not wrong, f) not intuitive but not wrong. :)
2021-11-15 22:17:46 +0100 <mark__> Very nice. Thank you for writing this up.
2021-11-15 22:19:31 +0100pavonia(~user@user/siracusa)
2021-11-15 22:19:34 +0100 <tomsmeding> yeah it's beautiful, isn't it?
2021-11-15 22:19:39 +0100 <mark__> So we only get consistent and expected behavior if the outermost call is not 'id' and not a value con.
2021-11-15 22:19:50 +0100m4lvin(~m4lvin@w4eg.de) (Quit: m4lvin)
2021-11-15 22:20:01 +0100jespada(~jespada@252-155-231-201.fibertel.com.ar)
2021-11-15 22:20:10 +0100 <tomsmeding> the 'id' case is an example of a case where, after WHNF evaluation, you get an entire constructor application chunk
2021-11-15 22:20:17 +0100m4lvin(~m4lvin@w4eg.de)
2021-11-15 22:20:38 +0100 <tomsmeding> in that case, and in the value con case, #10160 applies and wreaks havoc
2021-11-15 22:21:01 +0100 <tomsmeding> the _new_ thing with this issue is the discrepancy between let and non-let
2021-11-15 22:21:19 +0100 <tomsmeding> I'll submit :)
2021-11-15 22:21:25 +0100 <mark__> thank you
2021-11-15 22:21:33 +0100 <tomsmeding> EvanR: mark__: https://gitlab.haskell.org/ghc/ghc/-/issues/20687
2021-11-15 22:24:27 +0100 <tomsmeding> and now I'm off to bed :)
2021-11-15 22:24:50 +0100 <EvanR> correct
2021-11-15 22:25:10 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-15 22:26:26 +0100desantra(~skykanin@user/skykanin) (Quit: WeeChat 3.3)
2021-11-15 22:28:52 +0100 <Guest5161> Can anyone tell me how to contact the Tom and Jerry store?
2021-11-15 22:29:07 +0100ChanServ+o geekosaur
2021-11-15 22:29:18 +0100geekosaur+b *!*Guest51@180.230.60.*
2021-11-15 22:29:18 +0100Guest5161geekosaur (Guest5161)
2021-11-15 22:29:27 +0100geekosaur-o geekosaur
2021-11-15 22:29:57 +0100 <geekosaur> hm, less than ideal, that ban
2021-11-15 22:30:01 +0100ChanServ+o geekosaur
2021-11-15 22:30:59 +0100geekosaur+b *!*@180.230.60.84
2021-11-15 22:31:08 +0100geekosaur-b *!*Guest51@180.230.60.*
2021-11-15 22:31:19 +0100geekosaur-o geekosaur
2021-11-15 22:32:20 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-11-15 22:32:33 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65)
2021-11-15 22:32:42 +0100ystael(~ystael@user/ystael) (Read error: Connection reset by peer)
2021-11-15 22:33:54 +0100ystael(~ystael@user/ystael)
2021-11-15 22:38:10 +0100 <yushyin> with https://libera.chat/guides/bots#litharge you can add a ban record for e.g. a few days; useful for ip bans
2021-11-15 22:38:54 +0100 <geekosaur> I was planning to remove it this evening, but I'll look into it
2021-11-15 22:40:11 +0100 <geekosaur> ooh, I like that last part. I'm always worried about the scope of bans
2021-11-15 22:40:24 +0100zincy_(~zincy@2a00:23c8:970c:4801:350f:7ee:191a:6f65) (Remote host closed the connection)
2021-11-15 22:40:54 +0100ChanServ+o geekosaur
2021-11-15 22:42:18 +0100 <geekosaur> welp. I got ops but not permissions for that :(
2021-11-15 22:42:19 +0100geekosaur-o geekosaur
2021-11-15 22:43:19 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com)
2021-11-15 22:46:02 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net) (Read error: Connection reset by peer)
2021-11-15 22:46:19 +0100myShoggoth(~myShoggot@97-120-85-195.ptld.qwest.net)
2021-11-15 22:46:28 +0100Guest4530(~Guest45@185.16.69.203)
2021-11-15 22:50:44 +0100 <ozzloy_> what's this about tom and jerry store? is this a meme i'm unaware of?
2021-11-15 22:51:37 +0100slack1256hates PINNED memory leaks.
2021-11-15 22:52:18 +0100 <EvanR> I'm not sure I wanna know what tom and jerry is
2021-11-15 22:52:42 +0100 <EvanR> (probably not the cartoon)
2021-11-15 22:56:42 +0100jespada(~jespada@252-155-231-201.fibertel.com.ar) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2021-11-15 23:00:11 +0100geekosaurguesses it's some sort of cat-and-mouse allusion to "hacking" and we have another idiot who thinks all IRCers are "hackers"
2021-11-15 23:00:33 +0100zebrag(~chris@user/zebrag)
2021-11-15 23:00:51 +0100 <ozzloy_> hello, fellow hackers
2021-11-15 23:03:14 +0100ozzloy_adjusts his novelty disguise glasses with giant nose and obviously fake moustachioeau
2021-11-15 23:04:13 +0100unit73e(~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 250 seconds)
2021-11-15 23:04:18 +0100 <EvanR> no one here but us hackers
2021-11-15 23:04:27 +0100 <ozzloy_> tis a good day for doing the illegals with the computers. wouldn't you say?
2021-11-15 23:06:18 +0100ChanServ+o geekosaur
2021-11-15 23:06:25 +0100litharge(litharge@libera/bot/litharge)
2021-11-15 23:07:04 +0100geekosaur-o geekosaur
2021-11-15 23:09:42 +0100infinity0(~infinity0@occupy.ecodis.net) (Remote host closed the connection)
2021-11-15 23:10:59 +0100 <shapr> ozzloy_: righto old chap
2021-11-15 23:12:00 +0100dhouthoo(~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3)
2021-11-15 23:16:49 +0100burnsidesLlama(~burnsides@dhcp168-015.wadham.ox.ac.uk)
2021-11-15 23:18:34 +0100mikoto-chan(~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Ping timeout: 256 seconds)
2021-11-15 23:20:41 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 250 seconds)
2021-11-15 23:27:04 +0100takuan(~takuan@178-116-218-225.access.telenet.be) (Ping timeout: 256 seconds)
2021-11-15 23:27:37 +0100 <jkaye> Yeah personally I love doing my illicit activities on a public messaging system that anyone can look at whenever they want
2021-11-15 23:31:24 +0100infinity0(~infinity0@occupy.ecodis.net)
2021-11-15 23:36:09 +0100emerson(~emerson@libera/staff/emerson)
2021-11-15 23:41:14 +0100mimmy(~mimmy@72.142.88.18)
2021-11-15 23:45:13 +0100Guest5126(~Guest51@180.230.60.84) (Ping timeout: 256 seconds)
2021-11-15 23:45:14 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2021-11-15 23:45:19 +0100zava(~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de)
2021-11-15 23:45:32 +0100FinnElija(~finn_elij@user/finn-elija/x-0085643)
2021-11-15 23:45:59 +0100mimmy(~mimmy@72.142.88.18) (Ping timeout: 265 seconds)
2021-11-15 23:46:02 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net)
2021-11-15 23:52:56 +0100zincy_(~zincy@host86-181-60-139.range86-181.btcentralplus.com) (Remote host closed the connection)
2021-11-15 23:54:12 +0100machinedgod(~machinedg@24.105.81.50) (Ping timeout: 265 seconds)
2021-11-15 23:55:15 +0100merijn(~merijn@83-160-49-249.ip.xs4all.nl)
2021-11-15 23:55:27 +0100jmorris(uid433911@hampstead.irccloud.com)
2021-11-15 23:55:36 +0100fresheyeball(~fresheyeb@c-76-25-93-164.hsd1.co.comcast.net) (Quit: WeeChat 2.9)