Blob Blame History Raw
diff -durpN ecl-11.1.1.ORIG/src/c/assignment.d ecl-11.1.1/src/c/assignment.d
--- ecl-11.1.1.ORIG/src/c/assignment.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/assignment.d	2011-01-17 17:13:42.089782052 -0700
@@ -116,7 +116,6 @@ ecl_clear_compiler_properties(cl_object 
 cl_object
 si_get_sysprop(cl_object sym, cl_object prop)
 {
-	cl_env_ptr the_env = ecl_process_env();
 	cl_object plist = ecl_gethash_safe(sym, cl_core.system_properties, Cnil);
 	prop = ecl_getf(plist, prop, OBJNULL);
 	if (prop == OBJNULL) {
diff -durpN ecl-11.1.1.ORIG/src/c/cfun.d ecl-11.1.1/src/c/cfun.d
--- ecl-11.1.1.ORIG/src/c/cfun.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/cfun.d	2011-01-17 17:04:08.347278978 -0700
@@ -204,7 +204,7 @@ si_compiled_function_file(cl_object b)
 	}
 }
 
-cl_object
+void
 ecl_set_function_source_file_info(cl_object b, cl_object source, cl_object position)
 {
 	cl_env_ptr the_env = ecl_process_env();
diff -durpN ecl-11.1.1.ORIG/src/c/cfun_dispatch.d ecl-11.1.1/src/c/cfun_dispatch.d
--- ecl-11.1.1.ORIG/src/c/cfun_dispatch.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/cfun_dispatch.d	2011-01-17 17:02:24.906531522 -0700
@@ -451,13 +451,6 @@ static cl_object dispatch63 (cl_narg nar
   return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
 }
 
-static cl_object dispatch64 (cl_narg narg, cl_object x0, cl_object x1, cl_object x2, cl_object x3, cl_object x4, cl_object x5, cl_object x6, cl_object x7, cl_object x8, cl_object x9, cl_object x10, cl_object x11, cl_object x12, cl_object x13, cl_object x14, cl_object x15, cl_object x16, cl_object x17, cl_object x18, cl_object x19, cl_object x20, cl_object x21, cl_object x22, cl_object x23, cl_object x24, cl_object x25, cl_object x26, cl_object x27, cl_object x28, cl_object x29, cl_object x30, cl_object x31, cl_object x32, cl_object x33, cl_object x34, cl_object x35, cl_object x36, cl_object x37, cl_object x38, cl_object x39, cl_object x40, cl_object x41, cl_object x42, cl_object x43, cl_object x44, cl_object x45, cl_object x46, cl_object x47, cl_object x48, cl_object x49, cl_object x50, cl_object x51, cl_object x52, cl_object x53, cl_object x54, cl_object x55, cl_object x56, cl_object x57, cl_object x58, cl_object x59, cl_object x60, cl_object x61, cl_object x62, cl_object x63) {
-  const cl_env_ptr the_env = ecl_process_env();
-  cl_object fun = the_env->function;
-  if (ecl_unlikely(narg != 64)) FEwrong_num_arguments(fun);
-  return fun->cfunfixed.entry_fixed(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
-}
-
 static cl_objectfn dispatch_table[64] = {
 (cl_objectfn)dispatch0, 
 (cl_objectfn)dispatch1, 
diff -durpN ecl-11.1.1.ORIG/src/c/char_ctype.d ecl-11.1.1/src/c/char_ctype.d
--- ecl-11.1.1.ORIG/src/c/char_ctype.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/char_ctype.d	2011-01-17 16:39:30.837515608 -0700
@@ -82,12 +82,14 @@ ucd_value_0(ecl_character code)
 
 #define read_3bytes(c) c[0] + (c[1] << 8) + (c[2] << 16)
 
+#if 0
 static ecl_character
 ucd_value_1(ecl_character code)
 {
 	uint8_t *c = ucd_char_data(code);
 	return read_3bytes(c);
 }
+#endif
 
 static int
 ucd_general_category(ecl_character code)
diff -durpN ecl-11.1.1.ORIG/src/c/compiler.d ecl-11.1.1/src/c/compiler.d
--- ecl-11.1.1.ORIG/src/c/compiler.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/compiler.d	2011-01-17 16:31:46.980655947 -0700
@@ -2490,7 +2490,6 @@ si_process_lambda_list(cl_object org_lam
 #define AT_KEYS		3
 #define AT_OTHER_KEYS	4
 #define AT_AUXS		5
-	const cl_env_ptr the_env = ecl_process_env();
 	cl_object v, key, init, spp, lambda_list = org_lambda_list;
 	cl_object reqs = Cnil, opts = Cnil, keys = Cnil, rest = Cnil, auxs = Cnil;
 	int nreq = 0, nopt = 0, nkey = 0, naux = 0, stage = 0;
@@ -2830,7 +2829,7 @@ si_valid_function_name_p(cl_object name)
 cl_object
 si_make_lambda(cl_object name, cl_object rest)
 {
-	cl_object lambda;
+	cl_object lambda = Cnil;
         const cl_env_ptr the_env = ecl_process_env();
 	volatile cl_compiler_env_ptr old_c_env = the_env->c_env;
 	struct cl_compiler_env new_c_env;
@@ -2849,7 +2848,7 @@ si_make_lambda(cl_object name, cl_object
 	volatile cl_compiler_env_ptr old_c_env;
 	struct cl_compiler_env new_c_env;
 	volatile cl_index handle;
-	cl_object bytecodes, interpreter_env, compiler_env;
+	cl_object bytecodes = Cnil, interpreter_env, compiler_env;
 @
 	/*
 	 * Compile to bytecodes.
diff -durpN ecl-11.1.1.ORIG/src/c/disassembler.d ecl-11.1.1/src/c/disassembler.d
--- ecl-11.1.1.ORIG/src/c/disassembler.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/disassembler.d	2011-01-17 16:32:12.667094449 -0700
@@ -614,7 +614,6 @@ si_bc_disassemble(cl_object v)
 cl_object
 si_bc_split(cl_object b)
 {
-	const cl_env_ptr the_env = ecl_process_env();
 	cl_object vector;
 	cl_object data;
 	cl_object lex = Cnil;
diff -durpN ecl-11.1.1.ORIG/src/c/ffi/libraries.d ecl-11.1.1/src/c/ffi/libraries.d
--- ecl-11.1.1.ORIG/src/c/ffi/libraries.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/ffi/libraries.d	2011-01-17 17:11:26.346739168 -0700
@@ -191,7 +191,7 @@ static cl_object
 ecl_library_open_inner(cl_object filename, bool self_destruct)
 {
         const cl_env_ptr the_env = ecl_process_env();
-	cl_object other, block = ecl_alloc_object(t_codeblock);
+	cl_object block = ecl_alloc_object(t_codeblock);
 	block->cblock.self_destruct = self_destruct;
 	block->cblock.locked = 0;
 	block->cblock.handle = NULL;
@@ -237,7 +237,6 @@ cl_object
 ecl_library_open(cl_object filename, bool force_reload) {
 	cl_object block;
 	bool self_destruct = 0;
-	char *filename_string;
 
 	/* Coerces to a file name but does not merge with cwd */
 	filename = coerce_to_physical_pathname(filename);
@@ -409,7 +408,6 @@ ecl_library_close(cl_object block) {
                 ecl_enable_interrupts();
         } ECL_WITH_GLOBAL_LOCK_END;
 	if (block != Cnil && block->cblock.self_destruct) {
-                const char *filename;
                 if (!Null(block->cblock.name)) {
                         unlink((char*)block->cblock.name->base_string.self);
                 }
diff -durpN ecl-11.1.1.ORIG/src/c/file.d ecl-11.1.1/src/c/file.d
--- ecl-11.1.1.ORIG/src/c/file.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/file.d	2011-01-17 16:51:59.574145259 -0700
@@ -1110,7 +1110,7 @@ utf_8_encoder(cl_object stream, unsigned
 {
 	int nbytes;
 	if (c < 0) {
-		return 0;
+		nbytes = 0;
 	} else if (c <= 0x7F) {
 		buffer[0] = c;
 		nbytes = 1;
@@ -1130,6 +1130,8 @@ utf_8_encoder(cl_object stream, unsigned
 		buffer[1] = (c & 0x3f) | 0x80; c >>= 6;
 		buffer[0] = c | 0xF0;
 		nbytes = 4;
+	} else {
+		nbytes = 0;
 	}
 	return nbytes;
 }
@@ -4686,7 +4688,7 @@ file_listen(int fileno)
 #if !defined(ECL_MS_WINDOWS_HOST)
 # if defined(HAVE_SELECT)
 	fd_set fds;
-	int retv, fd;
+	int retv;
 	struct timeval tv = { 0, 0 };
         /*
          * Note that the following code is fragile. If the file is closed (/dev/null)
diff -durpN ecl-11.1.1.ORIG/src/c/gfun.d ecl-11.1.1/src/c/gfun.d
--- ecl-11.1.1.ORIG/src/c/gfun.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/gfun.d	2011-01-17 16:36:09.986906531 -0700
@@ -110,7 +110,7 @@ si_generic_function_p(cl_object x)
 #define RECORD_GEN(e) fix((e+2)[0])
 #define RECORD_GEN_SET(e,v) ((e+2)[0]=MAKE_FIXNUM(v))
 
-static cl_object
+static void
 do_clear_method_hash(struct cl_env_struct *env, cl_object target)
 {
 	cl_object table = env->method_hash;
@@ -182,6 +182,7 @@ si_clear_gfun_hash(cl_object what)
 #else
 	do_clear_method_hash(&cl_env, what);
 #endif
+	@(return);
 }
 
 static cl_index
diff -durpN ecl-11.1.1.ORIG/src/c/interpreter.d ecl-11.1.1/src/c/interpreter.d
--- ecl-11.1.1.ORIG/src/c/interpreter.d	2011-01-16 14:39:56.000000000 -0700
+++ ecl-11.1.1/src/c/interpreter.d	2011-01-17 16:28:15.163286066 -0700
@@ -271,7 +271,7 @@ ecl_interpret(cl_object frame, cl_object
         volatile cl_index frame_index = 0;
 	cl_opcode *vector = (cl_opcode*)bytecodes->bytecodes.code;
 	cl_object *data = bytecodes->bytecodes.data;
-	cl_object reg0, reg1, lex_env = env;
+	cl_object reg0 = OBJNULL, reg1 = OBJNULL, lex_env = env;
 	cl_index narg;
 	struct ecl_stack_frame frame_aux;
 	volatile struct ihs_frame ihs;
@@ -284,7 +284,6 @@ ecl_interpret(cl_object frame, cl_object
 	frame_aux.stack = frame_aux.base = 0;
         frame_aux.size = 0;
         frame_aux.env = the_env;
- BEGIN:
 	BEGIN_SWITCH {
 	CASE(OP_NOP); {
 		reg0 = Cnil;
diff -durpN ecl-11.1.1.ORIG/src/c/main.d ecl-11.1.1/src/c/main.d
--- ecl-11.1.1.ORIG/src/c/main.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/main.d	2011-01-17 16:01:26.847464458 -0700
@@ -270,7 +270,7 @@ read_char_database()
 						 si_get_library_pathname(),
 						 make_constant_base_string("ucd.dat"));
 	cl_object output = Cnil;
-	FILE *f = fopen(s->base_string.self, "rb");
+	FILE *f = fopen((const char *)s->base_string.self, "rb");
 	if (f) {
 		cl_index size, read;
 		if (!fseek(f, 0, SEEK_END)) {
@@ -817,7 +817,6 @@ si_getenv(cl_object var)
 cl_object
 si_setenv(cl_object var, cl_object value)
 {
-	const cl_env_ptr the_env = ecl_process_env();
 	cl_fixnum ret_val;
 
 	/* Strings have to be null terminated base strings */
@@ -882,7 +881,6 @@ si_environ(void)
 cl_object
 si_pointer(cl_object x)
 {
-	const cl_env_ptr the_env = ecl_process_env();
 	@(return ecl_make_unsigned_integer((cl_index)x))
 }
 
diff -durpN ecl-11.1.1.ORIG/src/c/numbers/expt.d ecl-11.1.1/src/c/numbers/expt.d
--- ecl-11.1.1.ORIG/src/c/numbers/expt.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/numbers/expt.d	2011-01-17 17:12:46.580991324 -0700
@@ -81,7 +81,7 @@ expt_zero(cl_object x, cl_object y)
                 return ecl_make_complex(z, MAKE_FIXNUM(0));
         default:
                 /* We will never reach this */
-                (void)0;
+                return OBJNULL;
         }
 }
 
diff -durpN ecl-11.1.1.ORIG/src/c/package.d ecl-11.1.1/src/c/package.d
--- ecl-11.1.1.ORIG/src/c/package.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/package.d	2011-01-17 16:19:39.225562793 -0700
@@ -195,7 +195,7 @@ cl_object
 ecl_make_package(cl_object name, cl_object nicknames, cl_object use_list)
 {
         const cl_env_ptr env = ecl_process_env();
-	cl_object x, l, other = Cnil;
+	cl_object x, other = Cnil;
 
         /* Type checking, coercions, and the like, happen before we
          * acquire the lock */
@@ -358,7 +358,7 @@ _ecl_intern(const char *s, cl_object p)
 cl_object
 ecl_intern(cl_object name, cl_object p, int *intern_flag)
 {
-	cl_object s, ul;
+	cl_object s;
         bool error, ignore_error = 0;
 
         if (ecl_unlikely(!ECL_STRINGP(name)))
@@ -467,7 +467,7 @@ potential_unintern_conflict(cl_object na
 bool
 ecl_unintern(cl_object s, cl_object p)
 {
-	cl_object conflict, l, hash;
+	cl_object conflict;
 	bool output = FALSE;
 	cl_object name = ecl_symbol_name(s);
 
@@ -528,7 +528,6 @@ potential_export_conflict(cl_object name
 void
 cl_export2(cl_object s, cl_object p)
 {
-	cl_object x, l, hash = OBJNULL;
 	int intern_flag, error;
 	cl_object other_p, name = ecl_symbol_name(s);
 	p = si_coerce_to_package(p);
@@ -1037,7 +1036,6 @@ cl_list_all_packages()
 
 @(defun use_package (pack &o (pa ecl_current_package()))
 @
-BEGIN:
 	switch (type_of(pack)) {
 	case t_symbol:
 	case t_character:
@@ -1060,7 +1058,6 @@ BEGIN:
 
 @(defun unuse_package (pack &o (pa ecl_current_package()))
 @
-BEGIN:
 	switch (type_of(pack)) {
 	case t_symbol:
 	case t_character:
diff -durpN ecl-11.1.1.ORIG/src/c/predicate.d ecl-11.1.1/src/c/predicate.d
--- ecl-11.1.1.ORIG/src/c/predicate.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/predicate.d	2011-01-17 15:52:33.570155070 -0700
@@ -17,6 +17,7 @@
 
 #define ECL_INCLUDE_MATH_H
 #include <ecl/ecl.h>
+#include <string.h>
 
 cl_object
 cl_identity(cl_object x)
diff -durpN ecl-11.1.1.ORIG/src/c/printer/float_to_digits.d ecl-11.1.1/src/c/printer/float_to_digits.d
--- ecl-11.1.1.ORIG/src/c/printer/float_to_digits.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/printer/float_to_digits.d	2011-01-17 17:06:19.458423632 -0700
@@ -177,7 +177,6 @@ change_precision(float_approx *approx, c
                 {
                         cl_object e1 = cl_expt(PRINT_BASE, position);
                         cl_object e2 = ecl_divide(e1, MAKE_FIXNUM(2));
-                        cl_object e3 = cl_expt(PRINT_BASE, k); 
                         if (ecl_greatereq(ecl_plus(approx->r, ecl_times(approx->s, e1)),
                                           ecl_times(approx->s, e2)))
                                 position = ecl_one_minus(position);
diff -durpN ecl-11.1.1.ORIG/src/c/printer/write_symbol.d ecl-11.1.1/src/c/printer/write_symbol.d
--- ecl-11.1.1.ORIG/src/c/printer/write_symbol.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/printer/write_symbol.d	2011-01-17 17:10:13.387328455 -0700
@@ -46,8 +46,8 @@ potential_number_p(cl_object strng, int 
 		 * extension characters and number markers. Number
 		 * markers are letters, but two adjacent letters fail
 		 * to be a number marker. */
-		if (ecl_digitp(c, base) >= 0 || c == '+' && c == '-' && c == '/' && c == '.' &&
-		    c == '^' && c == '_') {
+		if (ecl_digitp(c, base) >= 0 || c == '+' || c == '-' || c == '/' || c == '.' ||
+		    c == '^' || c == '_') {
 			continue;
 		}
 		if (ecl_alpha_char_p(c) && ((i+1) >= l) || !ecl_alpha_char_p(s[i+1])) {
diff -durpN ecl-11.1.1.ORIG/src/c/printer/write_ugly.d ecl-11.1.1/src/c/printer/write_ugly.d
--- ecl-11.1.1.ORIG/src/c/printer/write_ugly.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/printer/write_ugly.d	2011-01-17 17:07:41.408638779 -0700
@@ -432,7 +432,6 @@ static printer dispatch[FREE+1] = {
 cl_object
 si_write_ugly_object(cl_object x, cl_object stream)
 {
-        int t;
 	if (x == OBJNULL) {
 		if (ecl_print_readably())
                         FEprint_not_readable(x);
diff -durpN ecl-11.1.1.ORIG/src/c/read.d ecl-11.1.1/src/c/read.d
--- ecl-11.1.1.ORIG/src/c/read.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/read.d	2011-01-17 16:58:54.298117218 -0700
@@ -837,7 +837,7 @@ sharp_asterisk_reader(cl_object in, cl_o
 {
 	cl_env_ptr env = ecl_process_env();
 	cl_index sp = ECL_STACK_INDEX(env);
-	cl_object last, elt, x;
+	cl_object last = OBJNULL, elt, x;
 	cl_index dim, dimcount, i;
 	cl_object rtbl = ecl_current_readtable();
 	enum ecl_chattrib a;
@@ -1040,7 +1040,7 @@ static cl_object
 sharp_eq_reader(cl_object in, cl_object c, cl_object d)
 {
 	const cl_env_ptr the_env = ecl_process_env();
-	cl_object definition, pair, value;
+	cl_object pair, value;
 	cl_object sharp_eq_context = ECL_SYM_VAL(the_env, @'si::*sharp-eq-context*');
 
 	if (read_suppress) @(return);
@@ -1712,10 +1712,6 @@ cl_readtablep(cl_object readtable)
 	@(return (ECL_READTABLEP(readtable) ? Ct : Cnil))
 }
 
-#ifdef ECL_UNICODE
-static struct ecl_readtable_entry default_readtable_entry;
-#endif
-
 int
 ecl_readtable_get(cl_object readtable, int c, cl_object *macro_or_table)
 {
@@ -2159,7 +2155,7 @@ read_VV(cl_object block, void (*entry_po
 	volatile cl_object x;
 	cl_index i, len, perm_len, temp_len;
 	cl_object in;
-	cl_object *VV, *VVtemp = 0;
+	cl_object *VV = 0, *VVtemp = 0;
 
 	if (block == NULL) {
 		block = ecl_alloc_object(t_codeblock);
@@ -2275,7 +2271,6 @@ read_VV(cl_object block, void (*entry_po
 			cl_index fname_location = fix(prototype->block);
 			cl_object fname = VV[fname_location];
 			cl_index location = fix(prototype->name);
-                        cl_object source = prototype->file;
                         cl_object position = prototype->file_position;
 			int narg = prototype->narg;
 			VV[location] = narg<0?
diff -durpN ecl-11.1.1.ORIG/src/c/reader/parse_number.d ecl-11.1.1/src/c/reader/parse_number.d
--- ecl-11.1.1.ORIG/src/c/reader/parse_number.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/reader/parse_number.d	2011-01-17 17:04:54.223279919 -0700
@@ -23,12 +23,6 @@ exponent_charp(cl_fixnum c)
 }
 
 static cl_object
-read_exponent(cl_object str, cl_index start, cl_index end, cl_index *ep)
-{
-
-}
-
-static cl_object
 expt10(cl_index expt)
 {
         cl_object accum = _ecl_big_register0();
diff -durpN ecl-11.1.1.ORIG/src/c/reference.d ecl-11.1.1/src/c/reference.d
--- ecl-11.1.1.ORIG/src/c/reference.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/reference.d	2011-01-17 16:36:52.751971634 -0700
@@ -164,7 +164,6 @@ cl_boundp(cl_object sym)
 cl_object
 cl_special_operator_p(cl_object form)
 {
-	const cl_env_ptr the_env = ecl_process_env();
 	int special = ecl_symbol_type(form) & stp_special_form;
 	@(return (special? Ct : Cnil))
 }
diff -durpN ecl-11.1.1.ORIG/src/c/symbol.d ecl-11.1.1/src/c/symbol.d
--- ecl-11.1.1.ORIG/src/c/symbol.d	2011-01-16 14:39:57.000000000 -0700
+++ ecl-11.1.1/src/c/symbol.d	2011-01-17 16:05:35.195029108 -0700
@@ -280,7 +280,6 @@ cl_symbol_plist(cl_object sym)
 cl_object
 cl_get_properties(cl_object place, cl_object indicator_list)
 {
-	const cl_env_ptr the_env = ecl_process_env();
 	cl_object l;
 
 #ifdef ECL_SAFE
@@ -403,7 +402,6 @@ cl_keywordp(cl_object sym)
 cl_object
 si_rem_f(cl_object plist, cl_object indicator)
 {
-	cl_env_ptr the_env = ecl_process_env();
 	bool found = remf(&plist, indicator);
 	@(return plist (found? Ct : Cnil))
 }
diff -durpN ecl-11.1.1.ORIG/src/h/ecl-inl.h ecl-11.1.1/src/h/ecl-inl.h
--- ecl-11.1.1.ORIG/src/h/ecl-inl.h	2011-01-16 14:40:01.000000000 -0700
+++ ecl-11.1.1/src/h/ecl-inl.h	2011-01-17 15:55:36.383144132 -0700
@@ -69,11 +69,11 @@
                 cl_fixnum padding[(sizeof(struct ecl_base_string)+3)/4*4]; \
         } name[]
 
-#define ecl_def_string_array_elt(chars) {                      \
+#define ecl_def_string_array_elt(chars) { {                     \
                 (int8_t)t_base_string, 0, aet_bc, 0,            \
                         Cnil, (cl_index)(sizeof(chars))-1,      \
                         (cl_index)(sizeof(chars))-1,            \
-                        (ecl_base_char*)(chars) }
+                        (ecl_base_char*)(chars) } }
 
 #define ecl_def_ct_base_string(name,chars,len,static,const)     \
         static const struct ecl_base_string name ## _data = {    \
diff -durpN ecl-11.1.1.ORIG/src/h/external.h ecl-11.1.1/src/h/external.h
--- ecl-11.1.1.ORIG/src/h/external.h	2011-01-16 14:40:01.000000000 -0700
+++ ecl-11.1.1/src/h/external.h	2011-01-17 17:04:03.315388558 -0700
@@ -421,7 +421,7 @@ extern ECL_API void ecl_def_c_function(c
 extern ECL_API void ecl_def_c_macro(cl_object sym, cl_objectfn_fixed c_function, int narg);
 extern ECL_API void ecl_def_c_macro_va(cl_object sym, cl_objectfn c_function);
 extern ECL_API void ecl_def_c_function_va(cl_object sym, cl_objectfn c_function);
-extern ECL_API cl_object ecl_set_function_source_file_info(cl_object fun, cl_object source, cl_object position);
+extern ECL_API void ecl_set_function_source_file_info(cl_object fun, cl_object source, cl_object position);
 extern ECL_API void ecl_cmp_defmacro(cl_object data);
 extern ECL_API void ecl_cmp_defun(cl_object data);
 
diff -durpN ecl-11.1.1.ORIG/src/h/internal.h ecl-11.1.1/src/h/internal.h
--- ecl-11.1.1.ORIG/src/h/internal.h	2011-01-16 14:40:01.000000000 -0700
+++ ecl-11.1.1/src/h/internal.h	2011-01-17 16:23:44.981191586 -0700
@@ -187,7 +187,6 @@ extern void _ecl_unexpected_return() ecl
         frame->frame.env = env;                                         \
         frame->frame.size = narg;                                       \
         if (narg < C_ARGUMENTS_LIMIT) {                                 \
-                cl_index i;                                             \
                 cl_object *p = frame->frame.base = env->values;         \
                 va_list args;                                           \
                 va_start(args, lastarg);                                \
@@ -405,6 +404,9 @@ extern cl_object si_serialize(cl_object 
 extern cl_object si_deserialize(cl_object root);
 extern cl_object ecl_deserialize(uint8_t *data);
 
+/* stacks.d */
+extern void ecl_cs_set_org(cl_env_ptr env);
+
 /* string.d */
 #define ecl_vector_start_end ecl_sequence_start_end
 
@@ -415,6 +417,13 @@ extern ECL_API cl_object mp_suspend_loop
 extern ECL_API cl_object mp_break_suspend_loop();
 #endif
 
+/* threads/rwlock.d */
+
+#ifdef ECL_THREADS
+extern cl_object mp_get_rwlock_read_wait(cl_object lock);
+extern cl_object mp_get_rwlock_write_wait(cl_object lock);
+#endif
+
 /* time.d */
 
 #define UTC_time_to_universal_time(x) ecl_plus(ecl_make_integer(x),cl_core.Jan1st1970UT)