--- crm114.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm114.h 2020-09-29 11:24:33.568829000 -0700 @@ -10,25 +10,25 @@ // Global variables // The VHT (Variable Hash Table) -VHT_CELL **vht; +extern VHT_CELL **vht; // The pointer to the global Current Stack Level (CSL) frame -CSL_CELL *csl; +extern CSL_CELL *csl; // the data window -CSL_CELL *cdw; +extern CSL_CELL *cdw; // the temporarys data window (where argv, environ, newline etc. live) -CSL_CELL *tdw; +extern CSL_CELL *tdw; // the pointer to a CSL that we use during matching. This is flipped // to point to the right data window during matching. It doesn't have // it's own data, unlike cdw and tdw. -CSL_CELL *mdw; +extern CSL_CELL *mdw; // a pointer to the current statement argparse block. This gets whacked // on every new statement. -ARGPARSE_BLOCK *apb; +extern ARGPARSE_BLOCK *apb; // the microcompiler int crm_microcompiler (CSL_CELL *csl, --- crm114_structs.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm114_structs.h 2020-09-29 11:25:56.181047000 -0700 @@ -9,35 +9,31 @@ // These are systemwide globals. Sure, they should go into a global // struct, but that realization only occured to me in 2008. Sorry. -long vht_size; -long cstk_limit; -long max_pgmlines; -long max_pgmsize; -long max_pgmsize; -long user_trace; -long internal_trace; -long debug_countdown; -long cmdline_break; -long cycle_counter; -long ignore_environment_vars; -long data_window_size; +extern long vht_size; +extern long max_pgmsize; +extern long user_trace; +extern long internal_trace; +extern long debug_countdown; +extern long cmdline_break; +extern long cycle_counter; +extern long ignore_environment_vars; +extern long data_window_size; // Number of hash table buckets. Set from command line, read (only) // by classifier learns. -long sparse_spectrum_file_length; +extern long sparse_spectrum_file_length; -long microgroom_chain_length ; -long microgroom_stop_after; +extern long microgroom_chain_length ; +extern long microgroom_stop_after; -float min_pmax_pmin_ratio; -long profile_execution; +extern float min_pmax_pmin_ratio; +extern long profile_execution; -int dontcare; -void *dontcareptr; +extern int dontcare; -long prettyprint_listing; // 0= none, 1 = basic, 2 = expanded, 3 = parsecode +extern long prettyprint_listing; // 0= none, 1 = basic, 2 = expanded, 3 = parsecode -long engine_exit_base; // All internal errors will use this number or higher; +extern long engine_exit_base; // All internal errors will use this number or higher; // the user programs can use lower numbers freely. @@ -46,7 +42,7 @@ // = 1 no extended (non-EVAL) math, use RPN // = 2 extended (everywhere) math, use algebraic notation // = 3 extended (everywhere) math, use RPN -long q_expansion_mode; +extern long q_expansion_mode; // structure of a vht cell --- crm_expr_syscall.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_expr_syscall.c 2020-09-29 11:27:01.849003000 -0700 @@ -331,7 +331,7 @@ if (user_trace) fprintf (stderr, "Redirecting minion stdin to %s\n", filename); - dontcareptr = freopen (filename, "rb", stdin); + (void )freopen (filename, "rb", stdin); }; if (sys_cmd[vstart] == '>') { @@ -343,7 +343,7 @@ fprintf (stderr, "Redirecting minion stdout to %s\n", filename); - dontcareptr = freopen (filename, "wb", stdout); + (void )freopen (filename, "wb", stdout); } else { @@ -353,7 +353,7 @@ fprintf (stderr, "Appending minion stdout to %s\n", filename); - dontcareptr = freopen (filename, "a+", stdout); + (void )freopen (filename, "a+", stdout); } }; } --- crm_main.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_main.c 2020-09-29 11:24:03.412831000 -0700 @@ -17,6 +17,30 @@ // and include OSBF declarations #include "crm114_osbf.h" +// +// Global variables + +// The VHT (Variable Hash Table) +VHT_CELL **vht; + +// The pointer to the global Current Stack Level (CSL) frame +CSL_CELL *csl; + +// the data window +CSL_CELL *cdw; + +// the temporarys data window (where argv, environ, newline etc. live) +CSL_CELL *tdw; + +// the pointer to a CSL that we use during matching. This is flipped +// to point to the right data window during matching. It doesn't have +// it's own data, unlike cdw and tdw. +CSL_CELL *mdw; + +// a pointer to the current statement argparse block. This gets whacked +// on every new statement. +ARGPARSE_BLOCK *apb; + // the command line argv char **prog_argv; @@ -29,6 +53,21 @@ char *outbuf; char *tempbuf; +long vht_size; +long max_pgmsize; +long data_window_size; +long sparse_spectrum_file_length; +float min_pmax_pmin_ratio; +long ignore_environment_vars; +long debug_countdown; +long cycle_counter; +long cmdline_break; +long profile_execution; +long prettyprint_listing; +long engine_exit_base; +long q_expansion_mode; +static long max_pgmlines; + int main (int argc, char **argv) { int i; // some random counters, when we need a loop @@ -45,7 +84,6 @@ prog_argv = argv; vht_size = DEFAULT_VHT_SIZE; - cstk_limit = DEFAULT_CSTK_LIMIT; max_pgmlines = DEFAULT_MAX_PGMLINES; max_pgmsize = DEFAULT_MAX_PGMLINES * 128; data_window_size = DEFAULT_DATA_WINDOW; --- crm_osbf_maintenance.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_osbf_maintenance.c 2020-09-29 11:11:31.072503000 -0700 @@ -22,6 +22,9 @@ #include "crm114_osbf.h" +long microgroom_chain_length; +long microgroom_stop_after; + /* Version names */ char *CSS_version_name[] = { "SBPH-Markovian", --- crm_pca.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_pca.c 2020-09-29 11:30:23.757205000 -0700 @@ -14,6 +14,8 @@ #include "crm_pca.h" +int PCA_DEBUG_MODE; + //static function declarations static Vector *convert_document(char *text, long text_len, unsigned int *features, --- crm_pca_lib_fncts.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_pca_lib_fncts.h 2020-09-29 11:13:30.976438000 -0700 @@ -25,7 +25,7 @@ //The intermediate DEBUG modes may enable debug printing for the //matrix operations. See crm_svm_matrix_util.h for details. -int PCA_DEBUG_MODE; //The debug mode for the PCA +extern int PCA_DEBUG_MODE; //The debug mode for the PCA extern int MATR_DEBUG_MODE; //Debug mode for matrices. MATR_DEBUG_MODE = PCA_DEBUG_MODE //Defined in crm_svm_matrix_util.h --- crm_str_funcs.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_str_funcs.c 2020-09-29 11:07:19.848617000 -0700 @@ -16,6 +16,10 @@ // and include the routine declarations file #include "crm114.h" +int dontcare; +long internal_trace; +long user_trace; + // strnhash - generate the hash of a string of length N // goals - fast, works well with short vars includng // letter pairs and palindromes, not crypto strong, generates --- crm_svm.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm.c 2020-09-29 11:29:52.525272000 -0700 @@ -13,6 +13,8 @@ #include "crm_svm.h" +int SVM_DEBUG_MODE; + //static function declarations static Vector *convert_document(char *text, long text_len, unsigned int *features, --- crm_svm_lib_fncts.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm_lib_fncts.h 2020-09-29 11:13:06.456437000 -0700 @@ -47,7 +47,7 @@ //a feasible setting since the print operations //put all the zeros in! -int SVM_DEBUG_MODE; //There are a number of modes. +extern int SVM_DEBUG_MODE; //There are a number of modes. //See crm_svm_matrix_util.h for them. //the SVM solution struct typedef struct { --- crm_svm_matrix.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm_matrix.c 2020-09-29 11:28:36.597637000 -0700 @@ -14,6 +14,8 @@ #include "crm_svm_matrix.h" #include "crm_svm_matrix_util.h" +int MATR_DEBUG_MODE; + /***************************************************************************** *This is a matrix/vector library. *The intent of it is to keep all matrix operations out of the algorithms. --- crm_svm_matrix_util.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm_matrix_util.h 2020-09-29 11:10:00.228429000 -0700 @@ -58,7 +58,7 @@ #define MY_INLINE static inline #endif -int MATR_DEBUG_MODE; //the debug value +extern int MATR_DEBUG_MODE; //the debug value //for SVM, if internal trace is on //MATR_DEBUG_MODE = SVM_INTERNAL_TRACE_LEVEL //for PCA, if internal trace is on --- crm_svm_quad_prog.c.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm_quad_prog.c 2020-09-29 11:29:28.397123000 -0700 @@ -13,6 +13,7 @@ // Copyright 2009 William S. Yerazunis. // This file is under GPLv3, as described in COPYING. +int QP_DEBUG_MODE; /****************************************************************** *We use the active set method outlined in Gill and Murray 1977 --- crm_svm_quad_prog.h.orig 2010-01-06 10:38:46.000000000 -0800 +++ crm_svm_quad_prog.h 2020-09-29 11:29:04.628919000 -0700 @@ -20,8 +20,6 @@ extern int MATR_DEBUG_MODE; //debugging mode. see crm_svm_matrix_util.h for //possible values. -int QP_DEBUG_MODE; - #define QP_DEBUG 2 //basic information about the qp solver #define QP_DEBUG_LOOP 3 //prints some information during each qp loop