[Haskell-cafe] Lambdabot

Daniel Fischer daniel.is.fischer at web.de
Fri Jun 22 14:10:53 EDT 2007


Greetings,

now I have a working plugins package, I can refocus on my lambdabot problem.

Let me recap:
In Lib/Parser.hs, as_name &c are defined
#if __GLASGOW_HASKELL__ > 606,
however ghc-6.6.1 defines that as 606,
so to go through the build, I had to change the '>' to '>='.
Is that a bad idea? (otherwise that should be changed in Parser.ly/.hs)
Next, in scripts/ShowQ.hs, there is defined an 
instance (Arbitrary a) => Arbitrary (Maybe a),
but such an instance already is defined in Test.QuickCheck, so I commented the 
one in ShowQ out (after the build died there once). That probably should be 
fixed in the darcs repo.

As anything of the above stupid/dangerous?

Okay, so building succeeds without complaints, but then
$ ./lambdabot
Initialising plugins ................Speicherzugriffsfehler

Changing BotPP so that it created a persisting copy of its output, I found out 
what modulesInfo does, then, letting ircInstallModule produce debugging 
output, I located the evildoers.
lambdabot segfaulted when installing
Fact
Haddock
Quote
Source
Todo
Where

What's special about them?
I.e., why did they cause a segfault and the others not?

And, how could I build a lambdabot _with_ them (though I'm not sure, I'll 
actually want them, but I might).

Without these, I now have an apparently working lambdabot, well, not properly 
working.
First time I started it, all seemed well, but from then on:
$ ./lambdabot
Initialising plugins ..................................sending message to 
bogus server: IrcMessage {msgServer = "freenode", msgLBName = 
"urk!<outputmessage>", msgPrefix = "", msgCommand = "NAMES", msgParams = 
[""]}
............... done.
Main: caught (and ignoring) IRCRaised Data.ByteString.index: index too large: 
0, length = 0
lambdabot> > 3+7
Main: caught (and ignoring) IRCRaised Data.ByteString.index: index too large: 
0, length = 0
 10
lambdabot>

The bogus message thing also appeared the first time, I hope this is meant to 
be so.
But what about the ByteString.index exception?
Where might that come from?
How to get rid of it?

Finally, is there a tutorial/manual for using lambdabot?

Thanks for any help,
Daniel



More information about the Haskell-Cafe mailing list