Linux: How Do You Spell That?

Submitted by Jeremy
on February 11, 2004 - 9:05am

The topic of proper spelling in kernel code surfaces now and again, often with a flurry of spelling correction patches appearing shortly before a major release. The fixing of spelling mistakes in comments is a questionable pastime, as the end goal is generally superficial and yet it can accidently result in breaking things. Or, perhaps the word in question has different spellings in different areas around the globe, such as "flavour" versus "flavor" [story].

Michael Hayes recently looked at spelling in the 2.6.2 kernel, reviewing all the added lines of code to see how many introduced spelling errors. He summarizes, "it turns out that there are around 200 new spelling errors in 2.6.2." More specifically, "A 'wether' (castrated goat) has appeared, along with a 'Rusell' that should be stamped out before it spreads. Someone had a dreadful time with 'technology' and its variants, spelling it wrong 9 different ways." Read on for the complete list.


From: Michael Hayes [email blocked]
To:  linux-kernel
Subject: Spelling in 2.6.2
Date: Tue, 10 Feb 2004 12:09:01 -0800

Relax, this is not a spelling patch.

I was curious how fast spelling errors flow into the kernel, so I
looked at the + lines in the 2.6.2 patch.  A few of the errors
already existed, but most of them are new.  It turns out that there
are around 200 new spelling errors in 2.6.2.

A "wether" (castrated goat) has appeared, along with a "Rusell" that
should be stamped out before it spreads.  Someone had a dreadful time
with "technology" and its variants, spelling it wrong 9 different ways.

Here's what I found:

File                                      Error            Should be          #
-------------------------------------------------------------------------------
Documentation/kernel-parameters.txt       Trigge           Trigger            1
Documentation/power/video.txt             carefull         careful            1
Documentation/s390/driver-model.txt       registerd        registered         1
Documentation/scsi/qla2xxx.revision.notes Consoldate       Consolidate        1
Documentation/scsi/qla2xxx.revision.notes disparite        disparate          1
Documentation/scsi/qla2xxx.revision.notes resouces         resources          1
Documentation/scsi/qla2xxx.revision.notes unecessary       unnecessary        1
Documentation/scsi/qla2xxx.revision.notes uneeded          unneeded           1
Documentation/sh/new-machine.txt          heirarchy        hierarchy          2
arch/i386/kernel/acpi/boot.c              recogznied       recognized         1
arch/ia64/sn/io/drivers/ioconfig_bus.c    Unabled          Unable             1
arch/ia64/sn/io/sn2/pcibr/pcibr_intr.c    requred          required           1
arch/m68k/kernel/traps.c                  propably         probably           1
arch/m68knommu/kernel/module.c            postition        position           1
arch/ppc64/kernel/iSeries_IoMmTable.c     assiged          assigned           1
arch/ppc64/kernel/iSeries_IoMmTable.c     initalizes       initializes        1
arch/ppc64/kernel/iSeries_IoMmTable.h     Initalizes       Initializes        1
arch/ppc64/kernel/iSeries_IoMmTable.h     psuedo           pseudo             1
arch/ppc64/kernel/iSeries_VpdInfo.c       requrested       requested          1
arch/ppc64/kernel/process.c               dont             don't              1
arch/ppc64/kernel/setup.c                 dont             don't              1
arch/ppc64/kernel/signal.c                spurrious        spurious           1
arch/ppc64/kernel/signal.c                wether           whether            1
arch/ppc64/kernel/stab.c                  dont             don't              1
arch/ppc64/kernel/viopath.c               doesnt           doesn't            4
arch/ppc64/mm/hash_low.S                  Retreive         Retrieve           4
arch/ppc64/mm/init.c                      nonexistant      nonexistent        1
arch/s390/kernel/compat_signal.c          Alwys            Always             1
arch/s390/kernel/signal.c                 Alwys            Always             1
arch/s390/lib/uaccess.S                   cant't           can't              1
arch/s390/lib/uaccess64.S                 cant't           can't              1
arch/sh/Kconfig                           existance        existence          1
arch/sh/drivers/pci/ops-bigsur.c          Funtion          Function           1
arch/sh/drivers/pci/ops-dreamcast.c       existance        existence          1
arch/sh/drivers/pci/ops-snapgear.c        Funtion          Function           1
arch/sh/drivers/pci/pci-sh7751.c          exitst           exists             1
arch/sh/drivers/pci/pci-sh7751.c          genereated       generated          1
arch/sh/drivers/pci/pci-sh7751.c          intialization    initialization     1
arch/sh/drivers/pci/pci-sh7751.c          overruning       overrunning        1
arch/sh/drivers/pci/pci-sh7751.h          Funtion          Function           1
arch/sh/drivers/pci/pci-st40.h            Defintions       Definitions        1
arch/sh/kernel/cpu/sh4/sq.c               Infact           In fact            1
arch/x86_64/kernel/acpi/boot.c            recogznied       recognized         1
arch/x86_64/kernel/time.c                 everytime        every time         1
arch/x86_64/kernel/time.c                 interuppts       interrupts         1
drivers/base/class_simple.c               assiociated      associated         1
drivers/block/as-iosched.c                exitted          exited             1
drivers/block/as-iosched.c                guage            gauge              1
drivers/block/ll_rw_blk.c                 didnt            didn't             1
drivers/char/viocons.c                    wierd            weird              1
drivers/char/watchdog/machzwd.c           unconditionaly   unconditionally    1
drivers/i2c/busses/Kconfig                prefered         preferred          1
drivers/i2c/chips/asb100.c                suprise          surprise           1
drivers/i2c/chips/lm85.c                  Unrecgonized     Unrecognized       2
drivers/ieee1394/ohci1394.c               dont             don't              1
drivers/ieee1394/oui.db                   Compny           Company            1
drivers/ieee1394/oui.db                   Corperation      Corporation        1
drivers/ieee1394/oui.db                   Corportation     Corporation        1
drivers/ieee1394/oui.db                   Corpotation      Corporation        1
drivers/ieee1394/oui.db                   Develoment       Development        1
drivers/ieee1394/oui.db                   Enterpirse       Enterprise         1
drivers/ieee1394/oui.db                   Incoporation     Incorporation      1
drivers/ieee1394/oui.db                   Reserch          Research           1
drivers/ieee1394/oui.db                   TECHNOLGIES      TECHNOLOGIES       1
drivers/ieee1394/oui.db                   Tchnology        Technology         1
drivers/ieee1394/oui.db                   Technolgies      Technologies       1
drivers/ieee1394/oui.db                   Technoligy       Technology         1
drivers/ieee1394/oui.db                   Technoloiges     Technologies       1
drivers/ieee1394/oui.db                   Technonlogy      Technology         1
drivers/ieee1394/oui.db                   Techologies      Technologies       1
drivers/ieee1394/oui.db                   Techonology      Technology         1
drivers/ieee1394/oui.db                   Tehnology        Technology         1
drivers/ieee1394/oui.db                   resarch          research           1
drivers/ieee1394/oui.db                   telecomunication telecommunication  1
drivers/input/serio/i8042.c               conrtoller       controller         1
drivers/md/mktables.c                     Bostom           Boston             1
drivers/md/raid6.h                        Bostom           Boston             1
drivers/md/raid6algos.c                   Bostom           Boston             1
drivers/md/raid6int.uc                    Bostom           Boston             1
drivers/md/raid6main.c                    coverred         covered            1
drivers/md/raid6mmx.c                     Bostom           Boston             1
drivers/md/raid6recov.c                   Bostom           Boston             1
drivers/md/raid6sse1.c                    Bostom           Boston             1
drivers/md/raid6sse2.c                    Bostom           Boston             1
drivers/md/raid6test/test.c               Bostom           Boston             1
drivers/md/raid6x86.h                     Bostom           Boston             1
drivers/media/dvb/ttpci/av7110_v4l.c      comparision      comparison         1
drivers/media/video/bttv-gpio.c           intented         intended           1
drivers/media/video/cx88/cx88-core.c      enougth          enough             1
drivers/media/video/cx88/cx88-video.c     Threshholds      Thresholds         1
drivers/media/video/cx88/cx88-video.c     adaptibe         adaptive           1
drivers/media/video/cx88/cx88-video.c     interupts        interrupts         1
drivers/media/video/tuner.c               Initalization    Initialization     1
drivers/net/forcedeth.c                   Miscelaneous     Miscellaneous      1
drivers/net/forcedeth.c                   Substract        Subtract           1
drivers/net/irda/act200l-sir.c            Regsiter         Register           1
drivers/net/irda/girbil-sir.c             alread           already            1
drivers/net/irda/girbil-sir.c             emmited          emitted            1
drivers/net/irda/litelink-sir.c           avaiable         available          1
drivers/net/sk98lin/skge.c                Initalize        Initialize         1
drivers/net/sk98lin/skge.c                deattaches       detaches           1
drivers/net/sk98lin/skge.c                maintianed       maintained         1
drivers/net/sk98lin/skge.c                suitables        suitable           1
drivers/net/sk98lin/skproc.c              Transmited       Transmitted        2
drivers/net/tg3.c                         currupted        corrupted          1
drivers/net/wan/hd64572.h                 transmition      transmission       1
drivers/net/wireless/atmel.c              encyption        encryption         1
drivers/net/wireless/atmel.c              implemenents     implements         1
drivers/pci/pci.ids                       formely          formerly           1
drivers/pci/pci.ids                       usefull          useful             1
drivers/s390/block/dasd_eckd.c            Returnes         Returns            1
drivers/s390/char/fs3270.c                sucessfully      successfully       1
drivers/s390/char/raw3270.c               Heigth           Height             1
drivers/s390/char/raw3270.c               Sucessfully      Successfully       1
drivers/s390/char/tape_34xx.c             Cartdridge       Cartridge          1
drivers/s390/char/tape_34xx.c             cartdridge       cartridge          1
drivers/s390/char/tape_char.c             immediatly       immediately        1
drivers/s390/char/tape_core.c             Hutplug          Hotplug            1
drivers/s390/char/tape_std.c              sewuential       sequential         1
drivers/s390/char/tty3270.c               characeter       character          1
drivers/s390/char/tty3270.c               successfull      successful         1
drivers/s390/scsi/zfcp_erp.c              appropiate       appropriate        1
drivers/scsi/ips.c                        Utilites         Utilities          1
drivers/scsi/qla1280.c                    aboring          aborting           2
drivers/scsi/qla1280.c                    paramaters       parameters         1
drivers/scsi/qla1280.c                    quantites        quantities         3
drivers/scsi/qla2xxx/qla_def.h            accomodate       accommodate        1
drivers/scsi/qla2xxx/qla_def.h            adpaters         adapters           1
drivers/scsi/qla2xxx/qla_def.h            aquire           acquire            1
drivers/scsi/qla2xxx/qla_init.c           adapeter         adapter            1
drivers/scsi/qla2xxx/qla_init.c           asyncronous      asynchronous       1
drivers/scsi/qla2xxx/qla_init.c           discoverying     discovering        1
drivers/scsi/qla2xxx/qla_init.c           remainning       remaining          1
drivers/scsi/qla2xxx/qla_inline.h         occured          occurred           1
drivers/scsi/qla2xxx/qla_iocb.c           decriptors       descriptors        2
drivers/scsi/qla2xxx/qla_iocb.c           occured          occurred           2
drivers/scsi/qla2xxx/qla_isr.c            aynchronous      asynchronous       1
drivers/scsi/qla2xxx/qla_isr.c            hammmer          hammer             1
drivers/scsi/qla2xxx/qla_isr.c            occured          occurred           3
drivers/scsi/qla2xxx/qla_isr.c            recieved         received           1
drivers/scsi/qla2xxx/qla_os.c             Opertions        Operations         1
drivers/scsi/qla2xxx/qla_os.c             adpaters         adapters           1
drivers/scsi/qla2xxx/qla_os.c             paramaters       parameters         1
drivers/scsi/qla2xxx/qla_os.c             qeueue           queue              1
drivers/scsi/qla2xxx/qla_os.c             recieved         received           1
drivers/scsi/qla2xxx/qla_os.c             remainning       remaining          2
drivers/scsi/qla2xxx/qla_os.c             succeded         succeeded          2
drivers/scsi/qla2xxx/qla_os.c             unsued           unused             1
drivers/scsi/qla2xxx/qla_rscn.c           Retrive          Retrieve           3
drivers/scsi/qla2xxx/qla_rscn.c           descriptiors     descriptors        1
drivers/scsi/qla2xxx/qla_sup.c            recommeds        recommends         1
drivers/usb/gadget/file_storage.c         oonsistent       consistent         1
drivers/usb/gadget/pxa2xx_udc.c           dont             don't              1
drivers/usb/host/ohci-omap.c              Rusell           Russell            1
drivers/usb/media/w9968cf.c               paramater        parameter          1
drivers/usb/media/w9968cf.c               paramaters       parameters         1
drivers/usb/media/w9968cf.h               incative         inactive           1
drivers/usb/misc/emi62.c                  inialization     initialization     1
drivers/video/kyro/STG4000InitDevice.c    comparater       comparator         1
drivers/video/kyro/STG4000OverlayDevice.c factror          factor             1
drivers/video/kyro/STG4000OverlayDevice.c largets          largest            1
drivers/video/kyro/STG4000Reg.h           appropraite      appropriate        1
drivers/video/kyro/fbdev.c                horrizontal      horizontal         1
drivers/video/kyro/fbdev.c                infact           in fact            1
fs/afs/cell.c                             bizzare          bizarre            1
fs/xfs/linux/kmem.h                       recusive         recursive          1
fs/xfs/xfs_behavior.c                     Attemps          Attempts           1
fs/xfs/xfs_behavior.c                     postition        position           1
fs/xfs/xfs_behavior.h                     interpostion     interposition      1
include/asm-i386/byteorder.h              exhange          exchange           1
include/asm-ia64/sn/pci/pcibr_private.h   Dont             Don't              1
include/asm-ia64/sn/sn2/sn_private.h      gaurd            guard              1
include/asm-sparc/pgtsrmmu.h              tabes            tables             1
include/linux/videodev2.h                 excisting        existing           1
include/media/ir-common.h                 enougth          enough             1
include/video/kyro.h                      Usefull          Useful             1
kernel/fork.c                             dont             don't              1
net/ipv6/addrconf.c                       prefered         preferred          1
net/irda/irlap_event.c                    negociate        negotiate          1
net/irda/irlap_frame.c                    adjustement      adjustment         2
net/irda/irlap_frame.c                    begining         beginning          1
net/sctp/sm_make_chunk.c                  paramter         parameter          2
net/sctp/sm_make_chunk.c                  paramters        parameters         1
sound/oss/trident.c                       Begine           Begin              1
sound/oss/trident.c                       comsumed         consumed           1
sound/oss/trident.c                       dealed           dealt              1
sound/oss/trident.c                       defered          deferred           1
sound/oss/trident.c                       manangement      management         1
sound/oss/trident.c                       redundacy        redundancy         1
sound/oss/trident.c                       wehre            where              1

