Home liberachat/#haskell: Logs Calendar

Logs: liberachat/#haskell

←Prev  Next→ 1,799,013 events total
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.