Logs: freenode/#haskell
| 2021-03-27 03:33:03 | × | solvr quits (57e3c46d@87.227.196.109) (Quit: Connection closed) |
| 2021-03-27 03:33:05 | <curiousgay> | https://pvp.haskell.org/ it's similar to semver, but I don't understand the need for number A in A.B.C |
| 2021-03-27 03:33:32 | <int-e> | curiousgay: optics |
| 2021-03-27 03:33:48 | <int-e> | you push the major version number all the time |
| 2021-03-27 03:34:15 | <int-e> | but sometimes you reach a milestone in development... and want to mark that visibly |
| 2021-03-27 03:34:29 | <curiousgay> | like EPOCH? |
| 2021-03-27 03:34:50 | <int-e> | epoch, sure, why not |
| 2021-03-27 03:34:58 | → | royal_screwup21 joins (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) |
| 2021-03-27 03:35:46 | × | electricityZZZZ quits (~electrici@135-180-3-82.static.sonic.net) (Quit: Leaving) |
| 2021-03-27 03:35:51 | <int-e> | at some point, the version number loses all its meaning |
| 2021-03-27 03:36:01 | <int-e> | Firefox is at 78 now, or is that 87 ;) |
| 2021-03-27 03:36:18 | → | Narinas joins (~Narinas@187-178-93-112.dynamic.axtel.net) |
| 2021-03-27 03:37:28 | <curiousgay> | now as I see it: GHC provides many libraries which break compatibility, but because those libraries are part of it they can't be built independently with specific version, which means every project must adjust to every GHC release |
| 2021-03-27 03:39:04 | <int-e> | yes, so after every release there's a tidal wave moving through the ecosystem as packages are getting updated in dependency order... |
| 2021-03-27 03:39:06 | × | royal_screwup21 quits (52254809@gateway/web/cgi-irc/kiwiirc.com/ip.82.37.72.9) (Ping timeout: 240 seconds) |
| 2021-03-27 03:40:23 | <curiousgay> | that's insane |
| 2021-03-27 03:40:33 | <curiousgay> | now I understand why GHC doesn't have competitors |
| 2021-03-27 03:41:58 | × | theDon quits (~td@muedsl-82-207-238-105.citykom.de) (Ping timeout: 240 seconds) |
| 2021-03-27 03:42:59 | <int-e> | <joke>Well it is a Microsoft product... it took a standard (Haskell98, Haskell2010), embraced it, and extended it until no competitor could catch up anymore.</joke> |
| 2021-03-27 03:43:03 | <curiousgay> | and I understand the need of stack, guh |
| 2021-03-27 03:43:13 | → | raistlin joins (~jmdurr@ool-182e0115.dyn.optonline.net) |
| 2021-03-27 03:43:26 | × | vpidurr quits (~jmdurr@ool-182e0115.dyn.optonline.net) (Ping timeout: 240 seconds) |
| 2021-03-27 03:45:03 | <curiousgay> | int-e: extended standard is not the problem I see here, the problem I see is the standard, GHC, breaks at every release, it's unstable, catching up to unstable standard is much more work than catching up to constantly extending standard |
| 2021-03-27 03:45:59 | → | cole-h joins (~cole-h@c-73-48-197-220.hsd1.ca.comcast.net) |
| 2021-03-27 03:47:40 | × | psygate quits (~psygate@unaffiliated/psygate) (Quit: Leaving) |
| 2021-03-27 03:48:25 | <curiousgay> | if those libraries were not part of GHC, I guess cabal could manage that by building different versions of libraries |
| 2021-03-27 03:49:47 | × | deviantfero quits (~deviantfe@190.150.27.58) (Ping timeout: 265 seconds) |
| 2021-03-27 03:50:27 | → | nbloomf_ joins (~nbloomf@2600:1700:ad14:3020:c907:a7d6:d23a:e6d6) |
| 2021-03-27 03:50:29 | <curiousgay> | because of this hell I'm unable to build both reflex and reactive-banana, I need FRP GUI library |
| 2021-03-27 03:50:34 | <dmj`> | curiousgay: GHC could easily have competitors on the backend, probably not the front end w/o going to dependent types. |
| 2021-03-27 03:51:27 | <curiousgay> | do you know any kind of FRP GUI that builds with GHC 8.10.4? |
| 2021-03-27 03:51:37 | <int-e> | curiousgay: there's a lot of moving parts between ghc, the rts, and the base libraries. template-haskell is another frequent source of friction, again explained because it's so close to the compiler |
| 2021-03-27 03:53:01 | × | nbloomf quits (~nbloomf@2600:1700:ad14:3020:8f7:80aa:e3bc:f79d) (Ping timeout: 258 seconds) |
| 2021-03-27 03:53:12 | <curiousgay> | int-e: internal moving parts that should not be dependencies of any packages are fine, but if they are externals that's a big problem |
| 2021-03-27 03:53:16 | <int-e> | And somehow, ghc keeps bringing enough improvements to the table that people keep updating to the latest or second-latest version. |
| 2021-03-27 03:55:02 | <dmj`> | curiousgay: GHC is a very old project, it predates LLVM, and operated under a different set of assumptions than we have today. |
| 2021-03-27 03:55:22 | <dmj`> | curiousgay: did you try netwire? |
| 2021-03-27 03:55:39 | <int-e> | curiousgay: you simply can't take base-4.12 and compile it with ghc-9.0.1 because its implementation has changed a lot even if the API hasn't. That's one of the reason why the two are bundled. |
| 2021-03-27 03:55:56 | <ephemient> | base also includes API improvements that can't have been done without breakages |
| 2021-03-27 03:56:14 | <ephemient> | I mean, I suppose it's arguable whether those should have been carried out, but I think the community mostly agrees |
| 2021-03-27 03:56:26 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 2021-03-27 03:56:38 | → | FinnElija joins (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) |
| 2021-03-27 03:56:38 | finn_elija | is now known as Guest59300 |
| 2021-03-27 03:56:38 | FinnElija | is now known as finn_elija |
| 2021-03-27 03:56:40 | <int-e> | curiousgay: there's agreement that base is too large and that some parts should be split off so that they can be updated independently. but progress on this front is small to non-existant. It's hard to disentangle the parts, and it's a thankless job to try. |
| 2021-03-27 03:57:13 | <curiousgay> | dmj`: does netwire have a sibling library for GUI that will build? |
| 2021-03-27 03:58:26 | <dmj`> | curiousgay: probably, but take a look at your life, do you really need a bleeding edge GHC right now, iPhone 10 is almost as good as iPhone 11 |
| 2021-03-27 03:59:02 | <dmj`> | curiousgay: you can also do the dirty work of the library maintainer and upgrade the libraries you want to use to be compatible with 8.10.4 |
| 2021-03-27 03:59:18 | <dmj`> | you might end up upgrading a lot of libraries though .. esp. for dep. heavy libraries |
| 2021-03-27 03:59:23 | <curiousgay> | int-e: ephemient: those breaking improvements make many projects rot quickly when maintainers loose their time or interest to keep up, that's not fair |
| 2021-03-27 03:59:43 | <sclv> | fair? |
| 2021-03-27 03:59:44 | <ephemient> | if it's a matter of just bumping bounds and they're in stackage, somebody will probably get around to it |
| 2021-03-27 04:00:21 | × | Guest59300 quits (~finn_elij@gateway/tor-sasl/finnelija/x-67402716) (Ping timeout: 240 seconds) |
| 2021-03-27 04:00:22 | <curiousgay> | I stopped using stack because there are less buildable packages than in cabal |
| 2021-03-27 04:00:49 | <sclv> | base has a 3 release policy that says it makes its changes in a very incremental way so that code can always be written that is backwards compatible with the last three releases |
| 2021-03-27 04:02:02 | <ephemient> | there are fewer packages total, but they all build, whereas that is not necessarily the case with cabal |
| 2021-03-27 04:02:15 | <ephemient> | stack has its upsides and downsides |
| 2021-03-27 04:05:54 | → | molehillish joins (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) |
| 2021-03-27 04:06:06 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 2021-03-27 04:07:42 | <DigitalKiwi> | kiwi@mvp-nixos ~ []$ nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [GPipe reflex reactive-banana])" -I nixpkgs-overlays=/home/kiwi/.config/nixpkgs/overlays --run "ghc-pkg list"|grep -E 'GPipe|reflex|reactive-banana' |
| 2021-03-27 04:07:42 | <DigitalKiwi> | GPipe-2.2.5 |
| 2021-03-27 04:07:42 | <DigitalKiwi> | reactive-banana-1.2.1.0 |
| 2021-03-27 04:07:43 | <DigitalKiwi> | reflex-0.8.0.0 |
| 2021-03-27 04:07:46 | <DigitalKiwi> | tada |
| 2021-03-27 04:08:21 | <curiousgay> | dmj`: what I need becomes confusing because if different packages are exclusively buildable with different versions of GHC that means I need to have many versions of GHC at once and be extremely careful while dealing with all of that |
| 2021-03-27 04:08:42 | <dmj`> | curiousgay: just use an old ghc, why do you need a bleeding edge one. You'll end up just writing a bunch of C anyways if you're building a game, haskell heap + GC is death for frame rate |
| 2021-03-27 04:09:13 | <DigitalKiwi> | [nix-shell:~]$ ghci |
| 2021-03-27 04:09:14 | <DigitalKiwi> | GHCi, version 8.10.4 |
| 2021-03-27 04:09:25 | <dmj`> | curiousgay: I think you're over thinking it |
| 2021-03-27 04:09:35 | <DigitalKiwi> | do i win a prize |
| 2021-03-27 04:09:39 | <curiousgay> | dmj`: performance is not important for minimal 2D game without animations |
| 2021-03-27 04:10:11 | × | stree quits (~stree@68.36.8.116) (Ping timeout: 240 seconds) |
| 2021-03-27 04:10:16 | <dmj`> | curiousgay: use netwire + SDL2 |
| 2021-03-27 04:10:21 | <DigitalKiwi> | for 1 bitcoin i will reveal the contents of ~/.config/nixpkgs/overlays |
| 2021-03-27 04:10:30 | <dmj`> | @package SDL2 |
| 2021-03-27 04:10:30 | <lambdabot> | https://hackage.haskell.org/package/SDL2 |
| 2021-03-27 04:10:35 | <dmj`> | @package netwire |
| 2021-03-27 04:10:35 | <lambdabot> | https://hackage.haskell.org/package/netwire |
| 2021-03-27 04:10:37 | × | molehillish quits (~molehilli@2600:8800:8d06:1800:f8ba:265:7129:d312) (Ping timeout: 276 seconds) |
| 2021-03-27 04:11:48 | <dmj`> | curiousgay: I just compiled an asteroids game that uses these 2 and it worked ... |
| 2021-03-27 04:11:56 | <dmj`> | it was 2D |
| 2021-03-27 04:12:36 | <curiousgay> | dmj`: eh, isn't a separate library required for making SDL reactive that will depend on both netwire and SDL? |
| 2021-03-27 04:13:00 | <DigitalKiwi> | better hurry though market's bearish the price will be 2 bitcoin soon |
| 2021-03-27 04:14:04 | <dmj`> | curiousgay: you don't need FRP, ever. Most games you play don't use it. But to answer your question, no, a separate library isn't required. |
| 2021-03-27 04:15:29 | <dmj`> | curiousgay: netwire doesn't use unsafePerformIO either |
| 2021-03-27 04:15:30 | <curiousgay> | my goal is learning |
| 2021-03-27 04:15:49 | <curiousgay> | so I need to learn FRP |
| 2021-03-27 04:16:45 | <desophos> | i have a function "chunk" that splits a list into multiple equal-length lists that uses splitAt. i'm refactoring my program from String to ByteString, which has its own splitAt implementation. what's the best way to reuse my chunk function for ByteString? take the splitting fn as an argument? write a "Chunkable" typeclass with instances for list and ByteString? i'm open to any suggestions, thanks! |
| 2021-03-27 04:16:52 | <desophos> | the function in question: https://paste.tomsmeding.com/rK72njri |
| 2021-03-27 04:21:00 | <dmj`> | curiousgay: this project uses netwire, opengl, sdl2, linear and compiled with 8.10.4 for me, https://github.com/ehofreiter/relativistic-asteroids/blob/master/package.yaml |
| 2021-03-27 04:22:29 | × | howdoi quits (uid224@gateway/web/irccloud.com/x-ppzodhfedmzajmuw) (Quit: Connection closed for inactivity) |
| 2021-03-27 04:22:41 | × | ph88 quits (~ph88@ip5f5af71a.dynamic.kabel-deutschland.de) (Ping timeout: 240 seconds) |
| 2021-03-27 04:23:32 | → | stree joins (~stree@68.36.8.116) |
| 2021-03-27 04:25:27 | → | ezrakilty joins (~ezrakilty@97-113-58-224.tukw.qwest.net) |
| 2021-03-27 04:25:47 | → | manjaro joins (~manjaro@cpe-172-90-196-184.socal.res.rr.com) |
| 2021-03-27 04:27:00 | × | manjaro quits (~manjaro@cpe-172-90-196-184.socal.res.rr.com) (Client Quit) |
| 2021-03-27 04:28:48 | <dmj`> | desophos: probably can't reuse it, could try a typeclass yea |
| 2021-03-27 04:29:11 | → | manjaro joins (~manjaro@cpe-172-90-196-184.socal.res.rr.com) |
| 2021-03-27 04:29:46 | × | ezrakilty quits (~ezrakilty@97-113-58-224.tukw.qwest.net) (Ping timeout: 240 seconds) |
| 2021-03-27 04:29:47 | <dmj`> | @package split |
All times are in UTC.