Related Links:

"Technology"/"Technologies" misspellings...

Anonymous
on
February 11, 2004 - 12:15pm

Those misspellings are in a database file... Is this a database of vendor ID strings? If so, then could the misspellings be intentional, say, to match the vendors' spelling? Also, are the vendors misspelling it sometimes to fit within a particular field width? (Some of them clearly aren't, but others look like contractions.)

sppeeling

Anonymous
on
February 11, 2004 - 2:42pm

Misspelling is a mark of a good programmer. They have over written the area of their brain that contains information about grammer and diction with more important things such as the full C ANSI standard or the ASCII table or maybe even the principals of SMP computing. I say english is out dated and makes no sense to the programmer mind, we should all speak in C.

don't agree

Anonymous
on
February 11, 2004 - 2:50pm

A programmer that doesn't understand grammar shouldn't use any programming language. Texts with spelling errors do not compile in my brain. They also hurts my integrated pattern matching engine.

However, these errors seems to be due to fast typing (especially in comments).

update

Anonymous
on
February 11, 2004 - 5:18pm

You need to update your pattern recognition scheme to a more fluid algorythum capable of handling many more patterns then the normal pre-encoded ones based of the english algorythum.

algorithm

Anonymous
on
February 11, 2004 - 8:07pm

algorithm

