Logs: liberachat/#haskell
| 2026-02-13 20:04:26 | → | caubert joins (~caubert@user/caubert) |
| 2026-02-13 20:05:19 | × | petrichor quits (~jez@user/petrichor) (Ping timeout: 245 seconds) |
| 2026-02-13 20:05:42 | × | bggd_ quits (~bgg@2a01:e0a:fd5:f510:3570:c65c:a9b1:87c4) (Remote host closed the connection) |
| 2026-02-13 20:07:16 | → | wickedjargon joins (~user@24.244.23.97) |
| 2026-02-13 20:13:22 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 20:18:20 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-13 20:21:37 | × | ent quits (~entgod@kapsi.fi) (Ping timeout: 264 seconds) |
| 2026-02-13 20:22:54 | → | ent joins (entgod@kapsi.fi) |
| 2026-02-13 20:29:03 | × | FANTOM quits (~fantom@87.75.185.177) (*.net *.split) |
| 2026-02-13 20:29:11 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 20:32:49 | → | FANTOM joins (~fantom@87.75.185.177) |
| 2026-02-13 20:34:17 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-13 20:40:07 | × | wickedjargon quits (~user@24.244.23.97) (Remote host closed the connection) |
| 2026-02-13 20:44:22 | × | FANTOM quits (~fantom@87.75.185.177) (*.net *.split) |
| 2026-02-13 20:44:41 | → | FANTOM joins (~fantom@87.75.185.177) |
| 2026-02-13 20:44:57 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 20:47:43 | × | FANTOM quits (~fantom@87.75.185.177) (Ping timeout: 265 seconds) |
| 2026-02-13 20:47:57 | → | lxsameer joins (~lxsameer@Serene/lxsameer) |
| 2026-02-13 20:49:41 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-13 20:50:10 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2026-02-13 20:56:13 | × | jonnie quits (~jonnie@user/jonnie) (Remote host closed the connection) |
| 2026-02-13 21:00:35 | → | FANTOM joins (~fantom@87.75.185.177) |
| 2026-02-13 21:00:43 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 21:01:52 | <bwe> | Is there some minimum working example of basic errors with Megaparsec you can recommend? I mean from `type Parser a = ...` to just calling `fail` in some parser with my custom error type. I find https://markkarpov.com/tutorial/megaparsec#parse-errors too confusing and haven't found any code example on github that is enlightening. |
| 2026-02-13 21:06:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-13 21:10:04 | <[exa]> | bwe: hey watsup :) |
| 2026-02-13 21:11:14 | → | fp joins (~Thunderbi@89-27-10-140.bb.dnainternet.fi) |
| 2026-02-13 21:12:36 | <[exa]> | re megaparsec errors, I always ended up with just labeling the parser properly because in the end I didn't invent any extra value to carry in the custom errors. Might be more interesting for recovery-ish parsers |
| 2026-02-13 21:14:29 | × | peterbecich quits (~Thunderbi@71.84.33.135) (Ping timeout: 245 seconds) |
| 2026-02-13 21:16:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 21:16:30 | <mauke> | fail takes a string; you don't get to fail with a custom error type |
| 2026-02-13 21:18:34 | <mauke> | https://markkarpov.com/tutorial/megaparsec#parse-errors:~:text=custom%20parse%20error |
| 2026-02-13 21:18:37 | × | sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937) |
| 2026-02-13 21:18:43 | <mauke> | looks reasonable |
| 2026-02-13 21:19:04 | × | lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 245 seconds) |
| 2026-02-13 21:21:09 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 245 seconds) |
| 2026-02-13 21:32:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 21:34:55 | × | acidjnk quits (~acidjnk@p200300d6e700e568400d7056540e4618.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2026-02-13 21:36:48 | → | peterbecich joins (~Thunderbi@71.84.33.135) |
| 2026-02-13 21:39:01 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-13 21:45:28 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 2026-02-13 21:50:19 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 21:52:55 | → | ElementalFluorin joins (~Elemental@2a02:3035:613:b707:f5e7:32a2:68a3:74db) |
| 2026-02-13 21:53:01 | → | gorignak joins (~gorignak@user/gorignak) |
| 2026-02-13 21:53:33 | <ElementalFluorin> | So, what’s the quickest way to get my cabal project to run in the browser? (It uses SDL2) |
| 2026-02-13 21:55:08 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 252 seconds) |
| 2026-02-13 21:56:40 | <ElementalFluorin> | GHC’s documentation seems to assume Windows or something else that tries to not integrate with the package manager as is typical for Winodws. But I’m running Gentoo, so I really would like to avoid things that without windows would not even exist, like ghcup. Or manual building. |
| 2026-02-13 21:57:14 | <monochrom> | ghcup exists on Linux. Actually even better than in Windows. |
| 2026-02-13 21:57:58 | <monochrom> | Actually ghcup was written for Linux first. (It was even a bash script back then.) |
| 2026-02-13 21:58:32 | <tomsmeding> | ElementalFluorin: I'm not sure where you got the information that GHC documentation suggests Windows. Windows support exists, and Haskell works fine on Windows, but only with a Linux emulation layer called MinGW. The platform where GHC is most at home is Linux. |
| 2026-02-13 21:59:41 | <haskellbridge> | <maerwald> Wake me up when gentoo gets an unbroken package manager |
| 2026-02-13 21:59:54 | <monochrom> | heh |
| 2026-02-13 21:59:59 | → | target_i joins (~target_i@user/target-i/x-6023099) |
| 2026-02-13 22:00:23 | <tomsmeding> | is it more broken than the situation on Windows? Last I looked, it was a challenge to get GHC and Git to work in the same terminal session |
| 2026-02-13 22:00:35 | <geekosaur> | the claim wasn't "windows", it was "don't use the package manager". which is correct on all platforms, because the package manager's haskell (and perl and python and …) serves the packagers, not developers |
| 2026-02-13 22:01:36 | × | gorignak quits (~gorignak@user/gorignak) (Quit: quit) |
| 2026-02-13 22:01:37 | × | ElementalFluorin quits (~Elemental@2a02:3035:613:b707:f5e7:32a2:68a3:74db) (Ping timeout: 272 seconds) |
| 2026-02-13 22:01:41 | <tomsmeding> | lol |
| 2026-02-13 22:01:47 | → | ElementalFluorin joins (~Elemental@2a02:3035:613:b707:f5e7:32a2:68a3:74db) |
| 2026-02-13 22:02:01 | <geekosaur> | you can still break a debian/ubuntu installation pretty badly with a global install of an unexpected version of the wrong perl module(s) |
| 2026-02-13 22:02:05 | ElementalFluorin | is now known as FluoridinatedFlu |
| 2026-02-13 22:02:23 | <geekosaur> | the same with python used to be true of fedora untill they started installing a private python setup just for their tools to use |
| 2026-02-13 22:02:59 | <tomsmeding> | isn't this the same with any language runtime that tries to have its own global package database? NodeJS (npm) has the same issue |
| 2026-02-13 22:03:06 | <geekosaur> | yes |
| 2026-02-13 22:03:53 | <geekosaur> | so the real moral here is "regardless of language, don't trust the global package manager if you want to do development, because those packages aren't there for your use |
| 2026-02-13 22:03:56 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 252 seconds) |
| 2026-02-13 22:04:07 | <geekosaur> | " |
| 2026-02-13 22:04:22 | <tomsmeding> | or: if you use a package manager that is not the system package manager, don't use it to globally install stuff |
| 2026-02-13 22:04:41 | <tomsmeding> | (ex: npm, pip, the perl things, etc.) |
| 2026-02-13 22:05:14 | <geekosaur> | that also, but you're also still stuck with that the global package manager isn't guaranteed to e.g. install recent enough versions of things you might want, it installs dependencies for whatever versions of end user packages they want to package |
| 2026-02-13 22:05:19 | → | prdak joins (~Thunderbi@user/prdak) |
| 2026-02-13 22:05:31 | <tomsmeding> | right |
| 2026-02-13 22:06:06 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-02-13 22:07:06 | <geekosaur> | also why ghcup (and before it stack), rustup, etc. exist |
| 2026-02-13 22:07:58 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2026-02-13 22:08:24 | <FluoridinatedFlu> | geekosaur: It’s better to see it like this: Your development *staging* area is not your *production* area. Don’t assume *anything* about your production area. Ideally, your staging area should be entirely its own namespace, chroot, everything. I learned that when trying to make a “OS” out of just the LInux kernel and a Haskell program as |
| 2026-02-13 22:08:24 | <FluoridinatedFlu> | init. :) |
| 2026-02-13 22:09:01 | <FluoridinatedFlu> | OSes should not allow other package managers that work around the OS at all. |
| 2026-02-13 22:09:25 | <FluoridinatedFlu> | They should provide converters like hackport. |
| 2026-02-13 22:09:29 | <geekosaur> | uh, no, that's the reverse of what a developer needs, unless your idea of a prerequisite for development is to build your own OS |
| 2026-02-13 22:09:58 | <geekosaur> | hackport etc. aren't enough unless your OS is nixos |
| 2026-02-13 22:09:59 | × | prdak quits (~Thunderbi@user/prdak) (Ping timeout: 252 seconds) |
| 2026-02-13 22:10:29 | <geekosaur> | (i.e. supports multiple versions of things concurrently installed and the OS gets to stick to what it wants without disturbing your work) |
| 2026-02-13 22:10:37 | <FluoridinatedFlu> | geekosaur: No, I think we misunderstand each other. Basically I’m saying by having to actually declare all your dependencies and assumptions in your installer or whatever, you won’t fall into the pit of your program assuming things that it shouldn’t. |
| 2026-02-13 22:11:07 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-02-13 22:11:08 | <geekosaur> | did you by any chance read what started this discussion? |
| 2026-02-13 22:11:15 | × | fp quits (~Thunderbi@89-27-10-140.bb.dnainternet.fi) (Ping timeout: 244 seconds) |
| 2026-02-13 22:11:17 | <FluoridinatedFlu> | geekosaur: A typical case is websites that assumed the background was white, and only set the font to black. Resulting in black on black text in dark mode, until that became a thing for everyone else too. |
| 2026-02-13 22:11:52 | <mauke> | geekosaur: not just read, but also wrote! |
| 2026-02-13 22:12:26 | <FluoridinatedFlu> | Well, that’s precisely when my client lost the connection, it seems. XD |
| 2026-02-13 22:12:44 | <mauke> | we have public logs, see /topic |
| 2026-02-13 22:12:59 | <FluoridinatedFlu> | I thought they were replies to my pre-connection-break questions. |
| 2026-02-13 22:13:06 | <mauke> | yes |
| 2026-02-13 22:13:27 | <geekosaur> | okay, so did I completely misunderstand the thrust of "Windows or something else that tries to not integrate with the package manager"? your current discussion doesn't seem to mesh with its implication |
| 2026-02-13 22:13:55 | <FluoridinatedFlu> | Ah, thanks |
| 2026-02-13 22:14:53 | <tomsmeding> | geekosaur: I think they mean this: 1. a program should declare all its dependencies and the system should (somehow) ensure that you get no more than you declare. 2. The system package manager is suited for this job. 3. Hence, all development tools should be a shim (ish) over the system package manager. |
| 2026-02-13 22:15:02 | <tomsmeding> | FluoridinatedFlu: is that sort of accurate? |
| 2026-02-13 22:15:15 | <monochrom> | That would be called "nix". |
| 2026-02-13 22:15:26 | <tomsmeding> | (1.) sounds like you should be a nix user; (2.) _really_ sounds like you should be a nix user; (3.) is a logical consequence once you're a nix user |
| 2026-02-13 22:15:30 | <tomsmeding> | :D |
All times are in UTC.