Coding Guidelines

Media

Felix currently requires all original sources to be encapsulated in interscript text files.

Files must end in either:

  1. pak for top level packages
  2. ipk for subcomponents of those packages

If you have a large data file, or one which is an authoritative externally sourced work such as an academic paper or standards data, a special exemption may be made to avoid gratuitious wrapping and tangling, whilst alleviating the customer of the need to separately download it.

Character set

Felix uses UTF-8 encoding of ISO10646/Unicode. Try to restrict use to the code points U+20 to U+7E plus U+10 (newline), the graphic characters of ASCII plus newline and space.

Although interscript can handle diverse encodings, we do not use this facility. Note in particular Latin-1 encoded text is not supported.

Special exception: data files deliberately using foreign encodings and character sets for the purpose of testing codecs. Note: a few Latin-1 encoded characters do appear occasionally in harmless places such as people's names.

Tabs are not permitted in original sources, and they may not be generated with a single exception: makefiles, because they're required.

Code layout guidelines

The following are sylistic guidelines, not hard rules. Your code won't be excluded if you use a shiftwidth of 4. If you embed tabs, however, you may find them magically replaced by spaces of the wrong width!

The standard shiftwidth is 2. Indentation must be systematic. Extra indentation is not allowed. Exactly one space should be used in flowing text. The exact indentation style is up to the individual developer.

Text should be constrained to 65 columns where possible. Extremely long lines are not allowed in original source (however it is OK to generate long lines). All literate programmed code should be preformatted for book pages, which have very narrow width.