Home freenode/#haskell: Logs Calendar

Logs: freenode/#haskell

←Prev  Next→ 502,152 events total
2021-05-04 11:51:37 <maerwald> merijn: no no... I'm not saying we can reasonably revert revisions
2021-05-04 11:51:43 <maerwald> I'm saying they were a mistake though
2021-05-04 11:51:56 <merijn> maerwald: The whole reason we need revisions is because people keep refusing to to add upperbounds at all, let alone proper PVP ones
2021-05-04 11:52:12 <merijn> maerwald: And your solution is "it's not a problem if you have proper PVP bounds"?
2021-05-04 11:52:30 <merijn> If we had that, we wouldn't need revisions in the first place
2021-05-04 11:52:50 supercoven_ joins (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-05-04 11:52:50 × supercoven_ quits (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Max SendQ exceeded)
2021-05-04 11:53:05 supercoven_ joins (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi)
2021-05-04 11:53:18 <maerwald> in-place updates have been frowned upon by anyone doing packaging in the last 30 years... we've successfully used revision bumps (as part of the actual package version) to fix metadata updates
2021-05-04 11:53:29 __minoru__shirae joins (~shiraeesh@46.34.207.226)
2021-05-04 11:53:38 <maerwald> I can't see why haskell would be special here
2021-05-04 11:53:52 <merijn> maerwald: The manpower to bump everything does not exist
2021-05-04 11:54:10 <joel135> What's PVP?
2021-05-04 11:54:37 <hpc> package versioning policy
2021-05-04 11:54:42 <joel135> Ok
2021-05-04 11:54:52 <hpc> https://pvp.haskell.org/
2021-05-04 11:55:45 <cub3s_> thanks to you today i realized i was barking up a wrong nix tree. turns out i don't need nix. i don't need stack either. all i need: cabal-install and ghc of my choice.
2021-05-04 11:55:46 × supercoven quits (~Supercove@dsl-hkibng31-58c384-213.dhcp.inet.fi) (Ping timeout: 240 seconds)
2021-05-04 11:55:48 <cub3s_> thanks a lot
2021-05-04 11:56:33 <cub3s_> btw i sadly noticed cryptonite doesn't follow pvp
2021-05-04 11:56:36 <cub3s_> causing some pain
2021-05-04 11:57:26 × esp32_prog quits (~esp32_pro@89.45.7.186) (Ping timeout: 240 seconds)
2021-05-04 11:57:55 <maerwald> merijn: you don't necessarily need mass updates... e.g. hackage could reject packages that pin micro versions
2021-05-04 11:59:52 <yushyin> for reference in cargo/crates.io you can mark a published package as 'yunk', thus it is not considered in future build plans. No revisions and it seems to work for them.
2021-05-04 12:00:15 drbean_ joins (~drbean@TC210-63-209-53.static.apol.com.tw)
2021-05-04 12:00:27 <maerwald> and then, as I've explained many times (again, this is what distros do since decades)... you could have CI that tests reverse dependencies (just the solving) when you release a new major API version
2021-05-04 12:01:09 <maerwald> you won't have 100% coverage, but well
2021-05-04 12:01:20 <maerwald> (due to flags/arches/...)
2021-05-04 12:01:43 <merijn> yushyin: revision are just "selective yunking" :p
2021-05-04 12:02:35 <maerwald> yushyin: yes, that's more reasonable
2021-05-04 12:02:38 <merijn> yushyin: I mean "foo-1.0.0" is fine in principle, just not with "bar-2.0" so why invalidate it entirely, if you can just invalidate it in combination with bar-2.0
2021-05-04 12:03:33 <maerwald> yushyin: it also maintains the invariant that a tarball is a self-contained entity and a version fully describes the package
2021-05-04 12:03:49 <maerwald> revisions are just a dirty hack
2021-05-04 12:04:06 <maerwald> but then again, semver has actual revisions, PVP doesn't
2021-05-04 12:04:31 royal_screwup213 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9)
2021-05-04 12:07:02 ddellacosta joins (ddellacost@gateway/vpn/mullvad/ddellacosta)
2021-05-04 12:09:12 × royal_screwup213 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds)
2021-05-04 12:09:27 Deide joins (~Deide@217.155.19.23)
2021-05-04 12:10:53 urodna joins (~urodna@unaffiliated/urodna)
2021-05-04 12:11:58 <maerwald> now the only way to "pin" a revision is to pin the revision of ALL packages (hackage index)
2021-05-04 12:12:01 × ddellacosta quits (ddellacost@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 252 seconds)
2021-05-04 12:12:07 raym joins (~ray@45.64.220.116)
2021-05-04 12:12:21 <maerwald> stack has a way to pin a revision, but it's really against PVP
2021-05-04 12:12:40 <maerwald> so not sure what's good about this situation
2021-05-04 12:12:53 st8less joins (~st8less@2603:a060:11fd:0:ca9e:ebe6:5380:afd8)
2021-05-04 12:14:16 × olligobber quits (olligobber@gateway/vpn/privateinternetaccess/olligobber) (Ping timeout: 268 seconds)
2021-05-04 12:16:07 todda7 joins (~torstein@2a02:587:3724:f30b:d88b:b67e:116b:c170)
2021-05-04 12:16:14 × star_cloud quits (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com) (Ping timeout: 260 seconds)
2021-05-04 12:16:22 × cub3s_ quits (bifunc2@gateway/vpn/protonvpn/bifunc2) (Quit: Leaving)
2021-05-04 12:17:11 × cheater quits (~user@unaffiliated/cheater) (Ping timeout: 240 seconds)
2021-05-04 12:17:26 <tdammers> at least pvp has a somewhat clear definition of what those numbers mean
2021-05-04 12:17:32 bis0lini joins (~bis0lini@87.254.161.69)
2021-05-04 12:17:42 thblt joins (~thblt@unaffiliated/thblt)
2021-05-04 12:19:20 <maerwald> yeah, haskell specific meaning
2021-05-04 12:19:50 <tdammers> of course. that's a big downside, it only really makes sense for languages with the same import/export/module semantics as Haskell
2021-05-04 12:19:53 <maerwald> I haven't made up my mind whether that's a doog thing
2021-05-04 12:20:01 cheater joins (~user@unaffiliated/cheater)
2021-05-04 12:20:02 <maerwald> *good
2021-05-04 12:20:12 <tdammers> IMO the biggest issue with pvp is that it's still down to manual diligence
2021-05-04 12:20:27 <merijn> Pretty sure everyone wants a machine based PVP
2021-05-04 12:20:33 <maerwald> there seems to be a correlation between inhalation of soldering flux and my grammar...
2021-05-04 12:20:35 <merijn> but making that is...non-trivial
2021-05-04 12:20:44 <tdammers> merijn: indeed.
2021-05-04 12:20:50 heatsink joins (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net)
2021-05-04 12:20:52 <merijn> Entirely unrelatedly
2021-05-04 12:21:03 <yushyin> btw. I also think it's just more common in cargo to use the semver operator '^x.y.z' (like cabals '>= ...') but in cargo the ^ operator is the default. if you specify = "x.y.y" it will be interpreted as "^x.y.z"
2021-05-04 12:21:15 <merijn> Do any of you guys know if there's a convenient standard interface for doing ARP lookups?
2021-05-04 12:21:25 <maerwald> yushyin: yeah, that's a preety nice hack imo
2021-05-04 12:22:09 <merijn> Before I go through the insanity of writing my own ARP requests using raw sockets... >.>
2021-05-04 12:22:14 <tdammers> I even suspect that a "machine based pvp" is practically impossible in Haskell, given the existence of TH and CPP and such
2021-05-04 12:22:32 star_cloud joins (~star_clou@ec2-34-220-44-120.us-west-2.compute.amazonaws.com)
2021-05-04 12:22:33 <merijn> tdammers: CPP needs to die anyway
2021-05-04 12:22:52 <tdammers> merijn: yes, but not until the remaining use cases have been dealt with
2021-05-04 12:22:57 <merijn> It's completely untenable
2021-05-04 12:23:13 <merijn> tdammers: Oh, we can probably keep most of the current functionality and semantics
2021-05-04 12:23:23 <maerwald> merijn: apple thought so too with swift (no CPP)... and I can tell you, you won't like it
2021-05-04 12:23:24 <tdammers> I'd even argue that reusing CPP as a source preprocessor language for Haskell was a mistake
2021-05-04 12:23:27 <merijn> We should just built it into GHC and not pretend it's CPP
2021-05-04 12:23:36 <merijn> tdammers: We don't use it
2021-05-04 12:23:40 <merijn> That's the problem
2021-05-04 12:24:01 <tdammers> I'm not talking about CPP the program, I'm talking about using CPP syntax
2021-05-04 12:24:32 <merijn> It's on my list of pet problems I will work on whenever someone wants to pay me to work on GHC or whenever I have time somewhere in the next decade :p
2021-05-04 12:24:50 <yushyin> like you said with revisions, it is sometimes a 'necessary evil' :P
2021-05-04 12:24:55 <merijn> yushyin: No
2021-05-04 12:25:11 <merijn> yushyin: CPP is different in that we are setting ourselves up for disaster
2021-05-04 12:25:13 × heatsink quits (~heatsink@108-201-191-115.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 252 seconds)
2021-05-04 12:25:19 <merijn> There is no sane way to make CPP work with Haskell
2021-05-04 12:25:27 × Zao_ quits (~Zao_@185.163.110.100) (Remote host closed the connection)
2021-05-04 12:25:35 <merijn> Enabling CPP *will* make whole bunches of valid Haskell code fail to compile
2021-05-04 12:25:48 <merijn> The CPP tokenization rules are fundamentally incompatible with Haskell
2021-05-04 12:25:56 nineonine joins (~nineonine@2604:3d08:7783:f200:10b9:8c10:5b66:dc51)
2021-05-04 12:25:57 <maerwald> the most annoying thing about CPP is that it breaks so many tools
2021-05-04 12:26:03 <tdammers> which is exactly why I'm saying that using CPP syntax for preprocessing Haskell code was not the right choice
2021-05-04 12:26:04 <merijn> We already need use crazy legacy/-traditional switches to make GCC/clang work
2021-05-04 12:26:29 <maerwald> find me a source code prettifier that can handle CPP (correctly) :p
2021-05-04 12:26:39 <merijn> tdammers: CPP with Haskell specific tokenisation would be fine, and probably function unchanged for 98% of Hackage uses
2021-05-04 12:26:47 <tdammers> on a completely unrelated side note, the semver spec is full of condescending bullshit
2021-05-04 12:27:17 <merijn> Versioning is hell, but that's a boring topic. Let's get back to my question: How do I do ARP lookups? >.>
2021-05-04 12:27:31 <maerwald> perl did some funny stuff with versioning
2021-05-04 12:28:06 <yushyin> please don't start with that mess :D

All times are in UTC.