spell(1) on Solnix vs Linux and the BSDs

On Solnix, spell is the illumos spell at /usr/bin/spell. It uses hashed spelling lists and has only the options -b, -i, -l, -v and -x. OpenBSD and NetBSD spell use sorted word files and add -d, -h, -m, -s and -t. Solnix -l means something different from the BSD -l.

What Solnix runs

A default Solnix system runs the illumos spell at /usr/bin/spell. No other variants are shipped. The same page also documents the helpers /usr/lib/spell/hashmake, /usr/lib/spell/spellin and /usr/lib/spell/hashcheck, which maintain the hashed spelling lists.

Differences

Compared withTopicWhat differs
OpenBSD, NetBSD-l meaningSolnix spell -l follows the chains of all included files. On OpenBSD and NetBSD, -l makes spell use delatex instead of deroff(1) if it is present.
Source: Solnix spell(1) -l; OpenBSD spell(1) -l; NetBSD spell(1) -l
OpenBSD, NetBSD-d, -s and -t missingSolnix spell has no -d (alternate word list), -s (alternate stop list) or -t (use detex). Scripts that pass a custom list with -d or -s on the BSDs will fail on Solnix. Only +local_file adds words.
Source: Solnix spell(1) SYNOPSIS; OpenBSD spell(1) -d, -s, -t; NetBSD spell(1) -d, -s, -t
OpenBSD, NetBSD-h history file and -m macro packagesSolnix spell has no -h and no -m. On the BSDs, -h names the history file and -m passes a macro-package option to deroff(1). On Solnix, copies of all output always accumulate in spellhist, and the page does not say where that file is.
Source: Solnix spell(1) DESCRIPTION, NOTES; OpenBSD spell(1) -h, -m; NetBSD spell(1) -h, -m
OpenBSD, NetBSDhistory file defaultOn OpenBSD and NetBSD, output is accumulated in a history file only if one is specified with -h. The Solnix page says copies of all output are accumulated in spellhist, which can grow large and need purging.
Source: Solnix spell(1) DESCRIPTION, NOTES; OpenBSD spell(1) DESCRIPTION, -h; NetBSD spell(1) DESCRIPTION, -h
OpenBSD, NetBSDword list formatSolnix spell uses hashed spelling lists, built with hashmake and spellin and checked with hashcheck. OpenBSD and NetBSD do not use hashed word files. They use lexicographically sorted files, read with the same technique as look(1).
Source: Solnix spell(1) DESCRIPTION (hashmake, spellin, hashcheck); OpenBSD spell(1) HISTORY; NetBSD spell(1) HISTORY
OpenBSD, NetBSD+local_file sort orderSolnix +local_file must be sorted with sort(1) in ASCII collating sequence, or some entries may be ignored. The BSD +extra_list must be sorted lexicographically with case folded (sort -df), or spell will not operate correctly.
Source: Solnix spell(1) +local_file; OpenBSD spell(1) DESCRIPTION, +extra_list; NetBSD spell(1) DESCRIPTION, +extra_list
OpenBSD, NetBSDsite word and stop listsThe BSD pages name /usr/local/share/dict/words and /usr/local/share/dict/stop for site additions. The Solnix page names no such files. It only mentions a stop list and the user-supplied +local_file.
Source: OpenBSD spell(1) DESCRIPTION; NetBSD spell(1) DESCRIPTION; Solnix spell(1) DESCRIPTION, +local_file
OpenBSD, NetBSD-b and the stop listOn the BSDs, the british file is used as a stop list unless -b is given, and -b adds American variants to the stop list. The Solnix page describes -b only as checking British spelling and does not mention the stop-list behaviour.
Source: OpenBSD spell(1) DESCRIPTION, -b; NetBSD spell(1) DESCRIPTION, -b; Solnix spell(1) -b
OpenBSD, NetBSDdefault word list and character setThe BSD pages say the default list is based on Webster's Second International dictionary. The Solnix page says its list is based on many sources, is light on biology, medicine and chemistry, and works only on English words in the U.S. ASCII codeset.
Source: OpenBSD spell(1) DESCRIPTION; NetBSD spell(1) DESCRIPTION; Solnix spell(1) DESCRIPTION, NOTES
OpenBSD, NetBSD-i without deroffSolnix -i is ignored if deroff(1) is not present on the system. The BSD pages do not say what happens in that case.
Source: Solnix spell(1) -i; OpenBSD spell(1) -i; NetBSD spell(1) -i
OpenBSD, NetBSDincluded files and exit statusSolnix spell does not follow included files whose names begin with /usr/lib. The BSD pages state no such exception. Solnix documents exit 0 for success and >0 for error. The BSD pages have no exit-status section.
Source: Solnix spell(1) DESCRIPTION, EXIT STATUS; OpenBSD spell(1) DESCRIPTION; NetBSD spell(1) DESCRIPTION

Standards

  • POSIX: spell is not a POSIX.1-2024 utility.
  • OpenBSD: HISTORY: spell first appeared in Version 5 AT&T UNIX. The 4.4BSD version was added to OpenBSD 3.1.
  • NetBSD: HISTORY: spell appeared in Version 6 AT&T UNIX.

Writing portable scripts

  • Use only -b, -v, -x and +file in portable scripts. Sort the +file list with sort -df, which also satisfies the Solnix ASCII ordering for plain lowercase words.
  • Do not rely on -l, -d, -h, -m, -s or -t: they are absent or mean different things on Solnix, OpenBSD and NetBSD.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.