Logs: liberachat/#haskell
| 2026-03-15 19:38:08 | <gentauro> | wow, missed that one :o https://jupyter-xeus.github.io/xeus-haskell/lab/index.html |
| 2026-03-15 19:39:09 | → | emmanuelux joins (~em@user/emmanuelux) |
| 2026-03-15 19:46:18 | <haskellbridge> | <ijouw> I only noticed because i read through most of the microhs github issues/discussion page |
| 2026-03-15 19:46:26 | × | craunts795335385 quits (~craunts@152.32.99.2) (Ping timeout: 248 seconds) |
| 2026-03-15 19:47:46 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 2026-03-15 19:48:05 | <gentauro> | thx for sharing |
| 2026-03-15 19:50:18 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 2026-03-15 19:51:09 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 2026-03-15 19:53:12 | Lord_of_Life_ | is now known as Lord_of_Life |
| 2026-03-15 19:56:29 | × | jreicher quits (~joelr@user/jreicher) (Quit: In transit) |
| 2026-03-15 20:14:28 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2026-03-15 20:28:26 | → | michalz joins (~michalz@185.246.207.193) |
| 2026-03-15 20:33:09 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-15 20:37:54 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 265 seconds) |
| 2026-03-15 20:43:59 | × | wickedjargon quits (~user@S0106f89e28d5699a.vc.shawcable.net) (Remote host closed the connection) |
| 2026-03-15 20:44:54 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving) |
| 2026-03-15 20:48:10 | × | karenw quits (~karenw@user/karenw) (Remote host closed the connection) |
| 2026-03-15 20:48:30 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-15 20:51:57 | <sshine> | tomsmeding, I work somewhere where everyone has to use Windows. (fortunately, WSL has gotten better, and there is numtide/system-manager for Nix on Ubuntu) what I experience isn't that Windows is unmanageable, but rather that the average developer on Windows isn't the master of their own operating system, they more or less randomly use it and don't know what's under the hood, and so they can't help |
| 2026-03-15 20:52:03 | <sshine> | themselves when stuff breaks. |
| 2026-03-15 20:52:43 | <tomsmeding> | sshine: I see |
| 2026-03-15 20:52:57 | <tomsmeding> | and then because I don't know windows either, together we get no further |
| 2026-03-15 20:53:22 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 268 seconds) |
| 2026-03-15 20:53:31 | <newmind> | sshine: a lot of windows installation in a corporate settings are also managed, so it's not even that they are not interested in it, it's often simply not permitted |
| 2026-03-15 20:53:33 | <tomsmeding> | while WSL is fine, in the course we tried to let students work on windows native instead of in the VM |
| 2026-03-15 20:53:54 | <newmind> | (and with windows 11+ that more and more applies for private use too) |
| 2026-03-15 20:54:24 | <sshine> | WSL + VSCode's client-server thingy, you can have the developer environment in Linux and the GUI on Windows. |
| 2026-03-15 20:54:26 | <tomsmeding> | and on windows native you notice very acutely that lots of the tooling we're used to comes from the unix world, so e.g. getting a shell with ghc and git both available is a challenge |
| 2026-03-15 20:54:49 | <tomsmeding> | yep that's what we did in earlier years, it worked okay |
| 2026-03-15 20:55:13 | <sshine> | I didn't like devcontainers, but having the WSL VM be the server-side feels better. |
| 2026-03-15 20:55:13 | <tomsmeding> | you get issues like students having Github Desktop on the windows side and git on the linux side and them not agreeing on line endings and such |
| 2026-03-15 20:55:40 | <sshine> | yeah, line endings. I experience that Windows users don't know what that is. |
| 2026-03-15 20:56:11 | <tomsmeding> | earlier because we had heavy dependencies (we fixed that last year) we also had a dev container inside WSL, and then SSH access with git was extremely finicky |
| 2026-03-15 20:56:15 | <sshine> | for the projects I service at work, I try to stay consistent per-file. |
| 2026-03-15 20:56:27 | <tomsmeding> | "I try to stay consistent per file" the horror |
| 2026-03-15 20:58:05 | <mesaoptimizer> | https://hackage.haskell.org/package/time is this really the standard datetime library that Haskell users use? |
| 2026-03-15 20:58:09 | <sshine> | there are so many ways to garble line endings. people use all kinds of tools configured differently. I haven't seen two setups being the same. some do most things from PowerShell, but a few switch between WSL and PowerShell, and yet fewer use only WSL; but do the files live in Windows or in Linux? do we assume case sensitive filenames? |
| 2026-03-15 20:58:23 | <tomsmeding> | mesaoptimizer: generally, yes |
| 2026-03-15 20:58:50 | <newmind> | sshine: then you have wsl1 vs wsl2, which function completely differently |
| 2026-03-15 20:58:58 | <tomsmeding> | wsl1 shall not be used |
| 2026-03-15 20:59:02 | <mesaoptimizer> | I ask because `fromGregorian` docs state: " Invalid values will be clipped to the correct range, month first, then day." |
| 2026-03-15 20:59:16 | <mesaoptimizer> | which is a rather impressive silent failure |
| 2026-03-15 20:59:26 | <newmind> | oh, and if you really want to add another fun layer, add in cygwin too |
| 2026-03-15 21:00:05 | <tomsmeding> | mesaoptimizer: fromGregorianValid? |
| 2026-03-15 21:00:07 | <sshine> | mesaoptimizer, https://web.archive.org/web/20211225193627/https://jacobstanley.io/3-packages-you-need-to-know-about-before-processing-timestamps-in-haskell/ |
| 2026-03-15 21:02:09 | <sshine> | newmind, my students use Cygwin via "Git Bash" which comes with when you install git on Windows. |
| 2026-03-15 21:02:23 | <tomsmeding> | isn't that minGW? |
| 2026-03-15 21:02:27 | <sshine> | oh, right |
| 2026-03-15 21:02:33 | <tomsmeding> | a rather different beast :) |
| 2026-03-15 21:03:14 | <sshine> | I like how "Git Bash" kind of works in spite of all the brokenness of trying to marry Unix tools with Windows. |
| 2026-03-15 21:03:32 | <tomsmeding> | but do you have ghc in git bash? |
| 2026-03-15 21:03:32 | <newmind> | didn't microsoft include some unix tools/compability with windows itself once? |
| 2026-03-15 21:03:50 | → | jreicher joins (~joelr@user/jreicher) |
| 2026-03-15 21:04:01 | <davean> | sshine: Only one of those handles TAI, and only partially at that? |
| 2026-03-15 21:04:14 | <davean> | And if you care about time, you'll be using TAI so ... |
| 2026-03-15 21:05:27 | <tomsmeding> | I do not usually care about time enough to make the effort to deal with leap seconds |
| 2026-03-15 21:05:48 | × | fernando-basso quits (~fernando-@2a01:4f9:c012:63d3::1) (Ping timeout: 264 seconds) |
| 2026-03-15 21:06:31 | → | fernando-basso joins (~fernando-@2a01:4f9:c012:63d3::1) |
| 2026-03-15 21:08:07 | <geekosaur> | newmind, Windows 2000 had a POSIX subsystem. It didn't play along well with native stuff, didn't work well by itself, and was abandoned |
| 2026-03-15 21:08:22 | <geekosaur> | WSL2 exists but is hasically a single-seat Hyper-V |
| 2026-03-15 21:08:28 | <geekosaur> | *basically |
| 2026-03-15 21:08:39 | <newmind> | yeah, i seemed to recall something like that, and also that is was mostly a flop that got dropped |
| 2026-03-15 21:08:44 | <geekosaur> | (by default running Ubuntu but you can find instructions for installing other distros) |
| 2026-03-15 21:08:45 | <mesaoptimizer> | sshine: thanks |
| 2026-03-15 21:08:50 | <tomsmeding> | it's a VM in essentially all important ways |
| 2026-03-15 21:09:10 | <newmind> | and wsl1 is basically a reverse wine, right? |
| 2026-03-15 21:09:17 | <tomsmeding> | it just has a bit of polish like auto-mounting of its disk as a network drive on the windows side |
| 2026-03-15 21:09:17 | <geekosaur> | yes |
| 2026-03-15 21:09:19 | <tomsmeding> | yes |
| 2026-03-15 21:09:26 | → | francois_y joins (~Thunderbi@bras-vprn-toroon4839w-lp130-02-142-113-110-153.dsl.bell.ca) |
| 2026-03-15 21:09:29 | <geekosaur> | it also worked poorly, which is why WSL2 is a Hyper-V |
| 2026-03-15 21:09:54 | <mesaoptimizer> | tomsmeding: I did use `fromGregorianValid`, I was just dismayed by the existence of a function that fails silently. (and it exists in the `thyme` package with silent failure too) |
| 2026-03-15 21:09:58 | <newmind> | but also comes with all virtualization costs, and running an extra kernel, etc... good that ram got so inexpensive :P |
| 2026-03-15 21:10:31 | <geekosaur> | WSL1 was also a separate kernel; remember that modern Windows is a microkernel architecture |
| 2026-03-15 21:11:02 | <geekosaur> | WSL1 was a heavily hacked Linux single server running alongside the Windows microkernel services |
| 2026-03-15 21:12:02 | <newmind> | but the wsl1 applicaions run in the same memory space as windows executables? |
| 2026-03-15 21:12:03 | <geekosaur> | it wanted its own filesystem, in particular; you could access Windows files but via Samba IIRC |
| 2026-03-15 21:12:17 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Ping timeout: 244 seconds) |
| 2026-03-15 21:12:32 | <geekosaur> | yes |
| 2026-03-15 21:13:53 | <newmind> | so technically it might have even been the "better" approach, but comes with a whole lot of edge cases and compability to implement, while the wsl2/hypervisor approach basically fully works out of the box and you just need to implement how you interact with it |
| 2026-03-15 21:13:56 | <sshine> | WSL uses 9p |
| 2026-03-15 21:14:01 | <geekosaur> | compatibility was pretty poor |
| 2026-03-15 21:14:03 | <sshine> | WSL2, sorry |
| 2026-03-15 21:14:25 | <sshine> | which is great but slow |
| 2026-03-15 21:15:17 | × | francois_y quits (~Thunderbi@bras-vprn-toroon4839w-lp130-02-142-113-110-153.dsl.bell.ca) (Quit: francois_y) |
| 2026-03-15 21:15:32 | <geekosaur> | and yes, technically it couldl have been made to work better, but (a) would have been a massive effort (b) which would probably have needed to be redone every new kernel release, since rewiring a Linux standalone kernel as a single server is a massive undertaking |
| 2026-03-15 21:16:09 | → | somemathguy joins (~somemathg@user/somemathguy) |
| 2026-03-15 21:16:27 | <newmind> | you kind of see it in wine too, always playing catch-up with any api changes or new libraries/applications that expose new edge cases |
| 2026-03-15 21:19:17 | → | merijn joins (~merijn@host-cl.cgnat-g.v4.dfn.nl) |
| 2026-03-15 21:20:43 | <haskellbridge> | <ijouw> I only remember that using wsl git on windows filesystem failed (some while back, don't know if wsl2 was available yet). |
| 2026-03-15 21:20:45 | <haskellbridge> | My windows laptop is rarely used and somehow forgot how to strip executables (i think 32/64 bit mismatch). |
| 2026-03-15 21:24:19 | × | merijn quits (~merijn@host-cl.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2026-03-15 21:24:25 | <jreicher> | gentauro: Re teaching kids RPN; any particular reason that over PN? (I know RPN is more common, but I wonder what reasons people really have beyond popularity) |
| 2026-03-15 21:25:01 | <geekosaur> | RPN leads itself to simple stack-based implementations |
| 2026-03-15 21:25:12 | <jreicher> | PN does also. That's why I'm asking. |
| 2026-03-15 21:25:40 | <tomsmeding> | isn't it a control stack with PN and a data stack with RPN? |
| 2026-03-15 21:26:14 | <jreicher> | If you consider the operators on input to be control, then yes, but they're input... |
| 2026-03-15 21:27:25 | <tomsmeding> | what is the implementation you have in mind for PN? A stack of operators, and each number you see slots into the next available argument slot of the topmost stack entry; if that operator is now full, it becomes a number and falls down? |
| 2026-03-15 21:27:43 | <tomsmeding> | that's a least a _little_ more complicated than "a stack of numbers" |
| 2026-03-15 21:28:08 | × | Guest62t quits (~Guest62t@p200300ca8f3baa00c0ef77f2b149c10e.dip0.t-ipconnect.de) (Quit: Client closed) |
All times are in UTC.