As I did some more work on my project yesterday, I seem to have encountered another stumbling block with no readily identifiable cause. This problem seems to be that I have run up against some sort of limit on declaring new kinds of value. I looked through the I7/5Z71 documentation, including all the various “Release Notes” sections, and could not find any reference to this issue (although I might have missed something–the print in those Release Note sections is pretty small and my vision isn’t what it used to be). I also did a few on-line searches, but didn’t turn up anything that seemed directly relevant to my problem.
Basically the situation is that I have a project file that compiles and works fine; however, if I add one additional declaration in the form of:
A is a kind of value. The as are b and c.
the project won’t compile; I instead get the mysterious and dreaded:
message of doom.
I’ve noticed before that when Inform throws out an error message like this, sometimes helpful information can be deduced from any additional messages that appear in the “Progress” pane of the “Errors” tab, but in this case beyond the usual “I’ve read your source text, I’ve also read the Standard Rules, etc” the only thing listed there is “Compiler finished with code A.”.
To frame the issue in more concrete terms, I searched my source text for the phrase “kind of value” and found that I have 48 statements declaring a kind of value using the format “A is a kind of value.” Some of the values are fairly simple, like:
Phenomenal is a kind of value. The phenomenals are tangible and intangible.
while others are a bit more complex, like:
Color is a kind of value. The colors are clear, white, grey, black, red, pink, green, blue, yellow, orange, purple, brown, gold, silver, copper-colored, brass-colored, and nocolor.
Any attempt to add an additional kind of value using what would be statement #49 in this format causes the compile process to fail as noted above. I tried using a few different silly phrases, such as:
Tetron is a kind value. The tetrons are mestral and destral.
Qrstuv is a kind of value. The Qrstuvs are defgh and ijklm.
just to be sure I wasn’t running into one of those hidden variable-name conflicts with the Standard Rules or any extensions, but it didn’t matter–so the problem is definitely in trying to add any additional statement defining a new value, regardless of content, using a statement in the format “A is a kind of value.”
I’m not able to quickly say what the total number of variables in use are if, in addition to statements such as “A is a kind of value” one were to also include statements such as “A thing can be x or y. A thing is usually x.” or “The car has a number called mpg,” although if anyone thinks it’s relevant I guess I could try to go through and count all such statements (in the particular version of the project I was working with I’m at about 75000 words, well over ninety percent of which is composed of rather dense rules as opposed to easy-to-scan room/item descriptions).
An additional twist on the problem is that while naming a new value using the phrase “A is a kind of value” causes the compiler to fail, naming a new value in a different way/format, such as:
The pencil has a number called timesused. Timesused is usually 1.
is accepted, and the project compiles and works fine with the new value properly assigned.
In my on-line research of the problem, I found a few older references of people who encountered “error code 10,” but none of the discussions seemed at all relevant to this matter. While I’d of course be very happy if anyone could say immediately what the problem is, I would also be quite content if anyone could direct me to any resource or documentation that either discusses what is implied by cryptic statements such as “The error code was 10” and “Compiler finished with code A”, or else mentions any limits on declaring kinds of value.
Thanks in advance for any advice on this matter.