Logs: freenode/#haskell
| 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.