The biggest problem with using imake seemed to be a fundamental lack of
 understanding for how it was supposed to work in the first place. Poorly
 implemented rules which "worked" on old cpps were simply copied around
-and their implementation became cannon. Until it stopped working.
+and their implementation became canon. Until it stopped working.
 This situation happened because GCC's cpp started conforming to the rules
 that they had avoided for so long. However, many OSes vendor cpps tread
 into undefined territory, so I worked hard to find a common ground,
@@ -54,7 +54,7 @@
 we are forced to use the vendor compiler, and so that must be installed.
 On other architectures, there are a lot of cpp programs to choose from
 and we must choose the right one. At all times, I've tried to stay
-cannon to what the X Consortium code does to compile X.
+canon to what the X Consortium code does to compile X.