[xmonad] why spawn (and safeSpawn, etc) use encodeString?

Gwern Branwen gwern at gwern.net
Fri Apr 17 19:37:17 UTC 2020


As one of the people responsible for that, the backstory is that at
the time very long ago (2008?), it wasn't clear how to handle Unicode
text in a cross-distro bugfree way while passing through a Haskell
library like XMonad from a Prompt into X11 or the shell or
applications, no one had the appetite to make an in-depth study of the
various systems to figure out what exactly had to be done to handle
ASCII & Unicode in a way that would be safe everywhere, and
`encodeString` seemed to sorta work in most cases and be better that
what came before.

Since the Haskell and other ecosystems have gradually continued
evolving (one hopes), it's possible that many Unicode-related issues
have since quietly vanished, and XMonad could do something simpler and
more correct than it does now; but one would need to investigate
thoroughly on a couple systems before one could be sure it was safe to
update `spawn` and all downstream users of `encodeString` etc, and no
one has been willing to do so to the extent to make a change in the
(generally very stable) HEAD.

-- 
gwern
https://www.gwern.net


More information about the xmonad mailing list