doh

Anonymous
on
February 11, 2004 - 10:38pm

I feel somebody is lacking sence of humor...

(I'm not the author of previous post and, yes, I mispelled sense intentionally)

Not important

on
February 11, 2004 - 3:32pm

I think spelling errors in code should only be corrected when they are in output (obviously), or when somebody happens to change something more fundamentally important in the same lines or file. That would hopefully force the anal spelling-geeks to also contribute some useful code changes.

Moreover, if people prefer alternative spellings, it should not up to others to impose their own preference on other people's work. In a global project, the point is being understood. Communication is (here) just an aid, not the goal.

Pointless

on
February 11, 2004 - 5:33pm

I mean, a few spelling errors and typos? Is it really that important to make changes?

I mean, its sorta like:
"Well Peter, Great job on that TPS report! However, our new TPS reports require two spaces behind each period instead of just one. Did you get that memo Peter?"

If your going to be picky about sometime so minute as spelling why not require bugfree code as well? I feel it's an unnessecary obligation to put on these code contributors. I really appreciate the hardwork and dedication put into the code. Why make them stress out and use proper grammar when infact that the only true importance in english is the fact that point is communicated clearly enough that a reader understands the output. So is proper grammar really nessecary? Not in my mind, I understand most of the error messages conveyed to me in the kernel. Mainly due to the fact that the messages do not need to be conveyed in proper english due to their technical jargon.

I'm quite pleased that there is the amount of comments there are in the kernel code. My opinion is just be happy with what you have, its not breaking any system stablility issues by angering the Grammar gods.

That's pretty much what I sai

on
February 11, 2004 - 7:58pm

That's pretty much what I said, yes. ;)

But although spelling's not important, it would be stupid not to correct it for somebody patching the file later on anyway - if you come across a typo while you are changing the code, you might as well get rid of it. Deliberately keeping it there while you're changing the rest, is also rather pointless.

Maybe...

on
February 11, 2004 - 8:50pm

Well, this also causes problems. As long as you only correct output and comments. yes, correcting spelling is ok. Anyone remember the color/colour thread a while back? Yeah, not a good idea to be changing any spelling errors that are actually used in the code.

But yeah, If you submit patches, I say go for it, correct those errors is you happen to pass one. But don't go spelling checking your code :-P

(just showing support) -Cracker

One variant of Unix in the 19

Anonymous
on
February 13, 2004 - 7:23pm

One variant of Unix in the 1980's had "KERNAL" throughout the code, including #defined constants in header files that other programs used. It was like this for years; I don't know whether it was because the company had a policy of not releasing changes too frequently or because the OS was basically maintained by one guy.

English as a second language...

Anonymous
on
February 11, 2004 - 5:26pm

I'm curious as to how many kernel developers do not use English as their primary language. Obviously that could be a partial explanation.


I agree with the above poster that this is indeed unimportant.

... is a blessing

on
February 11, 2004 - 6:41pm

Huh. My experience (as a non-native English speaker who used to live in English-speaking countries) is that the native speakers are the worst spellers.

Seriously though, I'm with ESR on the theory that good hackers care about the details of everything they do, and this includes spelling and grammar.

You've obviously never read a

Anonymous
on
February 11, 2004 - 8:10pm

You've obviously never read an Alan Cox post. He's quite a talented hacker, and uses just enough words to make his point--if you know all the other details ahead of time. Grammar and spelling take a backseat to terseness in many of his posts.

on Alan Cox's spelling

on
February 12, 2004 - 6:29pm

Alan Cox has actually always given me the impression of being exactly aware of the way he uses spelling. He may sometimes write things in a terse, 'spoken' way but it seems a choice or even taste thing rather than actual erroneous misspelling.

Clarity

on
February 11, 2004 - 5:42pm

I think that good spelling should be important, but not required. Running a patch through a spell check isn't all that hard, even for non-english users. If comments are added for clarity, that's what they should add.

Uhm, what?

Anonymous
on
February 11, 2004 - 10:34pm

Running a patch through a spell check isn't all that hard, even for non-english users.

That might be true if the patch contains no code, but since it's probably 80% code, you're sure to have to wade through tons and tons of "misspelled" variable names and such.

I am very much in favor of fixing spelling mistakes, but you make it sound a lot easier than it actually is.

Also, if you'd run your post through a spell checker (it "isn't all that hard"!), you would've probably found out that English is supposed to be capitalized. POT IS EATING THE KETTLE.

ms code.

on
February 11, 2004 - 7:18pm

I wonder if a spelling audit of microsoft code would lead to better or worse results. on one hand, they could be really crazy about making sure it's right, and therefore forgetting the important part of all of it (a good product). on the other hand, there lack of readable comments (as a result of many many many mispellings) could be a reason why ms code is so buggy.

:wq!

MFC Code

on
February 12, 2004 - 12:37pm

You can have a look at the MFC sources which are AFAIK written by Microsoft programmers. Inline Documentation is sparse, sometimes tries to be funny, full of typos and obsolete when referring to other modules. Reminds me of some OSS projects.

The programming style is more formal than what I am used to, but there a lot more bugs than in the OSS world, most of them are obvious, some are small puzzles.

I don't think the number of typos in the inline comments are related to the number of programming bugs.

ms code has something right

Anonymous
on
February 18, 2004 - 6:55am

Maybe these should be spell-checked:
http://mjt.nysv.org/w2k_greps/

"z" or "s"

Anonymous
on
February 13, 2004 - 3:13am

Being a speaker of real English :o), i'd quibble about the use of "initialize" - I would use "initialise"

-ize / -ise

Anonymous
on
February 13, 2004 - 6:14am

It's a common misconception that non-U.S. English requires -ise rather than -ize; check the OED, which gives both, with preference to -ize. Etymologically, -ize usually comes from the Greek verbal suffix -izein, meaning to cause something to have the characteristics of the noun to which it is attached. There are of course words in -ise, such as surprise or revise, which are Latin and do not contain the -izein suffix. USAns mistakenly, imho, spell these with z.

There are of course words in

Anonymous
on
February 13, 2004 - 1:44pm

There are of course words in -ise, such as surprise or revise, which are Latin and do not contain the -izein suffix. USAns mistakenly, imho, spell these with z.

If they spell them that way, then they're spelling them wrong, according to standard U.S. English spelling.

face it

Anonymous
on
February 13, 2004 - 5:37pm

Face it english is a messed up language and needs desperate fixing.

no

Anonymous
on
February 13, 2004 - 6:10pm

It's not....

it's just most people speak some approximation to English. Hence the confusion.

yes

on
February 13, 2004 - 6:17pm

Sure. And Windows isn't buggy, it just crashes, chokes and barfs all the time because so many people use it wrong.

New language

Anonymous
on
February 18, 2004 - 1:09am

We should take everything that we like about English, make it more like Latin, and call it Latin#.

