Gender Speedup by Nathanael Nerode


If you're using the English language, there's a lot of unnecessary gender tracking code in the Inform 6 templates layer, which is used for French, German, etc. This includes heavily used loops when listing objects. My extension Gender Options replaces a substantial amount of the gender tracking code. Since the Inform 6 compiler doesn't do any optimization, it's worth doing it ourselves. This gets rid of the rest of the dead and irrelevant gender tracking code for a small speedup.

It is strongly recommended to tell the I6 compiler to strip out unused subroutines to shrink the story file size.

Use OMIT_UNUSED_ROUTINES of 1.

This requires rather invasive replacements of large sections of I6 template code just to change one or two lines. This may interfere with other extensions which patch the I6 code. If this happens, each section can be individually disabled, as follows:

Section - Disabled 1 (in place of Section - Patch ScoreMatchL in Gender Speedup by Nathanael Nerode)
Section - Disabled 2 (in place of Section - Patch PrefaceByArticle in Gender Speedup by Nathanael Nerode)
Section - Disabled 3 (in place of Section - Patch PNToVP and RegardingMarkedObjects in Gender Speedup by Nathanael Nerode)
Section - Disabled 4 (in place of Section - Patch WriteListOfMarkedObjects in Gender Speedup by Nathanael Nerode)

One section exists solely to support other extensions which are patching the other sections, so you shouldn't replace it, but if you need to:

Section - Disabled 7 (in place of Section - Replace GetGNAOfObject in Gender Speedup by Nathanael Nerode)

Changelog: 2/210331: Change disambiguation treatment with names of rooms. Should fix Counterfeit Monkey regtests. 1/170816: first version