[I7] 6M62 doesn't define some meta verbs as meta that it should?

I was looking through some of the I6 code generated by a test, and I noted that some verbs are not defined with the meta keyword in code produced by 6M62. Here’s what I’m seeing:

Defined as meta (expected): abstract, actions, glklist, gonear, purloin, random, relations, responses, rules, scenes, scope, showheap, showme, showverb, test, trace, tree

Not defined as meta (unexpected): brief*, long, normal, notify*, nouns, pronouns, quit*, restart*, restore*, save*, score*, script, short, superbrief, transcript, verbose, verify*, version

The ones marked with asterisks might conceivably be used as a verb for a different action in a story, so maybe these shouldn’t be marked as meta. (Does “Understand … as something new.” clear the meta flag?)

AFAIK, I7 code doesn’t care about the meta keyword; it only exists on certain verbs for compatibility with I6.

The corresponding I7 concept is an action out of world, which most of those actions in your list (I didn’t find a counterexample, but I didn’t check all of them) are declared as.

(If you’re curious, it appears that I7 tracks this via the meta global variable and the OUT_OF_WORLD_ABIT action flag.)

1 Like

@mirality, that’s very interesting (and reflects a better design by associating the functional property to the action instead of the dictionary word). Thank you!

The “meta” tagged verbs are one that don’t work except in debug mode, as far as I know. The others, while they don’t normally affect the game world, are all things the player can type. So that looks to be the distinction there: verbs which only work in debug mode, and verbs which always work by default.

The meta commands do not correspond to actions. The other commands listed correspond to out of world actions; these are genuine actions in the game, with associated rulebooks.

@caleb and @jrb, thank you both for the follow-up. As you say, caleb, the ones marked meta in I6 output from I7 are all I7 debugging verbs. And it’s interesting, jrb, that the actions have no associated rulebooks (good find!).

I did a little testing, and, if Include (- -) is used to define an I6-style verb in an I7 project, the meta keyword still functions to suppress the passing of time, as it would in I6. So it has a functional role given that the I7 debugging verbs’ ActionSub() routines don’t call GenericVerbSub().