Logs: freenode/#xmonad
| 2021-02-10 11:23:19 | <mc47> | I finally found the logs that the stdout/stderr of xmonad get piped to |
| 2021-02-10 11:23:31 | <mc47> | and I was surprised with """xxxmommbooabbraa:rr e::o fee ooafft a atat na anen a erealaryr llsyyt assgtteaa"gg |
| 2021-02-10 11:23:32 | <mc47> | ee"" |
| 2021-02-10 11:37:05 | <Solid> | hahahaha |
| 2021-02-10 11:45:28 | <Liskni_si> | that facepalm moment one realizes that xmobar/xmonad are advertised as lightweight yet under the hood it's all Strings and one-byte reads/writes |
| 2021-02-10 11:46:57 | <Solid> | I mean they're pretty light-weight compared to GNOME3 ;) |
| 2021-02-10 11:48:05 | <Liskni_si> | true, one-byte writes end up being better than using unsafe javascript bindings to glib that leak memory and handles like crazy |
| 2021-02-10 11:48:25 | <dminuoso> | Liskni_si: It's beyond me, how almost irrelevant breaking changes were introduced like Foldable/Traversable or AMP, but everything clings onto String like crazy |
| 2021-02-10 11:48:43 | <dminuoso> | Like, my first thing to get rid off base, is String. |
| 2021-02-10 11:49:29 | <dminuoso> | People can argue all day long how "elegant" algorithms on lists are, but these types of algorithms are rarely applied to textual data. And if they are, chances are you have non-trivial amounts of data too.. |
| 2021-02-10 11:49:47 | <Solid> | String is bad, but the strings that xmonad/xmobar handle are so tiny that I think using text is more of a "this is morally correct" issue than anything else |
| 2021-02-10 11:50:03 | <dminuoso> | Well, it causes friction whenever you interface with it. |
| 2021-02-10 11:50:44 | <Liskni_si> | Solid: wouldn't be so sure about that |
| 2021-02-10 11:50:49 | <Solid> | unless you also work with strings :> |
| 2021-02-10 11:50:55 | <dminuoso> | Well sure. |
| 2021-02-10 11:51:24 | <dminuoso> | The reality is, we all rely on GHC optimizations to make string performance acceptable in many cases. |
| 2021-02-10 11:51:28 | <Solid> | and I think changing all of base String -> Text would certainly be a much bigger break than AFP and MFP etc. |
| 2021-02-10 11:51:31 | <dminuoso> | Which is rather poor |
| 2021-02-10 11:51:37 | <Liskni_si> | Solid: you remember our discussion about O(n²) nub? the O(log n) nub uses pointer and more memory, that makes it slow |
| 2021-02-10 11:51:45 | <Liskni_si> | *pointers |
| 2021-02-10 11:52:02 | <Liskni_si> | String is all pointers and thunks and _lots_ of garbage collection afterwards |
| 2021-02-10 11:52:47 | <dminuoso> | The pointer indirection causes extremely poor locality of reference, as well as extreme amounts of cache evictions |
| 2021-02-10 11:53:13 | <dminuoso> | So merely dealing with String has global performance impacts on other things |
| 2021-02-10 11:54:09 | <dminuoso> | We tend to not notice how bad String performance is, because it's usually not the performance bottleneck. But things like cache evictions are very hard to measure |
| 2021-02-10 11:54:42 | <dminuoso> | Arguably, it'd be nice if we could seamlessly exchange string data through ffi - and Text doesnt help us here either. |
| 2021-02-10 11:55:29 | <dminuoso> | (because text uses unpinned memory, you cant expose it to ffi..) |
| 2021-02-10 12:01:48 | <Liskni_si> | Solid: just say the youtube video you linked, it really is good! |
| 2021-02-10 12:02:00 | <Liskni_si> | *saw |
| 2021-02-10 12:36:27 | <Solid> | right? |
| 2021-02-10 12:37:05 | <Solid> | I do wish he didn't look up "dank" in the urban dictionary but I guess that's a small nit :) |
| 2021-02-10 12:59:18 | → | MasseR joins (~MasseR@51.15.143.128) |
| 2021-02-10 13:01:27 | → | wsm joins (~wsm@78.186.186.247) |
| 2021-02-10 13:01:29 | × | wsm quits (~wsm@78.186.186.247) (Connection closed) |
| 2021-02-10 13:07:05 | × | notis quits (~notis@92.118.13.23) (Ping timeout: 240 seconds) |
| 2021-02-10 13:09:11 | → | notis joins (~notis@185.51.134.229) |
| 2021-02-10 13:09:18 | → | sockspls joins (~sockspls@175.214.248.192) |
| 2021-02-10 13:09:25 | <sockspls> | /!\ this channel has moved to ##hamradio /!\ |
| 2021-02-10 13:09:31 | → | Neo joins (~Neo@201.127.214.119) |
| 2021-02-10 13:09:32 | <Neo> | /!\ this channel has moved to ##hamradio /!\ |
| 2021-02-10 13:09:50 | × | Neo quits (~Neo@201.127.214.119) (Remote host closed the connection) |
| 2021-02-10 13:09:54 | × | sockspls quits (~sockspls@175.214.248.192) (Remote host closed the connection) |
| 2021-02-10 13:12:34 | → | strengthen joins (~strengthe@121.143.136.228) |
| 2021-02-10 13:12:40 | <strengthen> | /!\ this channel has moved to #nyymit /!\ |
| 2021-02-10 13:12:53 | × | strengthen quits (~strengthe@121.143.136.228) (Remote host closed the connection) |
| 2021-02-10 13:15:28 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 2021-02-10 13:16:59 | → | samuR joins (~sam@212.69.21.42) |
| 2021-02-10 13:17:02 | × | samuR quits (~sam@212.69.21.42) (Remote host closed the connection) |
| 2021-02-10 13:23:16 | <Solid> | kids are bored again |
| 2021-02-10 13:23:57 | <geekosaur> | yeh |
| 2021-02-10 13:24:38 | × | xaltsc quits (~xaltsc@unaffiliated/xaltsc) (Ping timeout: 264 seconds) |
| 2021-02-10 13:36:00 | geekosaur | winces at lack of quoting in shell scripts |
| 2021-02-10 13:39:17 | <geekosaur> | hm, whoops, forgot "git fetch --all" |
| 2021-02-10 13:39:24 | <geekosaur> | biab |
| 2021-02-10 13:41:40 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Ping timeout (120 seconds)) |
| 2021-02-10 13:41:58 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 2021-02-10 13:42:49 | <geekosaur> | ok, think I'm ready to start working on the cabal stuff. I see I have to remove instructions for sandboxes because they're gone as of cabal 3.4 |
| 2021-02-10 13:47:01 | <wz1000> | dminuoso: text using unpinned memory is a good thing. Have you seen the amount of fragmentation in non-trivial programs that use ByteString? |
| 2021-02-10 13:47:45 | <geekosaur> | but that means copying when working with FFI, which happens a lot with xmonad |
| 2021-02-10 13:48:40 | <geekosaur> | then again we have to encode to UTF8 anyway (Text representation internally is that of ICU, which is 16 bit) |
| 2021-02-10 13:51:45 | <dminuoso> | wz1000: Well, perhaps there could be a way to control whether `text-next-generation` gives you pinned or unpinned buffers, depending on whether you have to do FFI? |
| 2021-02-10 13:52:27 | <dminuoso> | But yeah, like geekosaur points out, the internal encoding of text is another issue in the way. |
| 2021-02-10 13:52:31 | <geekosaur> | again, only if someone rewrites text to be utf8 underneath, otherwise there has to be a copy/conversion step anyway |
| 2021-02-10 13:52:41 | <dminuoso> | As long as text is unpinned, the internal encoding doesnt matter. |
| 2021-02-10 13:52:54 | <dminuoso> | Or not as much, anyway |
| 2021-02-10 13:53:06 | <dminuoso> | Right, geekosaur. |
| 2021-02-10 14:01:36 | <Liskni_si> | wz1000: does the fragmentation happen with short-lived bytestrings as well or just long-lived ones? |
| 2021-02-10 14:02:10 | <wz1000> | long lived ones |
| 2021-02-10 14:02:37 | <wz1000> | if a block has no live bytestrings in it, there is no fragmentation |
| 2021-02-10 14:03:02 | × | geekosaur quits (82650c7a@130.101.12.122) (Ping timeout: 240 seconds) |
| 2021-02-10 14:03:24 | <dminuoso> | Liskni_si: If its short lived, it doesn't really matter anyway, does it? |
| 2021-02-10 14:04:53 | <Liskni_si> | short lived String is still a waste of CPU cycles, caches, and some more CPU cycles in GC |
| 2021-02-10 14:05:10 | <Liskni_si> | so the choice of data structure still matters |
| 2021-02-10 14:05:35 | <Liskni_si> | (but I'm no expert on bytestring vs text, hence the question) |
| 2021-02-10 14:06:29 | <dminuoso> | In GHC pinned and unpinned blocks reside in the same megablocks, dont they? |
| 2021-02-10 14:07:31 | <dminuoso> | If text used pinned buffers, and resided in special megablocks, it wouldn't really cause fragmentation across the board. |
| 2021-02-10 14:07:41 | <dminuoso> | or at least not as much |
| 2021-02-10 14:10:56 | → | geekosaur joins (82650c7a@130.101.12.122) |
| 2021-02-10 14:12:15 | Liskni_si | has no idea :-( |
| 2021-02-10 14:14:22 | → | dxld joins (~dxld@rush.pub.dxld.at) |
| 2021-02-10 14:19:50 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:a2d2:896d:399a:a417) (Ping timeout: 264 seconds) |
| 2021-02-10 14:25:57 | → | xaltsc joins (~xaltsc@unaffiliated/xaltsc) |
| 2021-02-10 14:31:26 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:5542:a02b:6ef4:719e) |
| 2021-02-10 14:42:32 | → | seschwar joins (~seschwar@unaffiliated/seschwar) |
| 2021-02-10 14:51:52 | <geekosaur> | o.O |
| 2021-02-10 14:52:29 | geekosaur | used external bt keyboards for years with xmonad, and can't think of any reason they wouldn't work unless they also messed with xinput2 |
| 2021-02-10 14:54:27 | × | geekosaur quits (82650c7a@130.101.12.122) (Quit: Connection closed) |
| 2021-02-10 15:06:05 | <dminuoso> | Trying to find a joke about how a flaky bluetooth keyboard could cause IRC disconnects... |
| 2021-02-10 15:06:11 | <dminuoso> | Anyone? |
| 2021-02-10 15:07:02 | <Liskni_si> | Today a screen/irssi vulnerability joke would be more appropriate. |
| 2021-02-10 15:07:21 | <dminuoso> | How's that? |
| 2021-02-10 15:07:25 | <dminuoso> | Didn't get the memo |
| 2021-02-10 15:07:43 | <Liskni_si> | dminuoso: https://www.openwall.com/lists/oss-security/2021/02/09/7 |
| 2021-02-10 15:09:03 | <dminuoso> | It's beyond me how people still write stuff in C... |
| 2021-02-10 15:09:28 | <dminuoso> | And when they do, asan is off. |
| 2021-02-10 15:12:10 | <Liskni_si> | It's more about rewriting old stuff that works not being much fun. |
| 2021-02-10 15:13:02 | <Liskni_si> | Like why haven't we rewritten everything to not use String and to support Wayland and have a compositor and whatnot. Because what we have works so our time is best spent elsewhere. :-/ |
| 2021-02-10 15:19:57 | <Liskni_si> | mc47: you haven't updated us on your xmonad-related school course in a while, btw |
| 2021-02-10 15:20:26 | <Liskni_si> | mc47: did you have to write some sort of final report or just the one we saw already? |
| 2021-02-10 15:21:09 | <mc47> | Liskni_si, I'm still gonna write a final report on the contributions and the interaction with the community, and do a presentation in mid march, after I'm done with my exams |
| 2021-02-10 15:21:48 | <Liskni_si> | I see |
All times are in UTC.