POSIX conditional compilation:

* All features related to POSIX environments (env vars, shell stuff) gated by feature flags
* Dependencies optional per feature flags
* new CI target for non-POSIX build
* new CI target for release binary artifact

Signed-off-by: Ava Hahn [ava@sunnypup.io](mailto:ava@sunnypup.io)
This commit is contained in:
Ava Apples Affine 2023-05-26 06:41:18 +00:00
parent 5e15109b0c
commit 906cb16355
13 changed files with 330 additions and 319 deletions

View file

@ -7,8 +7,8 @@ mod control_lib_tests {
let document = "(if true 1 2)";
let result = 1;
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -22,8 +22,8 @@ mod control_lib_tests {
let document = "(if false 1 2)";
let result = 2;
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -37,8 +37,8 @@ mod control_lib_tests {
let document = "(if true (cons () 1) 2)";
let result = "(1)";
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -55,8 +55,8 @@ mod control_lib_tests {
temp)";
let result = "('1' '2')";
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -74,8 +74,8 @@ mod control_lib_tests {
let document2 = "global";
let result = "('hello world')";
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&lex(&document1.to_string()).unwrap(), &mut syms).unwrap();
assert_eq!(
*eval(&lex(&document2.to_string()).unwrap(), &mut syms)
@ -90,8 +90,8 @@ mod control_lib_tests {
let document = "(let ((temp '1')) temp (cons () temp '2'))";
let result = "('1' '2')";
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -110,8 +110,8 @@ mod control_lib_tests {
let result = "('1' '2' '3')";
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
assert_eq!(
*eval(&lex(&document.to_string()).unwrap(), &mut syms)
.unwrap()
@ -139,8 +139,8 @@ mod control_lib_tests {
let check_tree = lex(&test_check.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&switch_tree, &mut syms).unwrap();
eval(&while_tree, &mut syms).unwrap();
@ -166,8 +166,8 @@ mod control_lib_tests {
let check_tree = lex(&test_check.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&switch_tree, &mut syms).unwrap();
eval(&while_tree, &mut syms).unwrap();
@ -193,8 +193,8 @@ mod control_lib_tests {
let check_tree = lex(&test_check.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&another_tree, &mut syms).unwrap();
eval(&switch_tree, &mut syms).unwrap();
@ -211,8 +211,8 @@ mod control_lib_tests {
let test_tree = lex(&test.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&doc_tree, &mut syms).unwrap();
let res = eval(&test_tree, &mut syms);
@ -228,8 +228,8 @@ mod control_lib_tests {
let test_tree = lex(&test.to_string()).unwrap();
let mut syms = SymTable::new();
static_stdlib(&mut syms).unwrap();
dynamic_stdlib(&mut syms, None).unwrap();
static_stdlib(&mut syms);
dynamic_stdlib(&mut syms, None);
eval(&doc_tree, &mut syms).unwrap();
assert_eq!(