changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > docs / annotate meta/style.org

changeset 11: d0a90a87b824
parent: 9a3d82d9072a
child: de53155af111
author: ellis <ellis@rwest.io>
date: Sat, 09 Dec 2023 20:50:45 -0500
permissions: -rw-r--r--
description: populate
9
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
1
 {{{header(style,
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
2
 Richard Westhaver,
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
3
 ellis@rwest.io,
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
4
 The Compiler Company Styleguide)}}}
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
5
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
6
 As an organization we maintain a styleguide[fn:1] which lists all of
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
7
 the style guidelines we use for our code. If you are contributing to
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
8
 one of our projects, you should review and understand the relevant
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
9
 sections below.
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
10
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
11
 You should also review the [[file:ulang.org][ulang]] document, which may shine some light
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
12
 on code comments and developer docs.
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
13
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
14
 [fn:1] https://google.github.io/styleguide/ 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
15
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
16
 * General Programming
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
17
 - indent-offset = 2
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
18
 - max-line-width = 80
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
19
 - page-length ~ 32
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
20
 - module-length ~ 512
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
21
 - file-size ~ 1024
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
22
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
23
 - start every source-file with a header comment
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
24
 - use outline headings to organize your program
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
25
 - use ulang-comments as needed for referencing bugs, notes, etc.
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
26
 - inline documentation should be declarative. your code explains your
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
27
   comments for you.
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
28
 - variables, imports, and exports belong at the top of a file
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
29
 - =main= functions belong at the bottom of a file
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
30
 * Common Lisp
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
31
 
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
32
 - prefer symbol docs to comments
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
33
 - use stdin/stdout/stderr correctly - see [[https://zenodo.org/records/3414191][CDR-11]]
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
34
 - always prefer =core= libraries over vendored dependencies
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
35
 - use the compiler internals - if a function or class is generally
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
36
   useful, add it to the core
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
37
 * Rust
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
38
 - don't make =mod.rs= files
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
39
   - use the =foo.rs=, =foo/*= pattern instead
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
40
 * Emacs Lisp
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
41
 * Org-mode
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
42
 * Shell
9a3d82d9072a refactoring
ellis <ellis@rwest.io>
parents:
diff changeset
43
 * Python