Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2020-11-12 23:49:26 jedws joins (~jedws@101.184.175.183)
2020-11-12 23:49:42 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-12 23:49:58 × o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Remote host closed the connection)
2020-11-12 23:50:11 <hekkaidekapus> fendor: When we have needs like yours this side, we handle it at the OS level by putting setting limits for every user.
2020-11-12 23:50:43 <hekkaidekapus> Ony a systemd-capable Linux, this will do:
2020-11-12 23:50:45 × jedws quits (~jedws@101.184.175.183) (Client Quit)
2020-11-12 23:51:14 <hekkaidekapus> systemd-run --user --scope -p 'MemoryHigh=XXXG' -p 'CPUQuota=YYY%' $argv
2020-11-12 23:52:35 <hekkaidekapus> Usually, ghc and ghci are symlinks to the previous command where `$argv = ghc(i)`.
2020-11-12 23:53:34 × dhouthoo quits (~dhouthoo@ptr-eiv6509pb4ifhdr9lsd.18120a2.ip6.access.telenet.be) (Quit: WeeChat 2.9)
2020-11-12 23:54:06 <Axman6> to figure out cpu%, see Erlang (the person, not the language's) work on sharing resources :P
2020-11-12 23:54:12 zebrag joins (~inkbottle@aaubervilliers-654-1-2-77.w83-200.abo.wanadoo.fr)
2020-11-12 23:54:20 jedws joins (~jedws@101.184.175.183)
2020-11-12 23:54:29 × elliott_ quits (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net) (Read error: Connection reset by peer)
2020-11-12 23:54:47 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds)
2020-11-12 23:55:17 × Tuplanolla quits (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) (Ping timeout: 256 seconds)
2020-11-12 23:56:38 × perrier-jouet quits (~perrier-j@modemcable012.251-130-66.mc.videotron.ca) (Quit: WeeChat 2.9)
2020-11-12 23:56:44 elliott_ joins (~elliott_@pool-108-51-141-12.washdc.fios.verizon.net)
2020-11-12 23:59:57 × gehmehgeh quits (~ircuser1@gateway/tor-sasl/gehmehgeh) (Quit: Leaving)
2020-11-13 00:00:01 × AstroDroid quits (~AstroDroi@84.39.117.57) ()
2020-11-13 00:07:52 × machinedgod quits (~machinedg@207.253.244.210) (Quit: Reconnecting)
2020-11-13 00:08:16 machinedgod joins (~machinedg@207.253.244.210)
2020-11-13 00:10:07 crdrost joins (~crdrost@2601:646:8280:85f0:6046:db55:79c6:4622)
2020-11-13 00:11:55 × star_cloud quits (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com) (Remote host closed the connection)
2020-11-13 00:11:55 × stree quits (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net) (Quit: Caught exception)
2020-11-13 00:12:13 stree joins (~stree@50-108-72-205.adr01.mskg.mi.frontiernet.net)
2020-11-13 00:13:21 star_cloud joins (~star_clou@ec2-34-217-37-165.us-west-2.compute.amazonaws.com)
2020-11-13 00:13:31 da39a3ee5e6b4b0d joins (~da39a3ee5@cm-171-98-91-208.revip7.asianet.co.th)
2020-11-13 00:16:02 olligobber joins (olligobber@gateway/vpn/privateinternetaccess/olligobber)
2020-11-13 00:17:02 × argent0 quits (~argent0@168.227.98.81) (Quit: leaving)
2020-11-13 00:17:35 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
2020-11-13 00:18:28 × zebrag quits (~inkbottle@aaubervilliers-654-1-2-77.w83-200.abo.wanadoo.fr) (Ping timeout: 272 seconds)
2020-11-13 00:19:22 christo joins (~chris@81.96.113.213)
2020-11-13 00:20:44 merijn joins (~merijn@83-160-49-249.ip.xs4all.nl)
2020-11-13 00:21:11 × veverak quits (~squirrel@ip-89-102-98-161.net.upcbroadband.cz) (Quit: WeeChat 2.3)
2020-11-13 00:21:45 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 240 seconds)
2020-11-13 00:24:13 × sim590 quits (~sim590@modemcable090.207-203-24.mc.videotron.ca) (Ping timeout: 264 seconds)
2020-11-13 00:24:58 taio joins (~enrik@p200300ceaf3ada00997810ade8eb1ff9.dip0.t-ipconnect.de)
2020-11-13 00:25:31 squirrel1 joins (~squirrel@ip-89-102-98-161.net.upcbroadband.cz)
2020-11-13 00:25:45 zebrag joins (~inkbottle@aaubervilliers-654-1-107-7.w86-212.abo.wanadoo.fr)
2020-11-13 00:26:42 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 272 seconds)
2020-11-13 00:27:54 wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net)
2020-11-13 00:28:54 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-13 00:29:10 jespada joins (~jespada@90.254.245.49)
2020-11-13 00:30:18 squirrel1 is now known as veverak
2020-11-13 00:31:03 × hekkaidekapus quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-13 00:32:30 <taio> Hello; I have a question about the understanding of instances: Since instances are automatically (implicitly) loaded from modules, it is not possible to manually determine which instance is to be used. consequently "orphaned" instances lead to conflicts. But why didn't a rule be introduced that local instances within a module are preferred over global ones? If the functions are called in another module, the local
2020-11-13 00:32:32 <taio> instances are always used for these functions.
2020-11-13 00:32:42 × wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 260 seconds)
2020-11-13 00:33:49 × Deide quits (~Deide@217.155.19.23) (Quit: Seeee yaaaa)
2020-11-13 00:33:52 <Axman6> there is only allowed to be one instance of a class for a type
2020-11-13 00:34:07 <Axman6> and that mean globally
2020-11-13 00:34:26 <Axman6> s*
2020-11-13 00:37:28 jespada_ joins (~jespada@90.254.245.49)
2020-11-13 00:38:09 <taio> I know ... but I asked whether it would be unproblematic to introduce local instances that would be preferred for all functions of the respective module.
2020-11-13 00:38:21 × jespada quits (~jespada@90.254.245.49) (Ping timeout: 256 seconds)
2020-11-13 00:38:56 <monochrom> Your mechanism allows two code paths to see and use two different instances for the same type and the same class.
2020-11-13 00:39:20 <monochrom> Any mechanism that achieves that will have to answer the following question:
2020-11-13 00:40:23 <monochrom> On one code path I use one Ord instance of Int to build a binary search tree containing Ints. Clearly, this binary search tree makes sense only under the comparator I used when it's built.
2020-11-13 00:41:12 <monochrom> I now pass this binary search tree to the other code path. It uses, nay, assumes, a different comparator. Now it tries to use this other incompatible comparator to try to do BST lookup.
2020-11-13 00:41:23 <monochrom> WHAT THE HELL IS WITH THAT?
2020-11-13 00:44:02 <monochrom> https://open.kattis.com/problems/outofsorts
2020-11-13 00:44:03 × hekkaidekapus_ quits (~tchouri@gateway/tor-sasl/hekkaidekapus) (Ping timeout: 240 seconds)
2020-11-13 00:44:57 × Varis quits (~Tadas@unaffiliated/varis) (Remote host closed the connection)
2020-11-13 00:45:14 coot joins (~coot@37.30.49.253.nat.umts.dynamic.t-mobile.pl)
2020-11-13 00:46:21 hekkaidekapus_ joins (~tchouri@gateway/tor-sasl/hekkaidekapus)
2020-11-13 00:47:17 hekkaidekapus_ is now known as hekkaidekapus
2020-11-13 00:47:51 <taio> this situation would only occur if I used the functions from that module where local instances are defined. If I don't want these alternative implementations, then I won't use the functions.
2020-11-13 00:48:12 Varis joins (~Tadas@unaffiliated/varis)
2020-11-13 00:49:10 <monochrom> I'm passing one data structure from one module to another. What function?
2020-11-13 00:49:43 <monochrom> The recipient module is using its own function to try to make sense of this binary tree.
2020-11-13 00:49:52 <monochrom> And that's exactly the wrong thing to do.
2020-11-13 00:51:47 <monochrom> Alternatively, tell me how your mechanism forbids me from doing what I said I planned to do.
2020-11-13 00:52:49 hcchien joins (~hcchien@217.146.82.202)
2020-11-13 00:54:09 <SrPx> What is a good / efficient structure to represent bitstring? I.e., equivalent of: `data Bits = Empty | Bit0 Bits | Bit1 Bits` ? With fast pattern-matching, concatenation and equality?
2020-11-13 00:54:38 × merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds)
2020-11-13 00:54:58 <SrPx> And appending of a bit*
2020-11-13 00:55:38 <taio> the instance would be selected indirectly via the functions:
2020-11-13 00:55:40 <taio> Module M1 has its own instance for Ord T, which overshadows the global instance Ord T ONLY for functions of this module. the module M1 has the sorting function s.
2020-11-13 00:55:53 <taio> Everywhere outside of this module where I call s from M1, the local instance Ord T is used. That is predictable and known. I don't understand what's problematic about that.
2020-11-13 00:56:22 <hpc> SrPx: store it in ByteString and build your operations on that
2020-11-13 00:56:43 <SrPx> but isn't ByteString slow for concatenation and appending?
2020-11-13 00:57:10 <SrPx> says cons is O(n) on docs https://hackage.haskell.org/package/bytestring-0.11.0.0/docs/Data-ByteString.html
2020-11-13 00:57:27 × jedws quits (~jedws@101.184.175.183) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2020-11-13 00:57:35 conal joins (~conal@64.71.133.70)
2020-11-13 00:58:11 o1lo01ol1o joins (~o1lo01ol1@bl8-213-81.dsl.telepac.pt)
2020-11-13 00:58:12 <monochrom> The BST insert function is in M1. Which comparator does it use? The BST lookup function is outside M1. Which comparator does it use?
2020-11-13 00:58:16 × DirefulSalt quits (DirefulSal@gateway/vpn/privateinternetaccess/direfulsalt) (Ping timeout: 258 seconds)
2020-11-13 00:59:51 <taio> ok i think i understand what you mean now. In my module M1 I could use a function of another module, which expects this global instance Ord T in order to work as expected.
2020-11-13 01:00:45 <monochrom> You could. But people won't.
2020-11-13 01:01:40 <monochrom> If I s/Ord/Monad/ to create another example, you will have a hard time convincing people to "don't do that".
2020-11-13 01:02:53 <monochrom> If M1 has its own instance Monad (State s), and outside M1 there is another, you really can't convince people to "don't write '>>=' both inside M1 and outside; or if you do, don't let the two pieces of code ever see each other".
2020-11-13 01:03:18 × o1lo01ol1o quits (~o1lo01ol1@bl8-213-81.dsl.telepac.pt) (Ping timeout: 260 seconds)
2020-11-13 01:04:14 <monochrom> People will really be writing code like M1.a1 Outside.>>= some_f, where M1.a1 is defined with M1.>>=
2020-11-13 01:04:24 <monochrom> Hilarity shall ensue.
2020-11-13 01:05:37 × conal quits (~conal@64.71.133.70) (Quit: Computer has gone to sleep.)
2020-11-13 01:09:18 × christo quits (~chris@81.96.113.213) (Remote host closed the connection)
2020-11-13 01:13:22 <taio> hmmm ok;
2020-11-13 01:13:23 <taio> another idea:
2020-11-13 01:13:25 <taio> A mechanism is introduced to take over an existing type class - possibly under a new name - in another module so that the methods are in a different namespace.
2020-11-13 01:13:26 <taio> The advantage would be that all existing instances are also taken over, but can be overwritten by new instances according to the existing rules.

All times are in UTC.