Logs: liberachat/#haskell
| 2021-05-25 12:27:28 | <merijn> | Or at least make sure I can say "I told you so" later |
| 2021-05-25 12:27:45 | → | argento joins (~argent0@168.227.96.51) |
| 2021-05-25 12:27:50 | <merijn> | dminuoso: I wonder how people get this impression linux is "well engineered" |
| 2021-05-25 12:27:56 | <dminuoso> | Heh. |
| 2021-05-25 12:28:14 | <merijn> | Like, anyone who has dug through linux kernel code *and* other kernel code will know better |
| 2021-05-25 12:28:27 | <dminuoso> | It starts with "half the interfaces used in linux" is spread across a multitude of libraries controlled by completely different parties |
| 2021-05-25 12:28:39 | <hpc> | most people don't go that far down |
| 2021-05-25 12:28:39 | <merijn> | Linux is more the triumph of "if you throw enough engineers and money at a problem, you can make it go away" |
| 2021-05-25 12:28:40 | <dminuoso> | So there's not even a clear design, because there was nobody to have any design |
| 2021-05-25 12:28:57 | <Maxdamantus> | I wouldn't say that it's "well-engineered", but I think "bytes" has proven to be more universal than "16-bit code units" |
| 2021-05-25 12:29:00 | <hpc> | to be fair, being able to read my laptop's thermometers without writing a bunch of C or running a precompiled executable from some random non-https website is a breath of fresh air |
| 2021-05-25 12:29:33 | → | a6a45081-2b83 joins (~aditya@171.76.149.211) |
| 2021-05-25 12:29:33 | × | nan` quits (~nan`@rrcs-70-60-83-42.central.biz.rr.com) (Read error: Connection reset by peer) |
| 2021-05-25 12:29:36 | <Maxdamantus> | 16-bit code units is obviously a historical mistake. They used them because they thought 65536 characters were enough. |
| 2021-05-25 12:29:47 | <hpc> | it turns out 256 characters were enough :P |
| 2021-05-25 12:29:51 | → | nan` joins (~nan`@rrcs-70-60-83-42.central.biz.rr.com) |
| 2021-05-25 12:30:05 | <merijn> | Except that it's now UTf-16 and UCS-2 is just a subset of that |
| 2021-05-25 12:30:43 | <Maxdamantus> | when it turned out that wasn't the case and they had all this software based on 16-bit code units, they had to make some stupid multi-code-unit encoding, where the original point was to only use a single-code-unit encoding. |
| 2021-05-25 12:30:55 | <Maxdamantus> | if you wanted a multi-code-unit encoding, you should have just invented UTF-8. |
| 2021-05-25 12:31:15 | → | xwx joins (~george@user/george) |
| 2021-05-25 12:31:15 | × | nan` quits (~nan`@rrcs-70-60-83-42.central.biz.rr.com) (Read error: Connection reset by peer) |
| 2021-05-25 12:31:19 | <tomsmeding> | Maxdamantus: you and merijn are talking past each other |
| 2021-05-25 12:31:26 | → | nan` joins (~nan`@rrcs-70-60-83-42.central.biz.rr.com) |
| 2021-05-25 12:31:29 | <tomsmeding> | merijn is saying, having a consistent encoding enforced by the FS is good |
| 2021-05-25 12:31:36 | <tomsmeding> | you're saying: windows' choice of encoding is bad |
| 2021-05-25 12:31:49 | <tomsmeding> | (I don't know what windows' encoding actually is, so I'm taking your statements on faith) |
| 2021-05-25 12:31:54 | <tomsmeding> | you're not disagreeing :p |
| 2021-05-25 12:32:00 | <dminuoso> | merijn: In my experience, I found checking how stuff works in the linux kernel is an excercise in emotional control. Poorly written C code, very fractured design (in that you get confronted with so many different styles, often inside a singular module), sometimes extremely poorly documented code |
| 2021-05-25 12:32:04 | <Maxdamantus> | I don't think he's saying that. To the extent that he's said that, he is mistaken, because Windows doesn't enforce an encoding. |
| 2021-05-25 12:32:14 | → | hueso joins (~root@152.170.216.40) |
| 2021-05-25 12:32:40 | → | f33f046c-a02e joins (~aditya@171.76.149.211) |
| 2021-05-25 12:32:49 | <dminuoso> | ret -= 128; /* 30 is enough */ |
| 2021-05-25 12:32:52 | <dminuoso> | That was my most recent finding. |
| 2021-05-25 12:32:59 | <Maxdamantus> | Windows enforces an encoding as much as Linux enforces an encoding. There are some special code units ('/' vs '\\') and some special filenames ("." and ".." in Linux, additionally "con", "nul", etc in Windows). |
| 2021-05-25 12:33:03 | <dminuoso> | How stuff like that passes a review is beyond me |
| 2021-05-25 12:33:12 | × | a6a45081-2b83 quits (~aditya@171.76.149.211) (Client Quit) |
| 2021-05-25 12:33:30 | <Maxdamantus> | For the most part, Linux just lets you use arbitrary 8-bit code units and Windows lets you use arbitrary 16-bit code units. |
| 2021-05-25 12:34:06 | <Maxdamantus> | Windows also has various extra restrictions within the ASCII range. |
| 2021-05-25 12:34:22 | <Maxdamantus> | Neither enforces UTF-8 or UTF-16. |
| 2021-05-25 12:34:26 | <dminuoso> | And linux strict adherence to backwards compatibility keeps many APIs locked in poor ergonomics and experience. Since its more important that drivers or userland code must never change, its more worthwhile keeping ancient APIs alive. |
| 2021-05-25 12:34:53 | <dminuoso> | (Perhaps its admitting that there's a lot of stuff that would never be updated, should linux make backwards breaking changes?) |
| 2021-05-25 12:35:48 | <merijn> | I'm still angry about epoll >.> |
| 2021-05-25 12:35:56 | <merijn> | And will forever be |
| 2021-05-25 12:35:57 | <dminuoso> | heh |
| 2021-05-25 12:36:08 | → | betelgeuse6 joins (~john2gb@94-225-47-8.access.telenet.be) |
| 2021-05-25 12:36:08 | <merijn> | But that's probably more a topic for -offtopic :p |
| 2021-05-25 12:36:45 | betelgeuse6 | is now known as betelgeuse |
| 2021-05-25 12:37:21 | <Hecate> | betelgeuse: I want to read the comics now… |
| 2021-05-25 12:39:27 | × | tonyz quits (~tonyz@2a02:587:2805:3d8f:34c8:4ae2:aa52:cf49) (Quit: tonyz) |
| 2021-05-25 12:40:48 | <Maxdamantus> | Hm, Googled "windows filenames lone surrogates" and the first result happened to be where WTF-8 was invented: https://github.com/rust-lang/rust/issues/12056 |
| 2021-05-25 12:42:09 | Maxdamantus | thinks he recently invented an extension of WTF-8 that encodes UTF-8 errors as well as UTF-16 errors (particularly, for preserving JSON strings sourced from bytes that could be ill-formed UTF-8) |
| 2021-05-25 12:45:12 | <merijn> | That's not really WTF-8, though? That's "our API can't represent what the FS API guarantees" |
| 2021-05-25 12:45:42 | <Maxdamantus> | https://github.com/rust-lang/rust/issues/12056#issuecomment-55786546 |
| 2021-05-25 12:46:33 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
| 2021-05-25 12:46:56 | <Maxdamantus> | UTF-8 can't represent (in an obvious way) what the Windows FS API guarantees. |
| 2021-05-25 12:47:30 | → | Franciman joins (~francesco@host-80-180-196-134.pool80180.interbusiness.it) |
| 2021-05-25 12:47:36 | → | a6a45081-2b83 joins (~aditya@27.58.166.71) |
| 2021-05-25 12:47:36 | × | f33f046c-a02e quits (~aditya@171.76.149.211) (Read error: Connection reset by peer) |
| 2021-05-25 12:47:49 | × | pretty_dumm_guy quits (~trottel@92.223.89.152) (Quit: WeeChat 3.2-dev) |
| 2021-05-25 12:49:52 | <Maxdamantus> | (since UTF-8 just represents Unicode scalar values, but Windows filenames are not sequences of Unicode scalar values, but sequences of 16-bit numbers) |
| 2021-05-25 12:49:57 | → | matt7340 joins (~igloo@71.34.249.43) |
| 2021-05-25 12:51:46 | × | qbt quits (~edun@user/edun) (Ping timeout: 264 seconds) |
| 2021-05-25 12:52:01 | × | matt7340 quits (~igloo@71.34.249.43) (Remote host closed the connection) |
| 2021-05-25 12:52:23 | → | starlord joins (~starlord@c83-252-164-58.bredband.tele2.se) |
| 2021-05-25 12:52:23 | × | Morrow quits (~Morrow@147.161.9.201) (Read error: Connection reset by peer) |
| 2021-05-25 12:52:32 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 2021-05-25 12:55:37 | × | ddellacosta quits (~ddellacos@89.46.62.83) (Ping timeout: 272 seconds) |
| 2021-05-25 12:56:38 | → | coot joins (~coot@37.30.49.19.nat.umts.dynamic.t-mobile.pl) |
| 2021-05-25 12:56:56 | → | tsandstr joins (~tsandstr@cpe-98-5-88-45.buffalo.res.rr.com) |
| 2021-05-25 12:57:34 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 2021-05-25 12:57:55 | × | magthe quits (~magthe@c83-252-48-230.bredband.tele2.se) (Quit: WeeChat 3.1) |
| 2021-05-25 13:00:43 | × | a6a45081-2b83 quits (~aditya@27.58.166.71) (Quit: Konversation terminated!) |
| 2021-05-25 13:02:16 | × | cheater quits (~Username@user/cheater) (Quit: (BitchX) Abort Retry Fail) |
| 2021-05-25 13:03:07 | → | ddellacosta joins (~ddellacos@89.46.62.33) |
| 2021-05-25 13:05:02 | <starlord> | Hi! I'm trying to implement a lambda calculus interpreter with a catamorphism using the recursion-schemes package. I've managed to get everything working EXCEPT the Fix combinator. Given I have Covid I might not be the best thinker at the moment but I've spent two full days trying to figure this out and I'm completely stuck. I'd appreciate it super |
| 2021-05-25 13:05:02 | <starlord> | much if someone could eyeball my example and try to lead me in the right direction. |
| 2021-05-25 13:05:07 | <starlord> | https://gist.github.com/simonvpe/28973b45483c31fd030bfbc023178458 |
| 2021-05-25 13:05:31 | <starlord> | BTW the fix combinator is confusingly called `Rec` in my example |
| 2021-05-25 13:05:42 | × | v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Read error: Connection reset by peer) |
| 2021-05-25 13:06:10 | × | argento quits (~argent0@168.227.96.51) (Ping timeout: 264 seconds) |
| 2021-05-25 13:06:15 | → | v01d4lph4 joins (~v01d4lph4@122.160.65.250) |
| 2021-05-25 13:06:47 | → | m7340 joins (~m7340@71.34.249.43) |
| 2021-05-25 13:07:36 | × | m7340 quits (~m7340@71.34.249.43) (Remote host closed the connection) |
| 2021-05-25 13:08:40 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 2021-05-25 13:10:30 | → | cheater joins (~Username@user/cheater) |
| 2021-05-25 13:11:27 | × | v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Ping timeout: 272 seconds) |
| 2021-05-25 13:16:39 | → | stelleg joins (~george@c-69-254-151-147.hsd1.nm.comcast.net) |
| 2021-05-25 13:16:40 | → | lbseale_ joins (~lbseale@ip72-194-54-201.sb.sd.cox.net) |
| 2021-05-25 13:16:53 | → | drewr joins (~drew@2601:483:4100:4112:d91:d97:abf8:56ec) |
| 2021-05-25 13:16:56 | × | WikiLycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 2021-05-25 13:17:13 | → | tonyz joins (~tonyz@2a02:587:2805:3d8f:420f:42e1:ccdd:150f) |
| 2021-05-25 13:17:20 | <boxscape> | Wouldn't it make sense to provide a MonadFail (Either String) instance in base? |
| 2021-05-25 13:17:48 | → | itai joins (~itai@2a0d:6fc0:7bf:3a00:41db:b036:af30:4662) |
| 2021-05-25 13:18:10 | <merijn> | That'll give some super confusing type errors, though |
| 2021-05-25 13:18:12 | × | drewr quits (~drew@2601:483:4100:4112:d91:d97:abf8:56ec) (Remote host closed the connection) |
| 2021-05-25 13:18:30 | → | alx741 joins (~alx741@186.178.108.78) |
| 2021-05-25 13:18:30 | <merijn> | When you accidentally use a partial pattern in some other Either do block |
| 2021-05-25 13:18:44 | → | drewr joins (~drew@2601:483:4100:4112:d91:d97:abf8:56ec) |
| 2021-05-25 13:19:20 | × | itai quits (~itai@2a0d:6fc0:7bf:3a00:41db:b036:af30:4662) (Remote host closed the connection) |
| 2021-05-25 13:19:21 | → | gehmehgeh joins (~user@user/gehmehgeh) |
All times are in UTC.