Inform 7 Issue Too many Rulebooks

Hey there. I have an interactive fiction online at nukuv.blogspot.com and I use the awesome quixe interpreter to let people play it.

First, a warning: This is an adult game.(And a very strange one at that)

But the more important matter. Many many many players run into a *** Run-time problem P7: Too many rulebooks in simultaneous use. error that I never run into when I run it offline. What is going wrong, what can I do! There are no neverending loops that I can detect, and when it comes up, players often report they can’t reload, and all saves are lost.

Any help would be appreciated.

Too many rulebooks? Sounds like the name of a Rex Stout novel. :laughing:

Robert Rothman

This is most likely a sign that a rulebook has invoked itself. (Or rulebook A has invoked B which invokes A, etc.)

I can’t think of a reason why other players would run into it when you don’t, however. Have you pinned down a specific sequence of commands that reproduces the problem?

This I have not.

For sake of argument, I swapped from quixe to parchment to see if it works better.

However parchment seems to not do gluxe extensions? I lost my status bars.

That’s right. Parchment is z-machine only, not glulx.

How is progress going on automatic transcription of online games for author use?

Huh?

The error seems like it might be related to restoring the game. Too many restores, and boom. Any idea why this might be?

That question was not directed at you, but at the general community. I think there’s been some talk of doing it, and some people (Aaronius?) have done it with hacks. It’s something I’d like to have for my own games, and it would make it much easier to debug this kind of problem.

Although my first guess would be the same as Zarf’s, this sounds like some kind of memory overflow problem. Is that possible?

It sounds ‘possible’, but how can I combat it? Is this something even really related to any inform code I make?

Actually, Glulx support was added to Parchment a couple of months ago.

The plugin is done and available at code.google.com/p/parchment-transcript/, but the plugin itself doesn’t support Glulx yet; Glulx support is almost ready but it doesn’t save single-key input correctly at the moment so I haven’t made it available yet.

The most probable explanation is that you have a circular reference somewhere that puts the rulebooks in an infinite loop, like “Instead of doing something when scene X is happening: try jumping” except less obvious of course. The first step is to reproduce the bug so that you can test it yourself. When you know what situation triggers the bug, you can narrow it down or you can try typing RULES ON in the game (inside Inform IDE) so you’ll see what rules are involved in the loop.

You can’t save and restore from the IDE.

Why is that an issue?

Those who run into the problem seem to be restoring their game a lot.

You can in the Mac OS IDE; I assume you must be on another platform.

In any case, unless you’ve hacked some code into save-restore, it is very unlikely that this has anything to do with that functionality.

–Erik

Yup, windows.

Only seems to happen while using quixe, so far the reports have been. Which is why I thought it was a quixe bug perhaps.

Actually, Parchment is itself using Quixe, at least if this is a Glulx game (as it seems to be). So it’s not likely that there’s a Quixe bug that you’re avoiding by using Parchment. But I don’t know anything about the details of the integration (what’s Parchmenty about Parchment + Quixe?), so I could be wrong about that.

In any case, given the nature of the error, I would presume very strongly that the problem is in your code. Regardless of where the issue comes from, you need to figure out how to replicate it before you’re going to be able to tackle it.

–Erik

Parchment brought in so many other problems I had to abandon it before I could see if it cleared up the rulebook issue or not. Blarg, more testing ahoy.

I’ve ported GlkOte (the UI part of Quixe) to use jQuery, and have fixed the missing status line in the process, but it really needs more testing. I’d appreciate any testing the community can help with, just try it with this download of Parchment: github.com/curiousdannii/parchm … ball/quixe

Parchment’s Quixe is still fundamentally the same as Zarf’s, the main difference (aside from the QlkOte port in the quixe branch) is that it uses Parchment’s loading code rather than Zarf’s. Which btw, now includes full support for IE! In the future though I plan to mix in more Parchment code into Quixe. For example I want to unify the code which manages getting input from the user so that both VMs feel consistent.

And in the distant future I want to write my own javascript implementation of both Glulx and Glk. And maybe even TADS. :slight_smile: