about summary refs log tree commit diff stats
path: root/CONTRIBUTING.md
blob: 188c13f70d8e3eccf4e44ac0a948238a58e2b281 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Contributing to Profanity

## Coding style
Follow the style already present ;-)

## Pull Requests
Before submitting a Pull Request please run valgrind and the clang static code analyzer.

### valgrind
We provide a suppressions file `prof.supp`. It is a combination of the suppressions for shipped with glib2, python and custom rules.

`G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --tool=memcheck --track-origins=yes --leak-check=full --leak-resolution=high --num-callers=30 --show-leak-kinds=definite --log-file=profval --suppressions=prof.supp ./profanity`

### clang

Running the clang static code analyzer helps improving the quality too.

```
make clean
scan-build make
scan-view ...
```
='#n187'>187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278





















































































































































































































































































                                                                                                                                                                                         
c{0: 0 (((1 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((34 literal))) -- nil
c{0: 1 (((2 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((3 literal))) -- nil
c{0: 2 (((3 integer)) <- ((test1)) ((1 tagged-value-address)) ((2 tagged-value-address))) -- nil
c{1: 0 ✓ (((1 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((34 literal)))
c{1: 1 ✓ (((2 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((3 literal)))
c{1: 2 ✓ (((3 integer)) <- ((test1)) ((1 tagged-value-address)) ((2 tagged-value-address)))
c{0: 0 (((default-space space-address)) <- ((new)) ((space literal)) ((20 literal))) -- nil
c{0: 1 (((first-arg-box tagged-value-address)) <- ((next-input))) -- nil
c{0: 2 (((first-arg integer)) ((match? boolean)) <- ((maybe-coerce)) ((first-arg-box tagged-value-address) (deref)) ((integer literal))) -- ((open 2))
c{0: 3 (((break-unless)) ((match? boolean))) -- ((open 2))
c{0: 4 (((second-arg-box tagged-value-address)) <- ((next-input))) -- ((open 2))
c{0: 5 (((second-arg integer)) <- ((maybe-coerce)) ((second-arg-box tagged-value-address) (deref)) ((integer literal))) -- ((open 2))
c{0: 6 (((result integer)) <- ((add)) ((first-arg integer)) ((second-arg integer))) -- ((open 2))
c{0: 7 (((reply)) ((result integer))) -- ((open 2))
c{0: 8 (((reply)) ((nil literal))) -- ((close 8) (open 2))
c{1: 0 ✓ (((default-space space-address)) <- ((new)) ((space literal)) ((20 literal)))
c{1: 1 ✓ (((first-arg-box tagged-value-address)) <- ((next-input)))
c{1: 2 ✓ (((first-arg integer)) ((match? boolean)) <- ((maybe-coerce)) ((first-arg-box tagged-value-address) (deref)) ((integer literal)))
c{1: 3 X (((break-unless)) ((match? boolean))) => (((jump-unless)) ((match? boolean)) ((4 offset)))
c{1: 4 ✓ (((second-arg-box tagged-value-address)) <- ((next-input)))
c{1: 5 ✓ (((second-arg integer)) <- ((maybe-coerce)) ((second-arg-box tagged-value-address) (deref)) ((integer literal)))
c{1: 6 ✓ (((result integer)) <- ((add)) ((first-arg integer)) ((second-arg integer)))
c{1: 7 ✓ (((reply)) ((result integer)))
c{1: 8 ✓ (((reply)) ((nil literal)))
cn0: convert-names in main
cn0: (((1 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((34 literal))) nil nil
cn0: checking arg ((integer literal))
cn0: checking arg ((34 literal))
cn0: checking oarg ((1 tagged-value-address))
maybe-add: ((1 tagged-value-address))
cn0: (((2 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((3 literal))) nil nil
cn0: checking arg ((integer literal))
cn0: checking arg ((3 literal))
cn0: checking oarg ((2 tagged-value-address))
maybe-add: ((2 tagged-value-address))
cn0: (((3 integer)) <- ((test1)) ((1 tagged-value-address)) ((2 tagged-value-address))) nil nil
cn0: checking arg ((1 tagged-value-address))
maybe-add: ((1 tagged-value-address))
cn0: checking arg ((2 tagged-value-address))
maybe-add: ((2 tagged-value-address))
cn0: checking oarg ((3 integer))
maybe-add: ((3 integer))
cn0: convert-names in test1
cn0: (((default-space space-address)) <- ((new)) ((space literal)) ((20 literal))) nil nil
cn0: checking arg ((space literal))
cn0: checking arg ((20 literal))
cn0: checking oarg ((default-space space-address))
maybe-add: ((default-space space-address))
cn0: (((first-arg-box tagged-value-address)) <- ((next-input))) nil nil
cn0: checking oarg ((first-arg-box tagged-value-address))
maybe-add: ((first-arg-box tagged-value-address))
cn0: location for oarg ((first-arg-box tagged-value-address)): 1
cn0: (((first-arg integer)) ((match? boolean)) <- ((maybe-coerce)) ((first-arg-box tagged-value-address) (deref)) ((integer literal))) ((first-arg-box 1)) nil
cn0: checking arg ((first-arg-box tagged-value-address) (deref))
maybe-add: ((first-arg-box tagged-value-address) (deref))
cn0: checking arg ((integer literal))
cn0: checking oarg ((first-arg integer))
maybe-add: ((first-arg integer))
cn0: location for oarg ((first-arg integer)): 2
cn0: checking oarg ((match? boolean))
maybe-add: ((match? boolean))
cn0: location for oarg ((match? boolean)): 3
cn0: (((jump-unless)) ((match? boolean)) ((4 offset))) ((first-arg 2) (first-arg-box 1) (match? 3)) nil
cn0: checking arg ((match? boolean))
maybe-add: ((match? boolean))
cn0: checking arg ((4 offset))
cn0: (((second-arg-box tagged-value-address)) <- ((next-input))) ((first-arg 2) (first-arg-box 1) (match? 3)) nil
cn0: checking oarg ((second-arg-box tagged-value-address))
maybe-add: ((second-arg-box tagged-value-address))
cn0: location for oarg ((second-arg-box tagged-value-address)): 4
cn0: (((second-arg integer)) <- ((maybe-coerce)) ((second-arg-box tagged-value-address) (deref)) ((integer literal))) ((first-arg 2) (first-arg-box 1) (match? 3) (second-arg-box 4)) nil
cn0: checking arg ((second-arg-box tagged-value-address) (deref))
maybe-add: ((second-arg-box tagged-value-address) (deref))
cn0: checking arg ((integer literal))
cn0: checking oarg ((second-arg integer))
maybe-add: ((second-arg integer))
cn0: location for oarg ((second-arg integer)): 5
cn0: (((result integer)) <- ((add)) ((first-arg integer)) ((second-arg integer))) ((first-arg 2) (first-arg-box 1) (match? 3) (second-arg 5) (second-arg-box 4)) nil
cn0: checking arg ((first-arg integer))
maybe-add: ((first-arg integer))
cn0: checking arg ((second-arg integer))
maybe-add: ((second-arg integer))
cn0: checking oarg ((result integer))
maybe-add: ((result integer))
cn0: location for oarg ((result integer)): 6
cn0: (((reply)) ((result integer))) ((first-arg 2) (first-arg-box 1) (match? 3) (result 6) (second-arg 5) (second-arg-box 4)) nil
cn0: checking arg ((result integer))
maybe-add: ((result integer))
cn0: (((reply)) ((nil literal))) ((first-arg 2) (first-arg-box 1) (match? 3) (result 6) (second-arg 5) (second-arg-box 4)) nil
cn0: checking arg ((nil literal))
cn1: (((1 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((34 literal)))
cn1: (((2 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((3 literal)))
cn1: (((3 integer)) <- ((test1)) ((1 tagged-value-address)) ((2 tagged-value-address)))
cn1: (((default-space space-address)) <- ((new)) ((space literal)) ((20 literal)))
cn1: (((1 tagged-value-address)) <- ((next-input)))
cn1: (((2 integer)) ((3 boolean)) <- ((maybe-coerce)) ((1 tagged-value-address) (deref)) ((integer literal)))
cn1: (((jump-unless)) ((3 boolean)) ((4 offset)))
cn1: (((4 tagged-value-address)) <- ((next-input)))
cn1: (((5 integer)) <- ((maybe-coerce)) ((4 tagged-value-address) (deref)) ((integer literal)))
cn1: (((6 integer)) <- ((add)) ((2 integer)) ((5 integer)))
cn1: (((reply)) ((6 integer)))
cn1: (((reply)) ((nil literal)))
schedule: main
run: main 0: (((1 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((34 literal)))
run: init-tagged-value/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: init-tagged-value/main 0: 1000 => ((default-space space-address))
run: init-tagged-value/main 1: (((1 type)) <- ((next-input)))
arg: nil 0 (integer 34)
run: init-tagged-value/main 1: integer => ((1 type))
mem: ((1 type)): 1002 <= integer
run: init-tagged-value/main 2: (((2 integer)) <- ((sizeof)) ((1 type)))
mem: ((1 type)) => integer
run: init-tagged-value/main 2: 1 => ((2 integer))
mem: ((2 integer)): 1003 <= 1
run: init-tagged-value/main 3: (((3 boolean)) <- ((equal)) ((2 integer)) ((1 literal)))
mem: ((2 integer)) => 1
run: init-tagged-value/main 3: t => ((3 boolean))
mem: ((3 boolean)): 1004 <= t
run: init-tagged-value/main 4: (((assert)) ((3 boolean)))
mem: ((3 boolean)) => t
run: init-tagged-value/main 5: (((4 tagged-value-address)) <- ((new)) ((tagged-value literal)))
run: init-tagged-value/main 5: 1031 => ((4 tagged-value-address))
mem: ((4 tagged-value-address)): 1005 <= 1031
run: init-tagged-value/main 6: (((5 location)) <- ((get-address)) ((4 tagged-value-address) (deref)) ((0 offset)))
run: init-tagged-value/main 6: 1031 => ((5 location))
mem: ((5 location)): 1006 <= 1031
run: init-tagged-value/main 7: (((5 location) (deref)) <- ((copy)) ((1 type)))
mem: ((1 type)) => integer
run: init-tagged-value/main 7: integer => ((5 location) (deref))
mem: ((5 location) (deref)): 1031 <= integer
run: init-tagged-value/main 8: (((6 location)) <- ((get-address)) ((4 tagged-value-address) (deref)) ((1 offset)))
run: init-tagged-value/main 8: 1032 => ((6 location))
mem: ((6 location)): 1007 <= 1032
run: init-tagged-value/main 9: (((6 location) (deref)) <- ((next-input)))
arg: nil 1 (integer 34)
run: init-tagged-value/main 9: 34 => ((6 location) (deref))
mem: ((6 location) (deref)): 1032 <= 34
run: init-tagged-value/main 10: (((reply)) ((4 tagged-value-address)))
mem: ((4 tagged-value-address)) => 1031
run: main 0: 1031 => ((1 tagged-value-address))
mem: ((1 tagged-value-address)): 1 <= 1031
run: main 1: (((2 tagged-value-address)) <- ((init-tagged-value)) ((integer literal)) ((3 literal)))
run: init-tagged-value/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: init-tagged-value/main 0: 1033 => ((default-space space-address))
run: init-tagged-value/main 1: (((1 type)) <- ((next-input)))
arg: nil 0 (integer 3)
run: init-tagged-value/main 1: integer => ((1 type))
mem: ((1 type)): 1035 <= integer
run: init-tagged-value/main 2: (((2 integer)) <- ((sizeof)) ((1 type)))
mem: ((1 type)) => integer
run: init-tagged-value/main 2: 1 => ((2 integer))
mem: ((2 integer)): 1036 <= 1
run: init-tagged-value/main 3: (((3 boolean)) <- ((equal)) ((2 integer)) ((1 literal)))
mem: ((2 integer)) => 1
run: init-tagged-value/main 3: t => ((3 boolean))
mem: ((3 boolean)): 1037 <= t
run: init-tagged-value/main 4: (((assert)) ((3 boolean)))
mem: ((3 boolean)) => t
run: init-tagged-value/main 5: (((4 tagged-value-address)) <- ((new)) ((tagged-value literal)))
run: init-tagged-value/main 5: 1064 => ((4 tagged-value-address))
mem: ((4 tagged-value-address)): 1038 <= 1064
run: init-tagged-value/main 6: (((5 location)) <- ((get-address)) ((4 tagged-value-address) (deref)) ((0 offset)))
run: init-tagged-value/main 6: 1064 => ((5 location))
mem: ((5 location)): 1039 <= 1064
run: init-tagged-value/main 7: (((5 location) (deref)) <- ((copy)) ((1 type)))
mem: ((1 type)) => integer
run: init-tagged-value/main 7: integer => ((5 location) (deref))
mem: ((5 location) (deref)): 1064 <= integer
run: init-tagged-value/main 8: (((6 location)) <- ((get-address)) ((4 tagged-value-address) (deref)) ((1 offset)))
run: init-tagged-value/main 8: 1065 => ((6 location))
mem: ((6 location)): 1040 <= 1065
run: init-tagged-value/main 9: (((6 location) (deref)) <- ((next-input)))
arg: nil 1 (integer 3)
run: init-tagged-value/main 9: 3 => ((6 location) (deref))
mem: ((6 location) (deref)): 1065 <= 3
run: init-tagged-value/main 10: (((reply)) ((4 tagged-value-address)))
mem: ((4 tagged-value-address)) => 1064
run: main 1: 1064 => ((2 tagged-value-address))
mem: ((2 tagged-value-address)): 2 <= 1064
run: main 2: (((3 integer)) <- ((test1)) ((1 tagged-value-address)) ((2 tagged-value-address)))
mem: ((1 tagged-value-address)) => 1031
mem: ((2 tagged-value-address)) => 1064
run: test1/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((20 literal)))
run: test1/main 0: 1066 => ((default-space space-address))
run: test1/main 1: (((1 tagged-value-address)) <- ((next-input)))
arg: nil 0 (1031 1064)
run: test1/main 1: 1031 => ((1 tagged-value-address))
mem: ((1 tagged-value-address)): 1068 <= 1031
run: test1/main 2: (((2 integer)) ((3 boolean)) <- ((maybe-coerce)) ((1 tagged-value-address) (deref)) ((integer literal)))
mem: ((1 tagged-value-address) (deref)) => #(tagged record (integer 34 . nil))
run: maybe-coerce/test1/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: maybe-coerce/test1/main 0: 1087 => ((default-space space-address))
run: maybe-coerce/test1/main 1: (((1 tagged-value-address)) <- ((new)) ((tagged-value literal)))
run: maybe-coerce/test1/main 1: 1118 => ((1 tagged-value-address))
mem: ((1 tagged-value-address)): 1089 <= 1118
run: maybe-coerce/test1/main 2: (((1 tagged-value-address) (deref)) <- ((next-input)))
arg: nil 0 (#(tagged record (integer 34 . nil)) integer)
run: maybe-coerce/test1/main 2: #(tagged record (integer 34 . nil)) => ((1 tagged-value-address) (deref))
mem: ((1 tagged-value-address) (deref)): 1118 <= integer
mem: ((1 tagged-value-address) (deref)): 1119 <= 34
run: maybe-coerce/test1/main 3: (((2 type)) <- ((next-input)))
arg: nil 1 (#(tagged record (integer 34 . nil)) integer)
run: maybe-coerce/test1/main 3: integer => ((2 type))
mem: ((2 type)): 1090 <= integer
run: maybe-coerce/test1/main 4: (((3 type)) <- ((get)) ((1 tagged-value-address) (deref)) ((0 offset)))
mem: ((1118 type) (raw)) => integer
run: maybe-coerce/test1/main 4: integer => ((3 type))
mem: ((3 type)): 1091 <= integer
run: maybe-coerce/test1/main 5: (((4 boolean)) <- ((equal)) ((3 type)) ((2 type)))
mem: ((3 type)) => integer
mem: ((2 type)) => integer
run: maybe-coerce/test1/main 5: t => ((4 boolean))
mem: ((4 boolean)): 1092 <= t
run: maybe-coerce/test1/main 6: (((jump-if)) ((4 boolean)) ((1 offset)))
mem: ((4 boolean)) => t
run: maybe-coerce/test1/main 8: (((5 location)) <- ((get)) ((1 tagged-value-address) (deref)) ((1 offset)))
mem: ((1119 location) (raw)) => 34
run: maybe-coerce/test1/main 8: 34 => ((5 location))
mem: ((5 location)): 1093 <= 34
run: maybe-coerce/test1/main 9: (((reply)) ((5 location)) ((4 boolean)))
mem: ((5 location)) => 34
mem: ((4 boolean)) => t
run: test1/main 2: 34 => ((2 integer))
mem: ((2 integer)): 1069 <= 34
run: test1/main 2: t => ((3 boolean))
mem: ((3 boolean)): 1070 <= t
run: test1/main 3: (((jump-unless)) ((3 boolean)) ((4 offset)))
mem: ((3 boolean)) => t
run: test1/main 4: (((4 tagged-value-address)) <- ((next-input)))
arg: nil 1 (1031 1064)
run: test1/main 4: 1064 => ((4 tagged-value-address))
mem: ((4 tagged-value-address)): 1071 <= 1064
run: test1/main 5: (((5 integer)) <- ((maybe-coerce)) ((4 tagged-value-address) (deref)) ((integer literal)))
mem: ((4 tagged-value-address) (deref)) => #(tagged record (integer 3 . nil))
run: maybe-coerce/test1/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: maybe-coerce/test1/main 0: 1120 => ((default-space space-address))
run: maybe-coerce/test1/main 1: (((1 tagged-value-address)) <- ((new)) ((tagged-value literal)))
run: maybe-coerce/test1/main 1: 1151 => ((1 tagged-value-address))
mem: ((1 tagged-value-address)): 1122 <= 1151
run: maybe-coerce/test1/main 2: (((1 tagged-value-address) (deref)) <- ((next-input)))
arg: nil 0 (#(tagged record (integer 3 . nil)) integer)
run: maybe-coerce/test1/main 2: #(tagged record (integer 3 . nil)) => ((1 tagged-value-address) (deref))
mem: ((1 tagged-value-address) (deref)): 1151 <= integer
mem: ((1 tagged-value-address) (deref)): 1152 <= 3
run: maybe-coerce/test1/main 3: (((2 type)) <- ((next-input)))
arg: nil 1 (#(tagged record (integer 3 . nil)) integer)
run: maybe-coerce/test1/main 3: integer => ((2 type))
mem: ((2 type)): 1123 <= integer
run: maybe-coerce/test1/main 4: (((3 type)) <- ((get)) ((1 tagged-value-address) (deref)) ((0 offset)))
mem: ((1151 type) (raw)) => integer
run: maybe-coerce/test1/main 4: integer => ((3 type))
mem: ((3 type)): 1124 <= integer
run: maybe-coerce/test1/main 5: (((4 boolean)) <- ((equal)) ((3 type)) ((2 type)))
mem: ((3 type)) => integer
mem: ((2 type)) => integer
run: maybe-coerce/test1/main 5: t => ((4 boolean))
mem: ((4 boolean)): 1125 <= t
run: maybe-coerce/test1/main 6: (((jump-if)) ((4 boolean)) ((1 offset)))
mem: ((4 boolean)) => t
run: maybe-coerce/test1/main 8: (((5 location)) <- ((get)) ((1 tagged-value-address) (deref)) ((1 offset)))
mem: ((1152 location) (raw)) => 3
run: maybe-coerce/test1/main 8: 3 => ((5 location))
mem: ((5 location)): 1126 <= 3
run: maybe-coerce/test1/main 9: (((reply)) ((5 location)) ((4 boolean)))
mem: ((5 location)) => 3
mem: ((4 boolean)) => t
run: test1/main 5: 3 => ((5 integer))
mem: ((5 integer)): 1072 <= 3
run: test1/main 6: (((6 integer)) <- ((add)) ((2 integer)) ((5 integer)))
mem: ((2 integer)) => 34
mem: ((5 integer)) => 3
run: test1/main 6: 37 => ((6 integer))
mem: ((6 integer)): 1073 <= 37
run: test1/main 7: (((reply)) ((6 integer)))
mem: ((6 integer)) => 37
run: main 2: 37 => ((3 integer))
mem: ((3 integer)): 3 <= 37
schedule: done with routine nil