typo's

Anonymous
on
February 16, 2004 - 3:49pm

programmers make many typo's in comments because they are already thinking about the next problem to solve when they are writing a comment.

they just let their fingers roll out a sentence they thought of, but once they start typing it's automatical, their mind is focused on something else.

most of my typo's here are because my english sucks, but i comment my code in my native language (dutch) and make typo's for the reasons mentioned above

"Then" instead of "than"

Anonymous
on
February 18, 2004 - 2:03pm

One of the most common mistakes made by second-language speakers.

E.g. "This tree is taller then that one over there."

should be

"This tree is taller than that one over there."

actually

Anonymous
on
February 24, 2004 - 5:33pm

that kind of mistake made more often by native english speakers then non-native ones

Indeed

on
February 25, 2004 - 8:01pm

You mean "than non-native ones"

"Then" instead of "than"

Anonymous
on
April 28, 2004 - 8:07am

should be

"The tree is taller than the one over there."

or even "The tree taller than

Anonymous
on
April 28, 2004 - 8:10am

or even "The tree taller than one over there"

Tree1 > tree2

Anonymous (not verified)
on
February 8, 2005 - 11:48pm

Tree1 > tree2

tree1 > tree2 > [my patience]

Anonymous (not verified)
on
February 8, 2005 - 11:51pm

tree1 > tree2 > [my patience] ;therefore I waste not my time

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.