How to print out a rule name instead of its address?

How do I print out a rule name instead of its address?

say "[foobar entry]"; just prints out (rule at address 1234567)
say "[printed name of foobar entry]"; gives me an error message:

Problem. In the sentence ‘"[printed name of foobar entry]"’, you seem to be looking up the ‘printed name’ property, but ‘rule’ is not allowed to have that property.

Your first guess was correct.

It looks like you have the “use memory economy” option turned on. One of the ways Inform saves memory is by throwing away all the rule names and just printing “rule at address X”.

1 Like

Uhm, I didn’t guess anything.

Anyway: How do I turn that one off? I have to note, that I’m using a batch-script which uses the 64 Bit ni.exe downloaded from http://ifarchive.org/indexes/if-archive/infocom/compilers/inform7/executables/

I’m using this in an ingame debug command that prints out the Table of GameEndings, which is quite huge btw. and I’m now using:

now EndingCol is "[Name entry] rule";

as a workaround-ish solution. Although I’d rather prefer using now EndingCol is "[Ending entry]"; for the sake of debugging.

Oh and before you ask: More and more of us stumble into this bug. Hence why I’m relying on the batch-script I wrote.

All right then, your first insightful venture into solving this problem was correct: say "[foobar entry]". Assuming this is a table column containing rules.

How do I turn that one off?

Do you have a line “Use memory economy” in your code? There’s nothing I know of that would turn it on behind your back.

1 Like

Yep, that was it. I was falsely searching in the IDE-settings an in my commandline (=.bat) code.

Well, I guess the original coder left it there for a reason so I’ll stick with the workaround: