[Xmonad] Tabbed layout, xinerama, strange crashing

David Roundy droundy at darcs.net
Tue Jun 12 11:57:12 EDT 2007


On Wed, Jun 13, 2007 at 01:31:46AM +1000, Donald Bruce Stewart wrote:
> droundy:
> > 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 .

Sorry, after I sent it I realized that.  Partly I'm just feeling
stressed... a grant needs to be submitted in under three weeks.  I think my
current bout of xmonad hacking has been an attempt at stress-relief by way
of tackling a solvable problem.  And also I've been annoyed with the
language for not giving us stronger checks.  It's all well and good to
claim that pure functions can't interact with the IO world, but it's
annoying when they do so anyhow by means of crashing the program.  And
almost of my recent annoying crashes have been by pure functions (even the
one which came from Xlib---it was as pure function, textExtents, that
crashed).

> > 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.

But Xlib seems actually to be quite robust.  Witness all the mistakes made
recently with the tabbed layout, which caused no more trouble than messages
sent to stderr.
-- 
David Roundy
http://www.darcs.net


More information about the Xmonad mailing list