Thun/tests/stan
sforman 69689f8cc6 Merge in the test suite.
Why not?

(I have a slow tide, expand into pieces, contract into units, and back
again.  This is part of a contract and unify phase.)
2023-08-12 08:19:54 -07:00
..
Makefile Merge in the test suite. 2023-08-12 08:19:54 -07:00
README.md Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-023.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-023.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
addition-023.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-002.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-002.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-002.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-003.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-003.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
bool-003.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
boolean-xor-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
branch-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
clear-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
clear-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
clear-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-eq-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-eq-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-eq-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ge-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ge-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ge-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-gt-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-gt-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-gt-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-le-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-le-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-le-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-lt-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-lt-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-lt-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ne-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ne-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
comparision-ne-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
concat-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
concat-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
concat-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-011.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-011.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-011.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-012.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-012.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
cons-012.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-002.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-002.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-002.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-003.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-003.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-003.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-004.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-004.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dip-004.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-023.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-023.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
division-023.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
dup-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
dup-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
dup-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
first-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
first-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
first-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-011.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-011.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-011.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-012.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-012.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
i-012.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
literals.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
literals.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
literals.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
loop-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
lshift-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-023.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-023.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
modulus-023.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-023.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-023.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
multiplication-023.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
parsing-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
pop-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-011.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-011.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-011.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-012.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-012.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rest-012.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
rshift-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-002.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-002.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
stack-002.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-020.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-020.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-020.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-021.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-021.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-021.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-022.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-022.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-022.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-023.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-023.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
subtraction-023.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-001.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-001.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-001.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-011.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-011.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-011.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-012.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-012.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swaack-012.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-000.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-000.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-000.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-010.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-010.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-010.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-011.joy Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-011.stderr Merge in the test suite. 2023-08-12 08:19:54 -07:00
swap-011.stdout Merge in the test suite. 2023-08-12 08:19:54 -07:00

README.md

Simple Test Set for Joy Programming Language

Each test consists of a snippet of Joy code along with the expected output (stdout and stderr) for a (conforming) Joy implementation. They are run with make.

For the explanation of how this test system works see: https://chrismorgan.info/blog/make-and-git-diff-test-harness/

Set the JOY environment variable to point to the joy interpreter to test, e.g.:

export JOY="python -m joy -q"

-or-

setenv JOY "python -m joy -q"

or whatever for your shell. Then run make.

The general command line is, e.g.:

gmake -j

To make all the tests, e.g.:

gmake -j --always-make

The the g- prefix indicates that this is GNU make (or compatible), and the -j switch tells make to use multiple jobs to take advantage of multi-core systems.