Since it looks like I’m not supposed to directly propose PRs on this site… GitHub - ganelson/inform-evolution: Proposal documents for user-facing changes to Inform. … I’m opening a discussion here as it suggests.
I think there should be a PR to fix Inform’s English-language gender handling once and for all in Core Inform. At the moment I’m inclined to want to incoporate some variant of Sadie de Might’s code ( Non-binary Pronoun Discussion - #17 by neroden ) if Sadie is willing and after review. (I haven’t had a chance to review that code in detail yet.)
The current default in Inform is very… late-19th century. It is neither compatible with modern usage, nor with Chaucerian usage. It is also quite hard to override (as you can see from the mass of very finicky I6 code involved in every override attempt, whether my own Gender Options, Phil Riley’s Improved Gender Options, or Sadie de Might’s much more comprehensive rework). This has been a serious annoyance for numerous authors over the years and I think it should be cleaned up once and for all in Core Inform, in a flexible and adaptable fashion.
If someone who is officially on the Inform team is willing, I suggest that a PR be opened.
That definitely sounds like a reasonable proposal.
Do you think you have a solid enough idea of not just the problem area but also how to implement a solution? If so then you could write up a draft proposal.
Or so far do you just know how to describe the problem, but not what a full solution would look like? If that’s the case then you’re not quite at the stage of being ready to write up a formal proposal, but if you can write out in detail all the issues, then someone else might be able to work on solutions with you.
A thing I suspect would be considered a prerequisite for consideration of so substantial a kick to the parser anthill in core Inform would be an enormous test suite that really worked at getting to all the parser’s nooks and crannies so that we’d have some real chance at knowing whether the change was breaking things. One reason this obviously useful thing doesn’t exist is that it’d be really, really hard.
Wish I understood Inform’s testsuite structure.
OK, Andrew Plotkin has helped me out with the testsuite structure, so I can probably write tests without too much trouble.
At the moment I think Sadie’s code is probably the best baseline, but I have not had time to do a full code review.
I have a pretty good sense of what a solution would look like to the game author.
For each object, the game author should be able to specify:
(1) what pronouns are printed for that object by the game when text substitutions are used (zero or one set of pronouns)
(2) what pronouns are recognized as referring to that object when typed by the player (zero to many sets of pronouns)
The game author should be able to define neopronouns.
Singular they should have proper verb agreement. (And “themself” in the reflexive.)
Plurals should continue to work as expected.
Now, what this looks like in terms of exact code is a bit more up in the air. Like I said, at this point it looks like Sadie’s code does the trick, though the exact invocation syntax is a little clunky and could perhaps be improved and I know it needs work for Z-machine compilation.
So for something without any pronouns specified, [they] would print the object name again?
Correct, that’s the desired behavior for that case. That would not be the default (the default would, of course, be, “it”) but the game author should be able to specify The Unpronounable One, who refuses to be referred to by pronouns.