[Xmonad] Tabbed layout, xinerama, strange crashing
Donald Bruce Stewart
dons at cse.unsw.edu.au
Tue Jun 12 11:31:46 EDT 2007
> On Wed, Jun 13, 2007 at 12:04:20AM +1000, Donald Bruce Stewart wrote:
> > droundy:
> > > On Tue, Jun 12, 2007 at 06:29:38PM +1000, Donald Bruce Stewart wrote:
> > > > > The problem is that very little of xmonad's code is in its core. The
> > > > > pleasant aspect of xmonad (or rather, what I wished I had with ion3) is the
> > > > > nice interface for extending and customizing it. When that nice interface
> > > > > causes xmonad to crash when you make a mistake, it's not so nice. I end up
> > > > > keeping an ion3 open for editing xmonad, because xmonad is so unstable.
> > > >
> > > > You mean, because you can hack internal structures however you want, so
> > > > you can break things? The xmonad core is *not* xmonad + random
> > > > extensions. And random extensions -- now they're in X -- can crash the
> > > > system if you want.
> > > >
> > > > "xmonad is so unstable" isn't the right way to talk about arbitrary, deep
> > > > customisation, and its inherant ability to break things.
> > >
> > > But we're haskell developers, we should hold ourselves to higher
> > > standards. We've got powerful static typechecking, and you claim that
> > > xmonad has a clean well-tested design. In my opinion a good design for an
> > > extensible system involves making it *robustly* extensible, and that's
> > > where xmonad falls down. When it's safer to modify a program extensible in
> > > lua than one extensible in haskell, it means we're doing a pathetic job,
> > > and not making proper use of our language.
> > Solutions to the problem of safe, powerful extensibility welcome, David.
> > I'd be happy to limit extensibility to pure functions, as we originally did.
> > That's the best method I know of, for language-based safety.
> That idea is totally flawed.
Hmm. Why the strong language? It seems out of place on happy xmonad at .
> Exceptions are thrown just as often from pure
> code as they are from IO code. If Haskell had some inherent way to verify
You don't call Xlib from pure code. So that's one big source of instability eliminated.
That was why extensions were originally set as pure.
> that functions are total, then your reasoning would be sound. As it is,
> our only hope for robustness is really to catch errors. That and to make
> it easier to avoid accidentally using partial functions.
Both of which we continue to work on.
And so the effort to continue to keep the core xmonad, without
extension, solid, while allowing people to implement ion in the config
More information about the Xmonad