Include string.h to fix:
execute.c:84:11: error: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)' [-Werror,-Wimplicit-function-declaration]

Remove argument when invoking cupl_reset_write to fix:
execute.c:193:19: error: too many arguments to function call, expected 0, have 1

Remove first parameter when calling cupl_min and cupl_max to fix:
execute.c:320:20: warning: variable 'leftside' is uninitialized when used here [-Wuninitialized]

Change result.rank == FAIL to result.rank = FAIL to fix:
execute.c:610:14: warning: equality comparison result unused [-Wunused-comparison]
execute.c:619:14: warning: equality comparison result unused [-Wunused-comparison]
execute.c:633:14: warning: equality comparison result unused [-Wunused-comparison]
--- execute.c.orig	2015-11-21 17:42:11.000000000 -0600
+++ execute.c	2023-01-12 21:33:01.000000000 -0600
@@ -15,6 +15,7 @@
 *****************************************************************************/
 /*LINTLIBRARY*/
 #include <stdio.h>
+#include <string.h>
 #include <setjmp.h>
 #include <math.h>
 #include "cupl.h"
@@ -189,7 +190,7 @@
 	return(result);
 
     case WRITE:
-	cupl_reset_write(0);
+	cupl_reset_write();
 	for_cdr(np, tree)
 	    eval_write(np->car);
 	cupl_eol_write();
@@ -316,16 +317,14 @@
 
     case MAX:
 	rightside = EVAL_WRAP(cupl_eval(tree->cdr));
-	result = cupl_max(leftside, rightside);
-	deallocate_value(&leftside);
+	result = cupl_max(rightside);
 	deallocate_value(&rightside);
 	RETURN_WRAP(tree, tree->car, tree->cdr, result)
 	return(result);
 
     case MIN:
 	rightside = EVAL_WRAP(cupl_eval(tree->cdr));
-	result = cupl_min(leftside, rightside);
-	deallocate_value(&leftside);
+	result = cupl_min(rightside);
 	deallocate_value(&rightside);
 	RETURN_WRAP(tree, tree->car, tree->cdr, result)
 	return(result);
@@ -606,7 +605,7 @@
 	leftside = EVAL_WRAP(cupl_eval(tree->car));
 	if (leftside.rank)
 	    cupl_eval(tree->cdr);
-	result.rank == FAIL;
+	result.rank = FAIL;
 	return(result);
 
     case IFELSE:
@@ -615,7 +614,7 @@
 	    cupl_eval(tree->cdr->car);
 	else
 	    cupl_eval(tree->cdr->cdr);
-	result.rank == FAIL;
+	result.rank = FAIL;
 	return(result);
 
     case STOP:
@@ -629,7 +628,7 @@
     case WATCH:
 	for_cdr(np, tree)
 	    np->car->syminf->watchcount = 10;
-	result.rank == FAIL;
+	result.rank = FAIL;
 	return(result);
 
     default:
