2021-11-25 00:00:15 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-25 00:00:21 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 00:00:53 +0100 | <dibblego> | jackdk: http://www.e-pig.org/ |
2021-11-25 00:03:40 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Remote host closed the connection) |
2021-11-25 00:05:53 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 250 seconds) |
2021-11-25 00:07:41 +0100 | machinedgod | (~machinedg@142.169.78.187) |
2021-11-25 00:07:59 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 00:11:39 +0100 | <[itchyjunk]> | I am now back where I left. I have partially figured out out, and the only issue is the last digit! |
2021-11-25 00:12:02 +0100 | <[itchyjunk]> | g (f 1247) |
2021-11-25 00:12:02 +0100 | <[itchyjunk]> | [7,4,2] |
2021-11-25 00:12:34 +0100 | <[itchyjunk]> | idk how to adjoin the 1 to "the same list" |
2021-11-25 00:12:37 +0100 | max22- | (~maxime@2a01cb0883359800180cddb567bc39f4.ipv6.abo.wanadoo.fr) (Remote host closed the connection) |
2021-11-25 00:12:44 +0100 | <[itchyjunk]> | @where paste |
2021-11-25 00:12:44 +0100 | <lambdabot> | Help us help you: please paste full code, input and/or output at e.g. https://paste.tomsmeding.com |
2021-11-25 00:14:51 +0100 | TranquilEcho | (~grom@user/tranquilecho) (Ping timeout: 260 seconds) |
2021-11-25 00:15:00 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-11-25 00:15:32 +0100 | TranquilEcho | (~grom@user/tranquilecho) |
2021-11-25 00:18:08 +0100 | <monochrom> | g (f 1247) ++ [1] ? |
2021-11-25 00:19:57 +0100 | <monochrom> | I wonder if you're just missing how to design recursive algorithms, which is covered in my course notes: http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/01-haskell-basic.html#synev |
2021-11-25 00:21:24 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-25 00:21:33 +0100 | <monochrom> | I wonder if you're just missing how to design recursive algorithms, which is covered in my course notes: http://www.cs.utoronto.ca/~trebla/CSCC24-2021-Summer/01-haskell-basic.html#synev |
2021-11-25 00:21:39 +0100 | <[itchyjunk]> | Sorry, crappy computer. |
2021-11-25 00:21:41 +0100 | <[itchyjunk]> | https://paste.tomsmeding.com/Sb6IPzLM |
2021-11-25 00:22:13 +0100 | <[itchyjunk]> | In the case of (0,y), i wanted to adjoin y to the list the other case was working on, if that makes sense |
2021-11-25 00:22:26 +0100 | <monochrom> | Why is it not "g (0,y) = [y]" very simply? |
2021-11-25 00:23:02 +0100 | <monochrom> | And see my course notes mentioned above for creating recursive algorithms generally. |
2021-11-25 00:23:09 +0100 | <[itchyjunk]> | that works /o\ idk why it works |
2021-11-25 00:23:27 +0100 | <[itchyjunk]> | ah that link was for me, okay will check out now |
2021-11-25 00:23:30 +0100 | <RobotMicrowave> | I have a question. Is it possible to recreate the IO monad? Like, making a custom IO monad and substitute the STD? |
2021-11-25 00:23:48 +0100 | <RobotMicrowave> | The main would still be IO (), of course |
2021-11-25 00:24:01 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-25 00:24:03 +0100 | <int-e> | > 1247 `divMod` 10 |
2021-11-25 00:24:04 +0100 | <lambdabot> | (124,7) |
2021-11-25 00:24:05 +0100 | <monochrom> | No, IO has to be provided by the compiler/interpreter, it is not user-definable in Haskell. |
2021-11-25 00:24:08 +0100 | <RobotMicrowave> | Rephrasing: "Is the IO monad special to the compiler?" |
2021-11-25 00:24:09 +0100 | <int-e> | > 1 `divMod` 10 |
2021-11-25 00:24:11 +0100 | <lambdabot> | (0,1) |
2021-11-25 00:24:18 +0100 | <monochrom> | Yes it has to be special. |
2021-11-25 00:24:20 +0100 | <dibblego> | not the monad, the data type |
2021-11-25 00:24:32 +0100 | <c_wraith> | RobotMicrowave: the monad instance is totally normal. the data type is special |
2021-11-25 00:24:33 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) |
2021-11-25 00:24:40 +0100 | <RobotMicrowave> | Damn! I've lost 1 week trying to implement my own IO |
2021-11-25 00:24:51 +0100 | <RobotMicrowave> | >:( |
2021-11-25 00:24:53 +0100 | <monochrom> | Well if the type is special then the monad instance is special too. |
2021-11-25 00:24:57 +0100 | <int-e> | [itchyjunk]: so if you can't figure out for input 1247, maybe try figuring out what happens for 1. |
2021-11-25 00:25:08 +0100 | <c_wraith> | RobotMicrowave: it's best to erase the phrase "IO monad" from your lexicon. It makes you think the wrong thing is special. |
2021-11-25 00:25:17 +0100 | <c_wraith> | RobotMicrowave: IO is special. Monad is just normal haskell. |
2021-11-25 00:25:20 +0100 | srk_ | (~sorki@user/srk) |
2021-11-25 00:25:56 +0100 | unit73e | (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Quit: Leaving) |
2021-11-25 00:26:41 +0100 | jkaye | (~jkaye@2601:281:8300:7530:2d14:c2ec:d957:4121) (Ping timeout: 250 seconds) |
2021-11-25 00:26:51 +0100 | Gurkenglas | (~Gurkengla@dslb-002-203-144-204.002.203.pools.vodafone-ip.de) (Ping timeout: 256 seconds) |
2021-11-25 00:26:53 +0100 | <RobotMicrowave> | ok |
2021-11-25 00:26:53 +0100 | <monochrom> | Anyway, if someone says "I want to use your algorithm to compute the digits of 4" then it's g (f 4) = g (0, 4) and "clearly" the desired answer is [4] so why not g (0, 4) = [4] as a base case. |
2021-11-25 00:27:39 +0100 | srk | (~sorki@user/srk) (Ping timeout: 265 seconds) |
2021-11-25 00:28:02 +0100 | srk_ | srk |
2021-11-25 00:28:37 +0100 | <monochrom> | This is why I advocate that beginners should think algebra not control flow. |
2021-11-25 00:29:01 +0100 | <monochrom> | In algebra, if the correct answer is sin(x+y), you write "sin(x+y)". THE END. |
2021-11-25 00:29:07 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) (Ping timeout: 256 seconds) |
2021-11-25 00:29:13 +0100 | <[itchyjunk]> | for input 1, i want g ( f 1) to return [1] |
2021-11-25 00:29:28 +0100 | <[itchyjunk]> | ah, i guess g (0,y) = [y] comes from the base case itself |
2021-11-25 00:29:44 +0100 | <dibblego> | think algebra |
2021-11-25 00:29:51 +0100 | <monochrom> | None of those "how do I initialize a variable to x then add y then sin it" control flow thinking. |
2021-11-25 00:30:54 +0100 | <monochrom> | I mean, if you were in an assembly language course, sure. |
2021-11-25 00:30:58 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 260 seconds) |
2021-11-25 00:31:23 +0100 | <int-e> | now... do we want the digits of 0 to be [0] or []... |
2021-11-25 00:31:28 +0100 | <[itchyjunk]> | Yes, i like this approach (i think). has the sideeffect to teaching me Coq along the way maybe :D |
2021-11-25 00:31:34 +0100 | <int-e> | that's what would keep me up at night |
2021-11-25 00:31:57 +0100 | machinedgod | (~machinedg@142.169.78.187) (Ping timeout: 256 seconds) |
2021-11-25 00:32:03 +0100 | <EvanR> | humanity bumbled to this point for a long time thinking the digits of 0 are [] |
2021-11-25 00:32:07 +0100 | <[itchyjunk]> | i think I would? 01 = [0,1] seems okay |
2021-11-25 00:32:20 +0100 | <[itchyjunk]> | oh |
2021-11-25 00:32:48 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 00:37:37 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-11-25 00:37:42 +0100 | <arahael> | I've attempted to use a cabal.project to override a hackage package, with the following line: packages: *.cabal ../foundation/basement/*.cabal |
2021-11-25 00:37:55 +0100 | <arahael> | However, when I rebuild my project, it still seems to use hackage's basement and not the local one I've checked out? |
2021-11-25 00:38:05 +0100 | <arahael> | (That's the entire contents fo my cabal.project) |
2021-11-25 00:40:11 +0100 | <dsal> | "I'm more in favor of following the standard." "What's 'the standard'?" [links to his own code which he defines as a standard] |
2021-11-25 00:40:25 +0100 | <RobotMicrowave> | At least i learned haskell, I've failed to make my own IO because it was impossible. But it was fun |
2021-11-25 00:40:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 00:40:49 +0100 | <geekosaur> | dsal, that place is a trainwreck. bail. |
2021-11-25 00:41:01 +0100 | <c_wraith> | you can make your own IO-like thing that happens to use IO behind the scenes |
2021-11-25 00:41:19 +0100 | <monochrom> | I use recursion to define iteration. |
2021-11-25 00:41:30 +0100 | <monochrom> | I use iteration to define recursion, too. >:) |
2021-11-25 00:42:05 +0100 | <monochrom> | But Kleene trumped me. He used minimization to define recursion. |
2021-11-25 00:42:21 +0100 | <int-e> | [itchyjunk]: well your g (f 0) produces [0] and the question is... is that the behavior you want or not? |
2021-11-25 00:42:46 +0100 | <monochrom> | But Church trumped him. Church used untyped lambda calculus to get it all. |
2021-11-25 00:42:56 +0100 | <[itchyjunk]> | It was till you questioned about him.. Now I have no idea @_@ |
2021-11-25 00:43:01 +0100 | <int-e> | [itchyjunk]: assuming you fixed it by defining g (0,y) = [y] |
2021-11-25 00:43:08 +0100 | <[itchyjunk]> | not him, it! |
2021-11-25 00:43:17 +0100 | <[itchyjunk]> | Yes, i did that |
2021-11-25 00:43:22 +0100 | <monochrom> | I think [0] is acceptable. |
2021-11-25 00:43:57 +0100 | <int-e> | well, we're lacking a specification |
2021-11-25 00:44:30 +0100 | <monochrom> | If you know who will be judging the correctness of your code, ask them. |
2021-11-25 00:44:43 +0100 | <[itchyjunk]> | ah, god.. |
2021-11-25 00:44:54 +0100 | <monochrom> | If you don't know... why are you in this programming business in the first place?! |
2021-11-25 00:45:17 +0100 | <[itchyjunk]> | I was trying to learn some math at somepoint and one thing lead to another |
2021-11-25 00:45:39 +0100 | <monochrom> | OK so you are the judge, so you decide. |
2021-11-25 00:46:35 +0100 | <monochrom> | All conventions and standards are made by humans. You may as well be one such human for once. |
2021-11-25 00:47:02 +0100 | Jing | (~hedgehog@2604:a840:3::105f) (Remote host closed the connection) |
2021-11-25 00:47:09 +0100 | [itchyjunk] | looks at int-e for judgement |
2021-11-25 00:47:35 +0100 | <int-e> | way to shirk responsibility |
2021-11-25 00:47:43 +0100 | int-e | disapproves |
2021-11-25 00:47:50 +0100 | Jing | (~hedgehog@2604:a840:3::105f) |
2021-11-25 00:47:58 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) |
2021-11-25 00:47:59 +0100 | <jackdk> | a mathematically-literate colleague of mine once seriously entertained someone's "okay, let's say 1=2" quip by working through the consequences |
2021-11-25 00:48:13 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
2021-11-25 00:48:34 +0100 | <geekosaur> | isn't that the zero ring? |
2021-11-25 00:48:49 +0100 | <monochrom> | Does it mean writing a PhD thesis on the zero ring? >:) |
2021-11-25 00:49:09 +0100 | <jackdk> | quite possibly. any part of my maths education that couldn't be translated into typeclasses has rusted away |
2021-11-25 00:49:19 +0100 | <int-e> | geekosaur: hey maybe it's just a semiring |
2021-11-25 00:49:33 +0100 | wagle | (~wagle@quassel.wagle.io) (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
2021-11-25 00:49:44 +0100 | <Axma59590> | jackdk: surely it's the opposite of this: https://www.youtube.com/watch?v=lfP8dx2TdEM |
2021-11-25 00:50:08 +0100 | wagle | (~wagle@quassel.wagle.io) |
2021-11-25 00:50:20 +0100 | <monochrom> | Oh hey there is an xkcd for that, too! |
2021-11-25 00:50:39 +0100 | <monochrom> | https://xkcd.com/816/ |
2021-11-25 00:51:06 +0100 | <Axma59590> | Classic |
2021-11-25 00:51:10 +0100 | Axma59590 | Axman6 |
2021-11-25 00:51:15 +0100 | <monochrom> | The hover line is golden. |
2021-11-25 00:51:15 +0100 | <Axman6> | oh my |
2021-11-25 00:51:18 +0100 | <jackdk> | Axma59590: Who are you and what did you do with the real Axman6? |
2021-11-25 00:51:27 +0100 | <jackdk> | Axman5.99999999 |
2021-11-25 00:51:47 +0100 | <Axman6> | interest rates man |
2021-11-25 00:51:49 +0100 | <monochrom> | jackdk: The point is that 59590=6 so it's OK! |
2021-11-25 00:52:11 +0100 | <jackdk> | monochrom: This is what happens when I IRC on one cup of tea. Time to fix that. |
2021-11-25 00:52:17 +0100 | <Axman6> | I invested my 6 in bitcoin, it went up two ordered of magnitude, but when I cashed out it dropped and I broke even |
2021-11-25 00:52:44 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-25 00:52:54 +0100 | <Axman6> | orders* |
2021-11-25 00:55:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 00:55:07 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 00:55:07 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 00:55:29 +0100 | zer0bitz | (~zer0bitz@2001:2003:f6bc:f00:4c2d:8074:ff8b:55dd) (Ping timeout: 250 seconds) |
2021-11-25 00:55:35 +0100 | hiredman | (~hiredman@frontier1.downey.family) (Ping timeout: 264 seconds) |
2021-11-25 01:02:00 +0100 | nautical | (~nautical@2601:602:900:1630::396f) |
2021-11-25 01:05:21 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 01:08:05 +0100 | <arahael> | Hmm, still having difficulty overriding a hackage package using cabal. Is my only option to run a local hackage server? |
2021-11-25 01:08:31 +0100 | <arahael> | I've tried specifying both packages, and optional-packages, in my cabal.project file. |
2021-11-25 01:09:26 +0100 | <sclv> | the cabal.project route should work |
2021-11-25 01:09:37 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 01:10:12 +0100 | <arahael> | Yeah, trouble is, it's not. I'm not sure why. I mean, I've literally just created a cabal.project file that has "packages: ../foundation/basement/*.cabal" in it, it doesn't make any difference... |
2021-11-25 01:10:13 +0100 | <sclv> | just unpack the repo in the same tarball as the project and add its cabal in the packages stanza |
2021-11-25 01:10:32 +0100 | <sclv> | arahael: i suspect its the relative path causing the issue |
2021-11-25 01:10:47 +0100 | <geekosaur> | relative paths work for me? |
2021-11-25 01:10:55 +0100 | <sclv> | ok then nevermind? |
2021-11-25 01:10:56 +0100 | <arahael> | sclv: Really? The docs use relative paths as an exmaple. |
2021-11-25 01:11:06 +0100 | <sclv> | it was a shot in the dark |
2021-11-25 01:11:08 +0100 | <sclv> | lmao |
2021-11-25 01:11:13 +0100 | <arahael> | Ah, fair enough. :) |
2021-11-25 01:11:14 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Remote host closed the connection) |
2021-11-25 01:11:18 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d22:12b7:6d7c:fb3c) |
2021-11-25 01:11:27 +0100 | <geekosaur> | packages: ./ X11/ xmonad/ xmonad-contrib/ |
2021-11-25 01:11:33 +0100 | <sclv> | i do know there's some corners of cabal where we don't always have them working right |
2021-11-25 01:11:35 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-11-25 01:11:41 +0100 | <geekosaur> | overriding all three from hackage because I use local checkouts |
2021-11-25 01:11:55 +0100 | <sclv> | er by relative i meant with .. |
2021-11-25 01:11:56 +0100 | <geekosaur> | (will need to add at least one more soonish) |
2021-11-25 01:12:00 +0100 | <geekosaur> | ah |
2021-11-25 01:12:21 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-11-25 01:12:26 +0100 | <sclv> | the default directory functions don't resolve that properly without some extra calls iirc |
2021-11-25 01:12:52 +0100 | <arahael> | sclv: The provided example in the docs is literally: packages: */*.cabal ../{foo,bar}/ |
2021-11-25 01:13:19 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 01:13:21 +0100 | <sclv> | the other shot in the dark is to delete the *.cabal bit |
2021-11-25 01:13:28 +0100 | <sclv> | all i can tell you is that its worked for me just fine |
2021-11-25 01:13:49 +0100 | <sclv> | assuming A) a new enough cabal and B) using v2- commands, just to be clear |
2021-11-25 01:14:25 +0100 | <arahael> | sclv: When I do that, "cabal build" stops working at all because the current project I'm in doesn't exist anymore. |
2021-11-25 01:14:49 +0100 | <sclv> | arahael: did you add also _your project_ explicitly to the packages file? |
2021-11-25 01:14:56 +0100 | <sclv> | or er stanza, you know what i mean |
2021-11-25 01:15:09 +0100 | <arahael> | sclv: What does "explicit" mean in this case? |
2021-11-25 01:15:27 +0100 | <sclv> | like geekosaur posted: you need a "./" in there or the like |
2021-11-25 01:15:50 +0100 | <arahael> | sclv: It's picking up the local .cabal file just fine, though? |
2021-11-25 01:16:08 +0100 | <sclv> | ok then what did you mean "the current project I'm in doesn't exist anymore" |
2021-11-25 01:16:41 +0100 | <arahael> | Working: packages: *.cabal ../foundation/basement/*.cabal |
2021-11-25 01:16:55 +0100 | <arahael> | Not working: packages: ../foundation/basement/*.cabal |
2021-11-25 01:16:59 +0100 | <sclv> | right |
2021-11-25 01:17:02 +0100 | <sclv> | that's as designed |
2021-11-25 01:17:03 +0100 | <arahael> | Unfortunately, it's failing to prioritise the basement *over* the hackage. |
2021-11-25 01:17:12 +0100 | <arahael> | basement also exists in hackage. |
2021-11-25 01:17:22 +0100 | <sclv> | right, it should always prefer local |
2021-11-25 01:17:27 +0100 | <sclv> | unless you have version bounds that prevent it |
2021-11-25 01:17:41 +0100 | <sclv> | calling -v might give a hint |
2021-11-25 01:17:51 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-25 01:18:38 +0100 | <arahael> | It's creating dist-newstyle/build/aarch64-osx/ghc-9.2.1/basement-0.0.12/build |
2021-11-25 01:18:57 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:841c:a322:61f5:4ad9) (Ping timeout: 256 seconds) |
2021-11-25 01:19:00 +0100 | <sclv> | ok, so it _is_ building it? |
2021-11-25 01:19:11 +0100 | <arahael> | Yeah, but again, I'm 99.9999% certain it's creating it from hackage. |
2021-11-25 01:19:28 +0100 | <sclv> | why |
2021-11-25 01:19:36 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-11-25 01:20:25 +0100 | <arahael> | sclv: Because the specific bug I'm trying to avoid is still there. |
2021-11-25 01:20:37 +0100 | <arahael> | (And the version I've checked out is supposed to fix it) |
2021-11-25 01:20:39 +0100 | <sclv> | i suggest you change the local one in an incredibly obvious way |
2021-11-25 01:20:44 +0100 | <sclv> | like make it build wrongly |
2021-11-25 01:20:49 +0100 | <sclv> | or print some debug spew |
2021-11-25 01:21:23 +0100 | <arahael> | I'll delete the function outright that causes the bug, then... |
2021-11-25 01:22:07 +0100 | <sclv> | oh also if you're not using basement directly, but its some dep of a dep, i don't think the local one will get picked up by all your deps |
2021-11-25 01:22:34 +0100 | <sclv> | like you can't just "patch in" a single package at the root of your dep tree with this approach |
2021-11-25 01:22:37 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-25 01:23:13 +0100 | bitdex | (~bitdex@gateway/tor-sasl/bitdex) |
2021-11-25 01:23:16 +0100 | <arahael> | Yeah, it's a dep of a dep, but interestingly, deleting that function outright produced a warning that a function does not have an accompanying binding, which makes sense as I just deleted that binding. |
2021-11-25 01:23:37 +0100 | <sclv> | so i think what'll happen is it'll still try to build it as part of your project |
2021-11-25 01:23:38 +0100 | <arahael> | But it's a dep of a dep, why do you think that wouldn't be expected to work? |
2021-11-25 01:23:41 +0100 | <sclv> | it just won't use it |
2021-11-25 01:23:41 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 245 seconds) |
2021-11-25 01:23:45 +0100 | sm2n_ | sm2n |
2021-11-25 01:23:49 +0100 | <sclv> | just my understanding of how cabal innards work |
2021-11-25 01:23:59 +0100 | <arahael> | Blegh. So how do I tell cabal to just replace the darn thing? |
2021-11-25 01:24:26 +0100 | <sclv> | you need to pull in everything in the transitive dep tree as well, or use a local repo to override |
2021-11-25 01:24:34 +0100 | <sclv> | which is not necc a hackage server in full |
2021-11-25 01:24:38 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-25 01:24:43 +0100 | <sclv> | you can do a "filesystem repo" which is much simpler to setup |
2021-11-25 01:24:47 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 01:24:52 +0100 | <arahael> | I've literally cloned that basement repo. |
2021-11-25 01:24:59 +0100 | <arahael> | "git clone", even. |
2021-11-25 01:25:02 +0100 | <sclv> | right |
2021-11-25 01:25:07 +0100 | <sclv> | i mean instead of a "local hackage server" |
2021-11-25 01:25:15 +0100 | <sclv> | you can do a "filesystem package repository" |
2021-11-25 01:25:31 +0100 | <sclv> | its still a pita to set up, but a bit less completely so |
2021-11-25 01:25:38 +0100 | <arahael> | That sounds like quite a bit of work, yeah. |
2021-11-25 01:25:41 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 01:26:02 +0100 | <arahael> | Especially for one package which, in all likelihood, is only temporarily broken. |
2021-11-25 01:26:32 +0100 | <sclv> | also if this is the patch for 9.2.1 then you can add the head.hackage repo which should have it fixed already |
2021-11-25 01:26:56 +0100 | <arahael> | This is that patch! How do I add the head.hackage repo? |
2021-11-25 01:27:01 +0100 | <sclv> | https://ghc.gitlab.haskell.org/head.hackage/ |
2021-11-25 01:27:25 +0100 | <arahael> | Doesn't that replace all the other packages I happen to have as well, though? |
2021-11-25 01:27:38 +0100 | <arahael> | Because I really only want that one package to be replaced... |
2021-11-25 01:27:40 +0100 | <sclv> | it only replaces the other ones with head.hackage packates |
2021-11-25 01:27:42 +0100 | <sclv> | er patches |
2021-11-25 01:27:50 +0100 | <sclv> | but all those packages are for 9.2.1 compat as well |
2021-11-25 01:28:15 +0100 | Feuermagier_ | (~Feuermagi@213.178.26.41) |
2021-11-25 01:30:46 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) (Ping timeout: 245 seconds) |
2021-11-25 01:31:42 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-25 01:32:12 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 01:33:00 +0100 | econo | (uid147250@user/econo) |
2021-11-25 01:33:39 +0100 | <arahael> | That does seem to work, so it sounds like cabal.project (alone) won't do what I want, I _have_ to use a different hackage instance, and I can either set up a local hackage, or use head.hackage since it has the changes I need? |
2021-11-25 01:34:58 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
2021-11-25 01:35:10 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) |
2021-11-25 01:35:59 +0100 | lavaman | (~lavaman@98.38.249.169) (Ping timeout: 256 seconds) |
2021-11-25 01:36:30 +0100 | Lord_of_Life_ | Lord_of_Life |
2021-11-25 01:36:41 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-25 01:36:49 +0100 | hiredman | (~hiredman@frontier1.downey.family) |
2021-11-25 01:39:14 +0100 | <arahael> | Yeah, now I have this bug: https://github.com/haskell/network/issues/497#issuecomment-840641725 |
2021-11-25 01:39:36 +0100 | <arahael> | I really only want that one package, so I think my last and only remaining option is to start a local hackage? |
2021-11-25 01:39:55 +0100 | <sclv> | or vendor the full dep tree |
2021-11-25 01:40:46 +0100 | <arahael> | Doesn't cabal flatten the package name namespace though? It feels a bit odd I have to vendor the whole tree. |
2021-11-25 01:41:44 +0100 | <arahael> | I suppose if I'm vendoring the whole tree, I'm probably back to the point where I might as well have a local hackage. :( |
2021-11-25 01:41:46 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:a418:17da:6b4f:5fc3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-11-25 01:42:17 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-25 01:42:34 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-11-25 01:44:54 +0100 | <monochrom> | https://cabal.readthedocs.io/en/3.6/installing-packages.html#local-no-index-repositories |
2021-11-25 01:45:30 +0100 | <arahael> | monochrom: I'd prefer to use .git repos instead of tarballs, how am I supposed to patch a tarball? |
2021-11-25 01:46:08 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-25 01:46:42 +0100 | <monochrom> | I don't know. But I unpacked, patched, repacked. |
2021-11-25 01:50:22 +0100 | EvanR_ | (~evan@2600:1700:ba69:10:5c7c:46a9:5e48:ea) |
2021-11-25 01:51:27 +0100 | TranquilEcho | (~grom@user/tranquilecho) (Quit: WeeChat 2.8) |
2021-11-25 01:53:22 +0100 | <arahael> | How do you keep track of your patches? I'm not using haskell every day. |
2021-11-25 01:53:44 +0100 | <arahael> | (My day-to-day job is in Swift, so when I'm doing this, I'm like: Ok, how do I build this thing again, this one's a cabal build, right...) |
2021-11-25 01:54:02 +0100 | EvanR | (~evan@user/evanr) (Ping timeout: 240 seconds) |
2021-11-25 01:54:45 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 01:55:03 +0100 | <monochrom> | I have only patched once. But I keep the patched source tree somewhere else. |
2021-11-25 01:55:34 +0100 | <arahael> | Do you check out every git repo, and convert each of those to the corresonding .tar.gz? |
2021-11-25 01:56:19 +0100 | mvk | (~mvk@2607:fea8:5cc1:fa00::4702) |
2021-11-25 01:56:25 +0100 | <monochrom> | I downloaded once from hackage. It's just "cabal sdist" when I'm ready. |
2021-11-25 01:56:41 +0100 | atwm | (~andrew@19-193-28-81.ftth.cust.kwaoo.net) (Ping timeout: 268 seconds) |
2021-11-25 01:56:44 +0100 | <Axman6> | :t \f -> f <&> putStr |
2021-11-25 01:56:45 +0100 | <lambdabot> | Functor f => f String -> f (IO ()) |
2021-11-25 01:56:56 +0100 | <arahael> | monochrom: Hmm? I've never looked at 'cabal sdist'. |
2021-11-25 01:57:10 +0100 | <arahael> | monochrom: Don't you have to download every single package that is touched by the project? |
2021-11-25 01:57:30 +0100 | <monochrom> | I have only done one package. |
2021-11-25 01:58:03 +0100 | <arahael> | monochrom: But as sclv was poitning out, I'd need to vendor the entire tree? |
2021-11-25 01:58:17 +0100 | <arahael> | And if I'm using a local hackage, I'd need to have every package my project touches, right? |
2021-11-25 01:58:45 +0100 | <arahael> | A hackage server is a repository of *all* packages you'd want to pull from hackage, right? |
2021-11-25 01:58:47 +0100 | <monochrom> | "local no-index repo" ≠ "packages: foo.cabal etc" stanza |
2021-11-25 01:59:13 +0100 | drdo | (~drdo@roach0.drdo.eu) (Ping timeout: 256 seconds) |
2021-11-25 01:59:20 +0100 | <sclv> | a local repo can override only a single package |
2021-11-25 01:59:42 +0100 | iteratee_ | (~kyle@162.218.222.107) |
2021-11-25 01:59:43 +0100 | <sclv> | vendoring the whole tree is only for the packages stanza |
2021-11-25 01:59:45 +0100 | <monochrom> | I am not setting up any "server". |
2021-11-25 02:00:10 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-25 02:01:04 +0100 | <arahael> | monochrom: Oh, interesting, so you really only have the one .tar.gz (at least, you would in my scenario). That's feasible. |
2021-11-25 02:01:21 +0100 | <arahael> | How do I ensure that this "local no-index repo" gets prioritised over any other hackage server I might have? |
2021-11-25 02:01:39 +0100 | <monochrom> | I don't imagine that s/1/10/ would make a big deal. |
2021-11-25 02:02:02 +0100 | <arahael> | monochrom: I was worried it was more like 100 or 500 packages. |
2021-11-25 02:02:33 +0100 | <monochrom> | I did this to tf-random. |
2021-11-25 02:02:38 +0100 | iteratee | (~kyle@162.218.222.107) (Ping timeout: 256 seconds) |
2021-11-25 02:03:02 +0100 | <monochrom> | And nothing needs to be done to things that tf-random depends on, or things that depend on tf-random. |
2021-11-25 02:03:09 +0100 | <monochrom> | NOTHING. |
2021-11-25 02:03:25 +0100 | <arahael> | That's exactly what I want! So I think I indeed need to do that "local no-index repo" thing. |
2021-11-25 02:03:50 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 02:07:00 +0100 | <arahael> | Needing an absolute path sucks slightly, but it's OK. |
2021-11-25 02:08:53 +0100 | RobotMicrowave | (~user@2804:d41:c2b2:be00:2926:cba1:14b8:da8b) (ERC 5.4.1 (IRC client for GNU Emacs 27.2)) |
2021-11-25 02:09:31 +0100 | jgeerds | (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 245 seconds) |
2021-11-25 02:09:34 +0100 | zebrag | (~chris@user/zebrag) (Quit: Konversation terminated!) |
2021-11-25 02:09:55 +0100 | <arahael> | (I've assumed a cabal.project must be in the project's root) |
2021-11-25 02:10:33 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-11-25 02:12:51 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e17949910e638228d35.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-25 02:16:13 +0100 | <arahael> | On reflection, that's probably even better because whatever bugs we want to fix should be upstreamed... So once upstream has a new version, then depending on the version bounds I'd then automatically end up using that. |
2021-11-25 02:16:33 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 02:16:39 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-11-25 02:16:54 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-11-25 02:22:03 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 02:22:15 +0100 | <arahael> | I think I'll generate the cabal.project file as part of my monorepo build script, so that it matches the current system filesystem, and to have it generate that .tar.gz file as well. |
2021-11-25 02:24:26 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-25 02:24:52 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-11-25 02:31:31 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 256 seconds) |
2021-11-25 02:33:02 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 02:44:23 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 02:50:00 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 02:55:23 +0100 | dsrt^ | (~dsrt@68.101.63.101) (Ping timeout: 260 seconds) |
2021-11-25 02:57:23 +0100 | Guest75 | (~Guest75@host-176-37-53-221.b025.la.net.ua) |
2021-11-25 02:58:07 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-25 02:58:57 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 268 seconds) |
2021-11-25 02:59:37 +0100 | mmhat | (~mmh@55d43159.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-11-25 02:59:53 +0100 | lechner | (~lechner@debian/lechner) |
2021-11-25 02:59:58 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-25 03:00:15 +0100 | Guest75 | (~Guest75@host-176-37-53-221.b025.la.net.ua) (Client Quit) |
2021-11-25 03:00:48 +0100 | <arahael> | Hmm, so, I have: basement-0.0.12.tar.gz in my local packages dir, and I've modified this so that there's an extra space in the specific line that fails to build. |
2021-11-25 03:01:11 +0100 | <arahael> | But when I build my project, even after explicitly running 'cabal update', and after ensuring that the local cabal.project exists and refers to the local packages dir, |
2021-11-25 03:01:31 +0100 | <arahael> | it still has the _original_ line failing in the error message, so it's still not actually using my particular basement. |
2021-11-25 03:02:58 +0100 | <arahael> | Yep, just unpacked the locally packaged file, it absolutely does have that space in it, yet that space is missing. |
2021-11-25 03:03:15 +0100 | <arahael> | This means that my build is still, somehow, pulling in hackage's basement. (Not using that head.hackage thing anymore, though) |
2021-11-25 03:04:41 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-11-25 03:05:21 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 245 seconds) |
2021-11-25 03:05:52 +0100 | <arahael> | monochrom: So how did that work for you, with tf-random? |
2021-11-25 03:07:53 +0100 | lechner | (~lechner@debian/lechner) (Ping timeout: 250 seconds) |
2021-11-25 03:09:07 +0100 | lechner | (~lechner@debian/lechner) |
2021-11-25 03:12:26 +0100 | mvk | (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 260 seconds) |
2021-11-25 03:13:23 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-25 03:13:32 +0100 | <arahael> | Why is it "extracting" basement not from my local packages, but from .cabal/packages/hackage.haskell.org/basement/0.0.12/basement-0.0.12.tar.gz ? |
2021-11-25 03:14:50 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 03:16:38 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 03:17:25 +0100 | <hololeap> | /usr/lib64/x86_64-linux-ghc-9.2.1/libHSscientific-0.3.7.0-LT8myiDeJKLLdLSFvANXhn-ghc9.2.1.so |
2021-11-25 03:17:38 +0100 | <hololeap> | what does this string signify? LT8myiDeJKLLdLSFvANXhn |
2021-11-25 03:18:17 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-25 03:18:49 +0100 | burnsidesLlama | (~burnsides@client-8-72.eduroam.oxuni.org.uk) |
2021-11-25 03:19:06 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-25 03:19:42 +0100 | <arahael> | What if I were to delete my cached package directly, manually? How should I do this "properly"? |
2021-11-25 03:20:21 +0100 | <arahael> | hololeap: I assume that's a hash of some sort - not sure what the hash is of, though. |
2021-11-25 03:22:51 +0100 | burnsidesLlama | (~burnsides@client-8-72.eduroam.oxuni.org.uk) (Ping timeout: 245 seconds) |
2021-11-25 03:26:18 +0100 | arahael | can't find it specified anywhere, how cabal chooses a package where multiple repos have the same version. |
2021-11-25 03:26:40 +0100 | <arahael> | I think I have two options: Manually delete the package from my cache of hackage.org, or bump the version in my local directory. |
2021-11-25 03:27:00 +0100 | <arahael> | (And then specify: --allow-newer=basement in my build) |
2021-11-25 03:27:24 +0100 | pfurla_ | (~pfurla@2804:14d:5c81:4104:65d6:5a05:6048:8ed9) |
2021-11-25 03:27:49 +0100 | <sclv> | there’s a setting to order package repos. But if you have it built already i think it won’t kick in |
2021-11-25 03:28:22 +0100 | machinedgod | (~machinedg@24.105.81.50) (Ping timeout: 260 seconds) |
2021-11-25 03:28:25 +0100 | <monochrom> | I put my "repository my-local-repository \n url: file+noindex:///..." in my $HOME/.cabal/config. I have not tried putting it in cabal.project. |
2021-11-25 03:28:28 +0100 | <arahael> | Hmm, so if I'm adding or changing my repos, I should delete ~/.cabal and repeat 'cabal update'? |
2021-11-25 03:28:41 +0100 | <arahael> | monochrom: Oh! So that's the global cabal.project? |
2021-11-25 03:29:00 +0100 | <monochrom> | There is no global cabal.project. |
2021-11-25 03:29:08 +0100 | <monochrom> | Since there is no global "project". |
2021-11-25 03:29:10 +0100 | <arahael> | But this setting's only for cabal.projecct? |
2021-11-25 03:29:11 +0100 | Skyfire | (~pyon@user/pyon) (Ping timeout: 268 seconds) |
2021-11-25 03:29:37 +0100 | <arahael> | Ah, I see the docs not mentioning that, not sure where I made that mistake. |
2021-11-25 03:29:44 +0100 | <hololeap> | geekosaur: do you know what that string I mentioned signifies? |
2021-11-25 03:29:50 +0100 | <monochrom> | Obsession with "project"s? |
2021-11-25 03:30:21 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 245 seconds) |
2021-11-25 03:30:21 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:d22:12b7:6d7c:fb3c) (Ping timeout: 245 seconds) |
2021-11-25 03:30:30 +0100 | <monochrom> | I do notice that everyone is obsessed with "project"s when, really, the cabal user guide states very explicitly that the basic unit on hackage is package. |
2021-11-25 03:30:49 +0100 | <sclv> | active-repositories is the stanza to order repo lookup https://cabal.readthedocs.io/en/3.4/cabal-project.html#cfg-field-active-repositories |
2021-11-25 03:32:04 +0100 | <arahael> | monochrom: Well, it's now grabbing the correct package! |
2021-11-25 03:32:38 +0100 | <arahael> | monochrom: I think it was because I was previously in https://cabal.readthedocs.io/en/3.6/cabal-project.html#specifying-the-local-packages |
2021-11-25 03:33:00 +0100 | <arahael> | monochrom: And when I was shown the direct link to local no-index packages, I didn't scroll up to see that it was a different file. |
2021-11-25 03:33:06 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 03:33:13 +0100 | <arahael> | (So my fault, really, but wow. Confusing.) |
2021-11-25 03:33:50 +0100 | pfurla_ | (~pfurla@2804:14d:5c81:4104:65d6:5a05:6048:8ed9) (Quit: Textual IRC Client: www.textualapp.com) |
2021-11-25 03:35:22 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:2061:ecca:f442:134c) |
2021-11-25 03:39:15 +0100 | xff0x | (~xff0x@2001:1a81:5337:5300:b447:8c77:1877:d5ca) (Ping timeout: 260 seconds) |
2021-11-25 03:39:43 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) (Ping timeout: 260 seconds) |
2021-11-25 03:41:04 +0100 | xff0x | (~xff0x@2001:1a81:5377:a800:360f:89df:3dda:3328) |
2021-11-25 03:45:53 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:2061:ecca:f442:134c) (Quit: Textual IRC Client: www.textualapp.com) |
2021-11-25 03:47:31 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:155f:731:f6ca:82cf) |
2021-11-25 03:48:54 +0100 | viluon | (uid453725@id-453725.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 03:50:52 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 03:50:52 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 03:50:52 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 03:51:20 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-25 03:56:30 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 04:01:11 +0100 | hiruji | (~hiruji@user/hiruji) (Ping timeout: 250 seconds) |
2021-11-25 04:04:28 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 04:07:26 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 245 seconds) |
2021-11-25 04:08:01 +0100 | emf | (~emf@2620:10d:c090:400::5:2b81) (Ping timeout: 268 seconds) |
2021-11-25 04:08:22 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) |
2021-11-25 04:10:42 +0100 | emf | (~emf@c-73-97-137-43.hsd1.wa.comcast.net) (Client Quit) |
2021-11-25 04:17:10 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-25 04:18:10 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 04:22:13 +0100 | alzgh | (~alzgh@user/alzgh) (Remote host closed the connection) |
2021-11-25 04:23:36 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 04:24:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 04:24:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 04:24:26 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 04:25:21 +0100 | td_ | (~td@muedsl-82-207-238-097.citykom.de) (Ping timeout: 245 seconds) |
2021-11-25 04:27:27 +0100 | td_ | (~td@94.134.91.22) |
2021-11-25 04:29:23 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-25 04:30:32 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 04:30:54 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 260 seconds) |
2021-11-25 04:33:10 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 04:33:50 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) (Ping timeout: 265 seconds) |
2021-11-25 04:38:31 +0100 | zaquest | (~notzaques@5.130.79.72) (Remote host closed the connection) |
2021-11-25 04:41:31 +0100 | gaff | (~gaff@49.207.202.59) |
2021-11-25 04:41:37 +0100 | gaff | (~gaff@49.207.202.59) (Client Quit) |
2021-11-25 04:42:41 +0100 | dtman34 | (~dtman34@c-73-62-246-247.hsd1.mn.comcast.net) |
2021-11-25 04:45:39 +0100 | benin2 | (~benin@183.82.179.164) |
2021-11-25 04:47:10 +0100 | benin | (~benin@183.82.179.164) (Ping timeout: 260 seconds) |
2021-11-25 04:47:10 +0100 | benin2 | benin |
2021-11-25 04:48:10 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) (Quit: The Lounge - https://thelounge.chat) |
2021-11-25 04:49:22 +0100 | terrorjack | (~terrorjac@2a01:4f8:1c1e:509a::1) |
2021-11-25 04:51:29 +0100 | econo | (uid147250@user/econo) |
2021-11-25 04:54:58 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 05:02:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 05:02:20 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 05:02:20 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 05:03:15 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 05:03:47 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-25 05:09:18 +0100 | vito | (sid1962@user/vito) (Read error: Connection reset by peer) |
2021-11-25 05:09:27 +0100 | vito | (sid1962@user/vito) |
2021-11-25 05:16:38 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 05:19:58 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-25 05:21:14 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-11-25 05:23:19 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:155f:731:f6ca:82cf) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 05:26:49 +0100 | waleee | (~waleee@h-82-196-111-63.NA.cust.bahnhof.se) (Quit: WeeChat 3.3) |
2021-11-25 05:30:40 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 05:32:17 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 256 seconds) |
2021-11-25 05:32:33 +0100 | mbuf | (~Shakthi@122.174.170.222) |
2021-11-25 05:33:18 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 05:35:58 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-25 05:37:23 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 250 seconds) |
2021-11-25 05:42:49 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:155f:731:f6ca:82cf) |
2021-11-25 05:50:57 +0100 | slowButP1esent | (~slowButPr@user/slowbutpresent) (Quit: leaving) |
2021-11-25 05:53:03 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 05:54:31 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:155f:731:f6ca:82cf) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 05:59:07 +0100 | <arahael> | #haskell has been very quiet. is it holidays somewhere? |
2021-11-25 05:59:29 +0100 | <dolio> | Yeah, major holiday tomorrow in the US. |
2021-11-25 05:59:33 +0100 | <arahael> | sclv: forgot to respond - thanks for that! |
2021-11-25 05:59:40 +0100 | <arahael> | dolio: oh? which one? |
2021-11-25 05:59:48 +0100 | <dolio> | Thanksgiving. |
2021-11-25 06:00:32 +0100 | <arahael> | ah, interesting - harvest day. |
2021-11-25 06:05:06 +0100 | <dsal> | It's the day we celebrate our white ancestors coming to the US by spreading plague to our families. |
2021-11-25 06:05:31 +0100 | octeep[m] | (~octeepoct@2001:470:69fc:105::1:3dbf) |
2021-11-25 06:06:26 +0100 | mbuf | (~Shakthi@122.174.170.222) (Quit: Leaving) |
2021-11-25 06:07:30 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Remote host closed the connection) |
2021-11-25 06:11:30 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 06:12:02 +0100 | <arahael> | oh? wikipedia seemed to suggest it was related to the harvest? i only read the intro paragraphs though. |
2021-11-25 06:13:44 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
2021-11-25 06:16:27 +0100 | johnw | (~johnw@2607:f6f0:3004:1:c8b4:50ff:fef8:6bf0) (Quit: ZNC - http://znc.in) |
2021-11-25 06:19:09 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) (Quit: Leaving) |
2021-11-25 06:22:22 +0100 | zaquest | (~notzaques@5.130.79.72) |
2021-11-25 06:25:01 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) (Remote host closed the connection) |
2021-11-25 06:25:16 +0100 | statusbot | (~statusbot@ec2-34-198-122-184.compute-1.amazonaws.com) |
2021-11-25 06:26:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 06:31:05 +0100 | fr33domlover_ | (~fr33@2.55.143.230) (Ping timeout: 268 seconds) |
2021-11-25 06:32:11 +0100 | Moyst_ | (~moyst@user/moyst) (Ping timeout: 250 seconds) |
2021-11-25 06:33:08 +0100 | Moyst_ | (~moyst@user/moyst) |
2021-11-25 06:33:20 +0100 | reumeth | (~reumeth@user/reumeth) |
2021-11-25 06:38:55 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-25 06:39:06 +0100 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 245 seconds) |
2021-11-25 06:42:47 +0100 | Skyfire | (~pyon@user/pyon) |
2021-11-25 06:45:42 +0100 | abraham | (~abraham@143.244.185.86) |
2021-11-25 06:53:46 +0100 | Guest3953 | spider |
2021-11-25 06:54:16 +0100 | spider | Guest42 |
2021-11-25 06:54:20 +0100 | Guest42 | spider__ |
2021-11-25 07:00:18 +0100 | mbuf | (~Shakthi@122.174.170.222) |
2021-11-25 07:00:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-11-25 07:03:09 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) (Ping timeout: 268 seconds) |
2021-11-25 07:06:18 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 07:08:02 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) |
2021-11-25 07:09:35 +0100 | JimL | (~quassel@89-162-2-132.fiber.signal.no) |
2021-11-25 07:13:46 +0100 | eggplantade | (~Eggplanta@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
2021-11-25 07:14:56 +0100 | monochrom | (trebla@216.138.220.146) (Ping timeout: 245 seconds) |
2021-11-25 07:17:31 +0100 | monochrom | (trebla@216.138.220.146) |
2021-11-25 07:18:28 +0100 | Moyst_ | (~moyst@user/moyst) (Remote host closed the connection) |
2021-11-25 07:19:03 +0100 | <mjrosenb> | Does ghcjs support HasCallStack? |
2021-11-25 07:19:22 +0100 | <mjrosenb> | I added that into a function which should definitely be on the call stack when an error is thrown |
2021-11-25 07:19:34 +0100 | <mjrosenb> | but the error message makes no mention of said function. |
2021-11-25 07:24:55 +0100 | Moyst | (~moyst@user/moyst) |
2021-11-25 07:26:44 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) |
2021-11-25 07:29:57 +0100 | zebrag | (~chris@user/zebrag) (Remote host closed the connection) |
2021-11-25 07:32:13 +0100 | Moyst | (~moyst@user/moyst) (Ping timeout: 250 seconds) |
2021-11-25 07:33:26 +0100 | chomwitt | (~chomwitt@2a02:587:dc14:4600:12c3:7bff:fe6d:d374) |
2021-11-25 07:33:39 +0100 | Moyst | (~moyst@user/moyst) |
2021-11-25 07:34:46 +0100 | jzsinatra | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) (Ping timeout: 260 seconds) |
2021-11-25 07:35:00 +0100 | jzsinatra | (~jzsinatra@88-114-238-31.elisa-laajakaista.fi) |
2021-11-25 07:47:27 +0100 | michalz | (~michalz@185.246.204.58) |
2021-11-25 07:54:44 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) |
2021-11-25 08:02:20 +0100 | theproffesor | (~theproffe@user/theproffesor) (Quit: Leaving) |
2021-11-25 08:03:16 +0100 | <arahael> | I assume it does. |
2021-11-25 08:07:26 +0100 | arahael | regrets using amazonka. |
2021-11-25 08:07:34 +0100 | <jackdk> | hm? |
2021-11-25 08:07:34 +0100 | theproffesor | (~theproffe@user/theproffesor) |
2021-11-25 08:08:19 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 08:09:08 +0100 | <arahael> | jackdk: Yeah - I'm in conflict hell, it has a pretty narrow set of versions it likes for aeson, and does not work at all with aeson 2.x |
2021-11-25 08:11:16 +0100 | <jackdk> | arahael: are you using the version from hackage? github master at least has a 1.6.2 upper bound. I haven't tried doing an allow-newer: on aeson to see if it works with 2.0 yet |
2021-11-25 08:11:59 +0100 | <arahael> | jackdk: There's active tickets that show aeson 2.x isn't even on amazonka's radar. |
2021-11-25 08:12:13 +0100 | <arahael> | jackdk: They'll get to 2.x once amazonka gets to 2.0 |
2021-11-25 08:12:59 +0100 | <jackdk> | arahael: I know. I've been driving it. If you want to test it with aeson-2.0 I can at least promise a prompt PR review |
2021-11-25 08:13:36 +0100 | <jackdk> | but my first priority is helping get the past ~three years of service updates etc out the door |
2021-11-25 08:13:51 +0100 | <arahael> | jackdk: Unfortunately I can't isolate it just yet. I'm still just trying to get it to satisfy version bounds again. I'm currently seeing messages like: |
2021-11-25 08:13:58 +0100 | <arahael> | > Failed to build network-3.1.2.5 because it depends on network-3.1.2.5 which itself failed to build. |
2021-11-25 08:13:59 +0100 | <lambdabot> | <hint>:1:100: error: |
2021-11-25 08:13:59 +0100 | <lambdabot> | parse error (possibly incorrect indentation or mismatched brackets) |
2021-11-25 08:14:21 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 08:14:46 +0100 | arahael | keeps forgetting that lambdabot uses the email-form of quoting. |
2021-11-25 08:14:52 +0100 | <jackdk> | @botsnack |
2021-11-25 08:14:52 +0100 | <lambdabot> | :) |
2021-11-25 08:15:05 +0100 | <jackdk> | can you constrain aeson < 1.6 for now or is that unacceptable? |
2021-11-25 08:15:49 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bdf3:903c:8a82:6328) |
2021-11-25 08:17:21 +0100 | lavaman | (~lavaman@98.38.249.169) |
2021-11-25 08:18:01 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 08:19:15 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) (Quit: mikoto-chan) |
2021-11-25 08:19:43 +0100 | <arahael> | That may well be working. Now for a failure in Attoparsec... |
2021-11-25 08:20:01 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 256 seconds) |
2021-11-25 08:22:08 +0100 | <arahael> | I guess this is what I get for being on a bleeding edge haskell! :) (Well, not really bleeding edge, but it seems 9.2.1 made quite some breaking changes.) |
2021-11-25 08:22:15 +0100 | gdown | (~gavin@h69-11-248-109.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection) |
2021-11-25 08:22:33 +0100 | <arahael> | Finally I have it failing on aeson itself. But it seems to be using aeson-1.2.1.0 |
2021-11-25 08:22:50 +0100 | <arahael> | Not sure why it's settled on such an old version - how do I find out why it selected that version? |
2021-11-25 08:23:35 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
2021-11-25 08:26:12 +0100 | <jackdk> | you could set a newer version in cabal.project.freeze and see why and how it fails to solve? |
2021-11-25 08:26:29 +0100 | <jackdk> | is this a public project? |
2021-11-25 08:26:42 +0100 | Jing | (~hedgehog@2604:a840:3::105f) (Remote host closed the connection) |
2021-11-25 08:27:37 +0100 | Jing | (~hedgehog@115.207.50.95) |
2021-11-25 08:27:49 +0100 | <arahael> | I can make it public, let me just check if I've put in any passwords... ;) |
2021-11-25 08:27:57 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 08:28:21 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 08:29:05 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 08:29:32 +0100 | <arahael> | It's already public: https://github.com/arafangion/auslansocial |
2021-11-25 08:29:38 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 08:30:12 +0100 | <arahael> | I'm attempting to randomly try a whole pile of --allow-newer stuff along with a few packages in a local hackage to apply patches manually. |
2021-11-25 08:30:35 +0100 | <arahael> | Local package has 9.2.1 patches applied for: basement-0.0.12.tar.gz cryptonite-0.29.tar.gz memory-0.16.0.tar.gz |
2021-11-25 08:31:29 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 08:32:07 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 08:33:21 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 08:33:45 +0100 | <arahael> | It previously worked fine, but I was using an x86_64 build of haskell, and an older ghc, at that. But now I've switched to an arm64 version of ghc and all that - and sometime in the past 5 months I must've updated my local LLVM (part of xcode) so that it's version 13 - which is too new for the current haskell and makes me need to use 9.2.1 |
2021-11-25 08:35:09 +0100 | <arahael> | As you've probably surmised, I don't really know what I'm doing at the moment :) |
2021-11-25 08:35:14 +0100 | <jackdk> | okay, so you're forced to use 9.2.1 because you're on aarch64 because you're on an M1 mac and your new xcode updated llvm? |
2021-11-25 08:36:10 +0100 | <arahael> | Yes. :) |
2021-11-25 08:37:13 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-25 08:37:17 +0100 | <arahael> | If this was a production build or if I was on a deadline, I'd have just grabbed an older xcode, I guess, and then xcode-select'ed that version. |
2021-11-25 08:37:22 +0100 | <jackdk> | okay. I'm on x86_64-linux and I've got a couple of things I need to wrap up before I clock off work. Let me see if I can get a GHC 9.2.1 and have a play. |
2021-11-25 08:37:29 +0100 | fr33domlover | (~fr33@2.55.21.191) |
2021-11-25 08:37:29 +0100 | <arahael> | But I'm taking this as an opportunity to learn... Everything... |
2021-11-25 08:38:00 +0100 | <jackdk> | complete with cross-architectural detours! |
2021-11-25 08:38:03 +0100 | <arahael> | jackdk: Please don't make me make you be late for work! :) |
2021-11-25 08:38:23 +0100 | <jackdk> | she'll be right mate |
2021-11-25 08:39:07 +0100 | <arahael> | And yeah, indeed! Oh! And on top of all that, I'm learning Shake, which seeems to be a pretty nifty build system, I like it. I was thinking that maybe I should make it so that I can build all my various unmaintained private crap in teh same way, consistently... |
2021-11-25 08:40:10 +0100 | xkuru | (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
2021-11-25 08:42:43 +0100 | <arahael> | I suspect there's no way I can build this with all these packages until Amazonka updates to aeson 2.x |
2021-11-25 08:43:04 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-25 08:43:15 +0100 | <tomsmeding> | more forks :) |
2021-11-25 08:43:22 +0100 | <jackdk> | pls no |
2021-11-25 08:44:19 +0100 | <arahael> | Heh, actually if I urgently needed to get this building, I'd probably more likely strip amazonka out, and maybe shell in aws-cli instead. |
2021-11-25 08:44:53 +0100 | <jackdk> | I've done that too, in places >_> |
2021-11-25 08:45:07 +0100 | <arahael> | I've never liked the various amazon SDK's :( |
2021-11-25 08:45:15 +0100 | <arahael> | third party or otherwise. |
2021-11-25 08:45:23 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 08:45:23 +0100 | <arahael> | They're just too freaking huge. |
2021-11-25 08:45:41 +0100 | <jackdk> | someone (probably me) is going to have to write proper sts:AssumeRole at some point |
2021-11-25 08:46:36 +0100 | <arahael> | I don't think I've needed that. In the past actually I just wrote my own binding to the specific AWS services I needed. |
2021-11-25 08:46:43 +0100 | <jackdk> | like you can do it, but you have to do it manually. I'd love for it to be supported by the default env stuff |
2021-11-25 08:47:27 +0100 | <jackdk> | and by manually I mean going through amazonka-sts, pulling the key/sessionid/etc from teh response and then constructing a new Env |
2021-11-25 08:47:47 +0100 | <arahael> | THat's over my head a bit, I'm just doing dead simple S3. ;) |
2021-11-25 08:48:34 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 08:48:38 +0100 | <arahael> | Well, plus cloudflare invalidations. |
2021-11-25 08:53:10 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-25 08:57:28 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 08:58:54 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 09:03:28 +0100 | Pickchea | (~private@user/pickchea) (Quit: Leaving) |
2021-11-25 09:07:15 +0100 | mvk | (~mvk@2607:fea8:5cc1:fa00::4702) |
2021-11-25 09:14:00 +0100 | <arahael> | Hmm, just opened a new ticket on an unrelated project: https://github.com/erikd/language-javascript/issues/132 |
2021-11-25 09:14:50 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 09:15:52 +0100 | nautical | (~nautical@2601:602:900:1630::396f) (Quit: WeeChat 3.3) |
2021-11-25 09:17:46 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Remote host closed the connection) |
2021-11-25 09:18:24 +0100 | <arahael> | How do I find out why I'm pulling in a particular dependency? |
2021-11-25 09:18:25 +0100 | <tomsmeding> | arahael: there is a ∉ in that file |
2021-11-25 09:18:34 +0100 | <tomsmeding> | only non-ascii character I think |
2021-11-25 09:18:45 +0100 | <arahael> | tomsmeding: Why don't they just fix it? |
2021-11-25 09:18:50 +0100 | <tomsmeding> | ¯\_(ツ)_/¯ |
2021-11-25 09:19:11 +0100 | <tomsmeding> | shouldn't break though, looks like a normal utf8 encoded thing |
2021-11-25 09:19:32 +0100 | <arahael> | Yeah, I'm not sure what's happening, I mean, I've set the locale. That fixed it for everyone else. |
2021-11-25 09:19:48 +0100 | <arahael> | And it's why I explictly showed how I used the locale there. |
2021-11-25 09:20:19 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 09:20:33 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 250 seconds) |
2021-11-25 09:20:39 +0100 | <arahael> | I'm not even sure why this other project is using language-javascript in the first place, though. |
2021-11-25 09:21:07 +0100 | chele | (~chele@user/chele) |
2021-11-25 09:21:07 +0100 | <tomsmeding> | they thought their library was too stable |
2021-11-25 09:22:05 +0100 | <arahael> | The last commit to that project is 2 years ago. |
2021-11-25 09:23:02 +0100 | <tomsmeding> | see? they didn't have the manpower to actually change the code and thereby make it unstable, so they just used javascript instead |
2021-11-25 09:23:10 +0100 | <tomsmeding> | /s obviously |
2021-11-25 09:23:21 +0100 | <arahael> | Heh. :) |
2021-11-25 09:23:31 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 09:23:49 +0100 | <arahael> | Clearly the answer is to get rid of it - I think I might play some nethack for a while first, though. Been pretty flat out with meetings and Swift code. |
2021-11-25 09:23:55 +0100 | Unhammer | (~Unhammer@user/unhammer) |
2021-11-25 09:24:15 +0100 | <arahael> | Then I should find out how to figure out why the project's pulling it in in the first place! |
2021-11-25 09:24:38 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Client Quit) |
2021-11-25 09:24:44 +0100 | <jackdk> | there is a way to get cabal to cough up a plan.json, I can't remember what it is |
2021-11-25 09:24:53 +0100 | <tomsmeding> | dist-newstyle/cache/plan.json |
2021-11-25 09:25:41 +0100 | <tomsmeding> | lists configured dependencies of each package in your dependency tree; no nice graph but should at least show where language-javascript is coming from |
2021-11-25 09:25:42 +0100 | <dminuoso> | jackdk: You can call cabal-lib I guess? |
2021-11-25 09:26:03 +0100 | <tomsmeding> | also `cabal-plan dot` |
2021-11-25 09:26:35 +0100 | <dminuoso> | Im not sure whether cabal-exe allows to do nothing but produce a build plan |
2021-11-25 09:26:56 +0100 | <arahael> | Uhh? Nothing depends on it! |
2021-11-25 09:27:02 +0100 | <tomsmeding> | :D |
2021-11-25 09:27:41 +0100 | <arahael> | There's only one mention of 'language-javascript' in that entire file, which means nothing depends on it. |
2021-11-25 09:28:01 +0100 | <tomsmeding> | lol |
2021-11-25 09:28:12 +0100 | <arahael> | Weird. |
2021-11-25 09:28:32 +0100 | mc47 | (~mc47@xmonad/TheMC47) |
2021-11-25 09:28:38 +0100 | <tomsmeding> | also no hits of lngg-jvscrpt? |
2021-11-25 09:28:55 +0100 | arahael | looks at tomsmeding weirdly. |
2021-11-25 09:28:55 +0100 | <tomsmeding> | no idea why that would happen, but I saw it in your issue |
2021-11-25 09:29:14 +0100 | <arahael> | There's several hits... |
2021-11-25 09:29:25 +0100 | <tomsmeding> | but relevant ones? |
2021-11-25 09:29:33 +0100 | <arahael> | That makes no sense, I thought you were being sarcastic, I mean, "of course javascript would chop off the vowels". |
2021-11-25 09:29:40 +0100 | <tomsmeding> | :') |
2021-11-25 09:30:16 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 09:31:24 +0100 | <arahael> | Why do so many of these chop off the vowels!? |
2021-11-25 09:31:31 +0100 | <tomsmeding> | I have absolutely no idea |
2021-11-25 09:31:46 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-11-25 09:31:56 +0100 | <tomsmeding> | also, ‽ |
2021-11-25 09:32:18 +0100 | <arahael> | It's being pulled in via yesod-static -> hjsmn -> lngg-jvscrpt |
2021-11-25 09:32:31 +0100 | <arahael> | I guess that makes sense. |
2021-11-25 09:32:41 +0100 | <arahael> | Another reason to chop off yesod, too! |
2021-11-25 09:32:46 +0100 | <arahael> | (But not today) |
2021-11-25 09:33:06 +0100 | <tomsmeding> | right |
2021-11-25 09:34:42 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 260 seconds) |
2021-11-25 09:35:26 +0100 | jmorris | (uid433911@id-433911.hampstead.irccloud.com) |
2021-11-25 09:37:49 +0100 | arahael | hopes jackdk has gone to work. |
2021-11-25 09:38:13 +0100 | <jackdk> | oh no I finished work for the day, I'm LARPing the cabal constraint solver |
2021-11-25 09:38:20 +0100 | max22- | (~maxime@2a01cb0883359800d4d6b02a2c3bac5a.ipv6.abo.wanadoo.fr) |
2021-11-25 09:39:01 +0100 | <jackdk> | I'm hitting packages that say "build-depends: base > 4.x && < 5", but then break on GHC9 :( |
2021-11-25 09:39:43 +0100 | <tomsmeding> | send thanks to stack |
2021-11-25 09:41:00 +0100 | <arahael> | Yeah, looking at all this has been *eyeopening* to me. |
2021-11-25 09:41:29 +0100 | <jackdk> | I think it's really rude to build LTS snapshots based on a claim of "these packages build together", informed by dependency information on hackage, and then write tooling that defaults to generating crap dependency information |
2021-11-25 09:42:42 +0100 | <arahael> | Maybe this is part of the reason I'm having so much trouble with GHC9. |
2021-11-25 09:43:23 +0100 | <arahael> | Basically not one of my personal, unmaintained, bitrotten projects has survived the transition to GHC9. :( |
2021-11-25 09:43:51 +0100 | <arahael> | (And most of them were originally stack projects, but... I'm very tired of stack, and am basically trying to pretend I never used it) |
2021-11-25 09:44:04 +0100 | <jackdk> | I use `cabal gen-bounds` and advance them carefully. But yeah GHC9 seems to be rough for a bunch of people |
2021-11-25 09:44:39 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-25 09:44:48 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-25 09:44:51 +0100 | <arahael> | I also have an ffi bug as well, but I'm working around that by explicitly passing an -I include flag for a random libffi on the system. |
2021-11-25 09:45:10 +0100 | <arahael> | I hope that'll be fixed in 9.2.2, or something. |
2021-11-25 09:45:38 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 09:47:15 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e17949910e638228d35.dip0.t-ipconnect.de) |
2021-11-25 09:49:17 +0100 | <arahael> | So I've been starting using Shake in a monorepo, hope that doesn't bite me. |
2021-11-25 09:51:03 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 09:52:10 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 09:55:06 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
2021-11-25 09:57:41 +0100 | fr33domlover | (~fr33@2.55.21.191) (Ping timeout: 268 seconds) |
2021-11-25 09:58:44 +0100 | machinedgod | (~machinedg@24.105.81.50) |
2021-11-25 10:01:37 +0100 | <jackdk> | arahael: I regret to say that you'll be genuinely stuck until amazonka support aeson-2.0: aeson-1.5.6 tries to declare an instance for Data.Semigroup.Option, which went away in base-4.16 |
2021-11-25 10:02:22 +0100 | <arahael> | jackdk: I'm had a hunch that was going to be the case, but I had no idea why. How on earth did you find that out? |
2021-11-25 10:03:18 +0100 | <jackdk> | I gave up on aeson-1.5.6.0 for some reason that I forget, and tried to allow aeson ^>= 2.0 using allow-newer in cabal.project. Then I saw the aeson build failure |
2021-11-25 10:03:37 +0100 | <arahael> | Ah, so you used painful experience. |
2021-11-25 10:04:09 +0100 | <arahael> | i think in the next couple of months by which I'll probably need this, I'll either be lucky and amazonka then supports it - and hopefully that's not the only issue - or I strip out amazonka. |
2021-11-25 10:05:04 +0100 | <jackdk> | I have a cabal.project file that I'll pastebin to you because it'll show you some tricks for pinning/working around people being sloppy with bounds |
2021-11-25 10:05:04 +0100 | <Hecate> | we can petition amazonka and offer our help |
2021-11-25 10:05:34 +0100 | <arahael> | jackdk: Thanks! |
2021-11-25 10:05:44 +0100 | rkrishnan | (~user@122.172.141.170) |
2021-11-25 10:06:01 +0100 | <jackdk> | arahael: why ghc 9.2.1? I know it's good to follow the latest to keep up to date, but is there anything you particularly need? |
2021-11-25 10:06:19 +0100 | <arahael> | jackdk: It needs to support both aarch64 and llvm 13+. |
2021-11-25 10:06:26 +0100 | <jackdk> | oh yeah that's right |
2021-11-25 10:06:29 +0100 | <Hecate> | https://github.com/brendanhay/amazonka/issues/680 |
2021-11-25 10:06:48 +0100 | <jackdk> | Hecate: I wrote that issue. |
2021-11-25 10:07:03 +0100 | <Hecate> | oh you are endgame! |
2021-11-25 10:08:23 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Remote host closed the connection) |
2021-11-25 10:08:42 +0100 | jonathanx | (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) |
2021-11-25 10:08:52 +0100 | <arahael> | Oh, btw, I really enjoyed using amazonka when I first discovered it. I just don't today, but when I found it, I liked it. I just wish AWS's SDK's weren't generally huge. |
2021-11-25 10:09:12 +0100 | <jackdk> | tell jeff to stop releasing a zillion services every week |
2021-11-25 10:09:23 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) |
2021-11-25 10:09:25 +0100 | <arahael> | Right, and with subtle wacky variations. |
2021-11-25 10:09:44 +0100 | <arahael> | Just make it so that we can feasibly write our own bindings or support *consistent* conventions or something! |
2021-11-25 10:11:09 +0100 | martin02 | (~silas@141.84.69.76) |
2021-11-25 10:12:12 +0100 | <arahael> | They shouldn't basically require a unique authentication system. Even if it was slapping a Swagger interface on everything that'd be an improvement. |
2021-11-25 10:12:34 +0100 | <jackdk> | cloud control api is an improvement in that regard, at least for CRUDL |
2021-11-25 10:13:11 +0100 | mei | (~mei@user/mei) (Read error: Connection reset by peer) |
2021-11-25 10:13:16 +0100 | <arahael> | I'm not familiar with that! |
2021-11-25 10:13:54 +0100 | <jackdk> | only came out this year -- https://aws.amazon.com/blogs/aws/announcing-aws-cloud-control-api/ |
2021-11-25 10:15:17 +0100 | <arahael> | At a glance, that looks pretty good. |
2021-11-25 10:15:56 +0100 | <arahael> | Any drawbacks that you forsee? |
2021-11-25 10:16:04 +0100 | <arahael> | I notice they don't seem to have complete coverage. |
2021-11-25 10:16:26 +0100 | <jackdk> | I haven't looked at it in depth but at a glance it seemed pretty close to CloudFormation property specifications, which are occasionally pretty frustrating to write |
2021-11-25 10:16:54 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Read error: Connection reset by peer) |
2021-11-25 10:17:04 +0100 | <arahael> | There's a lot of that across the stack, though. |
2021-11-25 10:17:27 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-25 10:18:14 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 10:19:31 +0100 | <arahael> | jackdk: Did I miss your cabal.project suggestions? I can't find them. |
2021-11-25 10:20:01 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-11-25 10:20:03 +0100 | <jackdk> | no you didn't. I thought I'd have one more crack before giving up |
2021-11-25 10:20:27 +0100 | <jackdk> | arahel: Drop this in teh root of your repo: https://www.irccloud.com/pastebin/gDUSgcxb/cabal.project |
2021-11-25 10:20:43 +0100 | <jackdk> | Ignore the --sha256 comments -those are because I was using haskell.nix |
2021-11-25 10:21:44 +0100 | mmhat | (~mmh@55d42d28.access.ecotel.net) |
2021-11-25 10:21:45 +0100 | <arahael> | Ah, I also use nix, though not for this at the moment. I'm in very much a love/hate situation with nix, and this week more on the hate side as you may have noticed. |
2021-11-25 10:22:07 +0100 | <jackdk> | it can do that to you, yeah |
2021-11-25 10:22:16 +0100 | <arahael> | This looks simpler, thanks for this. I was using a local no-index hackage repo to override... Three of these. |
2021-11-25 10:22:31 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Ping timeout: 250 seconds) |
2021-11-25 10:22:36 +0100 | <jackdk> | yeah don't do that. source-repository-package stanzas are waaayyy easier |
2021-11-25 10:23:23 +0100 | <arahael> | For sure - and more isolated to the specific project. |
2021-11-25 10:23:29 +0100 | <arahael> | I like this, thanks heaps for that! |
2021-11-25 10:24:07 +0100 | gehmehgeh | (~user@user/gehmehgeh) |
2021-11-25 10:24:26 +0100 | <arahael> | Incidentially, those sha256 lines... Is there a particular way you generate those? Usually I'd just invent a sha256. ("aaa" - yep, that's a sha256. Lets try that), wait for nix to complain, "aaa is not sha256-r/fFlrgF3KbD/yaFKNW2ORJepUB2/UDEegYnV/WPodQ", then I copy that in and it's all good. |
2021-11-25 10:25:04 +0100 | <jackdk> | that's exactly what I did. `M-: (dotimes (i 52) (insert ?0))` in emacs |
2021-11-25 10:26:02 +0100 | <arahael> | Nice. |
2021-11-25 10:26:09 +0100 | <arahael> | I'll stick with "aaa". :) |
2021-11-25 10:26:23 +0100 | <jackdk> | because it makes you want to scream? |
2021-11-25 10:26:34 +0100 | arahael | reminds jackdk of his love-hate relationship with nix. |
2021-11-25 10:31:24 +0100 | <jackdk> | mostly love, tbh. |
2021-11-25 10:32:01 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 10:33:21 +0100 | <arahael> | Do you use it at work? |
2021-11-25 10:33:35 +0100 | <jackdk> | yes |
2021-11-25 10:33:40 +0100 | <arahael> | I think that might be why. |
2021-11-25 10:33:55 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2021-11-25 10:33:59 +0100 | <arahael> | I basically fight with nix once every other week or so, and only ever on my home system, an hour after I should've gone to bed. |
2021-11-25 10:34:27 +0100 | <arahael> | My big rant here the other day was basically 1-2 hours after I should've been in bed. :( |
2021-11-25 10:34:44 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 10:35:06 +0100 | <arahael> | (At work, we're always in xcode, so there's relatively little need for nix. We've got a whole bunch of dependency problems, but nix won't solve those.) |
2021-11-25 10:39:23 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 10:43:24 +0100 | jgeerds | (~jgeerds@55d45b75.access.ecotel.net) |
2021-11-25 10:44:02 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 240 seconds) |
2021-11-25 10:44:31 +0100 | mvk | (~mvk@2607:fea8:5cc1:fa00::4702) (Ping timeout: 245 seconds) |
2021-11-25 10:47:14 +0100 | cfricke | (~cfricke@user/cfricke) |
2021-11-25 10:48:51 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) |
2021-11-25 10:49:06 +0100 | fr33domlover | (~fr33@2.55.21.191) |
2021-11-25 10:56:23 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 10:56:48 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Client Quit) |
2021-11-25 10:59:13 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 10:59:41 +0100 | ubert | (~Thunderbi@p200300ecdf0ba227e6b318fffe838f33.dip0.t-ipconnect.de) |
2021-11-25 11:04:02 +0100 | <dminuoso> | The main problem with nix is gaining the level of expertise that you dont mind the rough edges anymore. |
2021-11-25 11:04:06 +0100 | notzmv | (~zmv@user/notzmv) (Ping timeout: 245 seconds) |
2021-11-25 11:04:15 +0100 | <dminuoso> | It has a relatively deep initial investment cost |
2021-11-25 11:04:18 +0100 | fr33domlover | (~fr33@2.55.21.191) (Ping timeout: 260 seconds) |
2021-11-25 11:04:52 +0100 | <dminuoso> | If you intend to use nix at your job, you better have one or two experts that can deal with all the bizarre nonsense you might encounter. |
2021-11-25 11:09:19 +0100 | <arahael> | That, too, yeah. |
2021-11-25 11:09:42 +0100 | <arahael> | I'm super wary of introducing it for that reason. |
2021-11-25 11:09:55 +0100 | <arahael> | (And besides, again, it wouldn't work for us, because we use macos) |
2021-11-25 11:10:16 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Remote host closed the connection) |
2021-11-25 11:10:40 +0100 | <arahael> | I should probably be more specific: We use xcode there, I don't think we can viably nixify the various xcode and dependencies for iOS projects. |
2021-11-25 11:14:01 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 11:20:47 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 260 seconds) |
2021-11-25 11:25:12 +0100 | acidjnk | (~acidjnk@p200300d0c7271e17fcc20a5d4f804d59.dip0.t-ipconnect.de) |
2021-11-25 11:25:50 +0100 | <dminuoso> | You probably can *shrugs* |
2021-11-25 11:27:16 +0100 | <Franciman> | dminuoso: have you had a chance to review guix too? |
2021-11-25 11:28:28 +0100 | <dminuoso> | No. |
2021-11-25 11:28:43 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e17949910e638228d35.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
2021-11-25 11:28:57 +0100 | <Franciman> | I am no expert, but to me it seems it has a better UX |
2021-11-25 11:29:00 +0100 | <Franciman> | and saner defaults |
2021-11-25 11:29:21 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e1739bc3d1dda3deba6.dip0.t-ipconnect.de) |
2021-11-25 11:29:27 +0100 | <Franciman> | and it encourages free software |
2021-11-25 11:29:27 +0100 | acidjnk | (~acidjnk@p200300d0c7271e17fcc20a5d4f804d59.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-25 11:29:59 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:a418:17da:6b4f:5fc3) |
2021-11-25 11:29:59 +0100 | econo | (uid147250@user/econo) (Quit: Connection closed for inactivity) |
2021-11-25 11:30:40 +0100 | <dminuoso> | Not sure how NixOS does not encourage free software *shrug* |
2021-11-25 11:30:56 +0100 | <dminuoso> | I havent heard many positive things from other NixOS users so far |
2021-11-25 11:31:54 +0100 | <dminuoso> | Plus nix/nixos has matured really well in terms of integration, package availability and maintainership |
2021-11-25 11:32:12 +0100 | <dminuoso> | Think nixpkgs is the most active repository on all of github right now? |
2021-11-25 11:33:54 +0100 | <Franciman> | dminuoso: NixOS officially packages software that is non free |
2021-11-25 11:33:58 +0100 | <Franciman> | that's encouraging its use |
2021-11-25 11:34:08 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 11:34:36 +0100 | <dminuoso> | Im not sure about encouragement, to be honest. |
2021-11-25 11:34:42 +0100 | <dminuoso> | This seems to be a religious topic for some I guess. |
2021-11-25 11:35:00 +0100 | <dminuoso> | Absolutely nothing in all of nixos nudges you towards using it. In fact, you cant even install non-free software without explicitly enabling it. |
2021-11-25 11:35:26 +0100 | <Franciman> | you are right |
2021-11-25 11:35:36 +0100 | <Franciman> | I would have been best sayin: it does not discourage it |
2021-11-25 11:35:39 +0100 | <Franciman> | that's a fact |
2021-11-25 11:35:50 +0100 | <Franciman> | while guix actively discourages non free software |
2021-11-25 11:35:52 +0100 | whatsupdoc | (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 11:35:53 +0100 | <dminuoso> | It discourages it by fact of not allowing you install it out of the box? |
2021-11-25 11:35:58 +0100 | <dminuoso> | So its not a fact. |
2021-11-25 11:36:08 +0100 | <Franciman> | and not allowing to talk about it in its mailing list, irc |
2021-11-25 11:36:09 +0100 | <Franciman> | etc |
2021-11-25 11:36:13 +0100 | <Franciman> | so you get no support for it |
2021-11-25 11:36:26 +0100 | raehik1 | (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
2021-11-25 11:36:30 +0100 | <Franciman> | they don't give support if you have problems with non free software |
2021-11-25 11:36:38 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 11:36:45 +0100 | <dminuoso> | not allowing to talk about proprietary software is getting quite religious now. :) |
2021-11-25 11:37:32 +0100 | <dminuoso> | I think you're conflating "discouraging" with "making it as hard as possible" |
2021-11-25 11:37:34 +0100 | <Franciman> | I don't care |
2021-11-25 11:37:46 +0100 | <Franciman> | why? |
2021-11-25 11:37:50 +0100 | <dminuoso> | NixOS discourages proprietary software by fact of not allowing you to install any unless you explicitly set an option. |
2021-11-25 11:38:23 +0100 | <Franciman> | I see |
2021-11-25 11:38:44 +0100 | <Franciman> | so, Guix works harder to make you use free software |
2021-11-25 11:38:48 +0100 | <Franciman> | also |
2021-11-25 11:38:52 +0100 | <dminuoso> | That sounds reasonable |
2021-11-25 11:38:53 +0100 | <Franciman> | non free software is not propertary |
2021-11-25 11:39:02 +0100 | <dminuoso> | Or rather not reasonable, but sounds more correct |
2021-11-25 11:39:32 +0100 | <dminuoso> | Not sure what the distinction there is |
2021-11-25 11:39:59 +0100 | <dminuoso> | I always believed proprietary and non-free to be synonyms *shrugs* |
2021-11-25 11:40:00 +0100 | <Franciman> | it's better discovered on your own |
2021-11-25 11:40:13 +0100 | <Franciman> | when you sign for vscode things |
2021-11-25 11:40:46 +0100 | <dminuoso> | If VSCode wants to attach special meaning to those words fine |
2021-11-25 11:40:57 +0100 | <dminuoso> | But they're not the authority on the meaning of words |
2021-11-25 11:41:11 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-25 11:42:39 +0100 | <Franciman> | I wouldn't say firefox is propertary |
2021-11-25 11:42:46 +0100 | <Franciman> | yet it is not free software |
2021-11-25 11:43:11 +0100 | <dminuoso> | What is the distinction you are trying to make? |
2021-11-25 11:43:42 +0100 | <dminuoso> | What is non-free about firefox? |
2021-11-25 11:43:53 +0100 | <Franciman> | I don't do the distinction |
2021-11-25 11:44:15 +0100 | <dminuoso> | You just did |
2021-11-25 11:44:21 +0100 | <dminuoso> | 11:42:47 Franciman | yet it is not free software |
2021-11-25 11:44:21 +0100 | <Franciman> | it's the Free Software Foundation definition |
2021-11-25 11:44:24 +0100 | <Franciman> | *shrugs* |
2021-11-25 11:44:54 +0100 | <Hecate> | free software or open governance? |
2021-11-25 11:44:57 +0100 | <Hecate> | two very different things |
2021-11-25 11:45:36 +0100 | <dminuoso> | You're just leaving bits for me to guess |
2021-11-25 11:45:41 +0100 | <dminuoso> | So Im not sure what you are referring to |
2021-11-25 11:45:47 +0100 | <Franciman> | I thought it was a common knowledge |
2021-11-25 11:45:50 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 11:45:50 +0100 | <Franciman> | ok |
2021-11-25 11:45:52 +0100 | <Franciman> | one second |
2021-11-25 11:46:32 +0100 | <Franciman> | https://www.gnu.org/philosophy/free-sw.html.en |
2021-11-25 11:46:55 +0100 | <merijn> | How is Firefox non-free according to that definition? |
2021-11-25 11:46:59 +0100 | <Franciman> | the users have the freedom to run, copy, distribute, study, change and improve the software. |
2021-11-25 11:47:09 +0100 | <Franciman> | roughly this is the meaning |
2021-11-25 11:47:15 +0100 | <Franciman> | and firefox doesn't allow you to distribute firefox |
2021-11-25 11:47:20 +0100 | <merijn> | Franciman: It does |
2021-11-25 11:47:24 +0100 | <Franciman> | one second |
2021-11-25 11:47:26 +0100 | <Franciman> | holy hell |
2021-11-25 11:47:29 +0100 | <Franciman> | so fast |
2021-11-25 11:47:29 +0100 | <merijn> | It doesn't allow you to use the *name* firefox |
2021-11-25 11:47:35 +0100 | <Franciman> | indeed |
2021-11-25 11:47:42 +0100 | <Franciman> | that's a violation |
2021-11-25 11:47:48 +0100 | <dminuoso> | No its not. |
2021-11-25 11:47:49 +0100 | <merijn> | No |
2021-11-25 11:47:52 +0100 | <Franciman> | holy hell |
2021-11-25 11:47:54 +0100 | <Franciman> | one second |
2021-11-25 11:48:00 +0100 | <dminuoso> | Its about distributing the *software*, not the trademark. |
2021-11-25 11:48:06 +0100 | <merijn> | The *software* can be distributed just fine |
2021-11-25 11:48:25 +0100 | <merijn> | You cannot randomly take a trademark of someone else and use that. |
2021-11-25 11:48:37 +0100 | <merijn> | That is, however, not a restriction on the software |
2021-11-25 11:48:41 +0100 | <dminuoso> | While I agree that the mozilla foundation has a lot of highly questionable practices, and they're not the moral pillar of the software community by far, firefox is by all accounts free software. |
2021-11-25 11:48:44 +0100 | <Franciman> | Mozilla has found a clever way to take away freedom 2 ("The freedom to redistribute copies so you can help your neighbor") using trademark law instead of using copyright law. |
2021-11-25 11:48:55 +0100 | <merijn> | Franciman: Untruee |
2021-11-25 11:48:55 +0100 | <Franciman> | so you can't redistribute copies |
2021-11-25 11:49:05 +0100 | <merijn> | Franciman: You *can* distribute copies, just not using the name firefox |
2021-11-25 11:49:11 +0100 | <Franciman> | that's not firefox then |
2021-11-25 11:49:21 +0100 | <dminuoso> | You're being silly now. |
2021-11-25 11:49:27 +0100 | <Franciman> | honstly |
2021-11-25 11:49:29 +0100 | <Franciman> | I don't care |
2021-11-25 11:49:35 +0100 | <Franciman> | I am explaing some others point of view |
2021-11-25 11:49:48 +0100 | <Franciman> | it's free software foundation that is arguing this |
2021-11-25 11:49:50 +0100 | <Franciman> | not me |
2021-11-25 11:50:00 +0100 | <dminuoso> | Where does the FSF argue that firefox is not free software based on this? |
2021-11-25 11:50:09 +0100 | <merijn> | Mozilla's doing *exactly* what trademark law was created for: Preventing user confusion by ensuring you know *who* is behind a product |
2021-11-25 11:50:20 +0100 | <merijn> | Franciman: Citation of FSF arguing against firefox being free please |
2021-11-25 11:50:40 +0100 | <Franciman> | I quoted you |
2021-11-25 11:50:45 +0100 | <dminuoso> | Where is that quote from? |
2021-11-25 11:50:52 +0100 | <merijn> | Franciman: You didn't? |
2021-11-25 11:50:54 +0100 | <Franciman> | https://libreplanet.org/wiki/Libre_Browsers_Libre_Formats |
2021-11-25 11:50:57 +0100 | <Franciman> | it's from here |
2021-11-25 11:51:01 +0100 | <dminuoso> | That is not the FSF |
2021-11-25 11:51:09 +0100 | <dminuoso> | That's some random authors opinion |
2021-11-25 11:51:11 +0100 | <Franciman> | https://libreplanet.org/wiki/Libre_Browsers_Libre_Formats#Browsers_that_might_or_might_not_be_free |
2021-11-25 11:51:25 +0100 | <Franciman> | lol dminuoso can you stop being ridiculous and watch the bottom of the website? |
2021-11-25 11:51:27 +0100 | <dminuoso> | Or maybe |
2021-11-25 11:51:29 +0100 | <merijn> | Franciman: That's not an FSF site |
2021-11-25 11:51:30 +0100 | <dminuoso> | Mm |
2021-11-25 11:51:34 +0100 | <Franciman> | same merijn |
2021-11-25 11:51:50 +0100 | <Franciman> | if you want to attack me |
2021-11-25 11:51:52 +0100 | <Franciman> | please say so |
2021-11-25 11:52:05 +0100 | <Franciman> | you don't even seem to want to look at what I link |
2021-11-25 11:52:15 +0100 | <dminuoso> | It's certainly an FSF funded project |
2021-11-25 11:52:21 +0100 | <dminuoso> | But its not the same as being the FSF itself |
2021-11-25 11:52:26 +0100 | <Franciman> | you just keep saying it's not true |
2021-11-25 11:53:36 +0100 | <jackdk> | That page links to a statement by Brett Smith, who at time of posting was a "License Compliance Engineer" at the FSF, if his signature is to be believed: https://lists.nongnu.org/archive/html/gnu-linux-libre/2011-08/msg00014.html |
2021-11-25 11:55:06 +0100 | <dminuoso> | Thanks, jackdk |
2021-11-25 11:55:17 +0100 | <Franciman> | it's not trueee |
2021-11-25 11:55:20 +0100 | <Franciman> | it's not trueee |
2021-11-25 11:55:22 +0100 | <Franciman> | it's not trueee |
2021-11-25 11:55:26 +0100 | <Franciman> | screw that |
2021-11-25 11:55:29 +0100 | <Franciman> | bye |
2021-11-25 11:55:37 +0100 | <Franciman> | thanks jackdk |
2021-11-25 11:56:41 +0100 | <Franciman> | where is merijn now? |
2021-11-25 11:56:57 +0100 | <Franciman> | what do you think about this? |
2021-11-25 11:57:32 +0100 | <Hecate> | I hope merijn is doing something more fulfilling |
2021-11-25 11:57:32 +0100 | <dminuoso> | It's an interesting proposition, and I can see where they are coming from. |
2021-11-25 11:57:54 +0100 | chomwitt | (~chomwitt@2a02:587:dc14:4600:12c3:7bff:fe6d:d374) (Ping timeout: 260 seconds) |
2021-11-25 11:58:31 +0100 | <merijn> | merijn is back in his video conference meeting for work, which probably doesn't quote as more fulfilling than arguing on the internet :p |
2021-11-25 11:59:01 +0100 | <Hecate> | hahaha |
2021-11-25 11:59:27 +0100 | <Franciman> | this explains why you didn't open the links |
2021-11-25 11:59:34 +0100 | <Franciman> | and kept saying it's not fsf |
2021-11-25 11:59:53 +0100 | <dminuoso> | No, the issue is just that you expected us to prove your point for you |
2021-11-25 12:00:07 +0100 | <Franciman> | that's what you assumed, tbf |
2021-11-25 12:00:15 +0100 | <Franciman> | I linked a website by fsf and you said, this is not fsf |
2021-11-25 12:00:18 +0100 | <dminuoso> | If you had just started out with the link jackdk had shown, all would have been simpler. |
2021-11-25 12:00:21 +0100 | <dminuoso> | It was not FSF |
2021-11-25 12:00:25 +0100 | <Franciman> | yeah sure |
2021-11-25 12:00:25 +0100 | <merijn> | I somehwat agree with Brett that re-distributing unmodified Firefox using the name could be fine, but I disagree with him that's sufficient to violate the free rights |
2021-11-25 12:00:28 +0100 | <Franciman> | *shrugs* |
2021-11-25 12:00:29 +0100 | <dminuoso> | It was a website of a project *funded* by FSF |
2021-11-25 12:00:58 +0100 | <merijn> | I opened libreplanet, read the firefox part, but I can't be arsed to go over the entire page and see if they are or aren't funded by the FSF |
2021-11-25 12:01:19 +0100 | <Franciman> | but you can be arsed to say it's not fsf |
2021-11-25 12:01:22 +0100 | <dminuoso> | And even if they are funded, their opinion might not necessarily match the FSFs opinion |
2021-11-25 12:01:27 +0100 | <dminuoso> | It's not FSF. |
2021-11-25 12:01:30 +0100 | <Franciman> | it is |
2021-11-25 12:01:32 +0100 | <dminuoso> | No its not. |
2021-11-25 12:01:40 +0100 | <Franciman> | *shrugs* *shrugs* |
2021-11-25 12:01:47 +0100 | <Franciman> | ok |
2021-11-25 12:02:07 +0100 | <dminuoso> | If the FSF funds a project, that project is not automagically part of the FSF. |
2021-11-25 12:02:16 +0100 | <dminuoso> | either way |
2021-11-25 12:02:30 +0100 | <dminuoso> | Not interested in continuing here |
2021-11-25 12:02:45 +0100 | <merijn> | Franciman: Yes, because saying that takes 5 seconds. Anyway, this discussion seems mostly pointless. Brett says "unmodified firefox should be allowed to be distributed under the Firefox name, but requiring a name change on modification is fine" |
2021-11-25 12:03:01 +0100 | <Franciman> | it's not |
2021-11-25 12:03:14 +0100 | <Franciman> | I mean |
2021-11-25 12:03:17 +0100 | <Franciman> | it's not the FSF |
2021-11-25 12:03:19 +0100 | <Franciman> | its libreplanet |
2021-11-25 12:03:20 +0100 | shriekingnoise | (~shrieking@186.137.144.80) (Quit: Quit) |
2021-11-25 12:03:20 +0100 | <merijn> | Franciman: Well, Brett's email linked by jackdk literally says it is |
2021-11-25 12:03:24 +0100 | <Franciman> | one second |
2021-11-25 12:03:32 +0100 | <Franciman> | I was saying something different |
2021-11-25 12:03:42 +0100 | <Franciman> | I was saying it is not the FSF they are just funded by them |
2021-11-25 12:03:45 +0100 | <merijn> | So restricting name usage on modified versions is fine with the FSF |
2021-11-25 12:03:45 +0100 | <Franciman> | i.e. dminuoso is right |
2021-11-25 12:04:06 +0100 | <jackdk> | please stop beeping me about this |
2021-11-25 12:04:22 +0100 | <merijn> | My view: Restricting name usage on unmodified versions is a reasonable compromise, because it's hard to track down and check whether copies are modified or not |
2021-11-25 12:04:34 +0100 | <Franciman> | sorry jackd.k |
2021-11-25 12:04:41 +0100 | <jackdk> | thanks |
2021-11-25 12:04:50 +0100 | <Franciman> | also time for offtopic |
2021-11-25 12:05:00 +0100 | <Franciman> | or for merijn their conference |
2021-11-25 12:06:05 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-25 12:07:26 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Quit: ZNC 1.8.2 - https://znc.in) |
2021-11-25 12:07:53 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 12:10:41 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 12:15:11 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Ping timeout: 250 seconds) |
2021-11-25 12:19:53 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-25 12:28:11 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 250 seconds) |
2021-11-25 12:31:19 +0100 | __monty__ | (~toonn@user/toonn) |
2021-11-25 12:34:31 +0100 | neurocyte0132889 | (~neurocyte@94.46.68.97) |
2021-11-25 12:34:31 +0100 | neurocyte0132889 | (~neurocyte@94.46.68.97) (Changing host) |
2021-11-25 12:34:31 +0100 | neurocyte0132889 | (~neurocyte@user/neurocyte) |
2021-11-25 12:36:37 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-11-25 12:41:58 +0100 | fr33domlover | (~fr33@2.55.42.98) |
2021-11-25 12:42:16 +0100 | royo | (~royo@user/royo) () |
2021-11-25 12:43:28 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
2021-11-25 12:43:29 +0100 | Cajun | (~Cajun@user/cajun) (Ping timeout: 256 seconds) |
2021-11-25 12:43:36 +0100 | Vajb | (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
2021-11-25 12:45:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-11-25 12:45:31 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-11-25 12:45:31 +0100 | lavaman | (~lavaman@98.38.249.169) (Remote host closed the connection) |
2021-11-25 12:46:39 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 12:46:49 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) |
2021-11-25 12:52:02 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-25 12:52:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 12:52:42 +0100 | <gentauro> | are there only 3 employees at `well-typed`? https://www.dnb.com/business-directory/company-profiles.well-typed_llp.d4bf168abe3b4181d776efa2ad7… |
2021-11-25 12:53:27 +0100 | <Hecate> | gentauro: the rest are consultants |
2021-11-25 12:53:38 +0100 | <gentauro> | Hecate: aha |
2021-11-25 12:53:43 +0100 | <Hecate> | gentauro: it's not a joke :') |
2021-11-25 12:54:01 +0100 | <gentauro> | Hecate: so like `external freelancers` right? |
2021-11-25 12:54:07 +0100 | <Hecate> | yeah |
2021-11-25 12:54:10 +0100 | <gentauro> | just `body-shopped` for customers |
2021-11-25 12:54:11 +0100 | <gentauro> | got it |
2021-11-25 12:54:12 +0100 | <gentauro> | :) |
2021-11-25 12:54:38 +0100 | <Hecate> | not necessarily body-shopped for customers, the consultants are long-term hires |
2021-11-25 12:55:18 +0100 | <gentauro> | Hecate: but they are `sold` to `some company` right? Otherwise, how can WT pay the `freealnce` fee? |
2021-11-25 12:55:44 +0100 | <gentauro> | I understood from Simon Marlow that FB + MS Research paid for two to work on GHC |
2021-11-25 12:55:47 +0100 | <gentauro> | iirc |
2021-11-25 12:56:11 +0100 | phma | (phma@2001:5b0:212a:8778:d128:5f0e:1eb9:3baa) (Read error: Connection reset by peer) |
2021-11-25 12:57:05 +0100 | phma | (phma@2001:5b0:2144:5518:1989:d92a:fa65:167d) |
2021-11-25 12:57:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 260 seconds) |
2021-11-25 12:58:00 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 12:59:39 +0100 | curiousgay | (~curiousga@77-120-141-90.kha.volia.net) |
2021-11-25 12:59:51 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:841c:a322:61f5:4ad9) |
2021-11-25 13:03:16 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-11-25 13:03:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:11:30 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
2021-11-25 13:12:44 +0100 | enoq | (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) () |
2021-11-25 13:14:23 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-11-25 13:14:36 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) |
2021-11-25 13:14:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:16:33 +0100 | dsrt^ | (~dsrt@68.101.63.101) |
2021-11-25 13:17:26 +0100 | notzmv | (~zmv@user/notzmv) |
2021-11-25 13:17:26 +0100 | max22- | (~maxime@2a01cb0883359800d4d6b02a2c3bac5a.ipv6.abo.wanadoo.fr) (Ping timeout: 245 seconds) |
2021-11-25 13:20:47 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 13:24:53 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-11-25 13:25:12 +0100 | jmorris | (uid433911@id-433911.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 13:25:51 +0100 | chomwitt | (~chomwitt@94.69.34.153) |
2021-11-25 13:26:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:26:45 +0100 | sunarch | (uid526836@user/sunarch) |
2021-11-25 13:31:42 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 13:32:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:37:13 +0100 | michalz | (~michalz@185.246.204.58) (Ping timeout: 268 seconds) |
2021-11-25 13:37:55 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 13:38:26 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:43:35 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 13:44:24 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:45:21 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 245 seconds) |
2021-11-25 13:45:40 +0100 | <jackdk> | arahael: https://github.com/brendanhay/amazonka/pull/713 |
2021-11-25 13:46:59 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 13:48:17 +0100 | <arahael> | woohoo! thanks jackdk! i'll check it out later in the week :) (midnight here now) |
2021-11-25 13:49:49 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 13:50:12 +0100 | <dminuoso> | Oh whats new in aeson 2.0? |
2021-11-25 13:50:19 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 13:50:25 +0100 | <dminuoso> | Anything exciting? |
2021-11-25 14:06:33 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 250 seconds) |
2021-11-25 14:07:38 +0100 | bliminse | (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) (Quit: leaving) |
2021-11-25 14:10:30 +0100 | Nrmncr | Neuromancer |
2021-11-25 14:11:57 +0100 | bliminse | (~bliminse@host86-188-36-178.range86-188.btcentralplus.com) |
2021-11-25 14:12:41 +0100 | mikoto-chan | (~mikoto-ch@esm-84-240-99-143.netplaza.fi) |
2021-11-25 14:12:50 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-11-25 14:13:25 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 14:24:48 +0100 | <arahael> | dminuoso: works with ghc 9.2.1 |
2021-11-25 14:25:00 +0100 | arahael | cant sleep |
2021-11-25 14:25:47 +0100 | mmhat | (~mmh@55d42d28.access.ecotel.net) (Quit: WeeChat 3.3) |
2021-11-25 14:36:32 +0100 | Lycurgus | (~juan@98.4.112.204) |
2021-11-25 14:37:59 +0100 | slack1256 | (~slack1256@181.42.50.148) |
2021-11-25 14:38:16 +0100 | jumper149 | (~jumper149@static.6.71.203.116.clients.your-server.de) |
2021-11-25 14:38:29 +0100 | <jumper149> | Should I ever use `ReadP` or always stick to `ReadPrec`? I want to write a custom `Read` instance. |
2021-11-25 14:41:11 +0100 | <merijn> | jumper149: honestly, neither if you wanna remain sane :p |
2021-11-25 14:41:27 +0100 | <merijn> | Would also highly recommend not doing custom Read instances, tbh |
2021-11-25 14:45:48 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) (Remote host closed the connection) |
2021-11-25 14:47:18 +0100 | slowButPresent | (~slowButPr@user/slowbutpresent) |
2021-11-25 14:50:24 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) |
2021-11-25 14:52:26 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 268 seconds) |
2021-11-25 14:54:22 +0100 | gentauro | (~gentauro@user/gentauro) (Ping timeout: 260 seconds) |
2021-11-25 14:56:24 +0100 | hiruji | (~hiruji@user/hiruji) |
2021-11-25 14:56:32 +0100 | gentauro | (~gentauro@185.107.12.141) |
2021-11-25 14:56:32 +0100 | gentauro | (~gentauro@185.107.12.141) (Changing host) |
2021-11-25 14:56:32 +0100 | gentauro | (~gentauro@user/gentauro) |
2021-11-25 14:58:41 +0100 | _bo | (~bo@217.18.216.247) |
2021-11-25 14:59:56 +0100 | michalz | (~michalz@185.246.204.33) |
2021-11-25 15:01:42 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-25 15:02:18 +0100 | bo_ | (~bo@217.18.216.247) |
2021-11-25 15:02:27 +0100 | _bo | (~bo@217.18.216.247) (Client Quit) |
2021-11-25 15:02:30 +0100 | bo_ | (~bo@217.18.216.247) (Client Quit) |
2021-11-25 15:02:42 +0100 | _bo | (~bo@217.18.216.247) |
2021-11-25 15:04:25 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 15:04:57 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 15:06:20 +0100 | Lycurgus | thinks about what kind of of epistemic ops would attach to an attestation under "tbh" |
2021-11-25 15:07:18 +0100 | Lycurgus | a defeasor of some sort prolly |
2021-11-25 15:08:18 +0100 | max22- | (~maxime@2a01cb088335980085c825298679dd8e.ipv6.abo.wanadoo.fr) |
2021-11-25 15:10:15 +0100 | <Unhammer> | wow, perfecthash memory use is quite amazing |
2021-11-25 15:10:42 +0100 | reumeth | (~reumeth@user/reumeth) |
2021-11-25 15:10:52 +0100 | <Unhammer> | Weigh says "Live 8M" where hashmap.strict is 97M (1 million bytestrings) |
2021-11-25 15:12:14 +0100 | <[exa]> | how long are the bytestrings? smashing 1M bytestrings into 8M memory sounds fishy. |
2021-11-25 15:13:58 +0100 | <[exa]> | (also does the memory allocated by CMPH count into this?) |
2021-11-25 15:14:18 +0100 | <Unhammer> | https://github.com/unhammer/dictionaries/blob/perfecthash/Space.hs#L75-L76 |
2021-11-25 15:14:23 +0100 | <Unhammer> | Hm, maybe not? |
2021-11-25 15:15:17 +0100 | <Unhammer> | I should make an executable and look at RES |
2021-11-25 15:18:32 +0100 | Guest17 | (~Guest17@68.171.185.81.rev.sfr.net) |
2021-11-25 15:21:26 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) |
2021-11-25 15:24:00 +0100 | ec | (~ec@gateway/tor-sasl/ec) (Ping timeout: 276 seconds) |
2021-11-25 15:24:24 +0100 | rewq | (~pc@102.184.117.46) |
2021-11-25 15:25:48 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.3) |
2021-11-25 15:26:15 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) (Ping timeout: 260 seconds) |
2021-11-25 15:26:28 +0100 | rewq | (~pc@102.184.117.46) () |
2021-11-25 15:31:28 +0100 | <Unhammer> | Heh, I end up with exactly the same 304M RES if I read /usr/share/dict/nynorsk into either PerfectHash or HashMap.Strict, performGC and interact |
2021-11-25 15:31:56 +0100 | <Unhammer> | no wait now perfecthash sunk to 225M :O |
2021-11-25 15:33:00 +0100 | Guest17 | (~Guest17@68.171.185.81.rev.sfr.net) (Quit: Client closed) |
2021-11-25 15:34:44 +0100 | <Unhammer> | … 95M |
2021-11-25 15:35:01 +0100 | <Unhammer> | is there something a bit more reliable than System.Mem.performGC? |
2021-11-25 15:38:13 +0100 | <[exa]> | no |
2021-11-25 15:38:43 +0100 | <[exa]> | like, you can have a look at the implementation and relatively easily compute how much actual memory gets occupied, or spend half a century trying to invent a good method to measure RAM usage |
2021-11-25 15:40:41 +0100 | <Unhammer> | hm, tough choices |
2021-11-25 15:40:58 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-b210-1839-c8ac-8b46.fixed6.kpn.net) |
2021-11-25 15:42:07 +0100 | <[exa]> | honestly If you're after data efficiency and matching power, just make a perfect trie and store it in an array |
2021-11-25 15:42:38 +0100 | <[exa]> | I wouldn't say there's much to be gained by really having a perfect hash here |
2021-11-25 15:44:09 +0100 | <Unhammer> | I would say 1/3 RES memory usage by simply switching from hashmap.strict to perfecthash is quite a bit to be gained |
2021-11-25 15:46:34 +0100 | Lycurgus | (~juan@98.4.112.204) (Quit: Exeunt) |
2021-11-25 15:46:39 +0100 | jkaye | (~jkaye@2601:281:8300:7530:1dd5:12e8:f7a8:958d) |
2021-11-25 15:47:15 +0100 | jgeerds | (~jgeerds@55d45b75.access.ecotel.net) (Ping timeout: 260 seconds) |
2021-11-25 15:47:23 +0100 | <[exa]> | yeah if that helps your usecase |
2021-11-25 15:47:57 +0100 | <[exa]> | I'm generally trying to avoid this kind of optimization because there's still 1000s of other things that may just explode the memory usage |
2021-11-25 15:48:09 +0100 | <[exa]> | unless you know, you're sure that you can fit into 1000x less memory :D |
2021-11-25 15:52:04 +0100 | <Unhammer> | I have a server that on startup reads a bunch of words into memory. It never adds/removes/changes anything after startup. It needs to be able to look them up fast and preferably not take too much memory. The word list is the main memory user, which I know because if I read less words I use less memory =P |
2021-11-25 15:53:04 +0100 | pavonia | (~user@user/siracusa) (Quit: Bye!) |
2021-11-25 15:53:08 +0100 | <Unhammer> | so for me, less memory usage (while having good lookup speed) is the one optimization that would be worthwhile |
2021-11-25 15:56:53 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) |
2021-11-25 15:59:39 +0100 | <Unhammer> | https://github.com/unhammer/dictionaries/commit/b2f0e866d3f8d97d92df6215c8da79e9c5f89424 |
2021-11-25 16:00:10 +0100 | <Unhammer> | https://hackage.haskell.org/packages/search?terms=perfect%20trie :( |
2021-11-25 16:00:32 +0100 | <Unhammer> | though maybe the 3.0 branch of bytestring-trie has less memory usage, haven't found time to try that yet |
2021-11-25 16:00:41 +0100 | <Unhammer> | apparently it's a complete rewrite of internals |
2021-11-25 16:01:27 +0100 | <merijn> | Unhammer: If your lookup thing-y is of considerable size you might also wanna look into compact regions to get a nice GC speed up |
2021-11-25 16:02:02 +0100 | <merijn> | (this doesn't help reduce the overall memory usage, but still...) |
2021-11-25 16:03:33 +0100 | <merijn> | Unhammer: Also, are you aware of "+RTS -sstderr"? |
2021-11-25 16:06:16 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 16:11:32 +0100 | dsrt^ | (~dsrt@68.101.63.101) (Remote host closed the connection) |
2021-11-25 16:11:50 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-11-25 16:16:40 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 16:18:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 16:18:26 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 16:18:26 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 16:18:31 +0100 | lbseale | (~ep1ctetus@user/ep1ctetus) (Ping timeout: 260 seconds) |
2021-11-25 16:20:46 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e1739bc3d1dda3deba6.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
2021-11-25 16:21:08 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-25 16:21:48 +0100 | jjw | (~user@2600:1700:53b0:3d1f:8c2d:4169:3092:35c1) |
2021-11-25 16:24:22 +0100 | jjw | (~user@2600:1700:53b0:3d1f:8c2d:4169:3092:35c1) (Quit: ERC (IRC client for Emacs 28.0.50)) |
2021-11-25 16:25:06 +0100 | jippiedoe | (~david@2a02-a44c-e14e-1-b210-1839-c8ac-8b46.fixed6.kpn.net) (Quit: Leaving) |
2021-11-25 16:26:40 +0100 | atwm | (~atwm@19-193-28-81.ftth.cust.kwaoo.net) |
2021-11-25 16:28:07 +0100 | srk | (~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in) |
2021-11-25 16:28:26 +0100 | srk | (~sorki@user/srk) |
2021-11-25 16:28:27 +0100 | atwm | (~atwm@19-193-28-81.ftth.cust.kwaoo.net) (Client Quit) |
2021-11-25 16:28:38 +0100 | <lortabac> | speaking of which... is it normal that the time spent in the mutator increases when using compact regions? (the overall time goes down thanks to the reduced GC time) |
2021-11-25 16:28:42 +0100 | atwm | (~atwm@19-193-28-81.ftth.cust.kwaoo.net) |
2021-11-25 16:29:05 +0100 | ec | (~ec@gateway/tor-sasl/ec) |
2021-11-25 16:29:12 +0100 | <lortabac> | or am I hitting some pathological case? |
2021-11-25 16:29:18 +0100 | <merijn> | lortabac: I mean, if you spend less time on GC then obviously the fraction spent in the mutator seems obvious? |
2021-11-25 16:29:24 +0100 | atwm | (~atwm@19-193-28-81.ftth.cust.kwaoo.net) (Client Quit) |
2021-11-25 16:29:26 +0100 | <merijn> | +increases |
2021-11-25 16:29:28 +0100 | <lortabac> | merijn: :) |
2021-11-25 16:29:40 +0100 | atwm | (~atwm@19-193-28-81.ftth.cust.kwaoo.net) |
2021-11-25 16:29:41 +0100 | <lortabac> | merijn: the absolute time increases |
2021-11-25 16:29:59 +0100 | <merijn> | lortabac: "It Depends" |
2021-11-25 16:30:06 +0100 | <merijn> | Creating the compact region takes mutator time |
2021-11-25 16:30:33 +0100 | <merijn> | So if your measurement is short enough, that might increase the overall time |
2021-11-25 16:33:00 +0100 | <merijn> | So I can certainly think of some cases where that might happen. But it depends on tons of factors like the size of the region you're creating, how long the rest of the workload is, etc. |
2021-11-25 16:34:14 +0100 | cheater | (~Username@user/cheater) (Ping timeout: 260 seconds) |
2021-11-25 16:37:11 +0100 | <lortabac> | merijn: the increase in mutator time seems to be proportional to the total time, so it's probably not the creation alone |
2021-11-25 16:37:49 +0100 | <tomsmeding> | is the size of the compact region also proportional to that? |
2021-11-25 16:37:54 +0100 | <lortabac> | tomsmeding: no |
2021-11-25 16:37:58 +0100 | <lortabac> | the size is fixed |
2021-11-25 16:38:00 +0100 | <tomsmeding> | if so, creation might be linear in the size of the compact region |
2021-11-25 16:38:00 +0100 | <tomsmeding> | ah |
2021-11-25 16:40:56 +0100 | cheater | (~Username@user/cheater) |
2021-11-25 16:44:32 +0100 | Feuermagier_ | (~Feuermagi@213.178.26.41) (Quit: Leaving) |
2021-11-25 16:44:43 +0100 | Feuermagier | (~Feuermagi@user/feuermagier) |
2021-11-25 16:46:37 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 16:52:33 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-25 16:52:41 +0100 | jkaye | (~jkaye@2601:281:8300:7530:1dd5:12e8:f7a8:958d) (Ping timeout: 268 seconds) |
2021-11-25 16:54:56 +0100 | <merijn> | lortabac: I'd be interested in seeing the GC summary and/or profiling data :) |
2021-11-25 16:56:34 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-11-25 16:57:38 +0100 | Pickchea | (~private@user/pickchea) (Ping timeout: 268 seconds) |
2021-11-25 16:58:21 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 16:59:41 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 16:59:46 +0100 | <lortabac> | merijn: it's for an open-source project, if you are really curious I can push the two branches (with and without compact regions) to Github |
2021-11-25 17:00:02 +0100 | kupi | (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity) |
2021-11-25 17:00:37 +0100 | <lortabac> | however I don't think I'll have time today, maybe tomorrow |
2021-11-25 17:02:03 +0100 | EvanR_ | EvanR |
2021-11-25 17:02:15 +0100 | EvanR | (~evan@2600:1700:ba69:10:5c7c:46a9:5e48:ea) (Changing host) |
2021-11-25 17:02:15 +0100 | EvanR | (~evan@user/evanr) |
2021-11-25 17:02:41 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-11-25 17:03:05 +0100 | burnsidesLlama | (~burnsides@dhcp168-032.wadham.ox.ac.uk) |
2021-11-25 17:03:17 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 17:06:04 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Client Quit) |
2021-11-25 17:06:08 +0100 | <merijn> | lortabac: tbh, I'm not curious enough to generate them myself :p But if you make them, feel free to ping me and I'll have a look :) |
2021-11-25 17:06:43 +0100 | <lortabac> | merijn: is +RTS -t enough or do you want something else? |
2021-11-25 17:06:48 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) |
2021-11-25 17:07:04 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-25 17:07:13 +0100 | <merijn> | lortabac: +RTS -sstderr reports GC statistics |
2021-11-25 17:07:20 +0100 | <lortabac> | ok |
2021-11-25 17:07:23 +0100 | <merijn> | Not sure what -t does :p |
2021-11-25 17:07:29 +0100 | TMA | (tma@twin.jikos.cz) (Ping timeout: 268 seconds) |
2021-11-25 17:08:10 +0100 | <merijn> | Ah |
2021-11-25 17:08:19 +0100 | <merijn> | -s is just the human readable version of -t :) |
2021-11-25 17:08:39 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Ping timeout: 276 seconds) |
2021-11-25 17:09:18 +0100 | <merijn> | lortabac: Essentially this is the difference: https://paste.tomsmeding.com/w5NxWtcc |
2021-11-25 17:10:31 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 17:11:09 +0100 | <EvanR> | compact regions are useful as like, a ROM sort of thing, right xD |
2021-11-25 17:11:23 +0100 | <EvanR> | once forged you carry it around for a while and don't change it |
2021-11-25 17:11:47 +0100 | <lortabac> | merijn: https://pastebin.com/Lp1gG0Cj |
2021-11-25 17:12:09 +0100 | <EvanR> | so discussion about mutator sounds fnuny xD |
2021-11-25 17:14:18 +0100 | <lortabac> | maybe there is some implementation detail that makes the mutator slightly slower |
2021-11-25 17:17:01 +0100 | <Unhammer> | merijn, yeah i've been meaning to try compact regions, it looks like a great fit for my use case (lots of reading on startup, then just lookup and minor processing) |
2021-11-25 17:19:37 +0100 | <Unhammer> | EvanR, yeah |
2021-11-25 17:19:46 +0100 | cfricke | (~cfricke@user/cfricke) (Quit: WeeChat 3.3) |
2021-11-25 17:20:20 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 17:24:38 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 260 seconds) |
2021-11-25 17:30:35 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:bdf3:903c:8a82:6328) (Quit: WeeChat 2.8) |
2021-11-25 17:31:17 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Remote host closed the connection) |
2021-11-25 17:32:39 +0100 | <dsal> | I'm feeling extra dumb today. Why can't something like this work: `f :: (a -> [a]) -> Int ; f g = length (g 'x')` |
2021-11-25 17:33:35 +0100 | <merijn> | dsal: 'x' is not a list? |
2021-11-25 17:33:43 +0100 | <dsal> | (I know *how* to make it work, I just don't quite understand why it doesn't) |
2021-11-25 17:33:58 +0100 | <dsal> | g is the function (a -> [a]) |
2021-11-25 17:34:03 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 17:34:08 +0100 | <merijn> | oh, right |
2021-11-25 17:34:09 +0100 | <dsal> | It doesn't like that 'x' isn't `a` |
2021-11-25 17:34:17 +0100 | <merijn> | dsal: The 2nd bit is that the *caller* decides 'a' |
2021-11-25 17:34:31 +0100 | <merijn> | dsal: I can call 'f' with (Int -> [Int]) |
2021-11-25 17:34:32 +0100 | <dsal> | The caller of `f`? |
2021-11-25 17:34:38 +0100 | <merijn> | Which obviously doesn't work with your code |
2021-11-25 17:34:42 +0100 | <merijn> | dsal: Yes |
2021-11-25 17:34:48 +0100 | <dsal> | OK. That makes sense. Thanks. |
2021-11-25 17:35:05 +0100 | <merijn> | dsal: The Rank2 version explicitly says the caller of 'f' *must* give a polymorphic function |
2021-11-25 17:35:30 +0100 | <merijn> | dsal: So passing 'Int -> [Int]' becomes an error |
2021-11-25 17:35:33 +0100 | <dsal> | Right, that makes sense. I was just getting a bit confused as to how `a` was resolved in the default case. |
2021-11-25 17:36:01 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 17:36:16 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-25 17:37:03 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) |
2021-11-25 17:38:10 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-11-25 17:38:20 +0100 | <dsal> | Thanks for the clarity. :) |
2021-11-25 17:38:53 +0100 | <EvanR> | does a compact region improve performance of a big IntMap or Map you think? |
2021-11-25 17:38:56 +0100 | <dsal> | I'm slightly confused as to how something like `f :: (a -> [a]) -> Int` could be useful. I guess it's useful if there's another `a` |
2021-11-25 17:38:57 +0100 | <EvanR> | due to being... compact |
2021-11-25 17:39:19 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) |
2021-11-25 17:39:31 +0100 | <EvanR> | I heard about this L1 L2 cache thing |
2021-11-25 17:40:21 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-25 17:41:12 +0100 | <EvanR> | does improved locality make a measurable difference in lookups |
2021-11-25 17:42:15 +0100 | <dsal> | This is pretty neat because I did a thing that was obvious to me how to do, but then someone else wanted me to explain it and I couldn't. heh. |
2021-11-25 17:42:32 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
2021-11-25 17:44:26 +0100 | <EvanR> | forall . a -> [a] doesn't have too many possibilities |
2021-11-25 17:44:29 +0100 | gdd | (~gdd@129.199.146.230) (Ping timeout: 268 seconds) |
2021-11-25 17:45:02 +0100 | <EvanR> | and the Int can't really make use of it, whatever it is |
2021-11-25 17:46:00 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) |
2021-11-25 17:46:23 +0100 | gdd | (~gdd@129.199.146.230) |
2021-11-25 17:47:01 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
2021-11-25 17:47:13 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:841c:a322:61f5:4ad9) (Ping timeout: 256 seconds) |
2021-11-25 17:47:37 +0100 | cosimone | (~user@2001:b07:ae5:db26:a7aa:8027:6b4e:2fb3) (Remote host closed the connection) |
2021-11-25 17:47:44 +0100 | tzh | (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
2021-11-25 17:48:02 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-11-25 17:49:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-25 17:49:59 +0100 | <dsal> | Yeah, this is the remaining bit of scoping that's not intuitive to me. That just looks like `(:[])` to me. |
2021-11-25 17:50:32 +0100 | <EvanR> | you could also do like \x -> [x,x] |
2021-11-25 17:50:32 +0100 | mbuf | (~Shakthi@122.174.170.222) (Quit: Leaving) |
2021-11-25 17:50:42 +0100 | <EvanR> | don't forget \x -> [] |
2021-11-25 17:52:19 +0100 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 260 seconds) |
2021-11-25 17:52:21 +0100 | <EvanR> | I reread what you did. f :: (forall a . a -> [a]) -> Int does work xD |
2021-11-25 17:52:52 +0100 | <EvanR> | forall a . (a -> [a]) -> Int doesn't |
2021-11-25 17:56:45 +0100 | <EvanR> | inCompact :: Compact b -> a -> IO Bool -- wait a minute... |
2021-11-25 17:57:04 +0100 | <EvanR> | check if second argument "is inside the" compact region |
2021-11-25 17:57:20 +0100 | <EvanR> | referential transparency sense tingling |
2021-11-25 17:58:03 +0100 | <EvanR> | so if you pass two different second arguments with the "same value" it may give two answers? I'm not even sure how IO can excuse this |
2021-11-25 17:58:10 +0100 | <monochrom> | The IO saves you from referential obligations. |
2021-11-25 17:58:15 +0100 | <hpc> | IO excuses everything |
2021-11-25 17:58:25 +0100 | <hpc> | except for unsafeInterleaveIO :D |
2021-11-25 17:58:33 +0100 | <EvanR> | should we believe that for any type a, we have pointer to heap objects to play with |
2021-11-25 17:58:34 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) |
2021-11-25 17:58:53 +0100 | <monochrom> | https://ro-che.info/ccc/9 |
2021-11-25 17:59:26 +0100 | <monochrom> | Yes, a::* and * is boxed. |
2021-11-25 18:00:01 +0100 | <monochrom> | Or rather, * requires/guarantees boxing. |
2021-11-25 18:00:47 +0100 | <EvanR> | that's... I was just thinking how if you have an unknown a you don't have anything. Not even "ah ha, ObjectId" |
2021-11-25 18:00:54 +0100 | <EvanR> | from OOP languages |
2021-11-25 18:01:23 +0100 | <EvanR> | and how in haskell you can claim that there are no excepts to the rules xD |
2021-11-25 18:01:38 +0100 | <monochrom> | OK, did you know that boxed Int and unboxed Int# have different kinds? |
2021-11-25 18:01:44 +0100 | <EvanR> | yeah |
2021-11-25 18:02:02 +0100 | <EvanR> | and e.g. StableNames only works on boxed? |
2021-11-25 18:02:05 +0100 | <monochrom> | Did you know that so-called "a -> b" is implicitly a::* and b::* ? |
2021-11-25 18:02:16 +0100 | <monochrom> | Did you know that * is the boxed kind? |
2021-11-25 18:02:28 +0100 | <EvanR> | a -> b really being about *, I will have to digest |
2021-11-25 18:02:42 +0100 | <monochrom> | "you don't have anything" is false. I have something, I know that there is a boxing constraint. |
2021-11-25 18:02:59 +0100 | <hpc> | boxing is what gets you undefined as well, fwiw |
2021-11-25 18:03:00 +0100 | <EvanR> | is that it? xD |
2021-11-25 18:03:07 +0100 | <monochrom> | Yes. |
2021-11-25 18:03:29 +0100 | <EvanR> | If I find something else, more hair on this black hole, I will be back |
2021-11-25 18:03:47 +0100 | <monochrom> | Like you said yesterday. Physicis is full of stories. So is Haskell, or at least GHC's Haskell. |
2021-11-25 18:03:48 +0100 | <dsal> | EvanR: Yeah, I understand how to make it work. I'm just a bit confused about the outer scope case. It feels like it should be resolvable because my brain still needs some rewiring to understand that. I should perhaps make some more obviously incorrect proposals to the compiler. |
2021-11-25 18:04:19 +0100 | gioyik | (~gioyik@gateway/tor-sasl/gioyik) (Quit: WeeChat 3.1) |
2021-11-25 18:04:32 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 18:05:21 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 245 seconds) |
2021-11-25 18:05:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 18:05:31 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 18:05:31 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 18:05:42 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) |
2021-11-25 18:06:16 +0100 | reumeth | (~reumeth@user/reumeth) |
2021-11-25 18:09:47 +0100 | <EvanR> | dang only 29 total closed cartesian comics |
2021-11-25 18:10:23 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 268 seconds) |
2021-11-25 18:12:21 +0100 | kuribas | (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection) |
2021-11-25 18:13:51 +0100 | pfurla | (~pfurla@201.17.118.230) |
2021-11-25 18:14:56 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 18:15:33 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-11-25 18:15:55 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 250 seconds) |
2021-11-25 18:19:32 +0100 | fr33domlover | (~fr33@2.55.42.98) (Ping timeout: 240 seconds) |
2021-11-25 18:20:08 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 256 seconds) |
2021-11-25 18:23:50 +0100 | justsomeguy | (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.3) |
2021-11-25 18:31:16 +0100 | cheater | (~Username@user/cheater) (Quit: (BitchX) The birds kept calling his name, thought Caw) |
2021-11-25 18:31:36 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) (Ping timeout: 245 seconds) |
2021-11-25 18:33:51 +0100 | pfurla | (~pfurla@201.17.118.230) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 18:34:13 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 18:35:32 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:a418:17da:6b4f:5fc3) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
2021-11-25 18:36:18 +0100 | <[itchyjunk]> | Hmm |
2021-11-25 18:37:26 +0100 | rkrishnan | (~user@122.172.141.170) (Ping timeout: 260 seconds) |
2021-11-25 18:37:40 +0100 | <[itchyjunk]> | How come i can 2:[] but not []:2 ? |
2021-11-25 18:38:08 +0100 | <EvanR> | well what is the type of : |
2021-11-25 18:38:11 +0100 | <yushyin> | :t (:) |
2021-11-25 18:38:12 +0100 | <lambdabot> | a -> [a] -> [a] |
2021-11-25 18:38:38 +0100 | <[itchyjunk]> | ah |
2021-11-25 18:39:49 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Remote host closed the connection) |
2021-11-25 18:41:52 +0100 | <EvanR> | :k 2 |
2021-11-25 18:41:53 +0100 | <lambdabot> | GHC.Types.Nat |
2021-11-25 18:42:28 +0100 | <[itchyjunk]> | https://bpa.st/IQWQ |
2021-11-25 18:42:31 +0100 | <[itchyjunk]> | behold! |
2021-11-25 18:42:45 +0100 | <[itchyjunk]> | though it seems pointless now |
2021-11-25 18:43:28 +0100 | <EvanR> | it takes a lot of effort to put something at the end of a list |
2021-11-25 18:43:38 +0100 | <EvanR> | not very lazy |
2021-11-25 18:43:58 +0100 | <dsal> | Nah, pointless is |
2021-11-25 18:43:58 +0100 | <dsal> | :t flip (:) [] |
2021-11-25 18:43:59 +0100 | <lambdabot> | a -> [a] |
2021-11-25 18:44:36 +0100 | <dsal> | Need to flip harder. |
2021-11-25 18:44:44 +0100 | <[itchyjunk]> | Hey, my thing works. Any feed back? |
2021-11-25 18:44:44 +0100 | <[itchyjunk]> | https://bpa.st/GP6Q |
2021-11-25 18:45:03 +0100 | <[itchyjunk]> | I wasn't sure i needed to handle [] and [x] or not |
2021-11-25 18:45:16 +0100 | <[itchyjunk]> | but that was my mental process so i put it in anyways |
2021-11-25 18:45:27 +0100 | <dsal> | > pure 3 :: [Int] |
2021-11-25 18:45:28 +0100 | <lambdabot> | [3] |
2021-11-25 18:45:33 +0100 | <EvanR> | if you remove the [] case, then it crashes on [] |
2021-11-25 18:45:37 +0100 | <EvanR> | so yeah |
2021-11-25 18:46:25 +0100 | <[itchyjunk]> | ahh the [x] case was redundent |
2021-11-25 18:46:31 +0100 | <dsal> | @src reverse |
2021-11-25 18:46:31 +0100 | <lambdabot> | reverse = foldl (flip (:)) [] |
2021-11-25 18:46:39 +0100 | <[itchyjunk]> | ahh the [] case handles it |
2021-11-25 18:46:42 +0100 | <dsal> | Well there's a "why don't you just" |
2021-11-25 18:47:15 +0100 | <[itchyjunk]> | Right, i'll have to relearn all the inbuilt ways to do this at some point. but these are the simplest exercise i could think of |
2021-11-25 18:47:24 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 18:47:43 +0100 | <EvanR> | try to understand how intensive your algorithm is by doing an example on like, a list of length 5 |
2021-11-25 18:47:51 +0100 | <dsal> | Sure. The one thing that you might note is that this function doesn't care about `Int` at all. |
2021-11-25 18:48:16 +0100 | <[itchyjunk]> | oh yeah it should take any type of list |
2021-11-25 18:48:17 +0100 | <EvanR> | evaluate the steps of the algorithm (lazily) |
2021-11-25 18:48:25 +0100 | ezzieyguywuf | (~Unknown@user/ezzieyguywuf) |
2021-11-25 18:48:26 +0100 | <EvanR> | see it explode xD |
2021-11-25 18:48:27 +0100 | <[itchyjunk]> | overloading aka ad hoc polymorphism thing |
2021-11-25 18:48:47 +0100 | <EvanR> | s/ad hoc/parametric/ |
2021-11-25 18:49:00 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:841c:a322:61f5:4ad9) |
2021-11-25 18:49:06 +0100 | <[itchyjunk]> | is this parametric? |
2021-11-25 18:49:13 +0100 | <EvanR> | yeah, ad hoc is type classes |
2021-11-25 18:49:13 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 18:49:40 +0100 | <[itchyjunk]> | "In programming languages, ad hoc polymorphism[1] is a kind of polymorphism in which polymorphic functions can be applied to arguments of different types, because a polymorphic function can denote a number of distinct and potentially heterogeneous implementations depending on the type of argument(s) to which it is applied." |
2021-11-25 18:50:04 +0100 | <[itchyjunk]> | seems to fit the bill here no? |
2021-11-25 18:50:12 +0100 | <EvanR> | note the heterogeneous part |
2021-11-25 18:50:27 +0100 | <EvanR> | your reverse algorithm treats the payload of the list the same regardless of what it is |
2021-11-25 18:50:35 +0100 | <EvanR> | not hetero |
2021-11-25 18:50:55 +0100 | <[itchyjunk]> | hmm |
2021-11-25 18:51:28 +0100 | <EvanR> | example of ad hoc is sorting :: Ord a => [a] -> [a] |
2021-11-25 18:51:49 +0100 | <EvanR> | the a 1. has to come with comparison operation and 2. can be different for different a |
2021-11-25 18:52:01 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 245 seconds) |
2021-11-25 18:52:23 +0100 | <[itchyjunk]> | oh i think i kinda get it |
2021-11-25 18:52:43 +0100 | <[itchyjunk]> | going back to my reverse funcction, how do i change my signature such that it doesn't care what's in the list? |
2021-11-25 18:53:02 +0100 | <EvanR> | replace Int with a |
2021-11-25 18:53:05 +0100 | <[itchyjunk]> | i tried f :: [a] -> [a] but getitng a not in scope error |
2021-11-25 18:53:07 +0100 | <[itchyjunk]> | oh |
2021-11-25 18:53:18 +0100 | <monochrom> | IMO that paragraphs used a lot of unnecessary long words to describe a very simple thing. |
2021-11-25 18:53:40 +0100 | <monochrom> | Ad hoc means behaviour varies by type. Done. |
2021-11-25 18:54:06 +0100 | <[itchyjunk]> | ah and parametric means behavior is the same regardless of type? |
2021-11-25 18:54:16 +0100 | <monochrom> | The opposite of ad hoc is parametric. It means uniform over types. Done. |
2021-11-25 18:54:30 +0100 | <EvanR> | reverse does the same thing regardless of a |
2021-11-25 18:54:35 +0100 | <[itchyjunk]> | something weird happened, f ['a','b'] returns a `ba` instead of [ |
2021-11-25 18:54:38 +0100 | <monochrom> | And IMO a very simple example would complete it. |
2021-11-25 18:54:44 +0100 | <[itchyjunk]> | ['b','a'] |
2021-11-25 18:55:04 +0100 | <EvanR> | > ['a', 'b', 'c', 'd'] |
2021-11-25 18:55:05 +0100 | <lambdabot> | "abcd" |
2021-11-25 18:55:14 +0100 | <EvanR> | syntactic sugar for list of Char |
2021-11-25 18:55:15 +0100 | <[itchyjunk]> | hmm |
2021-11-25 18:55:18 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) |
2021-11-25 18:55:22 +0100 | <[itchyjunk]> | ah |
2021-11-25 18:55:30 +0100 | <monochrom> | You are asked to write "f :: a -> a". Can you write this? "f x = if x is an int then x+1 else if x is a string then ..." |
2021-11-25 18:55:38 +0100 | <monochrom> | If yes, ad hoc. If no, parametric. |
2021-11-25 18:56:25 +0100 | <[itchyjunk]> | hmm i guess i could write that if i figure out how to know what the type of a is |
2021-11-25 18:56:40 +0100 | <monochrom> | No, you can't do it in Haskell. |
2021-11-25 18:56:49 +0100 | <monochrom> | But you can do it in Java. Use instanceOf. |
2021-11-25 18:57:18 +0100 | <[itchyjunk]> | Ah.. i am supposed to use instanceOf for my next hw set.. funny it came up here |
2021-11-25 18:57:32 +0100 | <[itchyjunk]> | There is no way to ask haskell about the type of a ? |
2021-11-25 18:57:38 +0100 | <monochrom> | No. |
2021-11-25 18:57:46 +0100 | <[itchyjunk]> | hmmmmm |
2021-11-25 18:57:53 +0100 | <EvanR> | that would violate parametricity |
2021-11-25 18:58:01 +0100 | <monochrom> | If I relax the type sig to "f :: Typeable a => a -> a" then you can. But I didn't. |
2021-11-25 18:58:31 +0100 | benin | (~benin@183.82.179.164) (Quit: The Lounge - https://thelounge.chat) |
2021-11-25 18:58:49 +0100 | <[itchyjunk]> | take a, get it's ascii value and if it's in the range to to numbers, add 1 else something else? |
2021-11-25 18:58:56 +0100 | <[itchyjunk]> | to be* |
2021-11-25 18:59:05 +0100 | cheater | (~Username@user/cheater) |
2021-11-25 18:59:18 +0100 | <monochrom> | "get its ascii value" requires Show a. But I didn't allow Show a. |
2021-11-25 18:59:39 +0100 | <[itchyjunk]> | hmmmm |
2021-11-25 18:59:57 +0100 | <EvanR> | if someone gives you a parametric type, you immediately know stuff about what it can and can't do |
2021-11-25 19:00:07 +0100 | <dsal> | `a` by itself means "any type at all is relevant here" and all possible types is greater than "all types that can show themselves" |
2021-11-25 19:00:10 +0100 | <[itchyjunk]> | Is this the monad stuff? try to add 1 and if it fails do nothing |
2021-11-25 19:00:17 +0100 | <[itchyjunk]> | if it works, great, move on? |
2021-11-25 19:00:23 +0100 | <dsal> | constraints reduce the types you can pass, but give you a bit of wiggle room for doing things with the values. |
2021-11-25 19:00:54 +0100 | <EvanR> | if they say, never mind the parametric part isn't always honored, now you don't know things anymore |
2021-11-25 19:01:03 +0100 | <monochrom> | Monad is irrelevant. |
2021-11-25 19:01:05 +0100 | <[itchyjunk]> | Oh there are types that can show themselves and that can't show themsleves? @_@ |
2021-11-25 19:01:23 +0100 | <dsal> | No type can show itself unless granted that power. |
2021-11-25 19:01:25 +0100 | <dsal> | :t show |
2021-11-25 19:01:26 +0100 | <lambdabot> | Show a => a -> String |
2021-11-25 19:01:38 +0100 | <dsal> | (well, show values of the type) |
2021-11-25 19:01:41 +0100 | <EvanR> | yeah you can't print out of a function |
2021-11-25 19:01:49 +0100 | jumper149 | (~jumper149@static.6.71.203.116.clients.your-server.de) (Quit: WeeChat 3.3) |
2021-11-25 19:01:57 +0100 | <EvanR> | show (+1) ... doesn't work |
2021-11-25 19:02:10 +0100 | <[itchyjunk]> | hmmm |
2021-11-25 19:03:40 +0100 | <EvanR> | it would be nice to get debug info for any value whatever, but here we are xD |
2021-11-25 19:03:55 +0100 | <[itchyjunk]> | Given `f :: a -> a` is it possible to write "f x = if x is an int then x+1 else if x is a string then ..." at all? |
2021-11-25 19:04:03 +0100 | <monochrom> | No. |
2021-11-25 19:04:06 +0100 | <[itchyjunk]> | ah |
2021-11-25 19:04:44 +0100 | <EvanR> | but can write a f :: a -> a, it just can't do that |
2021-11-25 19:05:10 +0100 | <monochrom> | But you can in Java generics. <T> T f(T a) { if (a instanceOf Integer) { ... |
2021-11-25 19:05:26 +0100 | <monochrom> | This shows that Java generics is still not parametric polymorphism. |
2021-11-25 19:05:56 +0100 | <monochrom> | Or vice versa, Haskell parametric polymorphism is not Java generics. |
2021-11-25 19:06:20 +0100 | <[itchyjunk]> | interesting! |
2021-11-25 19:06:37 +0100 | <[itchyjunk]> | I know almost nothing about java generics though, but makes sense i think |
2021-11-25 19:07:04 +0100 | <monochrom> | You don't hear that very often because in practice, people don't actually abuse Java generics that way, they use it as parametric polymorphism, so no one notices the difference. |
2021-11-25 19:07:49 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-25 19:08:22 +0100 | <[itchyjunk]> | couldn't i overload it? f(int a) { return a + 1;} f( char a) { do char stuff} |
2021-11-25 19:08:27 +0100 | chisui | (~chisui@2001:16b8:6636:e400:16e3:5e8c:67f1:d219) |
2021-11-25 19:08:49 +0100 | <monochrom> | So we are in this Pareto/Nash equilibrium in which the older programmers don't abuse it, therefore the newer programmers don't know that they can abuse it. By induction it is a lost dark art. |
2021-11-25 19:08:58 +0100 | <hpc> | that's not polymorphism |
2021-11-25 19:09:10 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 260 seconds) |
2021-11-25 19:09:23 +0100 | <[itchyjunk]> | hmm i thought overloading was polymorphism :s |
2021-11-25 19:09:33 +0100 | <EvanR> | that's C++ style ad hoc polymorphism |
2021-11-25 19:09:33 +0100 | <hpc> | it's type-directed name resolution, those fs are two different functions and it picks between them based on how you call it |
2021-11-25 19:09:41 +0100 | <monochrom> | Haskell uses ad hoc polymorphism for overloading. |
2021-11-25 19:09:54 +0100 | <monochrom> | But nothing says a language must. |
2021-11-25 19:09:56 +0100 | _bo | (~bo@217.18.216.247) (Ping timeout: 245 seconds) |
2021-11-25 19:10:12 +0100 | <[itchyjunk]> | in java, that's overloading aka ad hoc polymorphism no? using f with different signatures? |
2021-11-25 19:10:18 +0100 | <hpc> | it's not the same f |
2021-11-25 19:10:42 +0100 | <monochrom> | In Java, the point is exactly overloading is orthogonal to polymorphism. |
2021-11-25 19:10:42 +0100 | <hpc> | it's two different functions with the same name |
2021-11-25 19:10:47 +0100 | <EvanR> | go to a different language, get different conflicting terminology xD |
2021-11-25 19:11:14 +0100 | <[itchyjunk]> | so overloading in haskell uses the same f somehow? huh interesting |
2021-11-25 19:11:23 +0100 | <[itchyjunk]> | guess i shouldn't take things i learn in java too seriously then |
2021-11-25 19:11:33 +0100 | <[itchyjunk]> | thought i understood polymorphism :D |
2021-11-25 19:11:35 +0100 | <monochrom> | It's OK to take Java seriously. |
2021-11-25 19:11:49 +0100 | <monochrom> | What's wrong is assuming that everyone solves problems the same way. |
2021-11-25 19:12:16 +0100 | <monochrom> | or assuming that there is only one way. |
2021-11-25 19:12:18 +0100 | <hpc> | iirc, if you wrote f(Object a) and f(SomethingElse a), g(Object a) {f(a)} is going to use the Object f, even if you do g(somethingElseValue) |
2021-11-25 19:13:15 +0100 | <monochrom> | Terminology is a lost cause. Every echo chamber has its terminology. |
2021-11-25 19:13:31 +0100 | <monochrom> | Echo chamber is human nature. |
2021-11-25 19:13:54 +0100 | <[itchyjunk]> | Are polymorphisms implemented differently in different FP as well? |
2021-11-25 19:13:56 +0100 | shriekingnoise | (~shrieking@186.137.144.80) |
2021-11-25 19:14:07 +0100 | <[itchyjunk]> | or is it more or less consistent in FPs at least? |
2021-11-25 19:14:34 +0100 | chisui | (~chisui@2001:16b8:6636:e400:16e3:5e8c:67f1:d219) (Quit: Client closed) |
2021-11-25 19:15:05 +0100 | <hpc> | in the ML family it's more or less always parametric polymorphism |
2021-11-25 19:15:23 +0100 | <hpc> | clojure is lisp on the jvm, so it takes after java even though it's functional |
2021-11-25 19:15:36 +0100 | chisui | (~chisui@2001:16b8:6636:e400:16e3:5e8c:67f1:d219) |
2021-11-25 19:15:37 +0100 | random-jellyfish | (~random-je@user/random-jellyfish) (Ping timeout: 256 seconds) |
2021-11-25 19:15:50 +0100 | <hpc> | other lisps are completely untyped, lambda calculus comes in every typed and untyped variant you can think of |
2021-11-25 19:15:55 +0100 | <[itchyjunk]> | ohh didn't know cloure was fp |
2021-11-25 19:17:02 +0100 | <EvanR> | yeah it is |
2021-11-25 19:17:12 +0100 | <EvanR> | despite itself xD |
2021-11-25 19:17:31 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 19:17:48 +0100 | <sshine> | [itchyjunk], ML modules also encourage ad-hoc polymorphism, e.g. https://stackoverflow.com/questions/37694313/make-ocaml-function-polymorphic-for-int-lists-and-flo… |
2021-11-25 19:19:41 +0100 | <monochrom> | At that point, you are translating ad hoc polymorphism to parametric polymorphism and then you wonder why there is a line. |
2021-11-25 19:20:03 +0100 | <monochrom> | sort :: Ord a => [a] -> [a] involves a bit of ad hoc polymorphism, yes. |
2021-11-25 19:20:34 +0100 | <monochrom> | But in a language without Haskell type class, you could have gone sortBy :: (a -> a -> Bool) -> [a] -> [a]. |
2021-11-25 19:20:49 +0100 | <monochrom> | which is a low-tech version of the module approach. |
2021-11-25 19:21:17 +0100 | <monochrom> | But then, technically, "(a -> a -> Bool) -> [a] -> [a]" is parametric polymorphism. |
2021-11-25 19:21:29 +0100 | <EvanR> | seeing C++ overloading as type directed name resolution and not polymorphism is cool xD |
2021-11-25 19:21:42 +0100 | <EvanR> | now I wonder what polymorphism even is |
2021-11-25 19:22:15 +0100 | <EvanR> | using the same function for different types |
2021-11-25 19:22:18 +0100 | <sshine> | yea, so you could have parametric polymorphism at the bottom. but you could also parameterise your higher-order modules, making it parametrically polymorphic at the module level, and at the value level it'd be ad-hoc. |
2021-11-25 19:22:54 +0100 | <sshine> | I guess the difference comes down to book-keeping. :) |
2021-11-25 19:23:17 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 19:23:17 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 19:23:17 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 19:24:44 +0100 | <sshine> | there was one talk about functional design patterns that had a comparison table between OO and FP, where the FP column just listed "functions" as the equivalent abstraction to most OO patterns. ;-P |
2021-11-25 19:25:42 +0100 | <[itchyjunk]> | How come : isn't ad hoc then? so you could x:xs or xs:x ? |
2021-11-25 19:25:50 +0100 | <monochrom> | https://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt slide 13 |
2021-11-25 19:26:07 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 250 seconds) |
2021-11-25 19:26:37 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) (Remote host closed the connection) |
2021-11-25 19:27:01 +0100 | <EvanR> | youre thinking : means ++ and should be symmetric |
2021-11-25 19:27:02 +0100 | <sshine> | [itchyjunk], because lists are defined with a type parameter. |
2021-11-25 19:27:02 +0100 | <[itchyjunk]> | maybe the answer to my question is also secretly functions |
2021-11-25 19:27:09 +0100 | <monochrom> | a -> [a] -> [a] is clearly parametric |
2021-11-25 19:27:17 +0100 | <sshine> | :t (:) |
2021-11-25 19:27:18 +0100 | <lambdabot> | a -> [a] -> [a] |
2021-11-25 19:27:30 +0100 | <EvanR> | but cons and snoc are not symmetric |
2021-11-25 19:27:39 +0100 | <EvanR> | : is cons |
2021-11-25 19:27:58 +0100 | <monochrom> | Also, [False, True] : False is clearly illegal. |
2021-11-25 19:28:05 +0100 | chisui | (~chisui@2001:16b8:6636:e400:16e3:5e8c:67f1:d219) (Ping timeout: 256 seconds) |
2021-11-25 19:28:08 +0100 | <[itchyjunk]> | hmm symmetric over mirror |
2021-11-25 19:28:51 +0100 | DNH | (~DNH@2a02:8108:1100:16d8:a418:17da:6b4f:5fc3) |
2021-11-25 19:29:12 +0100 | geekosaur | (~geekosaur@xmonad/geekosaur) |
2021-11-25 19:29:19 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds) |
2021-11-25 19:29:50 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 256 seconds) |
2021-11-25 19:31:23 +0100 | <EvanR> | yeah the (singly) linked list is essentially asymmetric |
2021-11-25 19:31:52 +0100 | <EvanR> | that's reflected in the type of (:) |
2021-11-25 19:32:37 +0100 | mreh | (~mreh@2a00:23c7:2803:ef00:841c:a322:61f5:4ad9) (Ping timeout: 256 seconds) |
2021-11-25 19:32:50 +0100 | <hololeap> | how would a doubly linked list be expressed in haskell? |
2021-11-25 19:33:12 +0100 | dsrt^ | (~dsrt@68.101.58.90) |
2021-11-25 19:33:32 +0100 | <EvanR> | a zipper! xD |
2021-11-25 19:33:59 +0100 | <hololeap> | yeah that sort of makes sense actually |
2021-11-25 19:34:00 +0100 | <monochrom> | ADT and GADT cannot say doubly-linked list per se. But you can have two fields and, during term construction, tie the knot. |
2021-11-25 19:35:03 +0100 | Guest|66 | (~Guest|66@bl5-47-230.dsl.telepac.pt) |
2021-11-25 19:35:33 +0100 | <hololeap> | I can never get over an uneasy feeling that "tying the knot" won't work the way I expect it to. I end up doing things explicitly with e.g. TVars just to be damn sure everything is talking about the same value |
2021-11-25 19:38:05 +0100 | pretty_dumm_guy | (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
2021-11-25 19:39:06 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 19:39:46 +0100 | <monochrom> | Yeah, tying the knot is a very cute skill that although I get it, I don't want to inflict it on everyone. |
2021-11-25 19:39:57 +0100 | <monochrom> | It's too mean. |
2021-11-25 19:41:20 +0100 | econo | (uid147250@user/econo) |
2021-11-25 19:41:52 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
2021-11-25 19:43:11 +0100 | <monochrom> | The unreasonable universal relevance of https://ro-che.info/ccc/9 >:) |
2021-11-25 19:44:33 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 250 seconds) |
2021-11-25 19:46:08 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 19:46:08 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 19:46:08 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 19:47:41 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 19:49:09 +0100 | chisui | (~chisui@2001:16b8:6636:e400:e560:82ac:8599:d8d0) |
2021-11-25 19:49:17 +0100 | chisui | (~chisui@2001:16b8:6636:e400:e560:82ac:8599:d8d0) (Client Quit) |
2021-11-25 19:50:32 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 240 seconds) |
2021-11-25 19:51:27 +0100 | <EvanR> | the mystery remains though |
2021-11-25 19:51:57 +0100 | dhouthoo | (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.3) |
2021-11-25 19:51:58 +0100 | <EvanR> | how that wise monk lost his moustache half way through the story |
2021-11-25 19:52:13 +0100 | xkuru | (~xkuru@user/xkuru) |
2021-11-25 19:53:09 +0100 | <monochrom> | I don't think it was moustache in the first place. |
2021-11-25 19:54:05 +0100 | <monochrom> | Just his beard pushed up but since it's projected on a 2D viewport the z depth is lost. |
2021-11-25 19:55:57 +0100 | Guest|66 | (~Guest|66@bl5-47-230.dsl.telepac.pt) (Quit: Connection closed) |
2021-11-25 19:56:11 +0100 | sunarch | (uid526836@user/sunarch) (Quit: Connection closed for inactivity) |
2021-11-25 19:56:13 +0100 | __monty__ | (~toonn@user/toonn) (Quit: leaving) |
2021-11-25 20:00:02 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-25 20:00:16 +0100 | <[itchyjunk]> | I am trying to test something but i forget how to use the thingy. say i have a list `[1]` and i wanted to do `(x:y:xs)` on this list and see what x and y and xs would be |
2021-11-25 20:00:26 +0100 | <[itchyjunk]> | I can't figure out how to run this test :x |
2021-11-25 20:01:37 +0100 | <monochrom> | case [1] of {x:y:xs -> (x, y, xs) ; _ -> error "not this droid" } |
2021-11-25 20:02:19 +0100 | <[itchyjunk]> | hmm |
2021-11-25 20:04:10 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-11-25 20:04:47 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-25 20:08:13 +0100 | <[itchyjunk]> | oh ohh, infinite recursion |
2021-11-25 20:09:23 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) () |
2021-11-25 20:09:44 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) |
2021-11-25 20:10:35 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-11-25 20:12:13 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-25 20:17:21 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 20:18:41 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-11-25 20:26:09 +0100 | <EvanR> | I guess in this case "pattern matching" is a misnomer xD |
2021-11-25 20:26:34 +0100 | <EvanR> | pattern discriminating |
2021-11-25 20:27:14 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) |
2021-11-25 20:27:16 +0100 | <EvanR> | more like |
2021-11-25 20:28:49 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) |
2021-11-25 20:29:31 +0100 | <[itchyjunk]> | you know, i knew it was gonna be infinite regression |
2021-11-25 20:29:34 +0100 | _bo | (~bo@217.18.216.247) |
2021-11-25 20:29:35 +0100 | <[itchyjunk]> | but i wanted to run it anyways |
2021-11-25 20:29:40 +0100 | <[itchyjunk]> | ended up force shutting down |
2021-11-25 20:33:38 +0100 | yauhsien | (~yauhsien@61-231-30-221.dynamic-ip.hinet.net) (Ping timeout: 260 seconds) |
2021-11-25 20:35:28 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 20:37:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 20:37:04 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 20:37:04 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 20:37:15 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 20:39:42 +0100 | _bo | (~bo@217.18.216.247) (Read error: Connection reset by peer) |
2021-11-25 20:40:06 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 256 seconds) |
2021-11-25 20:40:34 +0100 | <[itchyjunk]> | oh.. |
2021-11-25 20:40:40 +0100 | <[itchyjunk]> | i think it works.. i can't believe it |
2021-11-25 20:41:01 +0100 | <[itchyjunk]> | https://bpa.st/ICOA |
2021-11-25 20:41:02 +0100 | <[itchyjunk]> | Right? |
2021-11-25 20:42:06 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 20:42:10 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 20:44:31 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 245 seconds) |
2021-11-25 20:48:33 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Remote host closed the connection) |
2021-11-25 20:49:29 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) |
2021-11-25 20:52:51 +0100 | <dsal> | [itchyjunk]: bumping those parens up against functions looks really funny to me. heh |
2021-11-25 20:53:15 +0100 | <[itchyjunk]> | f( g) ? |
2021-11-25 20:53:26 +0100 | <[itchyjunk]> | f (g n) then? |
2021-11-25 20:53:37 +0100 | <dsal> | yeah. |
2021-11-25 20:53:41 +0100 | <[itchyjunk]> | f (g (h n)) |
2021-11-25 20:53:42 +0100 | <[itchyjunk]> | okay |
2021-11-25 20:54:14 +0100 | <dsal> | What is g for here? |
2021-11-25 20:54:23 +0100 | <dsal> | It looks expensive. :) |
2021-11-25 20:54:39 +0100 | <[itchyjunk]> | my f was only sorting either the smallest or largest to the end of the list |
2021-11-25 20:54:46 +0100 | <dsal> | Oh, that's your reverse? |
2021-11-25 20:54:52 +0100 | <[itchyjunk]> | so i had to remove the last element and apply it again |
2021-11-25 20:54:54 +0100 | <[itchyjunk]> | no |
2021-11-25 20:55:12 +0100 | <[itchyjunk]> | [2,1,4,5] -> [2,4,5,1] by f |
2021-11-25 20:55:39 +0100 | <dsal> | > let g n = last( f n) : g( init( f n)) in g [1..10] |
2021-11-25 20:55:40 +0100 | <lambdabot> | error: |
2021-11-25 20:55:40 +0100 | <lambdabot> | • Could not deduce (FromExpr [Integer]) arising from a use of ‘g’ |
2021-11-25 20:55:40 +0100 | <lambdabot> | from the context: FromExpr [a] |
2021-11-25 20:55:43 +0100 | <[itchyjunk]> | and g take [2,4,5] and applys f again to get [4,5,2] then [4,5] etc |
2021-11-25 20:56:01 +0100 | <[itchyjunk]> | i tried doing it with only f but wasn't sure so tried this and it worked out |
2021-11-25 20:56:24 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
2021-11-25 20:56:49 +0100 | <[itchyjunk]> | what about the x: f (y:xs), how would you format that? |
2021-11-25 20:56:59 +0100 | <[itchyjunk]> | x:f (y:xs) maybe? |
2021-11-25 20:57:22 +0100 | <dsal> | That one doesn't look as weird either way. |
2021-11-25 20:57:28 +0100 | <[itchyjunk]> | ah |
2021-11-25 20:58:50 +0100 | <dsal> | OK. I see what you're doing here. You're doing a lot of sorting, though. g runs through the whole sort once to find the last thing and again to find the things that aren't the last thing. |
2021-11-25 21:00:36 +0100 | <[itchyjunk]> | Right, i can kinda guess that this is all horribly inefficient |
2021-11-25 21:00:50 +0100 | <dsal> | Sure, if you wanted something better, you'd just use `sort` :) |
2021-11-25 21:00:52 +0100 | <[itchyjunk]> | but i figured if it works, i'll worry about optimization later |
2021-11-25 21:01:00 +0100 | <[itchyjunk]> | ah |
2021-11-25 21:01:13 +0100 | <dsal> | Just toss a `where` in there and capture the sort once. |
2021-11-25 21:01:39 +0100 | <[itchyjunk]> | hmmmmmm |
2021-11-25 21:01:45 +0100 | <[itchyjunk]> | i'll read up on where next then |
2021-11-25 21:01:47 +0100 | <dsal> | g n = last sorted : g (init sorted) where sorted = f n |
2021-11-25 21:02:09 +0100 | <[itchyjunk]> | oh |
2021-11-25 21:02:22 +0100 | <[itchyjunk]> | i see! |
2021-11-25 21:02:25 +0100 | <dsal> | "sorted" is probably not the right word. |
2021-11-25 21:02:32 +0100 | <dsal> | bubbled |
2021-11-25 21:02:37 +0100 | <dsal> | percolated |
2021-11-25 21:03:01 +0100 | <[itchyjunk]> | neat! |
2021-11-25 21:03:08 +0100 | <[itchyjunk]> | I'll file this under "works" |
2021-11-25 21:03:35 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 21:04:51 +0100 | <dsal> | Yeah, exercises like this are good. |
2021-11-25 21:05:18 +0100 | juhp | (~juhp@128.106.188.82) (Ping timeout: 260 seconds) |
2021-11-25 21:05:20 +0100 | <dsal> | It's fun to do these without explicit recursion as well. |
2021-11-25 21:06:41 +0100 | juhp | (~juhp@128.106.188.82) |
2021-11-25 21:10:35 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
2021-11-25 21:13:48 +0100 | Franciman | {Franciman} |
2021-11-25 21:14:51 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-11-25 21:16:42 +0100 | albet70 | (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
2021-11-25 21:19:05 +0100 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-11-25 21:19:52 +0100 | pooryorick | (~pooryoric@87-119-174-173.tll.elisa.ee) (Quit: leaving) |
2021-11-25 21:20:28 +0100 | Sgeo | (~Sgeo@user/sgeo) |
2021-11-25 21:22:29 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 21:24:36 +0100 | <[itchyjunk]> | Yes, comming up with them off the top of my head |
2021-11-25 21:25:00 +0100 | <[itchyjunk]> | for some reason, googling for haskell exercise leads to much harder problem sets than expected :< |
2021-11-25 21:25:19 +0100 | remedan | (~remedan@balak.me) |
2021-11-25 21:25:37 +0100 | <dsal> | I rather like AoC. It starts out pretty easy. |
2021-11-25 21:25:47 +0100 | <dsal> | Then gets stupid hard sometimes, but by that point you're committed. |
2021-11-25 21:26:11 +0100 | <[itchyjunk]> | Ah, advent of code? yeah i should skim through some of those problem sets |
2021-11-25 21:26:14 +0100 | remedan | (~remedan@balak.me) (Client Quit) |
2021-11-25 21:29:17 +0100 | remedan | (~remedan@balak.me) |
2021-11-25 21:29:18 +0100 | bollu | (uid233390@id-233390.helmsley.irccloud.com) |
2021-11-25 21:29:38 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 260 seconds) |
2021-11-25 21:29:44 +0100 | [exa] | looks at the calendar |
2021-11-25 21:29:49 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-25 21:29:50 +0100 | <[exa]> | ah it's not december yet, phew |
2021-11-25 21:30:03 +0100 | <dsal> | I'm not remotely ready. |
2021-11-25 21:30:30 +0100 | <[exa]> | you said "starts out pretty easy", got totally scared I missed it. :D |
2021-11-25 21:31:39 +0100 | <dsal> | Oh, the first part is always like, "What's 1?" And then you're all like... wait, I know this one. Then a couple days later, "Solve this maze of arbitrary dimensions using only IO mechanisms in this program written for this VM you had write." |
2021-11-25 21:32:01 +0100 | <dsal> | Damnit, I left out the word "two" "two IO mechanisms" |
2021-11-25 21:32:05 +0100 | <monochrom> | Ugh, "what's 1?" is a deep question. >:) |
2021-11-25 21:32:18 +0100 | <dsal> | Yeah, what page of the book is 1+1 on? |
2021-11-25 21:32:48 +0100 | monochrom | teaches monads by beginning with "what are numbers? see, that's an unhelpful question. don't ask what are monads either." |
2021-11-25 21:33:24 +0100 | <[exa]> | wow cool |
2021-11-25 21:33:26 +0100 | <dsal> | People are *super* blind to all the context they carry along with them. |
2021-11-25 21:34:06 +0100 | <int-e> | dsal: obviously *ducks* |
2021-11-25 21:34:55 +0100 | <dsal> | Someone was in my discussion about why I think "where" is actually a good thing was talking about how it works in various spoken languages using arrangements of "I'll have a cup of coffee when it's ready." So I wrote that function out and got lost in dependencies about washing cups and getting gas before going to the store to buy a bean grinder... |
2021-11-25 21:35:44 +0100 | <monochrom> | Ugh, that's one more data point for Wadler's law. |
2021-11-25 21:36:11 +0100 | <dsal> | I think I just need to do more pairing. I tend to write functions like `mything x = theAnswer` then I define `theAnswer = keysFrom . buildMapOf x` etc... until it stops not compiling. |
2021-11-25 21:36:39 +0100 | <monochrom> | Some big shot thought up this syntax and now we're all stuck with it for better or worse. Why would anyone waste time rationalizing or derationalizing it post mortem. |
2021-11-25 21:37:01 +0100 | <dsal> | Heh. I've not seen Wadler's Law. It looks like a specialization of bike shedding. |
2021-11-25 21:37:10 +0100 | <monochrom> | Yeah! |
2021-11-25 21:37:52 +0100 | <dsal> | The argument is that you should list every requirement before you do a thing. You know, like you're writing assembler and can't jump backwards or something. |
2021-11-25 21:38:06 +0100 | <monochrom> | Just be aware that human history has come up with all sorts of grammars and orders, so different permutations make sense to different people. Deal with it. |
2021-11-25 21:38:38 +0100 | <dsal> | Yeah, I can understand that. But in a declarative language, requiring everything you see to have occurred higher up in the file is just kind of silly. |
2021-11-25 21:38:52 +0100 | <dsal> | s/occurred/been defined/ |
2021-11-25 21:39:03 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) |
2021-11-25 21:39:45 +0100 | <monochrom> | That one is easily understood as "at the time of inventing Algol and C, they wanted the compiler to be more streaming". |
2021-11-25 21:40:39 +0100 | <dsal> | The guy who's a proponent for that is also into really long identifier names. And like, having lots of identifier names. I introduced confusing by changing `theThingWeGotFromGetTheThing <- getTheThing; case theThing of` with `getTheThing >>= \case` woah, that name was super helpful. |
2021-11-25 21:43:12 +0100 | cosimone | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Read error: Connection reset by peer) |
2021-11-25 21:43:17 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-11-25 21:44:47 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 21:46:13 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
2021-11-25 21:46:13 +0100 | wroathe | (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Changing host) |
2021-11-25 21:46:13 +0100 | wroathe | (~wroathe@user/wroathe) |
2021-11-25 21:46:29 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Client Quit) |
2021-11-25 21:46:52 +0100 | pavonia | (~user@user/siracusa) |
2021-11-25 21:47:16 +0100 | CiaoSen | (~Jura@p200300c9570204002a3a4dfffe84dbd5.dip0.t-ipconnect.de) |
2021-11-25 21:47:33 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) |
2021-11-25 21:50:25 +0100 | wroathe | (~wroathe@user/wroathe) (Ping timeout: 250 seconds) |
2021-11-25 21:51:23 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
2021-11-25 21:54:54 +0100 | remedan | (~remedan@balak.me) (Quit: Bye!) |
2021-11-25 21:55:57 +0100 | Midjak | (~Midjak@may53-1-78-226-116-92.fbx.proxad.net) (Quit: This computer has gone to sleep) |
2021-11-25 21:56:43 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 268 seconds) |
2021-11-25 21:58:28 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |
2021-11-25 22:01:26 +0100 | _ht | (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
2021-11-25 22:02:02 +0100 | remedan | (~remedan@balak.me) |
2021-11-25 22:07:58 +0100 | yauhsien | (~yauhsien@61-231-63-167.dynamic-ip.hinet.net) |
2021-11-25 22:10:42 +0100 | dschrempf | (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 260 seconds) |
2021-11-25 22:13:02 +0100 | yauhsien | (~yauhsien@61-231-63-167.dynamic-ip.hinet.net) (Ping timeout: 256 seconds) |
2021-11-25 22:15:34 +0100 | <dsal> | Wrote tests for obviously correct code and spent a while trying to figure out how I broke it. Obviously correct code wasn't. |
2021-11-25 22:16:42 +0100 | <dsal> | Turns out about 4/9 of these value parsers were incorrect and couldn't parse things like their own examples. Can't wait until I get the complaints about how I wrote tests for these for not being copy and pasted swaths of code. heh |
2021-11-25 22:18:11 +0100 | <arahael> | dsal: my pet irritation is working with devs who, when they review my code, keep asking me "whats weg? what's fyi?", i have a personal convention of calling my locals using acronyms of the thing they just came from. i've given up saying "look 3 lines above. it's always 3 lines. and it's never used again anywhere else". |
2021-11-25 22:18:54 +0100 | <peutri> | what *is* weg tho |
2021-11-25 22:20:09 +0100 | <arahael> | let weg = WorldEngineeringGlobalists(); let wog = WorldOwnersGlobalists(); return weg.code + wog.code; |
2021-11-25 22:20:57 +0100 | <dsal> | arahael: I did go readability at Google for like, 6 years. That was a huge thing. And it was always that. Name something. Use it only once on like, the next line. But name it like you're hoping to get it published. |
2021-11-25 22:22:00 +0100 | <arahael> | dsal: blegh. frustrating. i have bigger things to worry about, such as whether 'weg.code + wog.code' is correct. |
2021-11-25 22:22:19 +0100 | <dsal> | These folks have a really bad forest-for-the-trees problem and the solutions always seem to be "make bigger trees" |
2021-11-25 22:22:26 +0100 | <arahael> | dsal: i argue shorter names make it much easier for pattern matching. |
2021-11-25 22:22:37 +0100 | <dsal> | So very much. |
2021-11-25 22:23:02 +0100 | <dsal> | I had an example where there were two variable names that were ~7 words long, around 50 chars or so with just two or three chars *in the middle* different. |
2021-11-25 22:23:03 +0100 | <arahael> | the mathematicians got one thing right. |
2021-11-25 22:23:50 +0100 | <dsal> | I understand why people don't like seeing just piles of µ • ß everywhere or something, but also like, I can tell those apart without much thinking. |
2021-11-25 22:25:00 +0100 | <arahael> | it's always a few short lines above. always obvious from context. |
2021-11-25 22:25:15 +0100 | <dsal> | Random statement I woke up to in a group chat from senior guy: "there is *no point* in abbreviating variable names" Gave examples like yours where the context is obvious. |
2021-11-25 22:25:31 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 250 seconds) |
2021-11-25 22:26:04 +0100 | <dsal> | Though some of this is making more sense. I was arguing with someone else who said he wanted to do things in a "standard" way and I'm starting to figure out that "standard" is just whatever the other dude says. |
2021-11-25 22:26:17 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-25 22:26:30 +0100 | <dsal> | Doesn't have to look like anything else anyone might see in the wild. Ironically the link to the "standard" document says very specifically it's not free to use. |
2021-11-25 22:27:13 +0100 | <arahael> | dsal: it strikes me that this is exactly the same sort of conversation i had about 8 years ago when people were grappling with "var" in C#. some people hated it. |
2021-11-25 22:27:13 +0100 | <dsal> | If these guys want to argue about how to spell their bugs, that's cool, I guess. I'm still somewhat enjoying myself. :) |
2021-11-25 22:27:22 +0100 | benin | (~benin@183.82.179.164) |
2021-11-25 22:27:39 +0100 | <arahael> | dsal: as in, name your types, otherwise how do you know what it is? |
2021-11-25 22:28:13 +0100 | <arahael> | i am so tired of typing types three times on the same line. |
2021-11-25 22:28:19 +0100 | acidjnk_new | (~acidjnk@p200300d0c7271e128015eb8f81d9ba9d.dip0.t-ipconnect.de) |
2021-11-25 22:28:30 +0100 | <dsal> | No, like, the specific example was: do not write `uat :: UserAccessToken` -- write `userAccessToken :: UserAccessToken` |
2021-11-25 22:28:39 +0100 | <arahael> | WorldEngineeringGlobalists worldEngineeringGlobalists = WorldEngineeringGlobalists() |
2021-11-25 22:28:48 +0100 | Pickchea | (~private@user/pickchea) |
2021-11-25 22:29:00 +0100 | <arahael> | dsal: yeah, that also annoys me. |
2021-11-25 22:29:09 +0100 | <dsal> | I mostly just ignore them otherwise I'd never get anything done. |
2021-11-25 22:29:16 +0100 | <arahael> | yep. |
2021-11-25 22:29:21 +0100 | <dsal> | And I get so much more done than anyone else, that I'm completely OK with them firing me. |
2021-11-25 22:30:00 +0100 | <arahael> | yeah i have started getting that attitude as well, way i see it, if it's so difficult to get pay rises, stop sucking up :) |
2021-11-25 22:30:29 +0100 | <dsal> | I can't even get a pay raise at this place because I started at the top of the scale, so I can only go out. heh |
2021-11-25 22:30:42 +0100 | reumeth | (~reumeth@user/reumeth) (Ping timeout: 260 seconds) |
2021-11-25 22:31:20 +0100 | <arahael> | dsal: i hate the "scale" thing, but i've been told i am at the top myself. yet... i know someone who recently quit got even more so yeah it's never true. |
2021-11-25 22:31:42 +0100 | <arahael> | dsal: back to the type names topic! another extreme is almosr as bad. |
2021-11-25 22:31:54 +0100 | ees | (~user@pool-108-18-30-46.washdc.fios.verizon.net) (Remote host closed the connection) |
2021-11-25 22:31:54 +0100 | <dsal> | Heh, sure. I took a pretty big pay cut to work here just because the job itself seems more interesting. I don't even care that much. |
2021-11-25 22:32:00 +0100 | <dsal> | But year, forest vs. trees. |
2021-11-25 22:32:41 +0100 | <arahael> | in swift, which is an apple language where it feels like people are just discovering things us haskell people have known for decades... one thing is that swift lets you infer a *lot* of types. not all, but mosr. |
2021-11-25 22:33:02 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 260 seconds) |
2021-11-25 22:33:05 +0100 | <arahael> | so people in our teams are now saying: never specify types. never, if you can get away with it, then don't. |
2021-11-25 22:33:10 +0100 | <arahael> | *sigh*. |
2021-11-25 22:33:27 +0100 | <dsal> | "complex" and "simple" are strangely subjective. I deleted over a hundred lines of code, made it much harder to get wrong, fixed a few bugs, added tests, etc... and while the reduction of duplication is appreciated, it's "too complex." I'm like... there are fewer types, fewer functions, fewer failure modes, etc... |
2021-11-25 22:33:30 +0100 | <arahael> | so what i do is i add in my types... get it working... then delete them before i send it for review. |
2021-11-25 22:33:40 +0100 | mcgroin | (~mcgroin@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Quit: WeeChat 3.3) |
2021-11-25 22:33:49 +0100 | <dsal> | I've never tried swift. I used to do objc back in the day. It started getting super weird. |
2021-11-25 22:34:09 +0100 | mreh | (~matthew@host81-157-195-163.range81-157.btcentralplus.com) |
2021-11-25 22:34:10 +0100 | <dsal> | Half of my app was specified in a binary blob I worked on so infrequently I forgot how to recreate it. |
2021-11-25 22:34:10 +0100 | <arahael> | swift is a huge improvement over objc, not even in the same ballpark. |
2021-11-25 22:34:18 +0100 | wootehfoot | (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
2021-11-25 22:34:32 +0100 | <arahael> | yeah. apple's tooling sucks. |
2021-11-25 22:35:31 +0100 | <dsal> | Starting haskell, it does seem like you should just line Hindley or Milner or whoever do all that type work for you and just write toplevel symbols. |
2021-11-25 22:35:40 +0100 | <dsal> | GHC's like. oookay, but don't make any mistakes. |
2021-11-25 22:36:01 +0100 | betelgeuse | (~betelgeus@94-225-47-8.access.telenet.be) |
2021-11-25 22:36:07 +0100 | <arahael> | yep. trouble is adding an extra type or two, especially in long chains, is helpful for both the human and compiler. |
2021-11-25 22:36:23 +0100 | <mreh> | I cannot get my head round free, is there a good example free monad? |
2021-11-25 22:36:46 +0100 | <dsal> | mreh: does this help? https://chrispenner.ca/posts/asts-with-fix-and-free |
2021-11-25 22:37:10 +0100 | <dsal> | arahael: Yeah, it doesn't seem like something you want when you're starting, but then you learn to love types. Then you get wingman or something and never write code again. |
2021-11-25 22:37:20 +0100 | <mreh> | dsal: may do! |
2021-11-25 22:37:25 +0100 | <arahael> | mreh: free monads evaluate to a graph, a free standing tree of nodes, if you will. so you end up with just an abstract syntax tree, effectively. |
2021-11-25 22:37:54 +0100 | <arahael> | mreh: (approximately, anyway. there may be some lambda's and the like complicating that picture) |
2021-11-25 22:38:00 +0100 | <Rembane_> | Regarding types: Agda is also good, proof by auto. |
2021-11-25 22:38:23 +0100 | <dsal> | I never got to the point of agda where it did anything other than look pretty. |
2021-11-25 22:38:50 +0100 | <arahael> | dsal: yep. the other struggle, which i am having in the current project, is where you have a language that is actually quite decent for functional programming... but they have an OOP mindset. |
2021-11-25 22:39:14 +0100 | <arahael> | dsal: nil's everywhere! protocols everywhere (instead of just defining a struct once). |
2021-11-25 22:41:08 +0100 | <dsal> | There are a few of these styles that people seem to like but have always been horrifying to me. |
2021-11-25 22:42:32 +0100 | <Rembane_> | Walk softly and always check for nils. |
2021-11-25 22:42:45 +0100 | <dsal> | Many languages sometimes let you use nils just fine. |
2021-11-25 22:42:54 +0100 | <dsal> | go, smalltalk, etc.. |
2021-11-25 22:44:25 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 22:45:13 +0100 | <mreh> | arahael: I've come accross it in beam, I guess it's being used to represent SQL syntax |
2021-11-25 22:46:27 +0100 | <dsal> | I'm not sure I'm ever going to be a fan of fancy database abstractions if I'm not by now. |
2021-11-25 22:46:37 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) |
2021-11-25 22:47:06 +0100 | <mreh> | beam is great |
2021-11-25 22:47:45 +0100 | <mreh> | it helps to know some depended typing to understand what's going on though |
2021-11-25 22:49:23 +0100 | <dsal> | postgresql-simple seems perfect for just about everything I've needed. I made a `Transaction` monad for transactionally composing lower level stuff. You can also compose FromRow and ToRow so you can smash bits together. There's still some dynamic parts that can occasionally lead to confusion, but the confusion is "why does this test fail with this error message that tells me what I did wrong?" |
2021-11-25 22:50:02 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Remote host closed the connection) |
2021-11-25 22:50:35 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) |
2021-11-25 22:50:49 +0100 | Codaraxis_ | (~Codaraxis@user/codaraxis) (Quit: Leaving) |
2021-11-25 22:53:15 +0100 | <mreh> | with type safety you don't need transations :^) |
2021-11-25 22:54:31 +0100 | narendraj9 | (~user@2a02:8109:b63f:ff7c::57b2) |
2021-11-25 22:55:02 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 240 seconds) |
2021-11-25 22:55:27 +0100 | <arahael> | mreh: i'm assuming that is tongue in cheek :) |
2021-11-25 22:55:50 +0100 | <mreh> | of course |
2021-11-25 22:56:24 +0100 | <monochrom> | I had never seen "weg" but I could guess "working example". |
2021-11-25 22:56:32 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) (Remote host closed the connection) |
2021-11-25 22:56:39 +0100 | <monochrom> | Although, IMO "working" is redundant. |
2021-11-25 22:56:52 +0100 | <arahael> | monochrom: i'd call that one 'we' ;) |
2021-11-25 22:57:15 +0100 | <arahael> | dsal: i definitely prefer thin abstractions these days. |
2021-11-25 22:57:45 +0100 | <arahael> | well, nearly 9am. i should probably get ready to walk to the cafe. for my second coffee. |
2021-11-25 22:59:02 +0100 | <arahael> | and to play with jackdk's aeson 2.0 compatible amazonka, he fixed that up whilst i was trying to sleep! |
2021-11-25 22:59:15 +0100 | <arahael> | amazing. |
2021-11-25 23:00:11 +0100 | cosimone` | (~user@2001:b07:ae5:db26:c24a:d20:4d91:1e20) (Ping timeout: 250 seconds) |
2021-11-25 23:01:12 +0100 | <dsal> | arahael: The amazonka 2.0 stuff is a bit disruptive, but nice. |
2021-11-25 23:01:25 +0100 | <dsal> | Probably not related, but it does have a number and name in common with stuff you typed. |
2021-11-25 23:02:35 +0100 | <arahael> | there's no perfect solution w.r.t. AWS :( |
2021-11-25 23:03:11 +0100 | epolanski | (uid312403@id-312403.helmsley.irccloud.com) |
2021-11-25 23:04:07 +0100 | tromp | (~textual@dhcp-077-249-230-040.chello.nl) |
2021-11-25 23:04:47 +0100 | drdo | (~drdo@roach0.drdo.eu) |
2021-11-25 23:05:17 +0100 | michalz | (~michalz@185.246.204.33) (Remote host closed the connection) |
2021-11-25 23:06:15 +0100 | alx741 | (~alx741@186.178.109.248) (Ping timeout: 250 seconds) |
2021-11-25 23:06:53 +0100 | <jackdk> | arahael: I should've been trying to sleep too, but here we are |
2021-11-25 23:07:09 +0100 | <jackdk> | thanks for the nerdsnipe, I guess? It needed to happen at some point. |
2021-11-25 23:07:30 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-25 23:08:06 +0100 | <arahael> | jackdk: a pleasure - and thanks again! i'll be checking it out soon! |
2021-11-25 23:08:31 +0100 | takuan | (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
2021-11-25 23:11:01 +0100 | narendraj9 | (~user@2a02:8109:b63f:ff7c::57b2) (Remote host closed the connection) |
2021-11-25 23:11:28 +0100 | mc47 | (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
2021-11-25 23:13:41 +0100 | <Athas> | How do I make haskell-mode in Emacs run a the ghci session for my project within the Nix environment defined by my shell.nix? |
2021-11-25 23:13:49 +0100 | <Athas> | My Emacs does not (and should not) run within that Nix environment. |
2021-11-25 23:15:40 +0100 | <energizer> | Athas: have you looked at emacs-direnv? |
2021-11-25 23:16:35 +0100 | <dsal> | arahael: I don't mind amazonka 2.0. I'm glad I picked it up when I did because I found a pretty big hole in it. But it was fixed up quickly. Now I just need it to get rolled out. |
2021-11-25 23:16:44 +0100 | <Athas> | energizer: I am now. It might solve the problem, depending on how exactly haskell-mode works (although I don't normally use direnv). Have you solved it this way? |
2021-11-25 23:17:24 +0100 | <energizer> | Athas: i haven't tried it with haskell but for other things yes |
2021-11-25 23:19:22 +0100 | alx741 | (~alx741@186.178.108.193) |
2021-11-25 23:21:42 +0100 | zava | (~zava@ip5f5bdf0f.dynamic.kabel-deutschland.de) |
2021-11-25 23:22:43 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds) |
2021-11-25 23:23:19 +0100 | mmhat | (~mmh@55d42d28.access.ecotel.net) |
2021-11-25 23:25:10 +0100 | <hololeap> | anyone else go to ruby sometimes, just to use nokogiri? why does that library feel so much more intuitive than anything than any equivalent haskell library? is it that ruby's syntax makes it easier to bang out something that's "good enough" in 15 minutes? |
2021-11-25 23:25:12 +0100 | gehmehgeh | (~user@user/gehmehgeh) (Quit: Leaving) |
2021-11-25 23:25:40 +0100 | <dsal> | What's that? I've not seen a ruby in over 10 years. :) |
2021-11-25 23:25:47 +0100 | <jackdk> | athas: the other option would be to rummage around with something like `apropos-variable` and find how haskell-mode configures the command to run, possibly using a `.dir-locals.el` file to set it for each project |
2021-11-25 23:25:56 +0100 | <jackdk> | s/the other/another/ |
2021-11-25 23:25:56 +0100 | <hololeap> | it's a html/xml parsing library |
2021-11-25 23:26:07 +0100 | zer0bitz | (~zer0bitz@dsl-hkibng31-54fabc-15.dhcp.inet.fi) (Ping timeout: 268 seconds) |
2021-11-25 23:26:08 +0100 | <dsal> | ah, I've probably used it. |
2021-11-25 23:26:19 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) |
2021-11-25 23:26:36 +0100 | <dsal> | I've done some sloppy in html in haskell, I think. Definitely a bit of XML. But only a little bit because I don't go to bad neighborhoods very often. |
2021-11-25 23:27:07 +0100 | <hololeap> | I busted something out that removed all the javascript off a bunch of downloaded html in like 15 minutes. I doubt I could have done it that fast in haskell, and I don't understand why. I hadn't used the library in while, either. |
2021-11-25 23:27:17 +0100 | <jackdk> | no, but that's more because i tend not to have to do that sort of thing. I haven't had much fun with either hxt or xml-conduit, but were I to do it again today I would probably reach for lens |
2021-11-25 23:27:27 +0100 | <Athas> | jackdk: I'm surprised there is not ready machinery to handle this. I'd expect everyone who develops Haskell on NixOS with Emacs to run into this. |
2021-11-25 23:27:46 +0100 | <Athas> | Maybe there are just not that many of those. |
2021-11-25 23:28:06 +0100 | <jackdk> | I use ghcid (though at some point i want to wire lsp support into my emacs) and I use .dir-locals.el to drive this. I can pastebin a snippet, if you'd like? |
2021-11-25 23:28:06 +0100 | <dsal> | hololeap: I had to grab some crap out of html here: https://github.com/dustin/tesla/blob/master/src/Tesla.hs#L122 |
2021-11-25 23:28:21 +0100 | <monochrom> | Unpopular opinion but the arrow-based interface of hxt is pretty intuitive to me. |
2021-11-25 23:29:27 +0100 | <monochrom> | But at the meta level, I reckon that Haskellers no longer care about html and xml, so there hasn't been any improvement or innovation for years. |
2021-11-25 23:30:04 +0100 | <mreh> | monochrom: because SPAs are so popular? |
2021-11-25 23:30:15 +0100 | <monochrom> | I don't know what's SPA. |
2021-11-25 23:30:21 +0100 | <mreh> | single page application |
2021-11-25 23:30:35 +0100 | <dsal> | My hot tub's heat control relay is broken. |
2021-11-25 23:30:55 +0100 | <monochrom> | But all the Haskell webdevs rave about various json solutions instead of html solutions. |
2021-11-25 23:31:33 +0100 | <monochrom> | or s/json/RESTful API/ |
2021-11-25 23:31:48 +0100 | deadmarshal | (~deadmarsh@95.38.117.164) (Ping timeout: 256 seconds) |
2021-11-25 23:32:10 +0100 | <mreh> | does anyone know how to write a beam database backend? |
2021-11-25 23:32:14 +0100 | <monochrom> | A decade ago Haskellers did not have a lot of webdevs but there were a lot of html scrapers. |
2021-11-25 23:32:29 +0100 | <monochrom> | Now there are no html scrapers but a lot of webdevs and "api" people. |
2021-11-25 23:32:36 +0100 | <mreh> | beam-mysql is behind beam-core and I'd really like to get it to compile with a recent snapshot |
2021-11-25 23:33:03 +0100 | [itchyjunk] | (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection) |
2021-11-25 23:33:16 +0100 | <mreh> | monochrom: I'm actually scraping HTML with haskell right now |
2021-11-25 23:33:21 +0100 | tpefreedom | (~tpefreedo@user/tpefreedom) |
2021-11-25 23:33:42 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection) |
2021-11-25 23:34:07 +0100 | jpds | (~jpds@gateway/tor-sasl/jpds) |
2021-11-25 23:34:10 +0100 | <mreh> | what are people using to develop their APIs now? I really like servant |
2021-11-25 23:34:18 +0100 | <monochrom> | On the technical side, although every Arrow instance in hxt is also a Monad instance, the arrow mode of thinking, or rather, the Klesli arrow view of >=>, makes xml scraping code look really like what XPath dreams of. The code reads like a path. That's what makes me like it. |
2021-11-25 23:34:27 +0100 | <hololeap> | hm, now that I look at my ruby script, I wonder if the language's built-in syntactic for PCREs and maps makes it more suitable for expressing HTML parsing, without taking the time to import 20 modules |
2021-11-25 23:34:44 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
2021-11-25 23:35:39 +0100 | <dsal> | mreh: I like scotty. I've never intentionally used servant, but this project is. |
2021-11-25 23:35:51 +0100 | <hololeap> | (if anyone is curious, http://sprunge.us/SmPRne) |
2021-11-25 23:35:52 +0100 | <dsal> | "this project" == people at work. |
2021-11-25 23:36:21 +0100 | tpefreedom | (~tpefreedo@user/tpefreedom) (Leaving) |
2021-11-25 23:37:24 +0100 | <mreh> | actually using haskell at work, I can only dream |
2021-11-25 23:37:45 +0100 | <mreh> | I'll have a look at scotty |
2021-11-25 23:38:01 +0100 | <monochrom> | Stay tuned for the next horror story dsal tells you about coworkers though >:) |
2021-11-25 23:38:55 +0100 | <mreh> | if only they listened |
2021-11-25 23:38:58 +0100 | <hololeap> | ruby really is a fun language, but I will never make anything "serious" with it again |
2021-11-25 23:39:07 +0100 | <dsal> | haha. servant is a funny one because they're all about "simple haskell" but like, good luck finding a definition of that. Many I found suggest not to use servant. |
2021-11-25 23:39:11 +0100 | zebrag | (~chris@user/zebrag) |
2021-11-25 23:39:15 +0100 | <monochrom> | Apparently humans are still humans. Coworkers who have agreed to switch to Haskell still preserve previous idiosyncracies, superstitious ideologies, and cargo culting. |
2021-11-25 23:39:52 +0100 | <dsal> | Yeah. I do generally prefer arguing over mostly good tools vs. just not having any good tools to argue over. |
2021-11-25 23:39:58 +0100 | <hololeap> | what in the world does "cargo culting" mean in this context? |
2021-11-25 23:40:16 +0100 | <dsal> | Generally just doing X because X is the right thing to do.. |
2021-11-25 23:40:24 +0100 | <dsal> | Tautologically speaking. |
2021-11-25 23:40:39 +0100 | <monochrom> | Blindly insisting on long identifier names, for example. |
2021-11-25 23:40:48 +0100 | <jackdk> | "cargo culting" - only using stuff that's been rewritten in rust ;-) |
2021-11-25 23:40:54 +0100 | <dsal> | ha |
2021-11-25 23:40:54 +0100 | <monochrom> | hahaha |
2021-11-25 23:41:13 +0100 | <hololeap> | isn't that also known as a "style guide"? |
2021-11-25 23:41:30 +0100 | <monochrom> | IMO that's orthogonal. |
2021-11-25 23:41:42 +0100 | <dsal> | Eh, sort of. Declaring something is Better from an authority needs an argument. |
2021-11-25 23:42:13 +0100 | <hololeap> | that's fair. although sometimes consistency is what matters and so _something_ has to be the pattern to follow |
2021-11-25 23:42:25 +0100 | <dsal> | Don't use foldMap, don't use sum, don't use either, don't use unless, etc... are closer to cargo culting. |
2021-11-25 23:42:28 +0100 | <monochrom> | Given a style guide, one can still understand why the guide makes sense normally, and when to make exceptions. |
2021-11-25 23:42:56 +0100 | <monochrom> | Without a style guide, there are still a trillion "best practice"s to cargo-cult over. |
2021-11-25 23:43:02 +0100 | waleee | (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 260 seconds) |
2021-11-25 23:43:12 +0100 | pfurla | (~pfurla@2804:14d:5c81:4104:8d6b:77ca:adc:64ea) (Quit: gone to sleep. ZZZzzz…) |
2021-11-25 23:43:15 +0100 | <mreh> | "best practice" - makes my skin crawl every time |
2021-11-25 23:43:25 +0100 | <hololeap> | well, I can see how in general it could be a positive but taken too far it could be limiting |
2021-11-25 23:44:10 +0100 | <dsal> | I was suggesting foldr vs. a foldl' of a flipped thing and said foldr is probably a better thing and got linked to that lexi-lambda bug thing about why foldl' is better when you're going to definitely use everything. Big explanation. Also said it often doesn't matter. Like in this case where there were ~5 things. |
2021-11-25 23:44:26 +0100 | <dsal> | I end up rewriting stuff a lot because hlint blocks mycommit. |
2021-11-25 23:44:42 +0100 | <Rembane_> | dsal: I suppose you're not allowed to turn off hlint? |
2021-11-25 23:44:48 +0100 | <hololeap> | yeah that's lame |
2021-11-25 23:45:19 +0100 | <monochrom> | Bloggers die die die. |
2021-11-25 23:45:27 +0100 | <dsal> | Thing I used today that I had to rewrite: either, fromJust, error. In a test. Like, definitely fail if you can't do this setup thing that has to work. But OK, fine, it'll return a Maybe and then use the higher level error message thing to do roughly the same thing error does but I guess throwIO? |
2021-11-25 23:45:39 +0100 | <hololeap> | but, I also see the other side, where writing something in terms of some super-advanced categorical viewpoint might make the code really hard to understand to outsiders |
2021-11-25 23:45:41 +0100 | <dsal> | Turning of hlint will let me commit, but it'll still fail CI |
2021-11-25 23:46:09 +0100 | <dsal> | hololeap: my "that's too fancy" thing right now is a record with a type variable instead of having two ~identical records. |
2021-11-25 23:46:26 +0100 | <hololeap> | haha |
2021-11-25 23:46:34 +0100 | <dsal> | Except the fields have different names and you have to copy all the values over and you have to write a test that makes sure you copied all the values over, etc... |
2021-11-25 23:47:03 +0100 | Guest17 | (~Guest17@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 256 seconds) |
2021-11-25 23:47:19 +0100 | <dsal> | But forest for trees. I wrote a test for the actual parser and found that 4/9 of the things being parsed couldn't take the actual input they expect. |
2021-11-25 23:51:55 +0100 | <dsal> | I generally get lectured for writing a function in a test instead of copying data structures over (because good test code and good application code don't look similar). It's kind of funny. OK. But also you didn't write test coverage for this so maybe your principles can be oncall. |
2021-11-25 23:52:02 +0100 | myShoggoth | (~myShoggot@97-120-85-195.ptld.qwest.net) (Ping timeout: 268 seconds) |
2021-11-25 23:53:09 +0100 | merijn | (~merijn@83-160-49-249.ip.xs4all.nl) |
2021-11-25 23:53:17 +0100 | xff0x | (~xff0x@2001:1a81:5377:a800:360f:89df:3dda:3328) (Ping timeout: 250 seconds) |
2021-11-25 23:54:02 +0100 | xff0x | (~xff0x@2001:1a81:5377:a800:3eaf:ed99:f02b:b5f2) |
2021-11-25 23:55:21 +0100 | Tuplanolla | (~Tuplanoll@91-159-69-50.elisa-laajakaista.fi) (Quit: Leaving.) |
2021-11-25 23:55:28 +0100 | <arahael> | mreh: Isn't scotty unmaintained? |
2021-11-25 23:56:55 +0100 | jmorris | (uid433911@id-433911.hampstead.irccloud.com) |
2021-11-25 23:57:02 +0100 | eggplantade | (~Eggplanta@2600:1700:bef1:5e10:d837:dc58:2ea7:10e8) |