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 bool_lib_tests {
let document = "(and true true true true true)";
let result = "true";
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 bool_lib_tests {
let document = "(and true true false true true)";
let result = "false";
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 bool_lib_tests {
let document = "(and false false false false false)";
let result = "false";
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()
@ -52,8 +52,8 @@ mod bool_lib_tests {
let document = "(or true true true true true)";
let result = "true";
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()
@ -67,8 +67,8 @@ mod bool_lib_tests {
let document = "(or true true false true true)";
let result = "true";
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()
@ -82,8 +82,8 @@ mod bool_lib_tests {
let document = "(or false false false false false)";
let result = "false";
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()
@ -97,8 +97,8 @@ mod bool_lib_tests {
let document = "(not true)";
let result = "false";
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()
@ -114,8 +114,8 @@ mod bool_lib_tests {
let check = "(tester)";
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);
let doc_tree = lex(&document.to_string()).unwrap();
let change_tree = lex(&change.to_string()).unwrap();
@ -153,8 +153,8 @@ mod bool_lib_tests {
let check = "(tester)";
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);
let doc_tree = lex(&document.to_string()).unwrap();
let change_tree = lex(&change.to_string()).unwrap();
@ -186,8 +186,8 @@ mod bool_lib_tests {
let check = "(tester '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);
let doc_tree = lex(&document.to_string()).unwrap();
let change_tree = lex(&change.to_string()).unwrap();
@ -216,8 +216,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -232,8 +232,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -248,8 +248,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -264,8 +264,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -280,8 +280,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -296,8 +296,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -312,8 +312,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -328,8 +328,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -344,8 +344,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -360,8 +360,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -376,8 +376,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)
@ -392,8 +392,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(b)
@ -408,8 +408,8 @@ mod bool_lib_tests {
let test = lex(&document.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);
if let Ctr::Bool(b) = *eval(&test, &mut syms).unwrap() {
assert!(!b)